Đâ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 toá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 toán dựa trên kinh nghiệm, tư tưởng của thuật toá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 toà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ự đoán