Bài viết này sử dụng kỹ thuật có tên‚ long short-term memory (bộ nhớ dài ngắn hạn), là một kỹ thuật dùng để tìm hiểu khả năng dự đoán các bước chuyển biến của thị trường giao dịch tài chính. Mời các bạn cùng tham khảo!
ỨNG DỤNG LONG SHORT-TERM MEMORY TRONG DỰ ĐỐN TÀI CHÍNH rương Tấn Phát, Phạm Nguyễn Hồng Vĩnh Phúc Khoa Cơng nghệ Thông tin, Trường Đại học Công nghệ TP Hồ Chí Minh GVHD: CN Bùi Mạnh Tồn, ThS rươ Thị Minh Châu TĨM TẮT Các nhà đầu tư chứng khốn ln tìm cách dự đốn chuyển biến giá trị hàng hoá mà họ tham gia theo dõi, giao dịch Trong q trình dự đốn, thuật tốn dự đốn máy tính ứng dụng bên cạnh việc phán đoán dựa kỹ thuật kinh nghiệm cá nhân Máy học kỹ thuật tiềm nghiên cứu ứng dụng toán tương tự Trong viết sử dụng kỹ thuật có tên ‚long short-term memory‛ (bộ nhớ dàingắn hạn), kỹ thuật dùng để tìm hiểu khả dự đốn bước chuyển biến thị trường giao dịch tài Từ khố: Finance, long short-term memory, lstm, marchine learning, python, time series forecasting GI I THIỆU 1.1 Long short-term memory 1.1.1 Lý thuyết [4] Mạng nhớ dài-ngắn (long short term-memory networks), thường gọi LSTM - dạng đặc biệt Recurrent neural network, có khả học phụ thuộc xa LSTM giới thiệu Hochreiter & Schmidhuber (1997), sau cải tiến phổ biến nhiều người ngành Chúng hoạt động hiệu nhiều toán khác nên dần trở nên phổ biến LSTM thiết kế để tránh vấn đề phụ thuộc xa (long-term dependency) Việc nhớ thông tin suốt thời gian dài đặc tính mặc định chúng, ta không cần phải huấn luyện để nhớ Tức nội ghi nhớ mà không cần can thiệp Mọi mạng hồi quy có dạng chuỗi mơ-đun lặp lặp lại mạng nơ-ron Với mạng RNN chuẩn, mơ-dun có cấu trúc đơn giản, thường tầng LSTM có kiến trúc dạng chuỗi vậy, mơ-đun có cấu trúc khác với mạng RNN chuẩn Thay có tầng mạng nơ-ron, chúng có tới tầng tương tác với cách đặc biệt 97 1.1.2 Ý ưởng cốt lõi LSTM Chìa khóa LSTM trạng thái tế bào (cell state) Trạng thái tế bào dạng giống băng truyền Nó chạy xuyên suốt tất mắt xích (các nút mạng) tương tác tuyến tính đơi chút Vì mà thơng tin dễ dàng truyền thơng suốt mà khơng sợ bị thay đổi LSTM có khả bỏ thêm vào thông tin cần thiết cho trạng thái tế bào, chúng điều chỉnh cẩn thận nhóm gọi cổng (gate) Các cổng nơi sàng lọc thông tin qua nó, chúng kết hợp tầng mạng sigmoid phép nhân Tầng sigmoid cho đầu số khoản [0, 1][0,1], mô tả có thơng tin thơng qua Khi đầu 00 có nghĩa khơng cho thơng tin qua cả, cịn 11 có nghĩa cho tất thơng tin qua Một LSTM gồm có cổng để trì điều hành trạng thái tế bào 1.2 Hoạt động 1.2.1 Bước Bước LSTM định xem thông tin cần bỏ từ trạng thái tế bào Quyết định đưa tầng sigmoid - gọi ‚tầng cổng quên‛ (forget gate layer) Nó lấy đầu vào ht−1 xt ds đưa kết số khoảng [0,1][0,1] cho số trạng thái tế bào C_{t-1}Ct−1 Đầu 11 thể giữ tồn thơng tin lại, cịn 00 tồn thơng tin bị bỏ ft =s w f ht-1 ,x t +bf (1) 1.2.2 Bước Bước định xem thông tin ta lưu vào trạng thái tế bào Việc gồm phần Đầu tiên sử dụng tầng sigmoid gọi ‚tầng cổng vào‛ (input gate layer) để định giá trị ta cập nhật Tiếp theo tầng tạo véc-tơ cho giá trị ̃ nhằm thêm vào cho trạng thái Trong bước tiếp theo, ta kết hợp giá trị lại để tạo cập nhật cho trạng thái it = s wi ht-1 ,x t +bi (2) C t =tanh w C ht-1 ,x t +bC (3) 1.2.3 Bước Giá trị đầu dựa vào trạng thái tế bào, tiếp tục sàng lọc Đầu tiên, ta chạy tầng sigmoid để định phần trạng thái tế bào ta muốn xuất Sau đó, ta đưa trạng thái tế bảo qua hàm để có giá trị khoảng [-1, 1][−1,1], nhân với đầu cổng sigmoid để giá trị đầu ta mong muốn Ot = s wo ht-1 ,x t +bo ht = Ot * tanh Ot 98 (4) (5) 1.3 Dữ liệu thử nghiệm Dữ liệu thử nghiệm dùng trích từ nguồn liệu giao dịch Yahoo Finance Dữ liệu tập hợp chuỗi giá trị cột giá đóng (Close) cơng ty, tăng dần theo cột ngày tháng (Date) để dùng việc train test thuật toán Dữ liệu đầu vào lưu dạng file CSV, cơng ty có tập liệu riêng Dữ liệu ngày công ty cập nhật tên Yahoo Finance, kết thúc đồng loạt vào ngày 24/03/2020 Dữ liệu dùng để training testing thuật toán chia theo tỷ lệ 80%-20% tập đầu vào Dữ liệu: https://bit.ly/30n9WKL Bảng Giá trị đầu vào Stt Công ty Mã thị rường Ngày bắ đầu Apple AAPL 12/12/1980 Alphabet GOOGL 19/08/2004 Carriage Services CSV 09/08/1996 IBM IMB 02/01/1962 Electronic Art EA 20/09/1989 Activision blizzard ATVI 25/10/1993 Ngày kết thúc 24/03/2020 Dữ liệu đầu vào Dạng file lưu trữ Close price File CSV (.csv) Date 1.4 Môi rường thử nghiệm Môi trường thực hiện: Google Colab Ngôn ngữ thực hiện: Python Bảng Giá trị cài đặt thử nghiệm Chỉ số Giá trị Ý nghĩ số Batch_size train 10 Số lượng mẫu liệu train batch Batch size test 10 Số lượng mẫu liệu test batch Epochs Tất liệu vào mạng neural network lần Lookback Dữ liệu khứ d ng để đối chiếu với dự đoán Optimizer adam Phương pháp giảm tốc độ ngẫu nhiên Loss mean_squared_error Khoanh vùng liệu lỗi ượng liệu training 80% % lượng liệu/tổng liệu có ượng liệu testing 20% % lượng liệu/tổng liệu có Số ngày dự đoán 30 Dự đoán ngày tệp liệu 10 Thời gian dự đoán 24/03/2020 ~ 24/04/2020 Thời gian dự đoán 30 ngày Stt 99 1.5 Kết dự đ n Đường đỏ: Dữ liệu thật Đường xanh: Dự báo Hình Kết dự đốn cơng ty Apple Hình Kết dự đốn cơng ty Alphabet Hình Kết dự đốn cơng ty Carriage Services 100 Hình Kết dự đốn cơng ty IBM Hình Kết dự đốn cơng ty Electronic Art Hình Kết dự đốn cơng ty Activision Blizzard 101 Các kết dự đốn có hướng phát triển trùng với hướng phát triển liệu thật, số liệu dự đốn đa phần khơng khớp KẾT LUẬN Mơ hình long short-term memory cho khả dự đốn thời gian ngắn có tính xác mức tin tưởng Trong trường hợp dự đoán liệu lâu dài thơng tin dự đốn mang tính chất tương đối Mơ hình thực nhiều lần thử kết thay đổi lần Mơ hình hứa hẹn trở thành tham chiếu để tham khảo q trình dự đốn giá trị tương lai thị trường giao dịch Dựa vào mơ hình dự đốn, ta nắm xu thị trường lên xuống, khơng thể nắm tình hình thay đổi xu hướng thị trường Mơ hình cần thực thêm nhiều lần với cải tiến khác để đưa dự đốn xác TÀI LIỆU THAM KHẢO [1] Keras: The Sequential model API (truy cập lần cuối: 20/04/2020), https://keras.io/guides/sequential_model/ [2] Keras: Getting started with the Keras Sequential model (truy cập lần cuối: 20/04/2020) https://faroit.com/keras-docs/1.0.1/getting-started/sequential-model-guide/ [3] George V Jose (2019) Predicting Sequential Data using LSTM: An Introduction https://towardsdatascience.com/time-series-forecasting-with-recurrent-neural-networks74674e289816 [4] Do Minh Hai, Hai's Blog (2017) [RNN] LSTM gì? (truy cập lần cuối: 20/04/2020) https://dominhhai.github.io/vi/2017/10/what-is-lstm/ [5] Nttuan8 (2019) Long short-term memory (LSTM) (truy cập lần cuối: 20/04/2020) https://nttuan8.com/bai-14-long-short-term-memory-lstm/ [6] phamduytung (2018) Phân biệt Epoch – Batch (truy cập lần cuối: 20/04/2020) https://www.phamduytung.com/blog/2018-10-02-understanding-epoch-batchsizeiterations/ [7] plotly: Scatter Plots in Python (truy cập lần cuối: 20/04/2020), https://plotly.com/python/lineand-scatter/ [8] randerson112358 (2019) Stock Price Prediction Using Python & Machine Learning (truy cập lần cuối: 20/04/2020), https://medium.com/@randerson112358/stock-price-prediction-usingpython-machine-learning-e82a039ac2bb 102 Viện KỸ THUẬT ... Số ngày dự đoán 30 Dự đoán ngày tệp liệu 10 Thời gian dự đoán 24/03/2020 ~ 24/04/2020 Thời gian dự đoán 30 ngày Stt 99 1.5 Kết dự đ n Đường đỏ: Dữ liệu thật Đường xanh: Dự báo Hình Kết dự đốn... Activision Blizzard 101 Các kết dự đốn có hướng phát triển trùng với hướng phát triển liệu thật, số liệu dự đốn đa phần khơng khớp KẾT LUẬN Mơ hình long short-term memory cho khả dự đốn thời gian ngắn... tưởng Trong trường hợp dự đoán liệu lâu dài thơng tin dự đốn mang tính chất tương đối Mơ hình thực nhiều lần thử kết thay đổi lần Mơ hình hứa hẹn trở thành tham chiếu để tham khảo trình dự đoán