- Hiện thực và thực nghiệm để đánh giá hiệu quả của các chiến lược dự báo nhiều bước bằng mạng nơ-ron áp dụng trên một số tập dữ liệu giá chứng khoán của thị trường chứng khoán Việt Nam.
PHÁT BIỂU VẤN ĐỀ
Giới thiệu vấn đề
Trong thời đại ngày nay, hoạt động đầu tư trên thị trường chứng khoán đã trở thành một hoạt động phổ biến và thu hút số lượng đông đảo nhà đầu tư, từ doanh nghiệp đến các khách hàng cá nhân, với đủ mọi thành phần trong xã hội Vấn đề về lợi nhuận thu được từ hoạt động đầu tư chứng khoán là mối quan tâm hàng đầu của mọi nhà đầu tư, trong đó dự đoán được giá cổ phiếu trong tương lai là một vấn đề mà hầu hết những người hoạt động trong lĩnh vực tài chính điều quan tâm
Dự báo hàm ý dự đoán điều gì đó cho tương lai Dự báo có thể là bất kỳ một phát biểu nào về tương lai và phát biểu đó có thể hoặc không dựa trên một hoặc một số căn cứ khoa học nào đó Chính vì thế kết quả dự báo có thể chính xác hoặc không chính xác Để tránh những dự báo thiếu căn cứ, người làm dự báo cần được trang bị các phương pháp dự báo khoa học và có hệ thống
Trong thị trường tài chính, có nhiều phương pháp khác nhau được dùng để dự báo Những phương pháp này có thể được phân thành 4 nhóm: phân tích cơ bản
(Fundamental Analysis), phân tích kỹ thuật (Technical Analysis), dự báo chuỗi thời gian bằng các mô hình truyền thống (Prediction of Time Series with Traditional
Models), các phương pháp học máy (Machine Learning Methods) [1] Trong đó phân tích cơ bản dựa vào các yếu tố kinh tế như quan hệ cung cầu,… Phân tích kỹ thuật cố gắng dự báo hành vi thị trường bằng cách đưa ra các mẫu (pattern) như Head And Shoulders, Double Top And Double Bottom, Wedge,… dựa vào các đồ thị miêu tả dữ liệu lịch sử của thị trường Dự báo chuỗi thời gian bằng các mô hình truyền thống hướng đến việc đưa ra các mô hình dự báo tuyến tính dựa trên các dữ liệu lịch sử Các phương pháp máy học dùng các dữ liệu mẫu để học, để đưa ra các mô hình xấp xỉ tuyến tính hoặc phi tuyến được sinh ra từ các dữ liệu đó
Các phương pháp máy học ngày nay được dùng rất nhiều trong lĩnh vực dự báo cho dữ liệu chuỗi thời gian Trong lĩnh vực này đã có rất nhiều nghiên cứu từ lựa chọn mô hình, truyển đổi dữ liệu, các giải thuật huấn luyện,…hơn nữa các nghiên cứu này tập trung rất nhiều vào việc giải quyết các bài toán dự báo trong ngắn hạn (một bước) và các nghiên cứu này đã cho ra những mô hình dự báo có độ chính xác rất cao, trong đó dùng mạng nơ-ron để dự báo cho một bước cũng đã cho thấy rất hiệu quả Trong khi đó bài toán dự báo nhiều bước (multi-step ahead prediction) vẫn là một thách thức lớn đối với việc dự báo chuỗi thời gian Đặc biệt đối với dự báo nhiều bước chuỗi thời gian dùng mạng nơ-ron, nhiều nghiên cứu đã chỉ ra sự hiệu quả của nó nhưng phương pháp dự báo này phụ thuộc nhiều vào từng bài toán cụ thể, không có một phương pháp chung để giải quyết cho tất cả mọi bài toán.
Mục tiêu nghiên cứu của đề tài
- Thu thập và làm sạch dữ liệu giao dịch cổ phiếu bao gồm các thông tin của các cổ phiếu niêm yết trên thị trường chứng khoán Việt Nam
- Nghiên cứu các kiến trúc mạng nơ-ron dùng để dự báo nhiều bước, các giải thuật huấn luyện mạng
- Xây dựng một công cụ mô phỏng để kiểm nghiệm các thuật toán đã chọn lựa trên các tập dữ liệu chuỗi thời gian chứng khoán từ đó đưa ra kết luận và đề xuất mô hình phù hợp nhất để dự báo.
Phạm vi nghiên cứu
- Kiến trúc mạng nơ-ron dùng để dự báo nhiều bước trên chuỗi thời gian
- Áp dụng dự báo nhiều bước cho dữ liệu chuỗi thời gian chứng khoán của thị trường chứng khoán Việt Nam.
Phương pháp nghiên cứu
Sử dụng kết hợp giữa nghiên cứu lý luận và nghiên cứu thực tiễn
Nghiên cứu lý thuyết được tiến hành bằng cách thu thập thông tin từ các tài liệu chuyên đề về dự báo chuỗi thời gian, dự báo sử dụng mạng nơ-ron và dự báo nhiều bước bằng mạng nơ-ron trong lĩnh vực kinh tế tài chính và các lĩnh vực liên quan.
- Nghiên cứu thực tiễn: từ kết quả các cơ sở lý thuyết đã rút ra trong quá trình nghiên cứu lý luận để áp dụng vào thực tế thị trường chứng khoán Việt Nam nhằm tìm ra sự liên quan trong quy luật vận động của các cổ phiếu trên thị trường.
Ý nghĩa nghiên cứu
- Kết quả nghiên cứu sẽ cung cấp thông tin hỗ trợ cho các nhà đầu tư khi tham gia giao dịch trên thị trường chứng khoán Việt Nam
- Kết quả nghiên cứu có thể được vận dụng để đưa vào các nghiên cứu về hệ thống quản lý danh mục đầu tư cổ phiếu, các hệ thống dự báo giá, …
Tóm tắt kết quả đã đạt được
- Xây dựng hệ thống dự báo nhiều bước dữ liệu chuỗi thời gian bằng mạng nơ- ron nhân tạo theo 5 chiến lược dự báo khác nhau
- Tiến hành thực nghiệm trên một số tập dữ liệu Trong đó có 2 tập dữ liệu của thị trường chứng khoán Việt Nam và tập dữ liệu chuẩn NN3
- So sánh kết quả dự báo nhiều bước dùng mạng nơ-ron với các phương pháp dự báo nhiều bước khác, là các nghiên cứu đã có
- Đánh giá được hiệu quả dự báo nhiều bước dùng mạng nơ-ron theo 5 chiến lược khác nhau.
Cấu trúc của luận văn
Chương 1: Giới thiệu về ý tưởng đề tài, mục tiêu, phạm vi nghiên cứu và tóm tắt về các kết quả đã đạt được của luận văn
Chương 2: Giới thiệu một số nghiên cứu có liên quan đến nội dung nghiên cứu của luận văn Trong đó tập trung giới thiệu một số nghiên cứu về chiến lược dự báo nhiều bước, các kỹ thuật dự báo bằng mạng nơ-ron
Chương 3: Trình bày những lý thuyết cơ bản liên quan đến mạng nơ-ron như cấu trúc mạng, giải thuật huấn luyện mạng, các chiến lược dự báo nhiều bước
Chương 4: Mô tả cách thức giải quyết vấn đề mà luận văn đặt ra là dự báo nhiều bước bằng mạng nơ-ron Trong đó chỉ ra trình tự các bước cần thực hiện có thể đánh giá các chiến lược dự báo nhiều bước bằng mạng nơ-ron
Chương 5: Mô tả các thành phần của hệ thống thực nghiệm để giải quyết vấn đề, qui trình làm hành thực nghiệm, các thông số làm thực nghiệm, các kết quả có được khi tiến hành làm thực nghiệm trên các tập dữ liệu thật, đánh giá kết quả thực nghiệm
Chương 6: Trình bày các kết quả đạt được của luận văn đồng thời nêu lên những hướng phát triển của luận văn
CÁC CÔNG TRÌNH CÓ LIÊN QUAN
Một số nghiên cứu về chiến lược dự báo nhiều bước
Bontempi (2008) [2] đã chỉ ra giới hạn của các phương pháp tiếp cận đầu ra đơn để dự đoán nhiều giá trị tương lai và trình bày phương pháp tiếp cận đầu ra đa dạng để dự đoán dài hạn Nghiên cứu đề xuất một mô hình mở rộng của phương pháp tiếp cận đầu ra đa dạng sử dụng kỹ thuật học lười được gọi là LL-MIMO.
Taieb và các cộng sự, 2009 [3] so sánh các chiến lược trực tiếp (direct strategy) và nhiều ngõ vào nhiều ngõ ra MIMO (multi input – multi output strategy), và thảo luận về những giới hạn của các hướng tiếp cận này trong dự báo nhiều bước cho chuỗi thời gian Bài báo cũng đề xuất một phương pháp luận mới là sự kết hợp giữa chiến lược trực tiếp và MIMO
Taieb và các cộng sự, 2012 [4] xem xét các chiến lược hiện có trong việc dự báo nhiều bước trên chuỗi thời gian và so sánh chúng cả về phương diện lý thuyết và thực nghiệm Kết quả thực nghiệm cho thấy chiến lược nhiều ngõ ra là cách tiếp cận tốt nhất, việc khử tính mùa dẫn đến cải thiện độ chính xác của dự báo và việc chọn lựa biến ngõ vào sẽ hiệu quả hơn khi được thực hiện kết hợp với việc khử tính mùa.
Một số nghiên cứu về mạng nơ-ron và dự báo nhiều bước bằng mạng nơ-ron 4 2.3 Một số nghiên cứu về dự báo nhiều bước bằng các kỹ thuật khác
Chang, 2007 [5] khám phá nguyên lý và cơ chế hoạt động của 3 kiến trúc dùng để dự báo nhiều bước bằng mạng nơ-ron là: nhiều ngõ vào nhiều ngõ ra (MIMO), nhiều ngõ vào - một ngõ ra MISO (multi-input single-output) và lan truyền nối tiếp
(serial-propagated) Trong nghiên cứu này với kiến trúc MIMO số lượng ngõ ra của mạng nơ-ron sẽ bằng với số bước cần dự báo, còn với kiến trúc MISO để dự báo cho
H bước ta cần xây dựng và huấn luyện H mạng nơ-ron độc lập nhau, mỗi mạng sẽ dùng để dự báo cho một bước, còn với chiến lược lan truyền nối tiếp có đặc điểm giống như kiến trúc MISO tuy nhiên có điểm khác biệt là bước dự báo tiếp theo sẽ dùng kết quả dự báo của bước trước đó Theo bài báo, hầu hết các mạng nơ-ron dùng cấu trúc mạng truyền thẳng nhiều tầng với giải thuật độ dốc liên hợp (conjugate gradient) Bài báo dùng tập dữ liệu về lượng mưa ở một số khu vực của Đài Loan từ đó dùng mạng nơ-ron để xây dựng mô hình dự báo Kết quả nghiên cứu chỉ ra rằng, mặc dù kiến trúc MIMO được sử dụng phổ biến nhất cho mạng nơ-ron, nó vẫn kém chính xác bởi vì vấn đề đa mục tiêu phải được tối ưu hoá đồng thời Cả hai kiến trúc MISO và lan truyền nối tiếp có khả năng thực hiện những dự báo chính xác trong ngắn hạn (1 hoặc 2 bước) Còn với những dự báo trong dài hạn (trên 3 bước) thì kiến trúc lan truyền nối tiếp có thể cho ra kết quả dự báo tốt hơn Từ kết quả này, bài báo đề nghị dùng cấu trúc lan truyền nối tiếp để nâng cao độ chính xác cho những dự báo lũ ở nhiều bước khác nhau
Hamzaỗebi và cỏc cộng sự, 2009 [6] đưa ra những so sỏnh giữa hai phương pháp lặp (iterated) và trực tiếp được dùng để dự báo nhiều bước dùng mạng nơ-ron
Trong phương pháp lặp, quá trình huấn luyện mô hình mạng nơ-ron truyền thẳng 3 tầng chỉ dựa vào một nút ở tầng đầu ra để dự báo bước tiếp theo Ngược lại, phương pháp trực tiếp sử dụng mạng nơ-ron truyền thẳng 3 tầng với số nút ở tầng xuất bằng với số bước dự báo.
Cũng trong bài báo này hiệu quả của 2 cách tiếp cận này được so sánh với mô hình dự báo ARIMA tiêu chuẩn Việc so sánh đã chỉ ra rằng dự báo bằng mạng nơ-ron cho kết quả tốt hơn các phương pháp khác Theo bài báo thì nghiên cứu này hỗ trợ các nghiên cứu trước đây khẳng định tính ưu việt của phương pháp trực tiếp Tuy nhiên nó không cho rằng phương pháp trực tiếp cho kết quả tốt hơn đối với tất cả các bài toán dự báo trên chuỗi thời gian Bài báo đề nghị cần thực hiện thêm các mô phỏng tuyến tính và phi tuyến để khái quát kết luận được trình bày trong bài báo
Dai và các cộng sự, 2012 [7] đề xuất mô hình dự báo bằng cách kết hợp giữa phân tích thành phần độc lập phi tuyến NLICA (nonlinear independent component analysis), và mạng nơ-ron để dự báo cho thị trường chứng khoán Châu Á Kết quả thực nghiệm chỉ ra rằng mô hình dự báo đề xuất giúp cải thiện độ chính xác của dự báo bằng mạng nơ-ron
Thuật toán học hồi quy trực tuyến được đề xuất bởi Chen và cộng sự năm 2013 [8] đã tăng cường R-RTRL (reinforced real-time recurrent learning algorithm) cho mạng nơ-ron hồi tiếp Điểm nổi bật chính của đề xuất này là lặp lại việc điều chỉnh các thông số mô hình với thông tin hiện tại bao gồm giá trị quan sát cuối cùng và giá trị ngõ ra của mô hình nhằm cải thiện độ tin cậy và độ chính xác của dự báo.
Nghiên cứu của Zhang và cộng sự năm 1998 [9] đã tập trung vào việc sử dụng mạng nơ-ron nhân tạo (MNNNT) trong dự báo Bài báo này đã tổng hợp các nghiên cứu trước đó, phân tích chuyên sâu các thách thức trong việc xây dựng mô hình MNNNT và đề xuất hướng nghiên cứu trong tương lai.
Kline, 2004 [10] xem xét 3 phương pháp khi dùng mạng nơ-ron để dự báo nhiều bước trên dữ liệu chuỗi thời gian là: (1) phương pháp ghép nối (Joint Method) dùng một mô hình mạng nơ-ron duy nhất để dự báo cho tất cả các bước, (2) phương pháp độc lập (Independent Method) tạo ra nhiều mô hình mạng độc lập nhau, mỗi mô hình dùng để dự báo cho một bước và (3) phương pháp lặp (Iterative Method) tạo ra mô hình mạng nơ-ron để dự báo một bước, sau đó dùng lặp lại mô hình này nhiều lần để dự báo cho nhiều bước Nghiên cứu dùng tập dữ liệu M-3 Competition để làm thực nghiệm Kết quả của nghiên cứu đưa ra đề nghị: đối với các dự báo trong dài hạn thì phương pháp ghép nối thực thi tốt hơn, trong khi đối với các dự báo trong ngắn hạn thì phương pháp độc lập thực thi tốt hơn
E, Guresen và các cộng sự, 2011 [11] đánh giá hiệu quả của một số mô hình mạng nơ-ron dùng trong dự báo thị trường chứng khoán Các mô hình đưa ra phân tích là mô hình nhiều tầng (MLP), mạng nơ-ron động (dynamic artificial neural network – DAN2) và mạng nơ-ron lai (hybrid neural networks)
Trong nghiên cứu của T Xiong và các cộng sự, 2013 [12] đề xuất một mô hình lai (hybrid model) được xây dựng dựa trên phân rã mô hình thực nghiệm EMD
(empirical model decomposition) và mô hình mạng nơ-ron truyền thẳng FNN (feed- forward neural network) kết hợp chặt chẽ với phương pháp dựa vào độ dốc SBM
(Slope-based method) để có thể dự báo được sự biến động phức tạp của giá dầu
Nghiên cứu này sử dụng 3 chiến lược dự báo là lặp, trực tiếp và MIMO để làm thực nghiệm Kết quả thực nghiệm trên tập dữ liệu giá dầu hàng tuần cho thấy mô hình đề xuất khi dự báo theo chiến lược MIMO cho kết quả dự báo tốt nhất với chi phí xử lí phù hợp
2.3 Một số nghiên cứu về dự báo nhiều bước bằng các kỹ thuật khác
Y Bao và các cộng sự, 2014 [13] chỉ ra rằng khi dùng các mô hình Hồi quy vec-tơ hỗ trợ SVR (Support Vector Regression) theo công thức chuẩn để dự báo nhiều bước để dự báo nhiều bước cho chuỗi thời gian thường dựa vào chiến lược lặp hoặc chiến lược trực tiếp Từ đó nghiên cứu này đề xuất một cách tiếp cận mới trong dự báo nhiều bước cho chuỗi thời gian trong đó sử dụng mô hình hồi quy vec-tơ hỗ trợ nhiều ngõ ra M-SVR (multiple-output support vector regression) với chiến lược dự báo nhiều ngõ vào – nhiều ngõ ra (MIMO) Qua thực nghiệm với các tập dữ liệu thật kết quả nghiên cứu cho thấy: (1) M-SVR dùng chiến lược MIMO cho kết quả dự báo chính xác nhất với thời gian xử lí chấp nhận được (2) SVR tiêu chuẩn với chiến lược trực tiếp cho kết quả dự báo chính xác thứ hai, nhưng với thời gian xử lí lâu nhất (3) SVR tiêu chuẩn dùng chiến lược lặp cho kết quả dự báo kém nhất nhưng có thời gian xử lí thấp nhất
L Zhang và các cộng sự, 2013 [14] thấy rằng các mô hình dự báo bằng hồi quy vec-tơ hỗ trợ sử dụng các phương pháp lặp cho ra kết quả dự báo rất chính xác với dự báo một bước trên dữ liệu chuỗi thời gian nhưng nếu dùng mô hình này để dự báo cho nhiều bước thì lỗi sẽ tích luỹ dần qua các bước dự báo cho nên kết quả dự báo thường không tốt Từ đó nghiên cứu đề xuất dự báo nhiều bước bằng phương pháp lặp cho chuỗi thời gian dùng nhiều mô hình SVR Theo đề xuất này thì mô hình SVR thứ n sẽ được dùng để dự báo cho bước thứ n Kết quả đầu ra của các mô hình này sẽ được dùng như giá trị đầu vào dùng để dự báo tiếp theo Khi đó mỗi mô hình SVR sẽ thực hiện dự báo chính xác cho một bước và điều này giúp giảm thiểu các lỗi tích luỹ Như vậy kỹ thuật này có thể xem như là một kết hợp của kỹ thuật lặp và trực tiếp
Z Huang and M.-L Shyu, 2010 [15] sử dụng giải thuật k-láng giềng rất nhất k- NN (k- nearest neighbors) với kỹ thuật máy vec-tơ hỗ trợ bình phương tối thiểu LS- SVM (least squares support vector machine) để dự báo nhiều bước cho dữ liệu chuỗi thời gian Kết quả thực nghiệm theo đề xuất này được so sánh với cách tiếp cận LS- SVM truyền thống và cách tiếp cận bằng học cục bộ nhiều ngõ vào – nhiều ngõ ra LL-
Kết luận
Trong phần nghiên cứu dự báo nhiều bước trên dữ liệu chuỗi thời gian, luận văn đã xác định những phương pháp chủ yếu: mạng nơ-ron, thuật toán học lười, hồi quy vectơ hỗ trợ, ARIMA và tích hợp nhiều mô hình Các nghiên cứu này cũng cho thấy 5 chiến lược dự báo chính: lặp, trực tiếp, nhiều ngõ vào - nhiều ngõ ra, kết hợp lặp và trực tiếp, kết hợp lặp và nhiều ngõ vào - nhiều ngõ ra.
Qua tổng hợp một số công trình nghiên cứu trên đây cho thấy trong các bài toán về dự báo dùng mạng nơ-ron các nghiên cứu tập trung nhiều vào cho dự báo một bước có thể thuần tuý dùng nơ-ron hoặc dùng mạng nơ-ron kết hợp với các kỹ thuật khác trong các mô hình lai Các nghiên cứu này đã cho thấy tính ưu việt của mạng nơ-ron trong dự báo một bước
Có một số nghiên cứu dùng mạng nơ-ron để dự báo nhiều bước thì phần lớn tập trung vào sử dụng kiến trúc lặp theo đó dùng mô hình mạng nơ-ron trong dự báo cho một bước để dự báo cho nhiều bước, hoặc sử dụng kiến trúc nhiều ngõ ra để cùng lúc dự báo đồng thời tất cả các bước dự báo.
CƠ SỞ LÝ THUYẾT
Dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian (Time series data) là dữ liệu được quan sát và ghi nhận theo thời gian xuất hiện Dữ liệu này có thể là đơn biến hay đa biến, nhưng trong đó phải có 1 chiều là thời gian Loại dữ liệu dạng này thường rất lớn, và tồn tại trong nhiều lĩnh vực tài chính, y tế, môi trường, giao thông, chứng khoán (hình 3.1), …
Hình 3.1 Dữ liệu chuỗi thời gian giá đóng cửa cổ phiếu FPT
Những khó khăn trong khi nghiên cứu chuỗi thời gian:
- Khối lượng dữ liệu quá lớn
- Quá trình khai phá phụ thuộc vào nhiều yếu tố chủ quan như: cách thức đánh giá mức độ tương tự của dữ liệu phụ thuộc vào lựa chọn của người dùng và tập dữ liệu Do đó khó có thể đánh giá kết quả thực nghiệm một cách tuyệt đối
- Dữ liệu không đồng nhất: khác định dạng, tần suất lấy mẫu khác nhau, … - Dữ liệu có thể bị nhiễu, bị thiếu, hoặc không sạch, …
Trong bài toán dự báo, một kiểu dữ liệu thường gặp là dữ liệu chuỗi thời gian, tức là dữ liệu được thu nhập, lưu trữ và quan sát theo sự tăng dần của thời gian Ví dụ, doanh số bán hàng của một siêu thị được lưu trữ theo từng quý là các dữ liệu chuỗi thời gian, giá đóng cửa của một cổ phiếu cuối mỗi ngày giao dịch, …
Ta ký kiệu chuỗi thời gian là {X t } với t là các số tự nhiên X t là các biến ngẫu nhiên (random variable) rút ra từ một phân bố xác suất (probability distribution) nào đó Các chuỗi thời gian thường được biểu diễn bằng một đồ thị với trục hoành là biến thời gian Hình 3.2 là một ví dụ về chuỗi thời gian, số hành khách đặt chỗ hàng tháng của hãng Pan Am
Hình 3.2 Số khách hàng đặt chỗ hàng tháng của hãng Pan Am
Một chuỗi thời gian thường bao gồm bốn thành phần khác biệt nhau về bản chất, đó là thành phần xu thế (trend component), thành phần chu kỳ (cyclical component), thành phần mùa (seasonal component) và thành phần bất thường
Là thành phần thể hiện sự tăng hay giảm giá trị của chuỗi thời gian trong một giai đoạn dài hạn nào đó Hình 3.3 là một minh họa về chuỗi thời gian có thành phần xu thế Ở đây dù mức tăng nhiệt độ toàn cầu có biến đổi theo từng năm nhưng nhìn chung mức tăng nhiệt độ trung bình có xung thế tăng theo thời gian
Hình 3.3 Độ tăng nhiệt độ trung bình hàng năm từ 1856 đến 2005
Là chuỗi biến đổi dạng sóng quanh xu thế [1] Trong thực tế thành phần này rất khó xác định và người ta thường xem nó như là một phần của thành phần xu thế
Là thành phần thể hiện sự biến đổi ngẫu nhiên không thể đoán được của chuỗi thời gian [19] Những sự thay đổi bất thường là kết quả của vô số những sự kiện mà nếu xét riêng lẻ thì không quan trong gì, còn nếu kết hợp các sự kiện riêng lẻ đó lại thì có thể tạo ra một ảnh hưởng lớn Thành phần này xuất hiện có thể do tin đồn, thiên tai, động đất, nội chiến, khủng bố,…
Thành phần mùa thể hiện sự biến đổi lặp đi lặp lại có tính chu kỳ tại những thời điểm cố định theo từng năm trong chuỗi thời gian Các giá trị tại các thời điểm cố định này thường có mối tương quan với nhau, điển hình như một chuỗi thời gian theo quý sẽ có hệ số tự tương quan ở độ trễ là 4 có ý nghĩa khác không Đặc điểm này được minh họa trong Đồ thị 3.4, thể hiện đồ thị của một chuỗi thời gian có tính mùa rõ rệt.
Hình 3.4 Chuỗi thời gian có thành phấn mùa
Việc xác định một chuỗi thời gian có thành phần xu thế hay thành phần mùa hay không rất quan trọng trong bài toán dự báo chuỗi thời gian Nó giúp ta lựa chọn được mô hình dự báo phù hợp hay giúp cải tiến mô hình đã có chính xác hơn.
Mạng nơ-ron nhân tạo
Mạng nơ-ron nhân tạo (artificial neural networks) hay gọi tắt là mạng nơ-ron có thể xem như là mô hình toán học đơn giản của bộ não con người Mạng nơ-ron gồm các tế bào nơ-ron (đơn vị xử lí hay các nút mạng) kết nối với nhau bởi các liên kết Mỗi liên kết kèm theo một trọng số, đặc trưng cho đặc tính kích thích hay ức chế giữa các tế bào thần kinh [20] (Xem hình 3.5)
Hình 3.5 Mô hình của một nơ-ron nhân tạo [20] w 1 w 2 w m x 1 x 2 x m
Mỗi nơ-ron được nối với các nơ-ron khác và nhận các tín hiệu x j từ chúng với các trọng số w j Đặt: , - : vec-tơ tín hiệu vào của nơ-ron
, - : vec-tơ trọng số của nơ-ron
Quá trình xử lý thông tin của nơ-ron có thể chia thành hai phần: xử lý ở tầng nhập (input layer) và xử lý ở tầng xuất (output layer)
Hàm xử lí ở tầng nhập là hàm tổng có dạng như sau:[20]
Trong các biểu thức trên, θ là mức ngưỡng của nơ-ron
Một nơ-ron có m tín hiệu vào với mức ngưỡng là θ có thể biến đổi tương đương thành nơ-ron có m+1 tín hiệu vào với mức ngưỡng θ = 0 như ở hình 3.6 sau:
Hình 3.6 Nơ-ron với mức ngưỡng θ = 0
Khi đó tổng trọng số của các tín hiệu vào của nơ-ron trên là: w 0 =0 w 1 w m x 1 x m-1 x m
Thường hàm tổng ở tầng nhập được sử dụng nhiều nhất là hàm tuyến tính Ngõ ra của mỗi nơ-ron được xác định bởi biểu thức:
Hàm a(f) gọi là hàm kích hoạt (activation function) hay hàm truyền (transfer function) Các dạng hàm kích hoạt thường dùng là [20]:
Hàm tuyến tính bão hoà
Hàm dạng S đơn cực (Sigmoid/logistic)
3.2.2 Cấu trúc mạng nơ-ron
Cấu trúc mạng nơ-ron có ảnh hưởng rất lớn đến hoạt động của nó Mạng nơ-ron được phân loại dựa vào các nội dụng [21]:
Đặc tính tự nhiên của thông tin được tạo ra ở các nút thành phần: o Mạng một tầng (single layer network/perceptron) o Mạng nhiều tầng (multi-layer network)
Hình thái kết nối mạng: o Mạng truyền thẳng (feedforward network) o Mạng lan truyền ngược (backpropagation network)
Giải thuật thích nghi với trọng số liên kết
Mạng feedforward là mạng mà một nút mạng ở tầng đứng trước sẽ kết nối với tất cả các nút mạng ở tầng đứng sau Tín hiệu chỉ được truyền theo một hướng duy nhất, từ tầng nhập qua các tầng ẩn (nếu có) và đến tầng xuất, do đó tín hiệu ra của một nút mạng không thể truyền cho các nút mạng trong cùng tầng hoặc tầng trước.
Hình 3.7 Mạng nơ-ron truyền thằng
Mạng này chỉ gồm một nơ-ron với nhiều ngõ vào và một ngõ ra Mạng này hạn chế khả năng xử lí thông tin Thông tin được xử lý qua một hàm truyền, có thể tuyến tính hoặc phi tuyến (xem hình 3.8)
Khác với mạng truyền thẳng, mạng hồi tiếp có chứa các liên kết ngược từ một nút đến các nút ở tầng trước nó (xem hình 3.9)
Hình 3.9 Mạng nơ-ron hồi tiếp
Khả năng của một mạng nơ-ron được quyết định bởi các nhân tố như: hình dạng mạng (số tầng, số nút trên mỗi tầng, cách mà các tầng được liên kết với nhau) và các trọng số của các liên kết bên trong mạng Trong việc sử dụng, hình dạng của mạng thường là cố định, và các trọng số được quyết định bởi một thuật toán huấn luyện
Huấn luyện thuật toán là quá trình điều chỉnh các trọng số của mạng để mạng có thể "nhận biết" mối quan hệ giữa đầu vào và đầu ra mong muốn Học hay huấn luyện là thuật ngữ chung dùng để chỉ quá trình này.
(training) Trong nghiên cứu về mạng nơ-ron, có rất nhiều thuật toán huấn luyện đã được đề xuất ra giúp tìm tập trọng số tối ưu để giải quyết các bài toán
Huấn luyện mạng nơ-ron là quá trình lặp đi lặp lại nhằm tối ưu hóa các trọng số của mạng và giảm thiểu lỗi Phép tối ưu được thực hiện bằng cách giảm tổng lỗi bình phương giữa giá trị dự đoán và giá trị thực tế của các đầu ra tương ứng với các mẫu đầu vào.
Các giải thuật để huấn luyện mạng nơ-ron được chia thành 2 nhóm[20]:
- Học thông số (Parameter Learning): Để cập nhật các trọng số liên kết giữa các nơ-ron trong mạng
- Học cấu trúc (Structure Learning): để thay đổi cấu trúc mạng, bao gồm số nơ- ron và cách liên kết giữa chúng
Trong đó phổ biến nhất là các phương pháp học thông số, có ba dạng:
- Học có giám sát (Supervised Learning) - Học củng cố (Reinforcement Learning) - Học không giám sát (Unsupervised Learning)
Mạng được huấn luyện bằng cách cung cấp cho nó các cặp mẫu (dữ liệu vào - dữ liệu ra) Các mẫu này có được trong quá trình thu nhập dữ liệu Giả sử có K mẫu dữ liệu huấn luyện mạng:
Ban đầu các trọng số của mạng được khởi động với giá trị nhỏ bất kỳ Lần lượt dữ liệu vào x(k) được đưa vào các ngõ vào của mạng, mạng nơ-ron tính được dữ liệu ở ngõ ra là y(k) Dữ liệu ra y(k) được đem so sánh với dữ liệu ra mong muốn d(k) Sai số e(k)=d(k)-y(k) được sử dụng để cập nhật trọng số của mạng (xem hình 3.10)
Hình 3.10 Mô hình học có giám sát
Học củng cố Đối với phương pháp học có giám sát, chúng ta cần biết dữ liệu ở ngõ ra của mạng tương ứng với mỗi mẫu tín hiệu vào Tuy nhiên trong thực tế không phải lúc nào chúng ta cũng có được thông tin đầy đủ như thế Ví dụ, trong một số trường hợp chúng ta chỉ biết ngõ ra thực của mạng là “đúng” hay “sai” so với ngõ ra mong muốn
Phương pháp học dựa trên thông tin đánh giá như trên gọi là học củng cố
(reinforcement learning) Thông tin đánh giá chỉ cho biết mức độ “đúng” hay “sai” của ma trận trọng số mà không chỉ dẫn được phải thay đổi ma trận trọng số như thế nào để đi đến kết quả đúng (xem hình 3.11)
Hình 3.11 Mô hình học củng cố
Học không có giám sát
Với cách học không có giám sát, không có phản hồi từ môi trường để chỉ ra rằng ngõ ra của mạng là đúng hay sai Mạng sẽ phải tự khám phá các đặc trưng, các điều chỉnh, các mối tương quan, hay các lớp trong dữ liệu vào một cách tự động Khi phát hiện ra các đặc điểm này, mạng nơ-ron thay đổi thông số của nó, quá trình này
Trọng số W của mạng nơ-ron
Bộ tạo tín hiệu sai lệch y
Tín hiệu ra mong muốn e
Trọng số W của mạng nơ-ron
Bộ tạo tín hiệu đánh giá y
Tín hiệu củng cố Tín hiệu đánh giá gọi là tự tổ chức Trong thực tế, đối với phần lớn các biến thể của học không có giám sát, các đích trùng với đầu vào (xem hình 3.12)
Hình 3.12 Mô hình học không có giám sát
3.2.4 Mạng nhiều tầng và giải thuật lan truyền ngƣợc
Dự báo nhiều bước trên dữ liệu chuỗi thời gian
Có nhiều cách tiếp cận khác nhau để thực hiện việc dự báo nhiều bước Dựa trên cấu trúc của các mạng nơ-ron được sử dụng ta có thể phân thành 2 nhóm:
Phương pháp dùng một ngõ ra (Single-Output)
Phương pháp dùng nhiều ngõ ra (Multiple-output)
Còn nếu dựa trên các kỹ thuật vận dụng dữ liệu ta có thể phân thành hai nhóm:
Phương pháp lặp (iterative) [6] hoặc đệ qui (Recursive) [23]
Lỗi huấn luyệnLỗi kiểm chứng
Phương pháp trực tiếp (direct) [6], [23]
Tổng quát các phương pháp này có thể được phân thành 5 chiến lược được dùng để dự báo nhiều bước trên dữ liệu chuỗi thời gian:
Chiến lược lặp (Iterated strategy), còn được gọi là chiến lược đệ qui (recursive strategy) hoặc nhiều giai đoạn (Multi-Stage) Trong đề tài này sử dụng thuật ngữ
Iterated khi đề cập đến chiến lược này trong phần thực nghiệm Với chiến lược này chỉ một mô hình f được huấn luyện từ chuỗi thời gian , - để thực hiện việc dự báo một bước:
( ) với * +, w là giá trị lỗi, d số lượng phần tử của mẫu dữ liệu dùng để huấn luyện
Khi dự báo H bước, trước hết chúng ta sẽ dự báo bước đầu tiên bằng cách áp dụng mô hình này Tiếp theo chúng ta sẽ sử dụng giá trị vừa dự báo như là một phần của các biến ngõ vào để dự đoán cho bước tiếp theo (sử dụng cùng một mô hình dự báo một bước) Chúng ta tiếp tục quá trình này cho đến khi dự báo hết các bước (xem hình 3.16)
Với mô hình dự báo một bước đã được huấn luyện ̂ Các giá trị dự báo được xác định bởi: ̂ { ̂( ) ̂( ̂ ̂ ) * + ̂( ̂ ̂ ) * +Tuỳ theo mức độ nhiễu trong chuỗi thời gian và tầm dự báo, chiến lược này có hiệu suất thấp khi dùng để dự báo nhiều bước do lỗi của bước dự báo trước sẽ được tích luỹ dần cho các dự báo tiếp theo.[4]
Hình 3.16 Mô hình dự báo theo chiến lược lặp
Chiến lược trực tiếp (direct strategy) còn được gọi là chiến lược độc lập (Independent) Trong đề tài này sử dụng thuật ngữ Direct khi đề cập đến chiến lược này trong phần thực nghiệm Ở kiến trúc này H mô hình f h được học (một mô hình cho mỗi bước dự báo) từ chuỗi thời gian , - , ở đây:
( ) với * + và * +, d số lượng phần tử của mẫu dữ liệu dùng để huấn luyện, w là giá trị lỗi
Giá trị dự báo cho bước dự báo h bởi mô hình ̂ như sau (xem hình 3.17): ̂ ̂ ( )
Hình 3.17 Mô hình dự báo theo chiến lược trực tiếp
Chiến lược này không dùng các giá trị xấp xỉ (giá trị dự báo) để tính các giá trị dự báo tiếp theo, điều này cũng giúp loại bỏ việc tích luỹ lỗi Tuy nhiên H mô hình được học độc lập bao hàm việc độc lập có điều kiện của H dự báo Điều này ảnh hướng đến độ chính xác của dự báo bởi vì nó không xem xét mức độ phụ thuộc chặt chẽ giữa các biến dự báo ̂ [2], [24],[10]
Chiến lược DirREC kết hợp kiến trúc và nguyên lý của chiến lược trực tiếp và chiến lược đệ qui Chiến lược này tính toán các giá trị dự báo bằng những mô hình khác nhau cho mỗi bước dự báo (giống như chiến lược trực tiếp) và ở mỗi bước dự báo nó mở rộng tập các giá trị ở ngõ vào bằng cách thêm các biến tương ứng là các giá trị dự báo của bước trước đó (giống như chiến lược đệ qui) Tuy nhiên nó có những điểm khác biệt so với các 2 chiến lược này là kích thước biến ngõ vào (embedding size) d không giống nhau cho các bước dự báo Trong đề tài này sử dụng thuật ngữ DirREC khi đề cập đến chiến lược này trong phần thực nghiệm
Theo đó, chiến lược này học H mô hình f h từ chuỗi thời gian [y 1 ,…,y N ] như sau:
( ) Với * + và * +, d số lượng phần tử của mẫu dữ liệu dùng để huấn luyện, w là giá trị lỗi Để tính các giá trị dự báo, các mô hình đã học được dùng như sau (hình 3.18): ̂ { ̂ ( ) ̂ ( ̂ ̂ ) * +Chiến lược này thực hiện tốt hơn chiến lược trực tiếp và chiến lược đệ qui trong một số tập dữ liệu chuỗi thời gian thực tế Tuy nhiên có ít nghiên cứu đối với chiến lược này vì thế cần phải được đánh giá thêm [4]
Hình 3.18 Mô hình dự báo theo chiến lược DirREC
3.3.1.4 Chiến lƣợc nhiều ngõ vào – nhiều ngõ ra
Chiến lược nhiều ngõ vào – nhiều ngõ ra MIMO (multiple input - multiple output strategy) chỉ học một mô hình nhiều ngõ ra F từ chuỗi thời gian , -, ở đây:
, - ( ) Với * + là hàm vec-tơ giá trị [25] và là vec-tơ lỗi, d số lượng phần tử của mẫu dữ liệu dùng để huấn luyện
Các giá trị dự báo được tính toán trong một bước bởi mô hình nhiều ngõ ra ̂ như sau (hình 3.19):
, ̂ ̂ - ̂( ) Điểm mấu chốt của chiến lược MIMO là để duy trì đặc tính phụ thuộc ngẫu nhiên (stochastic dependency) của chuỗi thời gian Tuy nhiên việc duy trì đặc tính này với chỉ bằng một mô hình cũng có hạn chế là phải ràng buộc tất cả các bước dự báo trong cùng một mô hình giống như nhau Chiến lược này đã được áp dụng thành công trong thực tế với một số dự báo nhiều bước trên chuỗi thời gian [4] ˆ N 1 y ˆ N 2 y
Trong đề tài này sử dụng thuật ngữ MIMO khi đề cập đến chiến lược này trong phần thực nghiệm
Hình 3.19 Mô hình dự báo theo chiến lược MIMO
Chiến lược MISMO (Multi-Input Several Multi-Outputs) ra đời nhằm kết hợp tối ưu các ưu điểm của hai chiến lược DIRECT và MIMO Chiến lược này được giới thiệu lần đầu bởi Ben Taieb et al vào năm 2009.
Với chiến lược này, các dự báo cho H-bước sẽ được chia thành nhiều khối
(block), mỗi khối dự báo theo chiến lược MIMO Như vậy bài toán dự báo H-bước sẽ được phân thành n bài toán dự báo nhiều ngõ ra ( )
Với * + Nếu s=1 chiến lược DirMO sẽ là chiến lược trực tiếp Nếu s=H chiến lược DIRMO sẽ là chiến lược MIMO
Chiến lược này học n mô hình F p từ chuỗi thời gian , - như sau:
[ ( ) ] ( ) Với * + * + và là hàm vec-tơ giá trị nếu s > 1 H giá trị dự báo được tính toán bởi n mô hình như sau (hình 3.20):
Với chiến lược này ta cần thực hiện thêm tiến trình để chọn lựa thông số s cho phù hợp Nếu s nhỏ ta cần phải huấn luyện nhiều mô hình hơn Trong luận văn sử dụng thuật ngữ DirMO khi đề cập đến chiến lược này trong phần thực nghiệm
Hình 3.20 Mô hình dự báo theo chiến lược DirMO
Hình 3.21 thể hiện mối liên hệ giữa các chiến lược dự báo Trong đó chiến lược DirREC là sự kết hợp của chiến lược lặp và trực tiếp, còn chiến lược DirMO là kết hợp giữa chiến lược trực tiếp và MIMO
Hình 3.21 Các chiến lược dự báo khác nhau với quan hệ giữa chúng [4]
3.3.2 Dự báo nhiều bước trên dữ liệu chuỗi thời gian dùng mạng nơ-ron
Việc sử dụng mạng nơ-ron nhân tạo vào việc dự báo dữ liệu chuỗi thời gian dựa chủ yếu vào dữ liệu mà ta thu nhập Mạng nơ-ron nhân tạo truyền thẳng với ít nhất s y ˆ N h y ˆ N ˆ2 f ˆ1 f f ˆ p
DirRec DirMO một tầng ẩn và đủ số nút cho tầng ẩn có thể xấp xỉ bất kỳ hàm khả đánh giá
(measurable function) tuyến tính hay phi tuyến nào [26]
Hình 3.22 Mô hình huấn luyện với chuỗi thời gian
Như đã đề cập ở trên, dữ liệu chuỗi thời gian là dữ liệu được thu nhập, lưu trữ và quan sát theo sự tăng dần của thời gian X 1 , X 2 , …, X n
Mạng nơ-ron học cấu hình mạng từ dữ liệu chuỗi thời gian bằng cách ánh xạ từ một vectơ dữ liệu đầu vào sang dữ liệu đầu ra Một số lượng dữ liệu liên tiếp của dữ liệu chuỗi thời gian (cửa sổ đầu vào X t-s , X t-s+1 , …, X t ) được ánh xạ sang khoảng thích hợp (ví dụ [0,1] hoặc [-1,1]) và được sử dụng như dữ liệu đầu vào của tầng nhập (xem hình 3.22) Giá trị s của “cửa sổ đầu vào” tương ứng với số nút ở tầng nhập Trong giai đoạn truyền thuận, những giá trị đó được truyền qua tầng ẩn rồi đến các nút đầu ra
Khi truyền tới nút đầu ra, giá trị lỗi được tính toán dựa vào sự khác biệt giữa giá trị đầu ra với giá trị của dữ liệu chuỗi thời gian tại thời điểm t+1 Sau đó, giá trị lỗi này được truyền ngược lại tới các kết nối giữa tầng ẩn và tầng xuất, kết nối giữa tầng nhập và tầng ẩn để cập nhập lại trọng số của các kết nối này
Những vấn đề trong việc lập mô hình mạng nơ-ron cho việc dự báo
Thành công trong việc xây dựng một mạng nơ-ron phụ thuộc nhiều vào việc hiểu rõ vấn đề cần giải quyết, biết được những biến nào cần được xem xét là điểm mấu chốt
Trong quá trình xây dựng bài toán dự báo dữ liệu thương mại, các học thuyết kinh tế đóng vai trò quan trọng trong việc lựa chọn những biến số là các chỉ số kinh tế có ảnh hưởng đến bài toán Trước khi tiến hành xây dựng mô hình, cần phải cân nhắc những yếu tố lý thuyết tác động đến bài toán cụ thể để xác định các chỉ số đầu vào phù hợp Quá trình này đòi hỏi sự quan tâm đặc biệt đến dữ liệu thô, nhằm phát triển thành những chỉ số quan trọng tạo nên đầu vào cho mạng lưới dự báo.
Khi lựa chọn các biến, ta có thể chọn biến kĩ thuật hoặc biến cơ bản Biến kĩ thuật bao gồm các giá trị cũ, trong quá khứ của biến đó hoặc các chỉ số được tính toán từ các giá trị cũ đó Biến cơ bản bao gồm dữ liệu của các biến khác mà ảnh hưởng đến biến đang xem xét Mô hình mạng nơ-ron đơn giản nhất sử dụng các dữ liệu của biến kĩ thuật hoặc lấy hiệu (differencing) của nó như dữ liệu đầu vào của mạng Hiệu của một chuỗi thời gian {X t } cũng là một chuỗi thời gian {Y t }, với các giá trị Y t = X t+1 - X t Việc lấy hiệu có thể loại bỏ tính xu hướng hay tính mùa của một chuỗi thời gian và làm cho việc xấp xỉ nó đơn giản hơn Một mô khác cũng được áp dụng phổ biến là sử dụng dữ liệu của các biến cơ bản trong quá khứ để dự đoán
Tần suất của dữ liệu được ghi nhận phụ thuộc vào mục đích của nhà dự báo
Nếu dùng để dự đoán tình hình giao dịch chứng khoán thì dữ liệu được ghi nhận hằng ngày Đối với các vấn đề đầu tư dài hạn thì các dữ liệu hàng tuần, hàng tháng được dùng làm đầu vào cho mạng nơ-ron
3.4.2 Kiến trúc mạng nơ-ron
Khi xây dựng một mạng nơ-ron bao gồm việc xác định sự liên kết giữa các nơ- ron, đồng thời xác định cấu trúc của mạng bao gồm số tầng ẩn, số nơ-ron trong từng tầng Ta có thể thực hiện lựa chọn số nơ-ron trong các tầng ẩn bằng cách bắt đầu bằng một số nào đó dựa trên nguyên tắc hoặc kinh nghiệm Sau khi thực hiện huấn luyện, kiểm tra lỗi tổng quát hóa của từng cấu trúc, có thể tăng hoặc giảm số các nơ-ron
Về tổng quát khi thiết kế một nạng nơ-ron cần phải xác định các nội dung sau đây liên quan đến kiến trúc mạng: a) Số lƣợng tầng ẩn và số nút trong tầng ẩn
Việc thiết kế cấu hình một mạng nơ-ron có ý nghĩa quyết định đối với việc dự báo dữ liệu chuỗi thời gian Nếu xây dựng mạng có quá nhiều tầng ẩn, hoặc số lượng nút ở mỗi tầng quá nhiều sẽ dẫn đến vấn đề quá khớp Tức là khi đó, cấu hình mạng nơ-ron giải thích tập dữ liệu huấn luyện rất tốt, nhưng lại không có khả năng tổng quát hóa, vì thế không thể dùng cấu hình này để dự đoán Tuy nhiên số tầng hoặc số nút trên mỗi tầng quá ít thì mạng nơ-ron không có khả năng giải thích và dự đoán tốt các chuỗi thời gian phức tạp
Thực tế đã chứng minh: một mạng nơ-ron với một tầng xuất, một tầng ẩn, một tầng xuất cùng với sự thay đổi số lượng nút tại mỗi tầng là đủ để xấp xỉ bất kì một hàm liên tục nào [27] Thông thường các mạng nơ-ron được khởi tạo với một hoặc nhiều nhất là hai tầng ẩn Nếu kết quả huấn luyện từ mạng trên mà vẫn không thỏa mãn sau khi đã thử với nhiều giá trị khởi tạo ngẫu nhiên của trọng số thì ta nên xem xét hiệu chỉnh lại số nút trên các lớp ẩn hay kiểm tra dữ liệu đầu vào (ví dụ dữ liệu dùng để huấn luyện mạng có phải đã lỗi thời không?) chứ không nên tăng thêm số tầng ẩn Cả lý thuyết và các kết quả thực nghiệm gần đây đều kết luận rằng các mạng với hơn hai tầng ẩn sẽ không cải thiện được kết quả dự đoán [27]
Số lượng nút ở tầng ẩn cũng là một thông số cần phải lựa chọn cẩn thận và cũng không có một thủ tục hình thức nào giúp ta xác định được một cách tối ưu thông số này Việc lựa chọn sao cho phù hợp phải dựa vào thực nghiệm Thông thường có hai cách chủ yếu để tìm giá trị tối ưu cho số nút ở tầng ẩn Cách thứ nhất ta chuẩn bị một nhóm các mạng nơ-ron chỉ khác nhau số nút ở tầng ẩn (số lượng nút có thể tăng dần theo một, hai hoặc ba), sau đó ta thực hiện huấn luyện và kiểm tra các mạng này trên tập dữ liệu đã chuẩn bị Mạng nơ-ron có sai số nhỏ nhất là là mạng có cấu hình tốt nhất Phương pháp này khá tốn thời gian nhưng khá hiệu quả Cách thứ hai là thay đổi số nút trong lớp ẩn ngay trong quá trình huấn luyện Cách này không cần phải tạo ra nhiều mạng nơ-ron riêng biệt nhưng lại rất phức tạp Rất ít các hệ thống thương mại cho phép việc thay đổi số nút trong quá trình huấn luyện [27]
Có một số nghiên cứu đề xuất cách xác định số nút trong tầng ẩn [28] Theo đó số lượng nút trong tầng ẩn n j có thể xác định trong khoảng ( ) trong đó n i , n k là số lượng nút trong tầng nhập và tầng xuất b) Số nút mạng tầng nhập
Việc xác định số nút trong tầng nhập cũng là một vấn để Có một số đề xuất chọn số nút ở tầng nhập bằng số giá trị trong cửa sổ nhập, việc lựa chọn này dựa trên giả định của nhà dự báo rằng giá trị tại thời điểm hiện tại của chuỗi thời gian sẽ bị chi phối chủ yếu bởi một số giá trị ở những thời điểm trước nó Việc lựa chọn thông số này phụ thuộc vào kinh nghiệm và sự hiểu biết của nhà dự báo vào chuỗi thời gian đang xét c) Số nút mạng tầng xuất
Số lượng nút trong lớp đầu ra phụ thuộc vào chiến lược dự báo Đối với dự báo một bước, số nút lớp đầu ra luôn là 1 Trong khi đó, với dự báo nhiều bước, số nút lớp đầu ra có thể là 1 hoặc nhiều hơn.
Cách liên kết giữa các nút trong mạng chỉ ra hành vi cơ bản của mạng Trong hầu các bài toán dự báo hoặc các ứng dụng khác, mạng thường có sự liên kết hoàn toàn theo đó tất cả các nút trong một tầng sẽ chỉ kết nối hoàn toàn đến các nút trong tầng tiếp theo ngoại trừ tầng xuất Điều này làm cho không có sự kết nối trực tiếp từ các nút tầng nhập đến các nút tầng xuất Việc thêm liên kết trực tiếp giữa tầng nhập và tấng xuất có thể giúp nâng cao hiệu quả của mô hình dự báo.[9]
3.4.3 Huấn luyện mạng nơ-ron
Phương pháp huấn luyện mạng nơ-ron phổ biến nhất là giải thuật lan truyền ngược (backpropagation algorithm) chủ yếu dựa vào phương pháp suy giảm độ dốc nhất (gradient steepest descent method) [9] Một số giải thuật khác hoặc có những điều chỉnh đối với giải thuật lan truyền ngược đã được đề xuất như:
Phương pháp thích nghi (Adaptive method)
Các phương pháp bậc hai (Second-order methods)
Trong đó các phương pháp bậc hai như BFGS, Levenberg-Marquardt là những phương pháp tối ưu phi tuyến hiệu quả hơn và thường được dùng trong phần lớn các phần mềm tối ưu hoá Nó có đặc điểm là hội tụ nhanh, mạnh, và có thể tìm ra tối thiểu cục bộ tốt [9]
PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ
Đặt vấn đề
Dữ liệu chuỗi thời gian là loại dữ liệu đặc biệt, do cấu trúc của nó và đặc trưng khối lượng dữ liệu chuỗi thời gian là rất lớn (ví dụ: trong một phiên giao dịch chứng khoán dữ liệu giao dịch của mỗi cổ phiếu có thể biến đổi rất nhiều và liên tục), chính vì thế mà việc dự đoán được những biến động của chuỗi thời gian trong tương lai luôn là một thách thức rất lớn đối với những người ra quyết định Ngoài ra, do dữ liệu chuỗi thời gian có tính đa chiều, tương quan đặc trưng cao và đặc thù là có nhiễu, nên việc biễu diễn chuỗi thời gian cũng là một thách thức Đặc biệt trong lĩnh vực tài chính, rất nhiều dữ liệu đều tồn tại dưới dạng chuỗi thời gian (dữ liệu tỷ giá ngoại tệ, dữ liệu lãi suất thị trường, dữ liệu giao dịch chứng khoán, …), chính vì thế nhu cầu khai thác và phân tích dữ liệu là rất cấp thiết Trong đó, dự báo được giá của cổ phiếu trong dài hạn như 3 ngày, 5 ngày tiếp theo, tuần tiếp theo,….luôn là mục tiêu của các nhà đầu tư, các nhà quản lí.
Phương pháp giải quyết vấn đề
Để đánh giá hiệu quả của các chiến lược dự báo nhiều bước khác nhau dùng nơ- ron luận văn đã đề ra giải pháp giải quyết vấn đề này theo qui trình được trình bày trong hình 4.1 Qui trình này được áp dụng cho mỗi bước dự báo Để có thể đánh giá ở nhiều bước khác nhau ta sẽ cần thực hiện nhiều lần qui trình này
Theo qui trình này với chuỗi thời gian đưa vào xử lí trước hết sẽ được biến đổi và chia thành 2 tập huấn luyện và kiểm thử Sau đó xây dựng mạng nơ ron cho phù hợp với 5 chiến lược dự báo, trong nghiên cứu này cấu trúc mạng nơ-ron được dùng là mạng truyền thằng 3 tầng với tầng nhập có 10 nút mạng (riêng đối với chiến lược DirREC thì số nút mạng sẽ lớn 10), tầng ẩn có 10 nút mạng, số nút mạng tầng nhập sẽ phụ thuộc vào số bước dự báo và chiến lược dự báo Các mạng nơ-ron trong mỗi chiến lược dự báo được huấn luyện bằng giải thuật lan truyền ngược
Hình 4.1 Phương pháp đánh giá hiệu quả của các chiến lược dự báo bằng mạng nơ-ron
Bắt đầu Nhập vào chuỗi thời gian
Biến đổi chuỗi thời gian
Chia chuỗi thời gian thành tập huấn luyện và tập kiểm thử
Huấn luyện mô hình theo giải thuật lan truyền ngược Đánh giá mô hình
Tổng hợp kết quả đánh giá trên tất cả các hệ số học
So sánh các chiến lược dự báo
Kết thúc Chiến lược lặp
Kết quả tốt nhất Tăng hệ số học thêm 0.05 Đúng
Trước khi huấn luyện cần phải thiết lập thông số huấn luyện mạng phù hợp với giải thuật huấn luyện (các bộ thông số chi tiết được đề cập trong phần thực nghiệm của chương 5) Các mạng nơ-ron sau khi huấn luyện xong sẽ được đánh giá bằng cách sử dụng tập dữ liệu kiểm thử Kết quả huấn luyện và kiểm thử cho mỗi thông số huấn luyện sẽ được lưu trữ lại Tiến trình huấn luyện này sẽ được lặp lại với các thông số huấn luyện khác
Sau khi huấn luyện mô hình với tất cả các bộ siêu tham số, cần đánh giá hiệu quả của các chiến lược đã chọn Đối với mỗi chiến lược, chọn một cấu hình với kết quả kiểm thử tốt nhất dựa trên tiêu chuẩn mean hoặc tiêu chuẩn nhỏ nhất Tiêu chuẩn mean tính trung bình kết quả trên tất cả các bộ siêu tham số huấn luyện, còn tiêu chuẩn nhỏ nhất chọn cấu hình có kết quả kiểm thử nhỏ nhất trong số các bộ huấn luyện.
(được gọi là tiêu chuẩn min)
Với mỗi chiến lược dự báo khi huấn luyện ta sẽ có N bộ thông số khác nhau là p i với i=1…N Với mỗi bộ thông số p i khi huấn luyện ta lỗi huấn luyện E train (i) và lỗi kiểm thử là E test (i) Khi đó kết quả kiểm thử tốt nhất P cho từng chiến lược là:
Với tiêu chuẩn mean: ∑ ( ) Với tiêu chuẩn min: ( ) Kết quả kiểm thử tốt nhất của mỗi chiến lược sẽ được so sánh với nhau Từ đó giúp ta xếp hạng và đánh giá các chiến lược dự báo khác nhau khi dùng mạng nơ-ron
Các lỗi kiểm thử E test (i) được dùng trong thực nghiệm là MSE, MAPE
4.2.1 Tiền xử lí dữ liệu Đầu tiên, tập dữ liệu mẫu được lựa chọn, rút trích giai đoạn dữ liệu muốn phân tích Các tập dữ liệu được dùng bao gồm nhóm các dữ liệu chỉ số thị trường chứng khoán cụ thể là VNINDEX và nhóm các cổ phiếu đang giao dịch trên thị trường chứng khoán Việt Nam, cụ thể là chứng khoán FPT Đối với nhóm dữ liệu cổ phiếu trong luận văn này sẽ dùng giá đóng cửa cuối ngày giao dịch đã được điều chỉnh Ngoài ra để có thể so sánh với một số kỹ thuật dự báo nhiều bước khác trong luận văn này còn sử dụng thêm tập dữ liệu NN3 [31]
Tập dữ liệu chuỗi thời gian sau đó sẽ được biến đổi về miền giá trị phù hợp bằng cách dùng chuẩn hoá min-max:
x i là giá trị ban đầu của phần tử thứ i trong chuỗi thời gian
z i là giá trị sau khi biến đổi của phần tử x i tương ứng
min A , max A tương ứng là giá trị nhỏ nhất và lớn nhất của các phần tử trong chuỗi thời gian ban đầu
Miền giá trị mới [new_min A, new_max A] được giới hạn trong khoảng [0,01; 0,99] nhằm mục đích biến đổi chuỗi thời gian ban đầu.
Chuỗi thời gian đã biến đổi sau đó được chia thành 2 tập dữ liệu trong đó phần 80% đầu tiên được dùng để huấn luyện mạng, phần 20% còn lại được dùng để kiểm thử mô hình
Luận văn hướng đến xem xét hướng tiếp cận được đề xuất sử dụng mạng nơ- ron so với các cách tiếp cận khác cũng như so sánh hiệu quả giữa các chiến lược dự báo dùng mạng nơ-ron
Trước hết so sánh với một số kỹ thuật dự báo khác Theo đó luận văn so sánh kết quả với một số nghiên cứu khác trong đó sử dụng tập dữ liệu NN3[31] Các nghiên cứu được đề cập ở đây là [13], [16] trong đó [16] dùng kỹ thuật học lười (lazy learning) và [13] dùng giải thuật hồi qui vec-tơ hỗ trợ (Support Vector Regression)
Trong đánh giá này dùng các độ đo MAPE, SMAPE để đánh giá trên tập dữ liệu kiểm thử
Thứ hai đánh giá nhằm so sánh kết quả dự báo theo 5 kiến trúc dùng mạng nơ- ron Trong đánh giá này luận văn sử dụng các tập dữ liệu thật của thị trường chứng khoán Việt Nam, đồng thời sử dụng các độ đo MSE, MAPE Trong đánh giá này cũng tiến hành phân tích hiệu quả huấn luyện thông qua lỗi huấn luyện, thời gian huấn luyện, ảnh hưởng của các tham số huấn luyện lên kết quả dự báo
A A x min z new max new min new min max min
Kiến trúc hệ thống dự báo nhiều bước bằng mạng nơ-ron
Hệ thống dự báo nhiều bước bằng mạng nơ-ron được xây dựng gồm có các thành phần chính như trong hình 4.2:
Hình 4.2 Kiến trúc tổng quát của hệ thống Để thực hiện được việc dự báo, đầu tiên sử dụng chức năng Xây dựng cấu hình mạng, chức năng này cho phép ta có thể thiết lập các thông số cho mạng nơ-ron muốn thực thi theo nhiều chiến lược khác nhau Những thông số cần thiết để xây dựng cấu hình mạng gồm: kiểu chiến lược dự báo, số lượng tín hiệu vào cho mạng nơ ron, số lượng nút cho tầng ẩn, số bước dự báo
Chức năng Huấn luyện mạng: Sẽ tiến hành thực thi việc huấn luyện mạng dựa theo cấu hình mạng đã xây dựng
Chức năng Kiểm thử: Cho phép thực thi việc đánh giá mô hình dự báo đã chọn trên tập dữ liệu kiểm thử
Chức năng dự báo: Thực hiện dự báo cho các mô hình mạng đã huấn luyện
Chức năng tạo báo cáo: Cho phép ta tổng hợp các kết quả huấn luyện cũng như kiểm thử, dự báo
4.3.2 Qui trình thực hiện chi tiết của hệ thống
Hình 4.3 trình bày chi tiết các thành phần chính và quy trình xử lý của hệ thống phục vụ mục đích xây dựng mô hình mạng nơ-ron, huấn luyện mạng, kiểm thử và dự báo.
Xây dựng cấu hình mạng
Dự báo Tạo báo cáo
Hình 4.3 Qui trình xử lí của hệ thống
Dữ liệu chuỗi thời gian thường được lưu trữ dưới dạng văn bản chỉ với một cột dữ liệu thời gian Tiền xử lý dữ liệu bao gồm chuyển đổi chuỗi thời gian về miền giá trị phù hợp Sau đó, chuỗi thời gian được chia thành hai tập dữ liệu riêng biệt: tập huấn luyện được sử dụng để đào tạo mô hình và tập đánh giá để đánh giá hiệu suất của mô hình.
Việc xây dựng mạng nơ-ron được thực hiện thông dựa vào thông tin cấu hình đưa vào Từ các thông tin cấu hình này hệ thống sẽ xây dựng một hoặc nhiều mạng nơ-ron với các tham số về mạng phù hợp với từng chiến lược dự báo
Thành phần kiểm thử mô hình sẽ dùng mô hình mạng nơ-ron đã được huấn luyện kể kiểm tra trên tập dữ liệu kiểm thử từ đó cho ra kết quả đánh giá mô hình
Qui trình dự báo thực hiện từ việc đưa chuỗi thời gian cần dự báo vào hệ thống
Hệ thống sẽ tiến hành chuyển dữ liệu về dạng phù hợp với mô hình mạng đã huấn luyện sau đó dùng mô hình mạng đã huấn luyện để tính toán các giá trị tiếp theo của chuỗi thời gian đã chuyển đổi này, các giá trị này sau đó được khôi phục về định dạng ban đầu của chuỗi thời gian rồi đưa ra kết quả dự báo
Tiền xử lí dữ liệu
Tập dữ liệu huấn luyện
Xây dựng mạng nơ-ron theo chiến lược lựa chọn
Huấn luyện mạng Kiểm thử mô hình
Tập dữ liệu kiểm thử
Kết quả đánh giá mô hình Chuỗi thời gian để huấn luyện
Chuỗi thời gian để dự báo
Khôi phục lại dữ liệu
4.3.3 Qui trình huấn luyện và dự báo theo các chiến lƣợc dự báo
Giải thuật huấn luyện một mạng nơ-ron cơ bản được thực hiện theo các giải thuật lan truyền ngược được trình bày trong Chương 3 Phần này chủ yếu gới thiệu việc áp dụng các mạng nơ-ron cơ bản đó sao cho phù hợp với từng chiến lược dự báo
Theo đó tương ứng với mỗi chiến lược dự báo ta sẽ cần đến một hoặc nhiều mạng nơ- ron có cấu hình giống nhau hoặc khác nhau, hơn nữa mỗi mạng nơ-ron cũng sẽ có số lượng nút mạng tầng nhập và tầng xuất khác nhau Thông tin tóm tắt cho các chiến lược dự báo được mô tả trong Bảng 4.1[4] sau đây :
Thông số cơ bản cần thiết để xây dựng và huấn luyện mạng nơ-ron theo từng chiến lược dự báo bao gồm:
Kích thước mẫu dữ liệu vào (InputSize): N
Số lượng nút trong tầng ẩn (HiddenNeuronCount): M
Bảng 4.1 Bảng tóm lược các thông số của mạng nơ-ron theo từng chiến lược dự báo
Số mạng cần tạo ra Số nút tầng nhập Số nút tầng ẩn
Trong đó: T SO , T MO tương ứng là thời gian huấn luyện cho mạng nơ-ron có 1 ngõ ra và nhiều ngõ ra Thông số S được dùng trong chiến lược DirMO cho biết số ngõ ra của mỗi mạng Trong luận văn này chọn thông số S=3, tuy nhiên để có kết quả huấn luyện tốt hơn cần phải thực hiện ước lượng thông số này, một số kỹ thuật ước lượng thông số này được đề xuất trong một số nghiên cứu [16] Đối với chiến lược
DirREC thời gian huấn luyện của mỗi mạng là T SO + μ , thời gian có cộng thêm một giá trị μ bởi vì mỗi mạng có số nút trong tầng nhập khác nhau Đặc tả một số phương thức dùng trong huấn luyện mạng nơ-ron:
GenerateNetwork (d, m, n): Tạo ra một mạng nơ-ron truyền thẳng 3 lớp có d nút ở tầng nhập, m nút ở tầng ẩn và n nút ở tầng xuất
Clone(network): Tạo ra một bản sao của mạng nơ-ron có cấu trúc giống như network
CreateTrainDataSet(D, d, k, n): Tạo ra một tập huấn luyện cho dự báo thứ k từ chuỗi thời gian D, trong đó mỗi mẫu huấn luyện gồm có d dữ liệu đầu vào, n dữ liệu đầu ra
Train(Net[k], TrainSet[k]): Huấn luyện mạng nơ-ron Net[k] với tập dữ liệu huấn luyện là TrainSet[k]
CalculateError(Error, OutputSize): Tính lỗi trung bình có xét đến số lượng output ở đầu ra của mỗi mạng Trong đó Error là danh sách chứa giá trị lỗi kiểm tra cho mạng nơ-ron, OutputSize là danh sách số lượng dữ liệu đầu ra của mỗi mạng nơ-ron
CalculateOutputSize(H, S): Tạo danh sách chứa[ ]phần tử, với mỗi phần tử là số nút trong tầng xuất thực tế của mỗi mạng nơ-ron theo chiến lược DirMO
Trong đó H là số bước dự báo, S là số nút tối đa trong mỗi mạng nơ-ron
4.3.3.1 Giải thuật huấn luyện và dự báo mạng nơ-ron theo chiến lƣợc trực tiếp Để dự báo theo chiến lược trực tiếp, trong quá trình huấn luyện các mạng nơ- ron thì với H bước cần dự báo ta phải tạo ra H mạng nơ-ron có kiến trúc giống nhau sau đó lần lượt huấn luyện H mạng nơ-ron này Trong đó mỗi mạng nơ-ron sẽ có một tập dữ liệu huấn luyện khác nhau Giải thuật chi tiết được trình bày ở hình 4.4
Hình 4.4 Giải thuật huấn luyện mạng nơ-ron theo chiến lược trực tiếp
Trong chiến lược trực tiếp với H mô hình mạng nơ-ron đã huấn luyện thì mỗi mô hình sẽ cho ra kết quả dự báo của một bước Giải thuật chi tiết cho chiến lược dự báo này được trình bày ở hình 4.5
Chuỗi thời gian D gồm có N phần tử
Số lượng tín hiệu vào: d
Tầm dự báo: H Đầu ra:
Danh sách các mạng nơ-ron đã được huấn luyện: Net
Lỗi huấn luyện: TrainError Bắt đầu
Net = danh sách chứa H mạng nơ-ron TrainSet = danh sách chứa H tập dữ liệu huấn luyện Error = danh sách chứa H lỗi huấn luyện cho H mạng nơ-ron Network = GenerateNetwork (D, d, m, 1)
Net[h] = Clone(Network) TrainSet[h] = CreateTrainDataSet(D, d, h, 1) Error[h] = Train(Net[h], TrainSet[h]) End
Hình 4.5 Giải thuật dự báo theo chiến lược trực tiếp
4.3.3.2 Giải thuật huấn luyện và dự báo mạng nơ-ron theo chiến lƣợc
DirMO Để dự báo theo chiến lược DirMO, trước hết cần xác định số lượng mạng nơ- ron sẽ tạo ra dựa ngoài thông số S là số lượng nút mạng tối đa trong tầng xuất của mỗi mạng Như vậy ta cần phải tạo ra [ ] mạng nơ-ron và mỗi mạng nơ-ron sẽ có một tập dữ liệu huấn luyện khác nhau Giải thuật chi tiết được trình bày ở hình 4.6 Đầu vào:
Mẫu dữ liệu dùng để dự báo gồm có d phần tử: Input
Danh sách các mạng nơ-ron đã được huấn luyện: Net Đầu ra:
Danh sách các giá trị dự báo: Predict Bắt đầu
Predict = danh sách chứa H giá trị dự báo For (h in {0…H-1}) Do
Predict[h] = ComputeOutput(Net[h], Input) End
Hình 4.6 Giải thuật huấn luyện mạng nơ-ron theo chiến lược DirMO
Kết luận
Trong chương này luận văn đã đưa ra được phương pháp để đánh giá các chiến lược dự báo nhiều bước bằng mạng nơ-ron, mô hình kiến trúc của hệ thống, trình bày các giải thuật để xây dựng và huấn luyện mạng nơ-ron theo các chiến lược dự báo khác nhau, trình bày các giải thuật để dự báo nhiều bước theo các chiến lược Đầu vào:
Mẫu dữ liệu dùng để dự báo gồm có d phần tử: Input
Danh sách các mạng nơ-ron đã được huấn luyện: Net Đầu ra:
Danh sách các giá trị dự báo: Predict Bắt đầu
Predict = danh sách chứa H giá trị dự báo Predict = ComputeOutput(Net[0], Input) Kết thúc
HIỆN THỰC VÀ THỰC NGHIỆM
Mô tả công cụ để tiến hành thực nghiệm
Để hoàn thành luận văn thực nghiệm, hệ thống đã được xây dựng bằng ngôn ngữ lập trình C# trong môi trường Visual Studio 2013 Hệ thống được thiết kế theo kiến trúc đề xuất ở chương 4, gồm các thành phần chính như hình 4.2.
Hình 5.1 mô tả chức năng giúp ta thiết lập một cấu hình để làm thực nghiệm
Mỗi cấu hình sẽ bao gồm các thông tin về chiến lược dùng để dự báo, số bước dự báo, tham số huấn luyện mạng,…thông tin cấu hình này được lưu trữ lại dưới định dạnh XML có cấu trúc như trong Hình 5.2
Hình 5.3 mô tả chức năng xây dựng và huấn luyện các mạng nơ ron Theo đó với các thông tin cấu hình đã thiết lập, chức năng này giúp ta huấn luyện mạng sau đó lưu trữ thông tin về mô hình mạng đã huấn luyện, kết quả huấn luyện
Thực nghiệm được tiến hành trên máy tính có cấu hình: DELL Vostro 1500, Intel Core2 Duo CPU T9300 @ 2.50GHz, 4.00 GB RAM, NVIDIA GeForce 8600M GT, HDD 320 GB Hệ điều hành MS Window 7 Utimate 64-bit
Hình 5.1 Công cụ để xây dựng cấu hình làm thực nghiệm
Hình 5.2 Nội dung một file cấu hình mẫu để làm thực nghiệm
Hình 5.3 Cửa sổ giúp thực thi các cấu hình
NetWorker_VNINDEX_10-10-08_0.26_DirMO
D:\Temp\Data\Output\VNINDEX_10-10-08
Thực nghiệm trên tập dữ liệu NN3
Cuộc thi NN3, tổ chức năm 2007, nhằm tìm kiếm những phương pháp tiếp cận về dự báo Dữ liệu cuộc thi bao gồm 111 chuỗi thời gian theo tháng được xây dựng và tổng hợp từ các chuỗi thời gian trong kinh doanh thực tế Các chuỗi thời gian này có cấu trúc khác biệt đáng kể.
Một số chuỗi thời gian có tính mùa rất rõ nét, một số chuỗi thời gian khác có cả tính mùa và xu hướng Các chuỗi thời cũng có độ dài khác nhau từ 50 đến 126 điểm dữ liệu Với mỗi chuỗi thời gian yêu cầu thực hiện dự báo cho 18 tháng tiếp theo Dữ liệu của 18 tháng tiếp theo của mỗi chuỗi thời gian sẽ được dùng như tập dữ liệu kiểm thử để đánh giá hiệu quả của các mô hình dự báo Hình 5.4 và 5.5 thể hiện 2 chuỗi thời gian mẫu thứ 11 và 55 trong số 111 chuỗi thời gian có trong tập dữ liệu NN3
Hình 5.4 Chuỗi thời gian thứ 55 trong tập dữ liệu NN3
Hình 5.5 Chuỗi thời gian thứ 11 trong tập dữ liệu NN3
Trong thực nghiệm này, cấu hình mạng nơ-ron được chọn là mạng truyền thẳng 3 lớp, hàm kích hoạt cho tầng nhập và tầng ẩn là hàm Sigmoid, hàm kích hoạt cho tầng xuất là hàm tuyến tính Kiến trúc mạng để tiến hành thực nghiệm có cấu hình như sau:
Số nút tầng xuất: Tuỳ thuộc vào chiến lược dự báo
Thực nghệm áp dụng 5 chiến lược dự báo: Direct, DirMO, DirREC, Iterated,
MIMO Đối với chiến lược DirMO thông số ngõ ra được chọn là 3 Các chuỗi thời gian được chuẩn hoá bằng cách chuyển đổi giá trị về khoảng [0.01,0.99]
Quá trình huấn luyện mạng được thực hiện với số lần lặp (Epoch) tối đa là 2000 và quá trình huấn luyện dừng khi lỗi huấn luyện E £ 1.0E-5
Tiêu chuẩn đánh giá cho dự báo được đo lường sau khi đã khôi phục các giá trị dự báo qua các bước chuẩn hoá dữ liệu trước đó Bảng 5.1 sau cho thấy kết quả kiểm tra mô hình sau khi huấn luyện Trong đó MAPE*, SMAPE*, MSE* là các giá trị trung bình cho 111 chuỗi thời gian:
Trong đó: MAPE(i), SMAPE(i), MSE(i) là các giá trị đánh giá trên tập dữ liệu kiểm thử cho chuỗi thời gian thứ i trong tập dữ liệu NN3
Bảng 5.1 Kết quả dự báo cho tập dữ liệu NN3 bằng mạng nơ-ron
Tiêu chuẩn Direct DirMO DirREC Iterated MIMO
Từ kết quả của bảng 5.1 cho thấy rằng nếu xét theo tiêu chuẩn MAPE thì chiến lược DirMO cho kết quả dự báo tốt nhất tiếp đến DirREC, Direct, MIMO, Iterated
Nếu xét theo tiêu chuẩn SMAPE thì chiến lược DirMO cũng cho kết quả tốt nhất tiếp theo là Direct, MIMO, Iterated, DirREC Tương tự với tiêu chuẩn MSE các chiến lược hiệu quả theo trình tự là Iterated, MIMO, DirMO, Direct, DirREC
5.2.3 So sánh kết quả với một số cách tiếp cận khác
Kết quả dự báo trên đây được đem so sánh với 2 cách tiếp cận khác
Trong nghiên cứu được trình bày trong [13], tác giả đã sử dụng kỹ thuật SVR để dự báo cho tập dữ liệu NN3 Nghiên cứu chỉ thực hiện ba chiến lược chính là trực tiếp (Direct), lặp (Iterated) và nhiều ngõ ra (MIMO) Hiệu suất dự báo được đánh giá dựa trên các tiêu chuẩn MAPE* và SMAPE*.
Cách tiếp cận thứ hai được trình bày trong [16], nghiên cứu này dùng kỹ thuật học lười (LL) để dự báo cho tập dữ liệu NN3 bằng 3 chiến lược Ditect, DirMO, Iterated và MIMO, kết quả dự báo được đo lường bằng tiếu chuẩn SMAPE
Kết quả thực nghiệm dùng kỹ thuật SVR và LL từ nghiên cứu [13] và [16] đã sử dụng nhiều phương pháp tiền xử lí dữ liệu như phân loại 111 chuỗi thời gian thành các nhóm theo độ dài của chuỗi thời gian, và mỗi nhóm được áp dụng các phương pháp tiền xử lí dữ liệu khác nhau trong đó có khử tính mùa nhằm giúp nâng cao độ chính xác kết quả dự báo Còn với kỹ thuật ANN được đề xuất trong luận này các chuỗi dữ liệu chưa áp dụng các kỹ thuật khử tính mùa
Bảng 5.2 So sánh kết quả dự báo bằng ANN, SVR, LL
ANN SVR LL ANN SVR LL
Từ bảng 5.2 trên đây có thể nhận xét rằng nếu xét theo tiêu chuẩn SMAPE thì dự báo bằng ANN cho kết quả tốt hơn 2 cách tiếp cận SVR và LL Trong bảng này ký hiệu N/A cho những trường hợp không có kết quả làm thực nghiệm tương ứng và ở từng chiến lược dự báo, kỹ thuật cho kết quả dự báo tốt nhất đã được tô đậm ở ô tương ứng.
Thực nghiệm trên tập dữ liệu thị trường chứng khoán Việt Nam
Luận văn sử dụng 2 tập dữ liệu trên thị trường chứng khoán Việt Nam được lấy từ trang web của Công ty cổ phần Chứng khoán Bảo Việt 1
Tập dữ liệu VNINDEX là bộ chỉ số thị trường chứng khoán của sở giao dịch chứng khoán thành phố Hồ Chí Minh Tập dữ liệu này lấy giá trị từ ngày 30/12/2009 đến ngày 31/12/2013, bao gồm 1000 mẫu dữ liệu (Xem hình 5.7)
1 Công ty cổ phần chứng khoán Bảo Việt: http://www.bvsc.com.vn/DownloadMSData.aspx
Tập dữ liệu FPT là giá đóng cửa đã điều chỉnh của công ty cổ phần FPT từ ngày 28/05/2012 đến ngày 04/12/2013 bao gồm 385 mẫu dữ liệu (Xem hình 5.6)
Các tập dữ liệu được chia thành 2 phần trong đó 80% dùng để huấn luyện mạng, 20% dùng để kiểm thử Kết quả kiểm thử sẽ được dùng để so sánh giữa các chiến lược dự báo khác nhau
Hình 5.6 Chuỗi thời gian cổ phiếu FPT
Hình 5.7 Chuỗi thời gian chỉ số VNINDEX
Cấu hình mạng nơ-ron được chọn là mạng truyền thẳng 3 lớp, hàm kích hoạt cho tầng nhập và tầng ẩn là hàm Sigmoid, hàm kích hoạt cho tầng xuất là hàm tuyến tính Tham số để huấn luyện mạng như sau:
Số nút tầng nhập: 10 tương đương với 2 tuần giao dịch
Số nút tầng xuất: Tuỳ thuộc vào chiến lược dự báo
Mạng nơ ron được huấn luyện dùng giải thuật lan truyền ngược và RPROP Sử dụng 5 chiến lược dự báo: Direct, DirMO, DirREC, Iterated, MIMO Đối với chiến lược DirMO thông số ngõ ra được chọn là 3 Như vậy với mỗi tập dự báo chúng ta có 55 cấu hình khác nhau để huấn luyện Quá trình huấn luyện mạng được thực hiện với số lần lặp (Epoch) tối đa là 2000 và điều kiện dừng sử dụng lỗi huấn luyện E £ 1.0-E5
5.3.2 Kết quả thực nghiệm 5.3.2.1 Tập dữ liệu FPT
Bảng 5.3 trình bày kết quả huấn luyện với tập dữ liệu FPT được thực hiện theo 5 chiến lược cho 8 mức dự báo là 2, 3, 4, 6, 8, 10, 12 và 14 Đối với mỗi giải thuật bảng thể hiện giá trị lỗi quá trình huấn luyện với tiêu chuẩn đánh giá MSE Ở mỗi bước như báo, dùng tiêu chuẩn MSE mean để xác định cấu hình huấn luyện tốt nhất
Trong bảng này có đưa thêm thông tin về giá trị trung bình lỗi đối với từng chiến lược
Kết quả thực nghiệm cho thấy huấn luyện mạng theo chiến lược lặp có lỗi huấn luyện tốt nhất bởi vì lỗi này chính là lỗi huấn luyện của của mô hình mạng với một ngõ ra Ở các bước dự báo 2 và 3 thì chiến lược DirMO không tiến hành làm thực nghiệm vì trong tình huống này thì chiến lược DirMO (với tham số s=3) hoàn toàn tương đồng với chiến lược MIMO vì thế trong các kết quả đối với chiến lược được ký hiệu N/A trong các bảng số liệu
Bảng 5.3 Lỗi huấn luyện cho tập dữ liệu FPT theo tiêu chuẩn MSE mean
Bước dự báo Direct DirMO DirREC Iterated MIMO
Bảng 5.4 trình bày thời gian huấn luyện (tính bằng giây) với tập dữ liệu FPT được thực hiện với 5 chiến lược cho 8 mức dự báo là 2, 3, 4, 6, 8, 10, 12 và 14 Trong bảng này giá trị thời gian là trung bình trên tất cả các tham số huấn luyện Tương tự như lỗi huấn luyện, chiến lược lặp có thời gian ngắn huấn luyện nhanh nhất bởi vì nó chính là thời gian để huấn luyện một mô hình mạng với một ngõ ra Trong khi đó chiến lược DirREC có thời gian huấn lớn nhất bởi vì cần huấn luyện nhiều mô hình hơn, đồng thời số biến ngõ vào cũng lớn hơn
Bảng 5.4 Thời gian huấn luyện mạng nơ-ron cho tập dữ liệu FPT
Bước dự báo Direct DirMO DirREC Iterated MIMO
Biểu đồ 5.8 minh họa thời gian huấn luyện cho từng chiến lược Khi số lượng bước dự đoán tăng, thời gian huấn luyện của DirREC và Direct gia tăng đáng kể Trong khi đó, thời gian huấn luyện của DirMO, Iterated và MIMO tăng chậm hơn.
Hình 5.8 Thời gian huấn mạng nơ-ron cho tập dữ liệu FPT
T h ời gian h u ấn lu yệ n (giây)
Direct DirMO DirREC Iterated MIMO
Bảng 5.5 và 5.6 trình bày kết quả kiểm thử đối với các mô hình đã được huấn luyện trên đây (Bảng 5.5 đánh giá theo tiêu chuẩn MSE mean và MAPE mean , Bảng 5.6 đánh giá theo tiêu chuẩn MSE min và MAPE min ) Các giá trị lỗi thể hiện trong 2 bảng này là trị số trung bình của mỗi chiến lược ở mỗi bước báo trên tất cả các tham số huấn luyện
Bảng 5.5 Lỗi kiểm thử cho tập dữ liệu FPT theo tiêu chuẩn MSE mean và MAPE mean
Tiêu chuẩn Bước dự báo Direct DirMO DirREC Iterated MIMO
Bảng 5.6 Lỗi kiểm thử cho tập dữ liệu FPT theo tiêu chuẩn MSE min và MAPE min
Giải thuật Bước dự báo Direct DirMO DirREC Iterated MIMO
Bảng 5.7 thể hiện kết quả xếp hạng chiến lược dự báo ở từng bước theo tiêu chuẩn MSE và MAPE Trong đó, DirMO với S = 3 cùng chiến lược MIMO Chiến lược DirREC có kết quả tốt nhất, tiếp đến là Direct Ở bước dự báo 2 và 3, Iterated đạt kết quả tốt hơn MIMO nhưng kém hơn khi bước dự báo lớn hơn.
Trong các bảng xếp hạng ở các bước dự báo 2 và 3 chiến lược DirMO tương đồng với chiến lược MIMO nên thứ hạng DirMO được xếp tiếp theo MIMO
Bảng 5.7 Bảng xếp hạng hiệu quả dự báo của các chiến lược cho tập dữ liệu FPT theo tiêu chuẩn MSE mean và MAPE mean
Tiêu chuẩn Bước dự báo Xếp hạng mô hình
2 DirREC Direct Iterated MIMO DirMO
3 DirREC Direct Iterated MIMO DirMO
4 DirREC Direct DirMO MIMO Iterated
6 DirREC Direct DirMO MIMO Iterated
8 DirREC Direct DirMO MIMO Iterated
10 DirREC Direct DirMO MIMO Iterated
12 DirREC Direct DirMO MIMO Iterated
14 DirREC Direct MIMO DirMO Iterated
2 DirREC Direct Iterated MIMO DirMO
3 DirREC Direct Iterated MIMO DirMO
4 DirREC Direct DirMO MIMO Iterated
6 DirREC Direct DirMO MIMO Iterated
8 DirREC Direct DirMO MIMO Iterated
10 DirREC Direct DirMO MIMO Iterated
12 DirREC Direct DirMO MIMO Iterated
14 DirREC Direct MIMO DirMO Iterated
Bảng 5.8 cung cấp kết quả xếp hạng cho các chiến lược tương ứng ở từng bước dự báo dựa trên hai tiêu chuẩn là giá trị lỗi bình phương nhỏ nhất (MSE min) và giá trị lỗi phần trăm tuyệt đối trung bình nhỏ nhất (MAPE min).
Hình 5.9 cho thấy lỗi dự báo MAPE ở các bước dự báo khác nhau đối với từng chiến lược Trong hình này mỗi đường thể hiện cho một chiến lược dự báo Kết quả từ đồ thị cho thấy 4 chiến lược Direct, DirREC, DirMO và Iterated khi số bước dự báo tăng lên thì lỗi dự báo sẽ tăng lên, riêng với chiến lược MIMO lỗi dự báo có chiều hướng giảm từ bước dự báo 10 Kết quả cũng cho thấy chiến lược lặp có lỗi dự báo tăng rất nhanh khi số bước dự báo tăng lên, còn chiến lược DirREC co lỗi dự báo tăng ít hơn nhiều so với các chiến lược còn lại
Bảng 5.8 Bảng xếp hạng hiệu quả dự báo của các chiến lược cho tập dữ liệu FPT theo tiêu chuẩn MSE min và MAPE min
Tiêu chuẩn Bước dự báo Xếp hạng mô hình
2 DirREC MIMO DirMO Direct Iterated
3 MIMO DirMO DirREC Direct Iterated
4 DirREC MIMO Direct DirMO Iterated
6 DirREC Direct DirMO MIMO Iterated
8 DirREC Direct DirMO MIMO Iterated
10 DirREC Direct DirMO MIMO Iterated
12 DirREC Direct DirMO MIMO Iterated
14 DirREC DirMO Direct MIMO Iterated
2 DirREC MIMO DirMO Direct Iterated
3 MIMO DirMO DirREC Direct Iterated
4 DirREC MIMO Direct DirMO Iterated
6 DirREC Direct DirMO MIMO Iterated
8 DirREC Direct DirMO MIMO Iterated
10 DirREC Direct DirMO MIMO Iterated
12 DirREC DirMO Direct MIMO Iterated
14 DirREC DirMO Direct MIMO Iterated
Hình 5.9 Thay đổi của lỗi dự báo MAPE min theo các bước dự báo cho tập dữ liệu FPT
Tương tự như kết quả thực nghiệm đối với tập dữ liệu FPT, trong phần này trình bày kết quả thực nghiệm đối với tập dữ liệu VNINDEX
Bảng 5.9 trình bày kết quả lỗi huấn luyện theo 5 chiến lược ở các bước dự báo khác nhau Kết quả cho thấy ở tất cả các bước dự báo, chiến lược Iterated có lỗi huấn luyện tốt nhất Trong bảng này ở bước dự báo 2 và 3 chiến lược DirMO không cần làm làm thực nghiệm nên được ký hiệu N/A
Bảng 5.9 Lỗi huấn luyện cho tập dữ liệu VNINDEX theo tiêu chuẩn MSE mean
Bước dự báo Direct DirMO DirREC Iterated MIMO
Direct DirMO DirREC Iterated MIMO
Bảng 5.10 trình bày thời gian huấn luyện (tính bằng giây) được thực hiện với 5 chiến lược cho 8 mức dự báo là 2, 3, 4, 6, 8, 10, 12 và 14 Trong bảng này giá trị thời gian là trung bình trên tất cả các tham số huấn luyện
Tương tự trên hình 5.10 là biểu đồ thể hiện thời gian huấn luyện cho từng chiến lược Kết quả cho thấy khi số bước cần dự báo tăng thì thời gian huấn luyện cũng tăng theo, trong đó chiến lược DirREC có thời gian huấn luyện tăng rất mạnh còn chiến lược Iterated và MIMO thì tăng không đáng kể
Bảng 5.10 Trung bình thời gian huấn luyện cho tập dữ liệu VNINDEX (đơn vị giây)
Bước dự báo Direct DirMO DirREC Iterated MIMO
Hình 5.10 Thời gian huấn luyện mô hình cho tập dữ liệu VNINDEX
Kết luận
Từ kết quả thực nghiệm với tập dữ liệu NN3, xét theo tiêu chuẩn đánh giá SMAPE thì dự báo bằng mạng nơ-ron bằng chiến lược DirMO cho kết quả dự báo tốt nhất (18.964), tiếp đến là chiến lược Direct, MIMO, Iterated và DirREC Bảng 5.18 cho thấy hiệu quả của các dự báo bằng ANN, SVR và LL theo từng chiến lược dự báo
Bảng 5.15 So sánh hiệu quả dự báo của ANN so với SVR, LL theo tiêu chuẩn SMAPE
Còn theo kết quả thực nghiệm trên các tập dữ liệu FPT và VNINDEX cho thấy khi dự báo bằng mạng nơ-ron thì chiến lược DirREC cho kết quả dự báo tốt nhất, tiếp theo là các chiến lược Direct, DirMO, còn hai chiến lược Iterated và MIMO cho kết quả dự báo kém chính xác hơn Đổi lại các chiến lược Iterated và MIMO có thời gian huấn luyện mạng thấp hơn các chiến lược còn lại và khi số bước dự báo tăng lên thì thời gian huấn luyện bằng chiến lược Iterated và MIMO tăng chậm hơn các chiến lược Direct, DirREC Đối với tất cả các chiến lược dự báo độ chính xác của dự báo giảm dần khi số bước dự báo tăng lên, trong đó chiến lược DirREC có mức độ biến động thấp hơn các chiến lược còn lại.