Đây là cơng việc cần phải thực hiện để cĩ được một mơ hình phù hợp nhất cho ứng dụng. Những thiết lập tham sốcho mạng sẽ dẫn đến các mơ hình mạng noron khác nhau thích ứng cho từng bộ dự liệu khác nhau. Mong muốn của chúng ta là tìm được một bộ tham số tốt nhất cho bài tốn của mình. Muốn vậy cần phải làm được hai việc: thay đổi tham số và đánh giá mơ hình với bộtham số đĩ.
Thay đổi tham số
Mạng noron cĩ khá nhiều tham sốcĩ thể tác động vào, tuy nhiên trong khĩa luận tơi sẽchỉ thay đổi hai tham số cơ bản nhất của mạng noron là tốc độhọc (learning rate) và số noron tầng ẩn (hidden layers). Đĩ là vấn đề tổng quan, cịn cụ thể thì phải cĩ một chiến lược thay đổi các tham số để thực thi. Chiến lược mà tơi sử dụng là một thuật tốn dựa trên kinh nghiệm, tư tưởng của thuật tốn như sau. Ban đầu ta khởi tạo một tốc độhọc cao (khoảng 0,9) và một khoảng cho sốnoron tầng ẩn (ví dụtừ 2 đến 10). Thực hiện thử học với lần lượt với tốc độ học 0,9 và số noron tầng ẩn từ 2 đến 10. Lỹ dĩ nhiên trong bước lặp này thì các mơ hình thu được là khá tồi do tốc độhọc là quá cao. Đểtối ưu mơ hình hơn, ởnhững bước lặp sau chúng ta sẽgiảm tốc độhọc đi để tìm phương án tốt hơn (tốt hơn theo hàm đánh giá). Kết thúc quá trình lặp này, các tham số tốt nhất sẽ được lưu lại đểtạo ra mơ hình tối ưu. Sau đây là đoạn mã giảthực hiện cơng việc này:
While(learningrate > 0){
For(i = hiddenUnits; i > 0; i--){
//Thực hiện học mơ hình với tốc độhọc learningrate //và sốnoron tầng ẩn hiddenUnits ở đây
If(tỷlệlỗi thấp hơn tỷlệlỗi hiện tại){
Gán tỷlệlỗi thấp nhất hiện tại là tỷlệlỗi ứng với vịng lặp này Lưu lại tốc độhọc Lưu lại sốnoron tầng ẩn } }
//decrease là lượng giảm cho tốc độhọc }
Đánh giá mơ hình
Sau khi thay đổi các tham sốmột bộtham sốmới được tạo ra, đểbiết được nĩ cĩ tốt hay khơng chúng ta cần làm cơng đoạn là đánh giá nĩ. Tức là sẽso sánh mơ hình mới ứng với bộ tham số này với các mơ hình trước đĩ xem mơ hình nào tốt hơn dựa vào một tiêu chuẩn đánh giá nào đĩ (nĩ chính là bước so sánh tại điều kiện của câu lệnh if trong đoạn mã ở trên). Như phần xác định tiêu chuẩn đánh giá –bước thứ sáu trong tám bước thiết kế và thực thịmột mạng noron –ởtrên thì sai sốtrung bình bình phương sẽ được tơi sửdụng để đánh giá.
Trong đoạn mã trên, chúng ta cần phải cĩ một động tác là học mơ hình với tham số tốc độ học (learningrate) và số lượng thành phần ẩn (hiddenUnits) tại mỗi bước lặp. Việc thực hiện học này cũng rất cĩ ảnh hưởng tới giá trị của hàm đánh giá. Nĩ được thể hiện một phần ở các tập dữ liệu phục vụ để học mơ hình là tập huấn luyện, tập kiểm chứng (như đã nêu ở phần trước). Đểtiến hành quá trình học này ta chia dữliệu thành hai phần: một phần để thiết lập các tham số cho mơ hình (tập huấn luyện – training set), phần cịn lại dùng để đánh giá tỷ lệ lỗi của mơ hình nhằm chọn ra bộ tham số tốt nhất (tập kiểm chứng – validation set).Trong weka, đểthực hiện quá trình này, ta sẽdùng dịng lệnh sau (dịng lệnh bên dưới tơi đã sửdụng một tham số tốc độhọc và sốnoron tầng ẩn để mang tính chất minh họa, các tham số khác tơi để mặc định):
java weka.classifiers.functions.MultilayerPerceptron -L 0.2 -H 2 -t D:\prediction\Training.arff -T D:\prediction\test.arff
Trong đĩ:
-L là tham sốtốc độhọc -H là tham sốcác noron ẩn
-t là đường dẫn cho tập huấn luyện -T là đường dẫn cho tập đánh giá
Hình 5.4 – Kết quảhuấn luyện mạng noron bằng dịng lệnh weka
Hình trên cho thấy kết quả tỷlệ lỗi trung bình bình phương (RMSE) là 0.8267 trên tập kiểm định
Sau khi cĩ được bộ tham số tốt nhất, chúng ta sẽ xây dựng được mơ hình tốt nhất. Sử dụng mơ hình này cho tồn bộtập huấn luyện (training set), kể cả phần dữ liệu kiểm chứng (validation set). Dịng lệnh trong weka như sau:
java weka.classifiers.functions.MultilayerPerceptron -L learningrate -H hiddenUnits -t trainingSetPath -T validationSetPath –d modelFilePath
Trong đĩ:
Learningrate là tốc độhọc tốt nhất đã được chọn
hiddenUnits là sốcác noron tầng ẩn tốt nhất đã được chọn trainingSetPath là đường dẫn cho tập huấn luyện
validationSetPath đường dẫn cho tập đánh giá
modelFilePath đường dẫn cho mơ hình. Và sau nay ta sẽ sử dụng mơ hình này để dự đốn