0
Tải bản đầy đủ (.docx) (65 trang)

Xác định mô hình phù hợp

Một phần của tài liệu NGUYÊN CỨU VÀ XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ DỰ ĐOÁN XU THẾ GIÁ CHỨNG KHOÁN DỰA TRÊN NỀN TẢNG MÃ NGUỒN MỞ (Trang 53 -56 )

Đâ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 }

}

Learningrate = learningrate – decrease;

//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á Kết quả của câu lệnh trên như sau:

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

Một phần của tài liệu NGUYÊN CỨU VÀ XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ DỰ ĐOÁN XU THẾ GIÁ CHỨNG KHOÁN DỰA TRÊN NỀN TẢNG MÃ NGUỒN MỞ (Trang 53 -56 )

×