Kết quả dự kiến đạt được PHẦN NỘI DUNG CHƯƠNG 1: TỔNG QUAN VỀ DỮ LIỆU CHUỖI THỜI GIAN 1.1 Dữ liệu chuỗi thời gian 1.2 Phân tích dữ liệu chuỗi thời gian CHƯƠNG 2: CÁC PHƯƠNG PHÁP LÀM MỊ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP CÔNG NGHỆ THÔNG TIN
TIME-SERIES ANALYSIS WITH SMOOTHED CONVOLUTIONAL NEURAL NETWORK
GVHD: TS NGUYỄN THÀNH SƠN SVTH : ĐOÀN TRẦN ĐĂNG KHOA
LÊ THỊ KIM NGÂN
S K L0 1 0 8 8 5
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN KỸ THUẬT DỮ LIỆU
Đề Tài:
KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CNTT
GIÁO VIÊN HƯỚNG DẪN
ĐOÀN TRẦN ĐĂNG KHOA – 19133028
LÊ THỊ KIM NGÂN – 19133038
Trang 3PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Chuyên ngành: Kỹ thuật dữ liệu
Tên đề tài: Time-series analysis with smoothed convolutional neural network
Họ và tên giáo viên hướng dẫn: TS Nguyễn Thành Sơn
NHẬN XÉT
1 Về nội dung đề tài và khối lượng thực hiện:
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)
Trang 4PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Chuyên ngành: Kỹ thuật dữ liệu
Tên đề tài: Time-series analysis with smoothed convolutional neural network
Họ và tên giáo viên phản biện: ThS Lê Thị Minh Châu
Giáo viên phản biện
(Ký & ghi rõ họ tên)
Trang 5LỜI CẢM ƠN
Chúng em xin bày tỏ lòng biết ơn đến quý Thầy Cô đã luôn theo dõi, hướng dẫn và
hỗ trợ trong suốt thời gian thực hiện đề tài
Đầu tiên, có được môi trường học tập chất lượng và hiệu quả để chúng em có môi trường tốt nhất trong thời gian thực hiện nghiên cứu đề tài, chúng em xin gửi lời cám ơn đến Ban giám hiệu trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Ngoài ra, chúng em xin gửi lời cảm ơn đến Ban chủ nhiệm khoa Công nghệ Thông tin và các Thầy Cô khoa Công nghệ Thông tin đã tận tâm chỉ dạy chúng em trong suốt những năm tháng đại học vừa qua, để chúng em có cơ sở cũng như những kiến thức cần thiết để thực hiện tốt đề tài trong suốt quá trình học tập và làm việc tại trường
Cuối cùng, chúng em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Thành Sơn - Giáo viên hướng dẫn Khóa luận tốt nghiệp – Khoa Công nghệ Thông tin – Chuyên ngành
Kỹ thuật dữ liệu – Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, đã quan tâm, hướng dẫn, góp ý và tận tình chỉ dạy chúng em trong suốt thời gian thực hiện nghiên cứu
Đề tài của chúng em khó lòng tránh khỏi những hạn chế và sai sót nhất định, kính mong Thầy cô bỏ qua và chúng em mong nhận được những đóng góp và chỉ bảo thêm từ Thầy Cô để chúng em rút kinh nghiệm sau này
Chúng em xin chân thành cảm ơn!
Trang 6Trường ĐH Sư Phạm Kỹ Thuật TP.HCM
Khoa : Công nghệ thông tin
ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP
Họ và tên SV thực hiện 1: Đoàn Trần Đăng Khoa MSSV: 19133028
Họ và tên SV thực hiện 2: Lê Thị Kim Ngân MSSV: 19133038
Thời gian làm tiểu luận: Từ ngày 01/02/2023 Đến: 13/05/2023
Chuyên ngành: Kỹ Thuật Dữ Liệu
Tên luận văn: Time-series analysis with smoothed Convolutional Neural Network Giáo viên hướng dẫn: TS Nguyễn Thành Sơn
Nhiệm vụ của luận văn:
1 Lý thuyết:
- Nghiên cứu phương pháp làm mịn hàm mũ bằng phương pháp tối ưu alpha
- Nghiên cứu kết hợp làm mịn chuỗi thời gian trong mô hình CNN và dùng dãy
số lucas cho bài toán dự báo chuỗi thời gian
- Sử dụng các thư viện cho mô hình CNN:
- Keras : Thư viện Keras cung cấp các lớp (layers) và mô hình (models) cho Convolutional Neural Networks Cụ thể là:
o keras.models cung cấp Sequential
o keras.layers cung cấp Dense, RepeatVector, Flatten
o keras.layers.convolutional cung cấp Conv1D và MaxPooling1D
o keras.optimizers cung cấp Adam
- Sklearn: cung cấp các hàm tính toán để kiểm tra độ chính xác của model như MSE, RMSE
Trang 7Đề cương viết luận văn:
PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài:
2 Mục tiêu của đề tài
3 Phương pháp nghiên cứu
4 Đối tượng và phạm vi nghiên cứu
5 Kết quả dự kiến đạt được
PHẦN NỘI DUNG
CHƯƠNG 1: TỔNG QUAN VỀ DỮ LIỆU CHUỖI THỜI GIAN
1.1 Dữ liệu chuỗi thời gian
1.2 Phân tích dữ liệu chuỗi thời gian
CHƯƠNG 2: CÁC PHƯƠNG PHÁP LÀM MỊN TRONG DỮ LIỆU CHUỖI THỜI GIAN
2.1 Phương pháp làm mịn hàm mũ (ES)
2.2 Phương pháp làm mịn trung bình trượt (MA)
2.3 Phương pháp làm mịn trung bình trượt lũy thừa (Double Exponential Smoothing) 2.4 Phương pháp làm mịn Triple Exponential Smoothing
CHƯƠNG 3: CÁC MÔ HÌNH HỌC SÂU
CHƯƠNG 4: CÀI ĐẶT MÔ HÌNH
4.1 Cài đặt Jupyter và các thư viện
4.2 Cài đặt làm mịn hàm mũ
4.3 Cài đặt mô hình CNN
Trang 84.4 Cài đặt mô hình CNN với lớp Lucas hidden layer
4.5 Cài đặt mô hình CNN kết hợp làm mịn và Lucas hidden layer
CHƯƠNG 5: ĐÁNH GIÁ THỰC NGHIỆM
5.1 Môi trường thực nghiệm
5.2 Các tập dữ liệu dùng trong thực nghiệm
PHỤ LỤC HƯỚNG DẪN THỰC THI CHƯƠNG TRÌNH
TÀI LIỆU THAM KHẢO
Trang 9Nghiên cứu tìm hiểu về các phương pháp làm mịn
dữ liệu chuỗi thời gian, tìm hiểu dãy số lucas
Người viết đề cương
Đoàn Trần Đăng Khoa
Lê Thị Kim Ngân
Trang 10MỤC LỤC
PHẦN MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Mục tiêu của đề tài 1
3 Phương pháp nghiên cứu 1
4 Đối tượng và phạm vi nghiên cứu 1
5 Kết quả dự kiến đạt được 2
CHƯƠNG 1 :TỔNG QUAN VỀ DỮ LIỆU CHUỖI THỜI GIAN 3
1.1 DỮ LIỆU CHUỖI THỜI GIAN 3
1.1.1 Khái niệm chuỗi thời gian 3
1.1.2 Chuỗi dừng 3
1.1.3 Lịch sử phát triển của chuỗi thời gian 5
1.1.4 Đặc điểm 6
1.1.5 Chuẩn hóa chuỗi thời gian 8
1.1.6 Phân rã chuỗi thời gian 9
1.1.7 Ứng dụng của chuỗi thời gian 10
1.2 PHÂN TÍCH DỮ LIỆU CHUỖI THỜI GIAN 10
1.2.1 Dự báo dữ liệu chuỗi thời gian 10
1.2.2 Tầm quan trọng của dự báo dữ liệu chuỗi thời gian 11
CHƯƠNG 2 : CÁC PHƯƠNG PHÁP LÀM MỊN TRONG DỮ LIỆU CHUỖI THỜI GIAN 12
2.1 PHƯƠNG PHÁP LÀM MỊN HÀM MŨ (ES) 12
2.2 PHƯƠNG PHÁP LÀM MỊN TRUNG BÌNH TRƯỢT (MA) 14
2.3 PHƯƠNG PHÁP TRUNG BÌNH TRƯỢT LŨY THỪA (DOUBLE EXPONENTIAL SMOOTHING) 15
2.4 PHƯƠNG PHÁP LÀM MỊN TRIPLE EXPONENTIAL SMOOTHING 16
CHƯƠNG 3 : CÁC MÔ HÌNH HỌC SÂU 18
3.1 MÔ HÌNH MLP 18
3.1.1 Tổng quan về mô hình MLP 18
3.1.2 Cách hoạt động của MLP 18
3.2 MÔ HÌNH LSTM 19
3.2.1 Tổng quan về mô hình LSTM 19
Trang 113.2.2 Các thành phần trong mô hình LSTM 21
3.2.3 Cách thức hoạt động 21
3.3 MÔ HÌNH CNN 23
3.3.1 Tổng quan về Convolution Neural Netword (CNN) 23
3.3.2 Cấu trúc mạng CNN 26
3.3.3 Lớp Lucas 32
3.3.4 Cách hoạt động của CNN 33
3.4 MÔ HÌNH RNN 34
3.4.1 Khái niệm RNN 34
3.4.2 Kết cấu kiến trúc và mô hình RNN 35
3.4.3 Phân loại và ứng dụng 36
3.5 SO SÁNH ƯU ĐIỂM VÀ NHƯỢC ĐIỂM GIỮA CÁC MÔ HÌNH 39
3.5.1 Ưu điểm và nhược điểm giữa các mô hình 39
3.5.2 Nguyên nhân tác giả bài báo chọn mô hình CNN 39
3.6 ỨNG DỤNG CNN VÀO THỰC TẾ 40
CHƯƠNG 4 : CÀI ĐẶT MÔ HÌNH 43
4.1 CÀI ĐẶT JUPYTER VÀ CÁC THƯ VIỆN 43
4.1.1 Cài đặt Jupyter Notebook 43
4.1.2 Cài đặt các thư viện 43
4.2 CÀI ĐẶT LÀM MỊN HÀM MŨ 43
4.2.1 Thư viện sử dụng 43
4.2.2 Cài đặt 43
4.3 CÀI ĐẶT MÔ HÌNH CNN 45
4.3.1 Thư viện sử dụng cho mô hình CNN 45
4.3.2 Cài đặt 45
4.4 CÀI ĐẶT MÔ HÌNH CNN VỚI LỚP LUCAS HIDDEN LAYER 47
4.4.1 Thư viện sử dụng 47
4.4.2 Cài đặt 47
4.5 CÀI ĐẶT MÔ HÌNH CNN KẾT HỢP LÀM MỊN VÀ LUCAS HIDDEN LAYER 49
4.5.1 Thư viện sử dụng 49
4.5.2 Cài đặt 49
Trang 12CHƯƠNG 5 : ĐÁNH GIÁ THỰC NGHIỆM 53
5.1 MÔI TRƯỜNG THỰC NGHIỆM 53
5.1.1 Phần cứng 53
5.1.2 Phần mềm 53
5.2 CÁC TẬP DỮ LIỆU DÙNG TRONG THỰC NGHIỆM 53
5.2.1 Tập dữ liệu số lượt truy cập trang web statforecasting 53
5.2.2 Tập dữ liệu chứng khoán CNA 54
5.2.3 Tập dữ liệu chứng khoán PEP 55
5.2.4 Tập dữ liệu chứng khoán AMD 56
5.3 CÁC TIÊU CHÍ ĐÁNH GIÁ 57
5.3.1 Đánh giá theo độ chính xác mô hình 57
5.3.2 Đánh giá theo thời gian thực thi 58
5.4 CÁC TRƯỜNG HỢP THỰC NGHIỆM 59
5.4.1 Đánh giá sự ảnh hưởng của tỷ lệ tập dữ liệu đến việc lựa chọn tham số mô hình 59
5.4.2 Thực nghiệm tìm số lớp convolution, số filter và kernel_size tốt nhất cho mô hình
59
5.4.3 Thực nghiệm tìm epoch và batch_size tốt nhất cho mô hình 59
5.4.4 Thực nghiệm tìm số lớp ẩn cho lớp Fully Connection dựa theo dãy số Lucas 59
5.4.5 Thực nghiệm với số lớp ẩn cho lớp Fully Connection dựa trên các số lân cận số Lucas tốt nhất ở thực nghiệm (5.4.4) 60
5.5 KẾT QUẢ THỰC NGHIỆM 60
5.5.1 Thực nghiệm tìm số lớp convolution, số filter và kernel_size tốt nhất cho mô hình
60
5.5.2 Thực nghiệm tìm epoch và batch_size tốt nhất cho mô hình 61
5.5.3 Thực nghiệm tìm số lớp Fully connection dựa theo dãy số Lucas 62
5.5.4 Thực nghiệm với số lớp Fully connection dựa trên các số lân cận số Lucas tốt nhất vừa tìm được ở thực nghiệm 5.5.3 64
5.5.5 So sánh sự ảnh hưởng của việc chia tập dữ liệu với mô hình 65
5.5.6 Thực nghiệm so sánh mô hình CNN-Lucas, S-CNN-Lucas, LSTM 66
5.5.7 Kết luận 69
CHƯƠNG 6 : PHẦN KẾT LUẬN 70
Trang 131 KẾT QUẢ ĐẠT ĐƯỢC 70
2 THUẬN LỢI 70
3 HẠN CHẾ 70
4 HƯỚNG PHÁT TRIỂN 70
CHƯƠNG 7 : PHỤ LỤC HƯỚNG DẪN THỰC THI CHƯƠNG TRÌNH 71
TÀI LIỆU THAM KHẢO 76
Trang 14DANH SÁCH HÌNH
Hình 1.1 Hình ảnh biểu diễn chuỗi dữ liệu thời gian trên biểu đồ 3
Hình 1.2 Chuỗi dữ liệu mang tính xu hướng 6
Hình 1.3 Chuỗi dữ liệu mang tính chu kì 7
Hình 1.4 Chuỗi dữ liệu thời gian mang tính mùa vụ 7
Hình 1.5 Dữ liệu chuỗi thời gian xuất hiện yếu tố bất thường 8
Hình 1.6 Dự báo trong chuỗi dữ liệu thời gian 10
Hình 2.1 Phương pháp làm mịn hàm mũ 13
Hình 2.2 Phương pháp làm mịn trung bình trượt 15
Hình 2.3 Phương pháp Double exponential smoothing 16
Hình 2.4 Phương pháp Triple exponential smoothing 17
Hình 3.1 Tổng quan về mô hình MLP 18
Hình 3.2 Mô hình LSTM 20
Hình 3.3 Mô hình CNN 23
Hình 3.4 Cấu trúc mô hình CNN 26
Hình 3.5 Các bước thực hiện của lớp Convolution[14] 27
Hình 3.6 Tìm giá trị lớn nhất [14] 27
Hình 3.7 Output lớp Flatten 28
Hình 3.8 Đồ thị của hàm sigmoid 29
Hình 3.9 Đồ thị của hàm ReLU[17] 29
Hình 3.10 Đồ thị của hàm tanh 30
Hình 3.11 Dữ liệu trước và sau lớp Dropout[15] 31
Hình 3.12 Dãy số Fibonacy và Lucas 32
Hình 3.13 Mô hình RNN 34
Hình 3.14 Kiến trúc của mô hình RNN 35
Hình 3.15 Biểu diễn kiến trúc mô hình RNN 36
Hình 3.16 RNN một - một 37
Hình 3.17 RNN Một - Nhiều 37
Hình 3.18 RNN Nhiều-một 38
Trang 15Hình 3.19 RNN Nhiều - Nhiều (đầu vào và đầu ra tương ứng nhau) 38
Hình 3.20 RNN Nhiều - Nhiều (đầu vào và đầu ra không tương ứng nhau) 38
Hình 4.1 Màn hình cài đặt Jupyter Notebook 43
Hình 5.1 Số lượng khách truy cập trang web 54
Hình 5.2 Giá cổ phiếu CNA ngày đóng 55
Hình 5.3 Giá cổ phiếu PEP ngày đóng 56
Hình 5.4 Giá cổ phiếu AMD ngày đóng 57
Hình 7.1 Cấu trúc Folder 71
Hình 7.2 Code tham số đầu vào của lớp Convolution 73
Hình 7.3 Code chọn tham số epoch và batch size 74
Hình 7.4 Code chọn giá trị lucas cho mô hình 74
Hình 7.5 Code chọn các giá trị lân cận với lucas cho mô hình 75
Trang 16DANH SÁCH BẢNG
Bảng 5.1 Kết quả thực nghiệm tìm số lớp Convolution, Filter và kernel_size với tỷ lệ 80:20 60
Bảng 5.2 Kết quả thực nghiệm tìm số lớp Convolution, Filter và kernel_size với tỷ lệ 70:30 61
Bảng 5.3 Kết quả thực nghiệm tìm epoch và batch_size với tỷ lệ 80:20 61
Bảng 5.4 Kết quả thực nghiệm tìm epoch và batch_size với tỷ lệ 70:30 62
Bảng 5.5 Kết quả thực nghiệm tìm số lớp Fully connection dựa theo dãy số Lucas tỷ lệ 80:20 63
Bảng 5.6 Kết quả thực nghiệm tìm số lớp Fully connection dựa theo dãy số Lucas tỷ lệ 70:30 63
Bảng 5.7 Kết quả thực nghiệm tìm số lớp Fully connection dựa theo số lân cận với số Lucas tỷ lệ 80:20 64
Bảng 5.8 Kết quả thực nghiệm tìm số lớp Fully connection dựa theo số lân cận với số Lucas tỷ lệ 70:30 65
Bảng 5.9 Tổng hợp tham số của các tập dữ liệu theo tỉ lệ 80:20 và 70:30 66
Bảng 5.10 Bảng so sánh CNN-Lucas, S-CNN-Lucas, LSTM tập dữ liệu Daily-website-visitors tỷ lệ 80:20 66
Bảng 5.11 Bảng so sánh CNN-Lucas, S-CNN-Lucas, LSTM tập dữ liệu CNA tỷ lệ 80:20 67
Bảng 5.12 Bảng so sánh CNN-Lucas, S-CNN-Lucas, LSTM tập dữ liệu PEP tỷ lệ 80:20 67
Bảng 5.13 Bảng so sánh CNN-Lucas, S-CNN-Lucas, LSTM tập dữ liệu AMD tỷ lệ 80:20 67
Bảng 5.14 Bảng so sánh CNN-Lucas, S-CNN-Lucas, LSTM tập dữ liệu Daily-website-visitors tỷ lệ 70:30 68
Bảng 5.15 Bảng so sánh CNN-Lucas, S-CNN-Lucas, LSTM tập dữ liệu CNA tỷ lệ 70:30 68
Bảng 5.16 Bảng so sánh CNN-Lucas, S-CNN-Lucas, LSTM tập dữ liệu PEP tỷ lệ 70:30 68
Bảng 5.17 Bảng so sánh CNN-Lucas, S-CNN-Lucas, LSTM tập dữ liệu AMD tỷ lệ 70:30 68
Trang 17RMSE Root Mean Squared Erorr S-CNN Smoothed Convolutional Neural Network S-CNN Lucas Smoothed Convolutional Neural Network Lucas
Trang 18PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài
Trong nhiều thập kỹ qua, trí tuệ nhân tạo và nghiên cứu học sâu đã có nhiều bước tiến
bộ vượt bậc đáng chú ý Mô hình trí tuệ nhân tạo mạng neuron tích chập (Convolutional neural network - CNN) có những bước cải tiến mang lại nhiều giá trị Time series là một chuỗi các điểm dữ liệu trong một khoảng thời gian, phân tích chuỗi thời gian để có thể đưa
ra nhiều dự đoán kết luận có ý nghĩa CNN bắt nguồn từ xử lý hình ảnh thường không được biết là kỹ thuật dự báo trong phân tích chuỗi thời gian và nó phải phụ thuộc rất nhiều vào
dữ liệu đầu vào có chất lượng thế nào Để tối ưu chất lượng của dữ liệu trước khi đưa vào
mô hình, có thể làm mịn dữ liệu Nhóm tìm hiểu và nghiên cứu phương pháp làm mịn hàm
mũ lai với sử dụng thuật toán CNN gọi là Smoothed-CNN (S-CNN)
2 Mục tiêu của đề tài
- Cải thiện dữ liệu đầu vào, dùng phương pháp làm mịn hàm mũ (ES) với alpha tối ưu
- Sử dụng số Lucas cho số lớp Fully Connection Layer nhằm nâng cao hiệu suất mô hình, tăng độ chính xác
- So sánh hiệu suất mô hình CNN sau khi kết hợp phương pháp làm mịn và dãy số lucas trong lớp Fully Conected layer với mô hình LSTM
3 Phương pháp nghiên cứu
Trong đề tài này nhóm em đã áp dụng các phương pháp nghiên cứu khoa học sau:
- Phương pháp phân tích và tổng hợp lý thuyết để xác định tính cấp thiết của nội dung nghiên cứu
- Phương pháp làm mịn hàm mũ
- Phương pháp mô hình hóa để xây dựng mô hình dự báo
- Phương pháp toán học để thực nghiệm đánh giá kết quả dự báo
4 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu đề tài là kết hợp phương pháp làm mịn hàm mũ đơn giản với CNN (S-CNN) để giảm lỗi dự báo cho mô hình
- Phạm vi nghiên cứu: các tập dữ liệu chuỗi thời gian
Trang 195 Kết quả dự kiến đạt được
- Kết hợp mô hình CNN với phương pháp làm mịn hàm mũ (tối ưu alpha)
- Sử dụng giá trị dãy số lucas làm số lớp Fully connected layer
- So sánh độ chính xác giữa mô hình S-CNN với các mô hình học sâu khác
Trang 20CHƯƠNG 1 :TỔNG QUAN VỀ DỮ LIỆU CHUỖI THỜI GIAN
1.1 DỮ LIỆU CHUỖI THỜI GIAN
1.1.1 Khái niệm chuỗi thời gian
Một chuỗi thời gian có thể được coi là một dãy số biểu diễn thông tin tạm thời về thời điểm những con số đó được ghi lại Bên cạnh các giá trị quan sát, chuỗi thời gian thường chứa một số thông tin bổ sung được gọi là mẫu Các mẫu cùng với giá trị quan sát
sẽ được sử dụng để dự báo chuỗi thời gian Thông thường, mô hình xu hướng và tính thời
vụ được sử dụng thường xuyên[3]
Hình 1.1 Hình ảnh biểu diễn chuỗi dữ liệu thời gian trên biểu đồ
1.1.2 Chuỗi dừng
1.1.2.1 Khái niệm chuỗi dừng
Chuỗi dừng là một chuỗi thời gian mà tổng giá trị của chuỗi không biến động theo thời gian [5] Chuỗi dừng có xu hướng biến động quanh giá trị trung bình và cũng vì thế tổng giá trị trung bình sẽ gần như nhau.
Hiệp phương sai (Covariance) là thước đo mối liên hệ giữa hai biến ngẫu nhiên X
và Y, ký hiệu cov(X,Y) Theo toán học, hiệp phương sai của một tập hợp là giá trị trung bình của các tích số sai lệch của mỗi lần quan sát Hiệp phương sai có 2 cách tính:
Trang 21- Cách 1:
𝑐𝑜𝑣(𝑋, 𝑌) = 1
𝑁∑ (𝑥𝑖− µ𝑥)(𝑦𝑖− µ𝑦)𝑖= 𝑁
Trong đó: xi , yi : là giá trị quan sát thứ i
μx , μy :là giá trị của tổng thể
x ̅, y ̅ : là giá trị trung bình của mẫu N: tổng số quan sát của tổng thể
n: tổng số quan sát của mẫu
1.1.2.2 Tầm quan trọng của chuỗi dừng
Đầu tiên, ta xét trong trường hợp chuỗi không có tính dừng thì mỗi đoạn có thể được nghiên cứu riêng, chính vì vậy mỗi chuỗi thời gian được xem là một giai đoạn riêng biệt
Do đó, chúng ta không thể dùng kết quả phân tích cho các giai đoạn khác Trong bài toán
dự báo chuỗi thời gian, chuỗi không có tính dừng sẽ không có giá trị ứng dụng thực tiễn[5]
Trường hợp tiếp theo là hiện tượng hồi quy giả mạo (spurious regression) hoặc hồi quy vô nghĩa (nonsense regression) có thể xảy ra nếu có hai hoặc nhiều chuỗi không dừng Điều này dẫn đến kết quả dự đoán hay kiểm định là không đáng tin cậy[5]
Qua hai trường hợp trên thì ta thấy nếu giả định rằng các chuỗi thời gian có tính dừng thì sẽ mang lại kết quả dự báo chính xác hơn[5]
1.1.2.3 Các phương pháp xác định tính dừng của chuỗi thời gian
Một số cách để kiểm định tính dừng trong chuỗi thời gian
- Phân tích đồ thị (graphical analysis)
- Giản đồ tự tương quan (correlogram)
- Phân tích nghiệm đơn vị (unit root analysis)
Trang 221.1.3 Lịch sử phát triển của chuỗi thời gian
Dữ liệu chuỗi thời gian đề cập đến một chuỗi các quan sát hoặc phép đo được thực hiện theo thời gian và lịch sử của dữ liệu chuỗi thời gian có thể được truy ngược lại các hồ
sơ sớm nhất về hoạt động của con người Dưới đây là một số phát triển chính trong lịch sử
dữ liệu chuỗi thời gian:
- Quan sát thiên văn: Các nhà thiên văn học đã thu thập dữ liệu chuỗi thời gian trong hàng nghìn năm, sử dụng các công cụ như đồng hồ mặt trời, đồng hồ nước
và kính viễn vọng để ghi lại chuyển động của các ngôi sao và hành tinh Những quan sát này rất quan trọng để phát triển lịch và dự đoán các sự kiện thiên văn
- Dữ liệu kinh tế: Dữ liệu kinh tế, chẳng hạn như giá cả, tiền lương và mức sản xuất, đã được ghi lại từ thời cổ đại Ở châu Âu thời trung cổ, các bang hội và hiệp hội thương mại lưu giữ hồ sơ về giá cả và tiền lương, trong khi ở Trung Quốc, các thương nhân đã sử dụng hồ sơ kế toán để theo dõi sản xuất và bán hàng
- Dữ liệu điều tra dân số: Cuộc điều tra dân số hiện đại đầu tiên được tiến hành ở Thụy Điển vào năm 1749, và nhiều quốc gia đã làm theo trong các thế kỷ tiếp theo Dữ liệu điều tra dân số cung cấp một nguồn thông tin nhân khẩu học và xã hội có giá trị và được sử dụng trong các lĩnh vực như y tế công cộng, giáo dục
và chính sách xã hội
- Đo lường khoa học: Trong thế kỷ 19 và 20, những tiến bộ trong thiết bị khoa học
đã dẫn đến việc thu thập dữ liệu chuỗi thời gian ngày càng chính xác trong các lĩnh vực như vật lý, hóa học và sinh học Dữ liệu này đã được sử dụng để phát triển các lý thuyết và mô hình khoa học, và để theo dõi những thay đổi trong các
hệ thống tự nhiên theo thời gian
- Dữ liệu cảm biến: Với sự ra đời của công nghệ kỹ thuật số trong thế kỷ 20, các cảm biến và bộ ghi dữ liệu đã được sử dụng rộng rãi để thu thập dữ liệu chuỗi thời gian trong các lĩnh vực như giám sát môi trường, sản xuất và vận chuyển
Dữ liệu này thường được thu thập trong thời gian thực và có thể được sử dụng để tối ưu hóa các quy trình và cải thiện hiệu suất
Trang 231.1.4 Đặc điểm
Dữ liệu chuỗi thời gian có tính chất đặc trưng sau:
- Tính xu hướng: là yếu tố thể hiện xu hướng dữ liệu thay đổi tăng hoặc giảm theo thời gian Đây là tính chất đặc trưng phổ biến trong dữ liệu chuỗi thời gian Một mẫu dữ liệu có tính xu hướng mô tả sự tăng hoặc giảm độ dài của chuỗi thời gian
Vì nó được sử dụng để mô tả sự thay đổi tổng thể của hướng chuỗi, nên nó không nhất thiết phải ở dạng tuyến tính Dưới đây là hình ảnh minh họa cho chuỗi dữ liệu
có tính xu hướng:
Hình 1.2 Chuỗi dữ liệu mang tính xu hướng
- Tính chu kỳ: là xu hướng dữ liệu có qui luật mang tính chất lặp lại dữ liệu theo thời gian Chính vì vậy việc tìm ra yếu tố chu kì trong chuỗi thời gian cũng góp phần làm cho việc dự báo dữ liệu chính xác hơn Để xử lí tính chu kì của chuỗi dữ liệu thời gian, trước tiên chúng ta cần biết tần suất của chuỗi thời gian Không giống như tần số trong vật lý, tần suất trong chuỗi thời gian gần với chu kỳ tương tự trong vật lý hơn Trong chuỗi thời gian, tần suất biểu thị số lượng quan sát trước khi mô hình tính thời vụ lặp lại Dưới đây là hình ảnh minh họa cho chuỗi dữ liệu có tính chu kỳ:
Trang 24Hình 1.3 Chuỗi dữ liệu mang tính chu kì
- Tính mùa vụ: được định nghĩa như là một khuynh hướng của dữ liệu mà có hành vi lặp lại chính nó cứ sau một chặng s điểm dữ liệu Do đó, s được gọi là chiều dài một mùa của dữ liệu [1]
Hình 1.4 Chuỗi dữ liệu thời gian mang tính mùa vụ
- Yếu tố bất thường: hay còn gọi là nhiễu, đây là thành phần chỉ ra các điểm bất thường trong chuỗi dữ liệu
Trang 25Hình 1.5 Dữ liệu chuỗi thời gian xuất hiện yếu tố bất thường
1.1.5 Chuẩn hóa chuỗi thời gian
Chuỗi dữ liệu thời gian thường là chuỗi phi tuyến tính nên cần chuẩn hóa dữ liệu Mục tiêu chính của chuẩn hóa dữ liệu là đảm bảo chất lượng của dữ liệu trước khi đưa vào
mô hình nên nó ảnh hưởng đến độ chính xác của mô hình
Chuẩn hóa là một quá trình quan trọng trong việc phân tích và giải thích dữ liệu chuỗi thời gian Chuẩn hóa liên quan đến việc chuyển đổi dữ liệu sao cho nó có thang đo chung và phân phối chung, giúp dễ dàng so sánh trên các khoảng thời gian, quần thể hoặc biến số khác nhau
Chuẩn hóa dữ liệu thì cần thiết cho CNN vì nó có thể mở rộng thuộc tính thành phạm
vi cụ thể theo yêu cầu Các phương pháp chuẩn hóa dữ liệu:
- Phương pháp chuẩn hóa min-max: Phương pháp này liên quan đến việc chia tỷ
lệ dữ liệu thành phạm vi từ 0 đến 1, bằng cách trừ giá trị tối thiểu và chia cho phạm vi dữ liệu Phương pháp này hữu ích để so sánh dữ liệu chuỗi thời gian với các phạm vi hoặc đơn vị khác nhau Phương pháp này đảm bảo rằng tất cả các tính năng có cùng tỷ lệ, mặc dù nó không hiệu quả trong việc xử lý các giá trị ngoại lệ Phương pháp chuẩn hóa dữ liệu Min-max cho ra dữ liệu không bị sai lệch với các khoảng nhỏ hơn n trong khoảng (0-1)
Trang 26Phương trình:
𝑦 = 𝑥 − min(𝑥)
Trong đó: y : là kết quả sau khi chuẩn hóa
x: là giá trị dữ liệu ban đầu min(x): là giá trị nhỏ nhất của toàn bộ dữ liệu max(x): là giá trị lớn nhất của toàn bộ dữ liệu
- Z-score standardization : Phương pháp này liên quan đến việc trừ đi giá trị trung bình của chuỗi thời gian và chia cho độ lệch chuẩn, dẫn đến chuỗi thời gian chuẩn hóa có giá trị trung bình là 0 và độ lệch chuẩn là 1 Phương pháp này hữu ích để
so sánh dữ liệu chuỗi thời gian với các thang đo hoặc đơn vị khác nhau
- Log transformation: Phương pháp này liên quan đến việc lấy logarit tự nhiên của
dữ liệu chuỗi thời gian, có thể giúp ổn định phương sai của dữ liệu và giảm ảnh hưởng của các ngoại lệ Phương pháp này thường được sử dụng cho dữ liệu có
độ lệch cao hoặc có phân bố đuôi dài
1.1.6 Phân rã chuỗi thời gian
Sự đa dạng của các mẫu dữ liệu từ chuỗi thời gian có thể giúp cải thiện kết quả dự báo, do đó, sẽ rất hữu ích nếu chia chuỗi thời gian thành nhiều thành phần đại diện cho các loại mẫu.[3] Có 2 dạng phân rã chuỗi thời gian thường được sử dụng là phân rã thông thường và phân rã STL (phương pháp Loess)
Phân rã thông thường:
Công thức:
Trong đó: yt : đại diện cho dữ liệu chuỗi thời gian
st : là thành phần tính chu kì
Tt : là xu hướng của tập dữ liệu
Rt : là thành phần còn lại tại thời điểm t Phân rã STL: Trong mô hình học sâu, phân rã STL có thể được hiểu như "Short-Term Memory" (Bộ nhớ ngắn hạn), đề cập đến bộ nhớ tạm thời hoạt động trong một mạng nơ-ron như mạng nơ-ron dài hạn - LSTM (Long Short-Term Memory) STL có thể hiểu là
Trang 27việc phân tích và giải thích cách hoạt động và cấu trúc của bộ nhớ ngắn hạn (STL) trong một mô hình học sâu như LSTM Điều này có thể liên quan đến việc giải thích cơ chế cập nhật, quên thông tin, và tương tác giữa các đơn vị trong bộ nhớ ngắn hạn để hiểu cách mô hình học sâu lưu trữ và sử dụng thông tin tạm thời
1.1.7 Ứng dụng của chuỗi thời gian
Chuỗi thời gian được ứng dụng phổ biến trong các lĩnh vực khác nhau, bao gồm:
- Dự báo và dự đoán xu hướng
- Kiểm tra và phân tích các mô hình thống kê
- Tối ưu hóa kế hoạch và quản lý tài nguyên
- Phân tích tài chính và rủi ro
- Nghiên cứu khoa học
1.2 PHÂN TÍCH DỮ LIỆU CHUỖI THỜI GIAN
1.2.1 Dự báo dữ liệu chuỗi thời gian
1.2.1.1 Khái niệm dự báo dữ liệu chuỗi thời gian
Dự báo chuỗi thời gian (time series forecasting) là quá trình sử dụng dữ liệu trong quá khứ để phân tích và dự đoán giá trị của chuỗi thời gian trong tương lai Nó được sử dụng để dự đoán xu hướng và biến động của các dữ liệu theo thời gian, chẳng hạn như doanh số bán hàng, giá cổ phiếu, sản lượng sản xuất, nhu cầu tiêu dùng, tình trạng thời tiết
và các lĩnh vực khác [6]
Hình 1.6 Dự báo trong chuỗi dữ liệu thời gian
Trang 281.2.1.2 Phân loại dự báo dữ liệu chuỗi thời gian
Dựa vào các tiêu chí như loại dữ liệu, bản chất của chuỗi thời gian và phương pháp
dự báo được sử dụng mà người ta phân dự báo dữ liệu thời gian thành 3 loại[6]:
- Theo thời đoạn dự báo: dự báo có thể được phân thành dự báo ngắn hạn, trung
hạn hoặc dài hạn, tùy thuộc vào khoảng thời gian mà dự báo được thực hiện [6]
- Theo giai đoạn dự báo: dự báo có thể được phân thành dự báo xu hướng, dự
báo theo mùa hoặc dự báo theo chu kỳ Điều này liên quan đến việc xác định mô
hình dự báo cho các yếu tố như xu hướng tang hay giảm, biến động theo mùa hoặc
theo các chu kỳ thời gian [6]
- Theo lĩnh vực dự báo: dựa vào lĩnh vực kỹ thuật và kinh tế, dự báo có thể
chuyên về năng lượng, môi trường hoặc các lĩnh vực khác, tùy thuộc vào mục tiêu
cụ thể của dự báo [6],
1.2.2 Tầm quan trọng của dự báo dữ liệu chuỗi thời gian
Các doanh nghiệp và tổ chức sẽ đưa ra quyết định tốt hơn nếu kết quả mô hình dự
báo dữ liệu chuỗi thời gian đưa ra là chính xác Ngoài ra, việc dự báo dữ liệu thời gian
còn giúp xác định các rủi ro từ việc dự đoán được kết quả trong tương lai
Trang 29CHƯƠNG 2 : CÁC PHƯƠNG PHÁP LÀM MỊN TRONG DỮ LIỆU CHUỖI
THỜI GIAN 2.1 PHƯƠNG PHÁP LÀM MỊN HÀM MŨ (ES)
Phương pháp làm mịn theo hàm mũ phù hợp với các dữ liệu không có tính xu hướng hay theo mùa rõ ràng
Công thức:
𝑆0 = 𝑋0
𝑆𝑡 = 𝛼𝑋𝑡+ (1 − 𝛼)𝑆𝑡−1 {𝑡 > 0, 0 ≤ 𝛼 ≤ 1} (5)
𝑆𝑡 = 𝑆𝑡−1+ 𝛼(𝑋𝑡− 𝑆𝑡−1) {𝑡 > 0, 0 ≤ 𝛼 ≤ 1} (6) Trong đó: 𝑆𝑡: là giá trị sau khi được làm mịn tại thời điểm t
𝑆𝑡−1: là giá trị sau khi được làm mịn tại thời điểm t-1
𝑋𝑡: là giá trị quan sát tại thời điểm t
𝜶 (alpha): là hệ số làm mịn t: là khoảng thời gian làm mịn
Có thể thấy (1 - 𝜶) nhân với giá trị kỳ vọng trước St-1 được suy ra cùng một công thức làm cho biểu thức có tính đệ quy, (1 - 𝜶) được nhân với nó nhiều lần, nên được gọi
là phương pháp hàm mũ
Giá trị 𝜶(alpha) nằm trong khoảng từ 0 đến 1:
• 𝜶 (alpha) = 0: cho biết các giá trị được dự báo trong tương lai là giá trị trung bình của dữ liệu trong quá khứ
• 𝜶 (alpha) = 1: cho biết các giá trị dự báo trong tương lai là kết quả của quá trình
dự đoán Nếu giá trị gần bằng 1 cho biết quá trình học thuật nhanh cho biết giá trị ở gần mới ảnh hưởng tới kết quả dự báo, giá trị gần bằng 0 quá trình học chậm, các quan sát trước có ảnh hưởng lớn tới kết quả dự báo
Trang 31Trong đó : 𝑋𝑚𝑎𝑥 là giá trị tối đa của dữ liệu chuỗi thời gian
𝑋𝑚𝑖𝑛 là giá trị tối thiểu của dữ liệu chuỗi thời gian
2.2 PHƯƠNG PHÁP LÀM MỊN TRUNG BÌNH TRƯỢT (MA)
Phương pháp này dùng đường trung bình động để có thể làm mượt dữ liệu, thông qua đó ta có thể nhận biết được các xu hướng cơ bản và xác định các thành phần trong mô hình để tiến hành dự đoán Nó hoạt động bằng cách tính giá trị trung bình của một số điểm
dữ liệu liên tiếp cố định, được gọi là "cửa sổ" hoặc "khoảng cách" và sử dụng giá trị trung bình này làm giá trị được làm mịn cho thời điểm cụ thể đó Kích thước cửa sổ có thể được chọn dựa trên tần suất và mẫu dữ liệu, với các cửa sổ nhỏ hơn cung cấp khả năng làm mịn chi tiết hơn và các cửa sổ lớn hơn cung cấp khả năng làm mịn mượt mà hơn nhưng ít chi tiết hơn
Đường trung bình động là các giá trị trung bình bằng cách sử dụng các phân đoạn liên tiếp của các điểm dữ liệu trên loạt các giá trị, có độ dài, xác định số lượng điểm các dữ liệu cần đưa vào mỗi giá trị trung bình
Phương pháp làm mịn trung bình là kiểu làm mịn phổ biến và được sử dụng rộng rãi trong phân tích và dự đoán chuỗi thời gian Các chuỗi thời gian sẽ được bắt đầu từ giá trị trung bình của các phần tử thứ K cuối của chuỗi
Công thức:
𝑆𝑡 = (𝑋𝑡−𝑘 + 𝑋𝑡−𝑘+1+ 𝑋𝑡−𝑘+2+ ⋯ + 𝑋𝑡 )
Trong đó: S là giá trị trung bình động tại thời điểm t
Xt-k đến Xt là các giá trị trong khoảng trượt
T là thời gian hiện tại
K là kích thước của khoảng trượt, K càng lớn thì chuỗi số càng mượt
Trang 32Hình 2.2 Phương pháp làm mịn trung bình trượt
2.3 PHƯƠNG PHÁP TRUNG BÌNH TRƯỢT LŨY THỪA (DOUBLE
EXPONENTIAL SMOOTHING)
Làm mịn hàm mũ kép, còn được gọi là phương pháp của Holt, là một kỹ thuật dự báo được sử dụng để phân tích và dự báo dữ liệu chuỗi thời gian Nó là một phần mở rộng của làm mịn hàm mũ đơn giản và đặc biệt hữu ích khi phân tích dữ liệu chuỗi thời gian có tính xu hướng
Phương pháp này sử dụng hai tham số làm mịn, alpha (α) và beta (β), để tạo hai chuỗi được làm mịn, một cho mức dữ liệu và một cho xu hướng Chuỗi được làm trơn đầu tiên được gọi là ước tính mức độ (Lt) và chuỗi được làm trơn thứ hai được gọi là ước tính
Công thức làm mịn hàm mũ kép cho ước tính xu hướng (Tt) là:
Trang 33𝑇𝑡 = 𝛽 ∗ (𝐿𝑡 − 𝐿𝑡−1) + (1 − 𝛽) ∗ 𝑇𝑡−1 (13) Trong đó β là tham số làm mịn cho ước tính xu hướng
Dự báo thời gian t + 1 sau đó được đưa ra bởi:
Trong đó Ft+1 là giá trị dự báo cho thời gian t + 1
Làm mịn theo cấp số nhân kép rất hữu ích cho dữ liệu chuỗi thời gian thể hiện cả xu hướng và tính thời vụ Tuy nhiên, nó có thể không hoạt động tốt đối với dữ liệu chuỗi thời gian thể hiện những thay đổi đột ngột hoặc ngoại lệ Trong những trường hợp như vậy, các
kỹ thuật dự báo khác như ARIMA hoặc mạng lưới thần kinh có thể phù hợp hơn
Hình 2.3 Phương pháp Double exponential smoothing
2.4 PHƯƠNG PHÁP LÀM MỊN TRIPLE EXPONENTIAL SMOOTHING
Làm mịn theo cấp số nhân ba, còn được gọi là phương pháp Holt-Winters, là một kỹ thuật dự báo phổ biến được sử dụng để phân tích và dự báo dữ liệu chuỗi thời gian Nó là một phần mở rộng của làm mịn hàm mũ kép bổ sung tham số làm mịn thứ ba để nắm bắt tính thời vụ trong dữ liệu
Làm mịn hàm mũ ba lần sử dụng ba chuỗi được làm mịn để lập mô hình dữ liệu: ước tính mức độ (Lt), ước tính xu hướng (Tt) và ước tính theo mùa (St) Phương pháp này
sử dụng ba tham số làm mịn: alpha (α) cho ước tính mức độ, beta (β) cho ước tính xu hướng
và gamma (γ) cho ước tính theo mùa
Trang 34• Công thức làm mịn hàm mũ ba lần cho ước tính mức (Lt) là:
𝐿𝑡 = 𝛼 ∗ (𝑋𝑡− 𝑆𝑡− 𝑚) + (1 − 𝛼) ∗ (𝐿𝑡−1 + 𝑇𝑡−1) (15) Trong đó Xt là giá trị thực của dữ liệu chuỗi thời gian tại thời điểm t, m là độ dài của chu kỳ theo mùa và α là tham số làm mịn cho ước tính mức độ
• Công thức làm mịn hàm mũ ba lần cho ước tính xu hướng (Tt) là:
𝑇𝑡 = 𝛽 ∗(𝐿𝑡 − 𝐿𝑡−1)+(1 − 𝛽)∗ 𝑇𝑡−1 (16)Trong đó β là tham số làm mịn cho ước tính xu hướng
Công thức làm mịn hàm mũ ba lần cho ước tính theo mùa (St) là:
𝑆𝑡 = 𝛾 ∗ (𝑋𝑡 − 𝐿𝑡) + (1 − 𝛾) ∗ 𝑆𝑡 − 𝑚 (17) Trong đó γ là tham số làm mịn cho ước tính theo mùa
• Dự báo thời gian t + 1 sau đó được đưa ra bởi:
Trong đó Ft+1 là giá trị dự báo cho thời gian t + 1
Làm mịn hàm mũ ba lần rất hữu ích cho dữ liệu chuỗi thời gian thể hiện cả xu hướng
và tính thời vụ Nó có thể cung cấp dự báo chính xác cho nhiều chu kỳ theo mùa và có thể điều chỉnh để thay đổi xu hướng và tính thời vụ theo thời gian Tuy nhiên, nó có thể không hoạt động tốt đối với dữ liệu chuỗi thời gian có thay đổi đột ngột hoặc ngoại lệ
Hình 2.4 Phương pháp Triple exponential smoothing
Trang 35CHƯƠNG 3 : CÁC MÔ HÌNH HỌC SÂU 3.1 MÔ HÌNH MLP
3.1.1 Tổng quan về mô hình MLP
MLP là viết tắt của "Multi-Layer Perceptron", là một kiểu mô hình mạng neuron nhân tạo (Artificial Neural Network - ANN) rất phổ biến trong lĩnh vực học máy Nó được
sử dụng để giải quyết các bài toán phân loại và dự báo[11]
Một MLP thường có ít nhất hai lớp neuron, gồm lớp đầu vào (input layer) và lớp đầu
ra (output layer), với một hoặc nhiều lớp trung gian (hidden layer) ở giữa Các lớp trung gian này giúp cho mô hình có khả năng học các đặc trưng phức tạp hơn so với các mô hình mạng neuron đơn giản hơn[11]
Hình 3.1 Tổng quan về mô hình MLP
Một MLP bao gồm một tập các đơn vị neuron (neuron units) được kết nối với nhau theo một kiểu mạng lưới phân lớp (feedforward network) Mỗi đơn vị neuron trong mạng MLP có nhiều trọng số kết nối đến đơn vị neuron ở lớp kế tiếp Khi đầu vào của mạng được đưa vào, nó sẽ được lan truyền qua các lớp của mạng, mỗi lớp thực hiện một phép tính toán để tạo ra đầu ra cho lớp tiếp theo[11]
3.1.2 Cách hoạt động của MLP
Mạng MLP là một kiểu mạng neuron với nhiều lớp neuron, mỗi lớp neuron có nhiều đơn vị neuron, trong đó các đơn vị neuron trong lớp này được kết nối với các đơn vị neuron trong lớp trước và lớp sau thông qua các liên kết trọng số (weights)[11]
Trang 36Ta có thể hiểu cơ chế hoạt động của MLP :
• Đầu tiên, lớp đầu vào (input layer) của mô hình là một tập các biến đầu vào (input variables), rồi tiếp nhận các giá trị này và truyền chúng qua các liên kết trọng số đến lớp tiếp theo
• Sau đó, các lớp trung gian (hidden layers) của mạng MLP sẽ tiếp nhận giá trị đầu vào từ lớp đầu vào và tiến hành tính toán thông qua các đơn vị neuron Mỗi đơn
vị neuron trong lớp này tính tổng trọng số của các giá trị đầu vào và sử dụng một hàm kích hoạt phi tuyến (non-linear activation function) để tính ra đầu ra của nó Các giá trị đầu ra của các đơn vị neuron trong lớp này sẽ được truyền đến các đơn vị neuron trong lớp kế tiếp thông qua các liên kết trọng số
• Tiếp theo, lớp đầu ra (output layer) của mạng MLP có thể có một hoặc nhiều đơn
vị neuron, tùy thuộc vào bài toán đang được giải quyết Các đơn vị neuron trong lớp này sẽ nhận giá trị đầu vào từ lớp trung gian và tính toán đầu ra của mô hình, chẳng hạn như xác suất dự báo hoặc một giá trị liên tục
Trong quá trình thực hiện, hàm mất mát (loss function) được sử dụng để đánh giá hiệu quả của mô hình và so sánh giá trị dự báo với giá trị thực tế Thông qua thuật toán lan truyền ngược (backpropagation), các tham số của mô hình được điều chỉnh để giảm thiểu giá trị của hàm mất mát bằng cách tính toán đạo hàm của nó theo các tham số và điều chỉnh các giá trị này Mục tiêu là tìm ra các tham số tối ưu để dự báo gần với giá trị thực tế
3.2 MÔ HÌNH LSTM
3.2.1 Tổng quan về mô hình LSTM
Mô hình LSTM (Long Short Term Memory) là một kiểu mạng neuron học sâu, được
sử dụng rộng rãi trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) và dự đoán chuỗi thời gian
Nó được thiết kế để giải quyết vấn đề giảm thiểu mất mát thông tin dài hạn trong mạng neuron truyền thống LSTM khác với các mạng neuron tiêu chuẩn bởi có các kết nối phản hồi đặc biệt, cho phép nó xử lý và dự đoán dữ liệu theo cấu trúc chuỗi một cách hiệu quả [10, 12]
Trang 37• Công thức:
𝑓𝑡 = 𝜎(𝑊𝑓[ℎ𝑡−1 , 𝑥𝑡] + 𝑏𝑓) (19)
𝑖𝑡 = 𝜎(𝑊𝑖[ℎ𝑡−1 , 𝑥𝑡] + 𝑏𝑖) (20)
𝑔𝑡 = 𝑡𝑎𝑛ℎ(𝑊𝑔[ℎ𝑡−1 , 𝑥𝑡] + 𝑏𝑔) (21)
Trang 38𝑜𝑡 = 𝜎(𝑊𝑜[ℎ𝑡−1 , 𝑥𝑡] + 𝑏𝑜) (22)
𝑐𝑡 = 𝑓𝑡 ∗ 𝑐𝑡−1+ 𝑖𝑡∗ 𝑔𝑡 (23)
• Trong đó: xt là vectơ đầu vào tại thời điểm đó t
ht-1 là vectơ đầu ra của ô trước đó tại thời điểm đó t-1
it là cổng vào
ft là cánh cổng quên
gt là cổng điều chế đầu vào
ot là cổng đầu ra
Ct là trạng thái tế bào tại thời điểm đó t
ht là vectơ đầu ra tại thời điểm t
Wi là ma trận trọng lượng Wf, Wg, Wo
bi là vectơ thiên vị bf, bg, bo
σ là hàm sigmoid tanh là hàm tiếp tuyến hyperbolic
3.2.2 Các thành phần trong mô hình LSTM
LSTM có ba thành phần chính: cổng đầu vào, cổng quên và cổng đầu ra Cổng đầu vào xác định lượng vectơ đầu vào nên được thêm vào trạng thái của LSTM Cổng quên xác định bao nhiêu trạng thái ô trước đó nên bị lãng quên[12] Cổng điều chế đầu vào xác định lượng vectơ đầu vào nên được sử dụng để cập nhật trạng thái ô Cổng đầu ra xác định bao nhiêu trạng thái LSTM nên được sử dụng để tạo ra vectơ đầu ra it, xt, ct, ft, ct-1, gt, xt, ct,
Trang 39Các cổng của LSTM được kiểm soát bằng các hàm kích hoạt sigmoid và có các trọng
số riêng biệt Các trọng số này được học trong quá trình huấn luyện của mạng để điều chỉnh
sự quan trọng của các thông tin[12]
Các cổng trong một đơn vị LSTM cell được tính toán bằng các phép tính trên đầu vào (input) và trạng thái
- Input gate (cổng nhập): Cổng này quyết định thông tin mới nào nên được thêm vào trạng thái của đơn vị LSTM cell Giá trị cổng này được tính bằng hàm sigmoid của tổng trọng số của đầu vào và trạng thái trước đó, sau đó đi qua một hàm kích hoạt khác để tạo ra giá trị đầu ra thỏa thuận
- Forget gate (cổng quên): Cổng này quyết định thông tin nào nên bị quên đi Giá trị cổng này được tính bằng hàm sigmoid của tổng trọng số của đầu vào và trạng thái
- Cổng điều chế đầu vào (cổng điều chế đầu vào): Cổng này quyết định thông tin nào nên được thêm vào trạng thái của đơn vị LSTM cell Giá trị cổng này được tính bằng hàm tanh của tổng trọng số của đầu vào và trạng thái trước đó, sau đó
đi qua một hàm kích hoạt khác để tạo ra giá trị đầu ra thỏa mãn khoảng giá trị mong muốn
- Output gate (cổng đầu ra): Cổng này quyết định giá trị đầu ra của đơn vị LSTM cell
Trang 40Trước đây, dữ liệu chuỗi thời gian được phân tích bằng các phương pháp như mô hình trung bình di chuyển tích hợp tự động hồi quy (ARIMA), mô hình mạng MLP (Multi-layer Perceptron) và mô hình LSTM (Long Short Term Memory) Việc sử dụng các mô hình này có thể có những hạn chế khi xử lí các tập dữ liệu lớn và phức tạp Để khắc phục những hạn chế này thì ta sẽ sử dụng mô hình mạng nơ-ron tích chập để tìm hiểu và phân tích dữ liệu chuỗi thời gian
Trong mạng nơ-ron tích chập dùng để phân tích chuỗi thời gian, dữ liệu đầu vào thường ở dạng chuỗi giá trị 1D Các lớp tích chập có thể được sử dụng để xác định các dữ liệu trong chuỗi, chẳng hạn như các xu hướng cục bộ hoặc các dữ liệu lặp lại Sau đó, kết quả của các lớp tích chập được ứng dụng để phân loại, hồi quy hoặc các loại phân tích khác
VD: Truyền vào một hình ảnh được biểu diễn dưới dạng ma trận có kích thước 4x4 gồm các chữ số 1 (các vị trí để trống được hiểu là 0) và cửa sổ tích chập K (cửa sổ trượt) là
ma trận kích thước 2x2 như sau: