Mục tiêu của đề tài là nghiên cứu về ý tưởng, kỹ thuật cốt lõi của các thuật toán hồi quy đã được học và áp dụng chúng để giải quyết một vấn đề thực tiễn trong đời sống. qua đó chúng em đánh giá kết quả thực nghiệm, phân tích thách thức và đề xuất hướng giải quyết trong tương lai.
Giới thiệu đề tài
Giới thiệu bài toán
Với tập dữ liệu có các thuộc tính như sau
Bài toán đặt ra là sử dụng dữ liệu lịch sử về giá cổ phiếu để phát triển một mô hình dự đoán giá tương lai cho thị trường chứng khoán, tập trung vào bốn loại cổ phiếu: Apple, Tesla, và Microsoft.
Facebook) và tất nhiên là không thể thiếu phần đánh giá về độ chính xác của mô hình
Mô hình hồi quy
• Các phương pháp học giám sát:
– Học bởi các ví dụ (quan sát) - “Learn by example”
– Xây dựng mô hình f’ sử dụng tập các quan sát đã được gắn nhãn
(X (1) , Y (1) ), …, (X (n) , Y (n) ) – Y có kiểu dữ liệu liên tục
– Lấy hàm ước lượng “tốt nhất” trong tập các hàm
• Ví dụ: Hồi quy tuyến tính
– Chọn 1 ước lượng tốt nhất từ dữ liệu học trong tập các hàm tuyến tính f(X) = β0 + β 1X1 + … + β dXd
Hàm tổn thất
Sai số bình phương (Squared error) ∑ (θi − θi’) 𝑖 2
Sai số tuyệt đối (Absolute error) ∑ | 𝑖 θi − θi’|
Bài toán Hồi quy
Đo hiệu năng bài toán hồi quy
Hàm tổn thất (Loss function): loại hàm dùng để đo lường sai số của mô hình
• Vd: Sai số bình phương trung bình (Mean squared error - MSE)
– Độ đo thông dụng dùng để tính độ chính xác bài toán hồi quy
𝑛 ∑ 𝑛 𝑖=1 (𝑦̂ (𝑖) − 𝑦 (𝑖) ) 2 – Tập trung đo các sai số lớn hơn là các sai số nhỏ
Nội dung
Hồi quy tuyến tính
Tại sao dùng hồi quy tuyến tính?
– Mối quan hệ tuyến tính: là sự biến đổi tuân theo quy luật hàm bậc nhất
– Tìm một mô hình (phương trình) để mô tả một mối liên quan giữa X và Y
– Ta có thể biến đổi các biến đầu vào để tạo ra mối quan hệ tuyến tính
– Diễn giải các mối quan hệ giữa biến đầu vào và đầu ra - sử dụng cho bài toán suy diễn
Hồi quy tuyến tính đơn giản
• Biến đầu ra Y và biến đầu vào X có mối quan hệ tuyến tính giữa X và Y như sau:
• Các tham số của mô hình: β0 intercept: hệ số chặn (khi các xi = 0) β1 slope: độ dốc y-axis
Cho hai điểm (x 1 , y 1 ) và (x 2 , y 2 ) x-axis
Làm sao để "phát triển" một phương trình nối 2 điểm này?
0 • Tìm gradient (slope): độ dốc
• Tìm hệ số chặn (intercept) (hệ số khởi đầu của y khi x=0) y = f(x) = β 1 X + β 0
Hình 2.1 Mô phỏng hồi quy tuyến tính đơn giản
• β 0 và β 1 chưa biết Ta ước tính giá trị của chúng từ dữ liệu đầu vào
• Lấy 𝛽̂0, 𝛽̂1 sao cho mô hình đạt “xấp xỉ tốt nhất” (“good fit”) đối với tập huấn luyện
• Mối liên quan giữa X và Y là tuyến tính (linear) về tham số
• X không có sai số ngẫu nhiên
• Giá trị của Y độc lập với nhau (vd, Y 1 không liên quan với Y 2)
• Sai số ngẫu nhiên (ε): phân bố chuẩn, trung bình 0, phương sai bất biến ε ~ N(0, s2) Đường thẳng phù hợp nhất
Để xử lý tập dữ liệu đầu vào, chúng ta cần xác định cách tính toán các tham số của phương trình đường thẳng Đường thẳng phù hợp nhất sẽ là đường có khả năng giảm thiểu độ dao động của các lỗi trong dữ liệu.
Hình 2.2 Đường thẳng phù hợp nhất
• Thông thường, để đánh giá độ phù hợp của mô hình từ dữ liệu quan sát ta sử dụng phương pháp bình phương nhỏ nhất (least squares)
• Lỗi bình phương trung bình (Mean squared error): Đường thẳng phù hợp nhất
Rất hiếm khi một đường thẳng hoàn toàn khớp với dữ liệu, vì vậy luôn có sự tồn tại của lỗi liên quan đến đường thẳng Đường thẳng phù hợp nhất là đường giúp giảm thiểu độ dao động của các lỗi này.
Biểu thức (yi - yˆ ) được gọi là lỗi hoặc phần dư ei = (yi- 𝑦̂) Đường thẳng phù hợp nhất tìm thấy khi tổng bình phương lỗi là nhỏ nhất
SSE = ∑ 𝑛 𝑖=1 (𝑦𝑖 − 𝑦̂) 2 Ước lượng tham số
• Các ước số 𝛽̂0, 𝛽̂1 tính được bằng cách cực tiểu hóa MSE
• Hệ số chặn của đường thẳng 𝛽̂1 = SSxy
SSx Trong đó: SSxy = ∑ 𝑛 𝑖=1 (𝑥𝑖 − 𝑥̅)(𝑦𝑖 − 𝑦̅) và SSx = ∑ 𝑛 𝑖=1 (𝑥𝑖 − 𝑥̅) 2
• Hệ số chặn của đường thẳng 𝛽̂0 = 𝑦̅ - 𝛽̂1𝑥̅
Support Vector Machine – Regression (SVR)
Support Vector Machine (SVM) không chỉ là một phương pháp phân loại mà còn có thể được áp dụng trong hồi quy, vẫn giữ nguyên các đặc điểm nổi bật của thuật toán.
Regression (SVR) sử dụng các nguyên tắc tương tự như SVM để phân loại, chỉ có một số khác biệt nhỏ
Đầu ra của mô hình hồi quy thường là số thực, khiến việc dự đoán thông tin trở nên khó khăn Trong trường hợp sử dụng SVM, biên độ dung sai (epsilon) được điều chỉnh gần đúng theo yêu cầu của bài toán Tuy nhiên, điều này còn bị ảnh hưởng bởi tính phức tạp của thuật toán, đòi hỏi phải xem xét kỹ lưỡng hơn.
Ý tưởng chính là giảm thiểu lỗi bằng cách cá nhân hóa siêu mặt phẳng (hyperlane) để tối đa hóa độ chính xác, đồng thời chấp nhận rằng một phần lỗi là không thể tránh khỏi.
Các hàm nhân biến đổi dữ liệu thành không gian đặc trưng có chiều cao hơn để có thể thực hiện phân tách tuyến tính
- Một vài loại kernel-SVR thường được sử dụng:
+ Radial Basis Function kernel-SVR
Kernel tuyến tính là kernel mặc định của SVR, thích hợp cho dữ liệu có phân phối tuyến tính Đối với dữ liệu phi tuyến, hai loại kernel phổ biến được sử dụng là Polynomial kernel-SVR và Radial Basis Function Kernel-SVR.
Long Short-Term Memory (LSTM)
Giới thiệu về Recurrent Neural Network
Trước khi đi vào chi tiết về mạng LSTM, chúng ta sẽ điểm qua mạng nơ-ron hồi quy (RNN), một loại mạng nơ-ron nhân tạo được thiết kế để xử lý dữ liệu dạng chuỗi tuần tự Trong RNN, trạng thái ẩn tại mỗi bước thời gian được tính toán dựa trên dữ liệu đầu vào tại thời điểm đó và thông tin từ bước thời gian trước, cho phép mạng ghi nhớ thông tin đã tính toán ở các bước trước đó.
Hình 2.6 Kiến trúc của một mạng RNN cơ bản khi được duỗi ra
Trong Hình 2.1, xét tại mỗi bước thời gian t theo chiều từ dưới lên trên, x (t) là giá trị đầu vào h (t) là trạng thái ẩn o (t) là giá trị đầu ra
U, W, V là các ma trận trọng số của mạng RNN
Hàm L là hàm tính toán mất mát giữa giá trị đầu ra o(t) từ mạng RNN và giá trị đầu ra chuẩn y(t) từ tập dữ liệu Để hiểu rõ hơn, các vector x(1), x(2), , x(τ) đại diện cho các phần tử trong chuỗi dữ liệu đầu vào Tại mỗi bước thời gian t, mạng RNN lần lượt nhận từng vector x(t) và thực hiện các tính toán để ánh xạ thành chuỗi đầu ra, được mô tả bởi các phương trình liên quan.
• x (t) : Giá trị đầu vào tại bước thời gian t
• h (t) : Trạng thái ẩn bước tại thời gian t
• (t) : Giá trị đầu ra tại bước thời gian t
• y (t) : Vector xác xuất đã chuẩn hóa qua hàm softmax tại bước thời gian t
Các ma trận U, V, W trong mạng RNN lần lượt đại diện cho các kết nối từ đầu vào đến trạng thái ẩn, từ trạng thái ẩn đến đầu ra, và từ trạng thái ẩn đến trạng thái ẩn.
Hình 2.7 Kiến trúc chi tiết của một mạng RNN tại mỗi bước thời gian
Các vấn đề về gradient trong quá trình huấn luyện
Gradient biến mất và gradient bùng nổ là hai vấn đề phổ biến khi tối ưu hóa trọng số bằng các phương pháp dựa trên gradient trong huấn luyện mạng nơ-ron Những vấn đề này thường xảy ra do lựa chọn hàm kích hoạt không phù hợp hoặc số lượng lớp ẩn quá lớn Đặc biệt, chúng thường xuất hiện trong quá trình huấn luyện các mạng nơ-ron hồi quy.
Trong thuật toán BPTT, khi quay lùi về các bước thời gian trước, giá trị gradient giảm dần, làm chậm tốc độ hội tụ của trọng số Đôi khi, gradient có giá trị lớn dẫn đến hiện tượng phân kỳ, gọi là gradient bùng nổ Vấn đề gradient biến mất thường được chú ý hơn vì khó nhận biết, trong khi gradient bùng nổ dễ quan sát hơn Nhiều nghiên cứu đã đề xuất giải pháp cho các vấn đề này, như lựa chọn hàm kích hoạt hợp lý, thiết lập kích thước mạng phù hợp và khởi tạo trọng số ban đầu đúng cách Một giải pháp cụ thể là thuật toán Truncated BPTT, một biến thể cải tiến của BPTT, được áp dụng trong huấn luyện mạng nơ-ron hồi quy cho chuỗi dài.
Ngoài ra, cơ chế của mạng LSTM được đề xuất đã khắc phục được các vấn đề này sẽ được giới thiệu trong phần tiếp theo
Cơ chế hoạt động của mạng LSTM
LSTM, hay Mạng Nhớ Dài Ngắn, là một phiên bản mở rộng của mạng RNN, được phát triển bởi Sepp Hochreiter và Jurgen Schmidhuber vào năm 1997 Mạng LSTM được thiết kế đặc biệt để khắc phục vấn đề phụ thuộc xa trong mạng RNN, một vấn đề thường gặp do hiện tượng gradient biến mất.
Mạng RNN cơ bản không thể ghi nhớ thông tin từ các bước có khoảng cách xa, dẫn đến việc các phần tử đầu tiên trong chuỗi đầu vào không ảnh hưởng nhiều đến kết quả dự đoán cho chuỗi đầu ra ở các bước tiếp theo.
Hình 2.8 Sơ đồ biểu diễn kiến trúc bên trong của một tế bào LSTM
Mạng LSTM bao gồm nhiều tế bào LSTM liên kết với nhau, với kiến trúc của mỗi tế bào được thể hiện trong Hình 2.6 Ý tưởng chính của LSTM là bổ sung trạng thái bên trong tế bào (s t) cùng với ba cổng điều khiển thông tin đầu vào và đầu ra, bao gồm cổng quên (forget gate) ƒ t, cổng đầu vào (input gate) i t và cổng đầu ra (output gate) o t.
Tại mỗi bước thời gian t, các cổng nhận giá trị đầu vào x t và giá trị h t-1 từ memory cell ở bước t - 1 Các cổng có chức năng sàng lọc thông tin với mục đích khác nhau.
• Forget gate: Có nhiệm vụ loại bỏ những thông tin không cần thiết nhận được khỏi cell internal state
• Input gate: Có nhiệm vụ chọn lọc những thông tin cần thiết nào được thêm vào cell internal state
• Output gate: Có nhiệm vụ xác định những thông tin nào từ cell internal state được sử dụng như đầu ra
Trước khi trình bày các phương trình mô tả cơ chế hoạt động bên trong của tế bào LSTM, chúng ta cần thống nhất một số quy ước về các ký hiệu sẽ được sử dụng trong bài viết này.
• x t là vector đầu vào tại mỗi bước thời gian t
• W f,x , W f.h , W𝒔̃, 𝒙, W𝒔̃, 𝒉, W i,x , W i,h , W o,x , W o,h là các ma trận trọng số trong mỗi tế bào LSTM
• ƒ t, i t , o t lần lượt chứa các giá trị kích hoạt lần lượt cho các cổng forget gate, input gate và output gate tương ứng
• s t , 𝒔̃ lần lượt là các vector đại diện cho cell internal state và candidate value
• h t là giá trị đầu ra của tế bào LSTM
Trong quá trình lan truyền xuôi (forward pass) của tế bào LSTM, trạng thái nội bộ s t và giá trị đầu ra h t được tính toán Ở bước đầu tiên, tế bào LSTM xác định thông tin nào cần loại bỏ từ trạng thái nội bộ trước đó S t-1 Giá trị kích hoạt ƒ t của cổng quên (forget gate) tại thời điểm t được tính dựa trên giá trị đầu vào hiện tại x t, giá trị đầu ra h t-1 từ bước trước đó và độ lệch b f của cổng quên Hàm sigmoid chuyển đổi tất cả giá trị kích hoạt về miền từ 0 (hoàn toàn quên) đến 1 (hoàn toàn nhớ).
Ở bước thứ hai, tế bào LSTM xác định thông tin nào cần được bổ sung vào trạng thái nội bộ cell s t Quá trình này bao gồm hai bước tính toán cho 𝒔̃ và ƒ t.
Candidate value 𝐬̃ t biểu diễn những thông tin tiềm năng cần được thêm vào cell internal state được tính như sau:
Giá trị kích hoạt \( i_t \) của cổng đầu vào được tính như sau: Ở bước thứ ba, giá trị của trạng thái nội bộ của ô \( s_t \) được xác định dựa trên kết quả từ các bước trước thông qua phép nhân Hadamard theo từng phần tử, ký hiệu bằng \( o \) Cuối cùng, giá trị đầu ra \( h_t \) của tế bào LSTM được tính toán dựa trên hai phương trình sau.
Phân tích tập dữ liệu
Tập dữ liệu gồm 8 cột tương đương 8 thuộc tính:
Tập dữ liệu gồm gần 20.000 dòng, mỗi dòng là một bản ghi về giá của 1 trong 4 loại cổ phiếu:
- Dòng (2 – 8365): là bản ghi về giá của Apple
- Dòng (8366 – 10223): là bản ghi về giá của Tesla
- Dòng (10224 – 18206): là bản ghi về giá của Microsoft
- Dòng (18207 – 19578): là bản ghi về giá của Facebook b Phân tích ý nghĩa các thuộc tính của tập dữ liệu
- High: mức giá cao nhất trong phiên giao dịch
- Low: mức giá thấp nhất trong phiên giao dịch
- Volume: khối lượng giao dịch trong phiên
Các thuộc tính của tập dữ liệu cần thiết cho bài toán: Date (biến độc lập), Close Price (biến phụ thuộc), Stock c Trực quan hóa dữ liệu
Hình 3.1 Giá cổ phiếu Apple theo thời gian
Hình 3.2 Giá cổ phiếu Tesla theo thời gian
Hình 3.3 Giá cổ phiếu Microsoft theo thời gian
Hình 3.4 Giá cổ phiếu Facebook theo thời gian
▪ Trục hoành là ngày tháng (Date) đã được chuẩn hóa
▪ Trục tung là giá đóng cửa (Close Price) của cổ phiếu
Hình dạng của các biểu đồ thường thể hiện những biến động khó đoán, không theo quy luật tuyến tính, tương tự như các biểu đồ trên các sàn giao dịch chứng khoán mà chúng ta thường gặp.
Các bước tiến hành
Trong bài toán này, nhóm đã nghiên cứu kỹ lưỡng và lựa chọn ba thuật toán phù hợp nhất với yêu cầu của đề bài.
- Linear Regression (LNR): Thuật toán cơ bản, mục đích thực hiện chỉ mang tính tham khảo.
- Support Vector Regression (SVR): Tương đối phù hợp, mục đích thực hiện chỉ mang tính tham khảo.
- Long Short Term Memory (LSTM): Thuật toán được chọn để giải quyết bài toán.
B2 Xử lý tập dữ liệu
Tập dữ liệu bao gồm lịch sử các bản ghi của bốn loại cổ phiếu, do đó sẽ xuất hiện những điểm dữ liệu có cùng giá trị ngày tháng nhưng khác loại cổ phiếu và giá đóng cửa.
Để tối ưu hóa dự đoán giá cổ phiếu, cần chia tập dữ liệu thành bốn tập con tương ứng với bốn loại cổ phiếu khác nhau Mỗi loại cổ phiếu sẽ yêu cầu xây dựng bốn mô hình riêng biệt, vì giá và biến động của chúng chịu ảnh hưởng khác nhau từ các sự kiện kinh tế, xã hội và chính trị Do đó, việc sử dụng một mô hình duy nhất để dự đoán cho cả bốn loại cổ phiếu là không khả thi.
▪ Với LNR và SVR, biến độc lập của model là ngày tháng (Date), biến phụ thuộc là giá đóng cửa (Close)
Với mô hình LSTM, trong 101 ngày liên tiếp, giá đóng cửa của 100 ngày đầu tiên được xem là biến độc lập, trong khi giá đóng cửa của ngày thứ 101 là biến phụ thuộc, với 100 ngày được chọn làm timestep.
▪ Phân chia tập dữ liệu train – test theo tỉ lệ 0.8:0.2 cho mỗi tập dữ liệu con
Kết quả thực nghiệm
Trực quan hóa dữ liệu
Hình 3.5 Trực quan hóa dữ liệu giá cổ phiếu Apple và kết quả dự đoán với LNR
Hình 3.6 Trực quan hóa dữ liệu giá cổ phiếu Tesla và kết quả dự đoán với LNR.
Hình 3.7 Trực quan hóa dữ liệu giá cổ phiếu Microsoft và kết quả dự đoán với LNR
Hình 3.8 Trực quan hóa dữ liệu giá cổ phiếu Facebook và kết quả dự đoán với LNR
- Đường màu xanh dương là giá dự đoán của dữ liệu từ tập Train
- Đường màu xanh lá cây là giá dự đoán của dữ liệu từ tập Test
- Các chấm màu đỏ là các điểm dữ liệu thực tế Đánh giá độ chính xác thuật toán
Sử dụng hàm đánh giá R Squared để đánh giá độ chính xác
- Độ chính xác khi chạy trên tập Train
- Độ chính xác khi chạy trên tập Test
(Độ chính xác dưới 0.5 được gọi là thấp)
Trực quan hóa dữ liệu
Hình 3.9 Trực quan hóa dữ liệu giá cổ phiếu Apple và kết quả dự đoán với SVR
Hình 3.10 Trực quan hóa dữ liệu giá cổ phiếu Tesla và kết quả dự đoán với SVR
Hình 3.11 Trực quan hóa dữ liệu giá cổ phiếu Microsoft và kết quả dự đoán với SVR
Hình 3.12 Trực quan hóa dữ liệu giá cổ phiếu Facebook và kết quả dự đoán với SVR
- Đường màu xanh dương là giá dự đoán của dữ liệu từ tập Train
- Đường màu xanh lá cây là giá dự đoán của dữ liệu từ tập Test
- Các chấm màu đỏ là các điểm dữ liệu thực tế Đánh giá độ chính xác thuật toán
Sử dụng hàm đánh giá R Squared để đánh giá độ chính xác
- Độ chính xác khi chạy trên tập Train
- Độ chính xác khi chạy trên tập Test
(Độ chính xác dưới 0.5 được gọi là thấp)
Trực quan hóa dữ liệu
Hình 3.13 Trực quan hóa dữ liệu giá cổ phiếu Apple và kết quả dự đoán với LSTM.
Hình 3.14 Trực quan hóa dữ liệu giá cổ phiếu Tesla và kết quả dự đoán với LSTM
Hình 3.15 Trực quan hóa dữ liệu giá cổ phiếu Microsoft và kết quả dự đoán với LSTM
Hình 3.16 Trực quan hóa dữ liệu giá cổ phiếu Facebook và kết quả dự đoán với LSTM
- Đường màu xanh dương là giá dự đoán của dữ liệu từ tập Train
- Đường màu xanh lá cây là giá dự đoán của dữ liệu từ tập Test
- Các chấm màu đỏ là các điểm dữ liệu thực tế Đánh giá độ chính xác thuật toán Đánh giá độ chính xác với hàm đánh giá R Squared
- Độ chính xác khi chạy trên tập Test
(Độ chính xác dưới 0.5 được gọi là thấp) Đánh giá độ chính xác với hàm lỗi Root Mean Squared Error (RMSE)
- Sai lệch trung bình khi chạy trên tập Test