Mục đích của đề tài Đề tài tập trung nghiên cứu mô hình ANN và mô hình Deep learning, đánh giá hai mô hình trên dựa vào bài toán dự báo trên tập dữ liệu chuỗi thời gian cụ thể.. Cách ti
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
SKL 0 0 7 1 5 4
ĐỒ ÁN TỐT NGHIỆP NGÀNH HỆ THỐNG THÔNG TIN
GVHD: TS NGUYỄN THÀNH SƠN SVTH: LÊ THỊ HỒNG NGA
MSSV: 16110394 SVTH: NGUYỄN NGỌC TRÚC LINH MSSV: 16110536
Trang 2
Đề Tài:
KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CNTT
KHÓA 2016 - 2020
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN
TÌM HIỂU MÔ HÌNH ANN VÀ ỨNG DỤNG TRONG BÀI TOÁN DỰ BÁO CHUỖI THỜI GIAN
GIÁO VIÊN HƯỚNG DẪN
TS NGUYỄN THÀNH SƠN
LÊ THỊ HỒNG NGA - 16110394 NGUYỄN NGỌC TRÚC LINH - 16110536
Trang 3
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN
LÊ THỊ HỒNG NGA - 16110394 NGUYỄN NGỌC TRÚC LINH - 16110536
Đề Tài:
TÌM HIỂU MÔ HÌNH ANN VÀ ỨNG DỤNG TRONG BÀI TOÁN DỰ BÁO CHUỖI THỜI GIAN
KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CNTT
GIÁO VIÊN HƯỚNG DẪN
TS NGUYỄN THÀNH SƠN
KHÓA 2016 - 2020
Trang 4ĐH SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CNTT
*******
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên 1: Lê Thị Hồng Nga MSSV 1: 16110394
Họ và tên Sinh viên 2: Nguyễn Ngọc Trúc Linh MSSV 2: 16110536
Ngành: Công nghệ thông tin
Tên đề tài: “Tìm hiểu mô hình ANN và ứng dụng trong bài toán dự báo chuỗi
thời gian”
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:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:
Tp Hồ Chí Minh, ngày tháng năm 2020
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)
Trang 5ĐH SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CNTT
*******
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên 1: Lê Thị Hồng Nga MSSV 1: 16110394
Họ và tên Sinh viên 2: Nguyễn Ngọc Trúc Linh MSSV 2: 16110536
Ngành: Công nghệ thông tin
Tên đề tài: “Tìm hiểu mô hình ANN và ứng dụng trong bài toán dự báo chuỗi
thời gian”
Họ và tên Giáo viên phản biện: ThS Lê Thị Minh Châu
NHẬN XÉT
1 Về nội dung đề tài và khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:
Tp Hồ Chí Minh, ngày tháng năm 2020
Giáo viên phản biện
(Ký & ghi rõ họ tên)
Trang 6LỜI CẢM ƠN
Chúng tôi xin bày tỏ lòng biết ơn sâu sắc đến TS Nguyễn Thành Sơn, thầy đã hướng dẫn, chỉ bảo rất tận tình để chúng tôi có thể hoàn thành khóa luận tốt nghiệp này Chúng tôi cũng xin chân thành cảm ơn các thầy, các cô của khoa Công nghệ thông tin – Trường Đại học Sư phạm Kỹ thuật TPHCM nói chung và ngành Công nghệ thông tin của khoa nói riêng đã truyền thụ rất nhiều kiến thức, kỹ năng và hỗ trợ chúng tôi trong suốt quá trình học tập và thực hiện khóa luận vừa qua
Trang 7ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP
Họ và tên Sinh viên 1: Lê Thị Hồng Nga MSSV 1: 16110394
Họ và tên Sinh viên 2: Nguyễn Ngọc Trúc Linh MSSV 2: 16110536
Thời gian làm luận văn: Từ 30/3/2020 đến 28/7/2020
Chuyên ngành: Hệ thống thông tin
Tên đề tài: Tìm hiểu mô hình ANN và ứng dụng trong bài toán dự báo chuỗi
thời gian
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 Tìm hiểu về mô hình ANN
2 Tìm hiểu về mô hình Deep learning
3 Cài đặt hai mô hình trên
4 So sánh bằng thực nghiệm hai mô hình trên nhiều tập dữ liệu
Trang 8Chỉnh sửa giao diện kết quả gồm có ba biểu
đồ mô tả: toàn bộ chuỗi dữ liệu, chuỗi giá trị thực dùng để test và chuỗi giá trị dự báo theo
Ý kiến của giáo viên hướng dẫn
Tp Hồ Chí Minh, ngày tháng năm 2020
Người viết đề cương
(Ký và ghi rõ họ tên)
Trang 9MỤC LỤC
Phần 1: MỞ ĐẦU 1
1.1 Tính cấp thiết của đề tài 1
1.2 Mục đích của đề tài 1
1.3 Cách tiếp cận và phương pháp nghiên cứu 1
1.4 Kết quả dự kiến đạt được 1
Phần 2: NỘI DUNG 2
Chương 1 BÀI TOÁN DỰ BÁO CHUỖI THỜI GIAN 2
1.1 TỔNG QUAN VỀ CHUỖI THỜI GIAN 2
1.2 KHÁI QUÁT VỀ DỰ BÁO 3
1.2.1 Định nghĩa dự báo 3
1.2.2 Xác định những gì cần dự báo, mục tiêu và kế hoạch 4
1.2.3 Dữ liệu và phương pháp dự báo 4
1.3 CÁC BƯỚC CƠ BẢN TRONG MỘT NHIỆM VỤ DỰ BÁO 5
1.3.1 Xác định vấn đề 5
1.3.2 Thu thập thông tin 5
1.3.3 Phân tích sơ bộ 5
1.3.4 Chọn lựa các mô hình phù hợp 6
1.3.5 Sử dụng và đánh giá mô hình dự báo 6
Chương 2 TỔNG QUAN VỀ ARTIFICIAL NEURAL NETWORK 7
2.1 GIỚI THIỆU VỀ ARTIFICIAL NEURAL NETWORK 7
2.2 PERCEPTRON 9
2.3 MULTI-LAYER PERCEPTRON 12
2.4 QUY TRÌNH DỰ BÁO CHUỖI THỜI GIAN SỬ DỤNG ANN 14
2.4.1 Thu thập dữ liệu 14
Trang 102.4.2 Phân tích và xử lý dữ liệu 14
2.4.3 Xây dựng cấu trúc ANN 15
2.4.3.1 Số lượng các nơ-ron lớp input 15
2.4.3.2 Số lượng các lớp ẩn và nơ – ron lớp ẩn 15
2.4.3.3 Số lượng các nơ-ron output 16
2.4.4 Lựa chọn hàm kích hoạt 16
2.4.4.1 Sigmoid 16
2.4.4.2 Tanh 17
2.4.4.3 ReLU 18
2.4.5 Thiết lập dữ liệu dùng để huấn luyện, kiểm tra 18
2.4.5.1 Vấn đề Overfiting và Underfiting 19
2.4.5.2 Validation [8] 20
2.4.5.3 Cross-validation 21
2.4.6 Huấn luyện mạng ANN 22
2.4.6.1 Thuật toán lan truyền tiến [9] 22
2.4.6.2 Thuật toán lan truyền ngược [10] 23
2.4.6.3 Ví dụ về thuật toán Forward propagation và Backpropagation [11] 24
2.4.7 Đánh giá mô hình 28
Chương 3 TỔNG QUAN VỀ DEEP LEARNING 30
3.1 GIỚI THIỆU VỀ DEEP LEARNING 30
3.2 LỊCH SỬ HÌNH THÀNH 32
3.3 YẾU TỐ LÀM NÊN SỰ THÀNH CÔNG CỦA DEEP LEARNING 35
Chương 4 ĐÁNH GIÁ BẰNG THỰC NGHIỆM 36
4.1 MÔI TRƯỜNG THỰC NGHIỆM 36
4.2 CÁC TẬP DỮ LIỆU 36
Trang 114.2.1 Google stock 36
4.2.2 Gold prices 37
4.2.3 Temperature LA 38
4.2.4 Brent oil prices 39
4.3 CÁC TRƯỜNG HỢP THỰC NGHIỆM 41
4.4 ĐÁNH GIÁ THỰC NGHIỆM 42
4.4.1 Thực nghiệm với tập dữ liệu Google stock 42
4.4.2 Thực nghiệm với tập dữ liệu Gold price 45
4.4.3 Thực nghiệm với tập dữ liệu Temperature LA 48
4.4.4 Thực nghiệm với tập dữ liệu Brent oil prices 51
Phần 3: KẾT LUẬN 56
3.1 Kết quả đạt được 56
3.2 Ưu điểm 56
3.3 Nhược điểm 56
3.4 Hướng phát triển 56
TÀI LIỆU THAM KHẢO 57
Trang 12DANH MỤC HÌNH ẢNH
Hình 1.1 Doanh số bán thuốc trị bệnh tiểu đường hàng tháng ở Úc [2] 2
Hình 2.1 Cấu tạo của nơ - ron sinh học [5] 9
Hình 2.2 Linear Threshold Unit 10
Hình 2.3 Mô hình Perceptron 10
Hình 2.4 Vấn đề phân loại XOR và MLP giải quyết nó [4] 12
Hình 2.5 Multi-Layer Perceptron 13
Hình 2.6 Đồ thị hàm Sigmoid 17
Hình 2.7 Đồ thị hàm Tanh 17
Hình 2.8 Đồ thị hàm ReLU 18
Hình 2.9 Lựa chọn mô hình dựa trên validation [8] 21
Hình 2.10 Cấu trúc ANN sử dụng cho ví dụ 25
Hình 3.1 Mối quan hệ giữa AI, Machine Learning và Deep Learning [13] 30
Hình 3.2 Lịch sử Deep Learning [15] 32
Hình 4.1 Biểu đồ biểu thị tập dữ liệu Google stock 36
Hình 4.2 Biểu đồ biểu thị tập dữ liệu Gold prices 37
Hình 4.3 Biểu đồ biểu thị tập dữ liệu Temperature LA 38
Hình 4.4 Biểu đồ biểu thị tập dữ liệu Brent oil prices 39
Trang 13DANH MỤC BẢNG BIỂU
Bảng 4.1 Bảng tóm tắt thông tin các tập dữ liệu dùng trong thử nghiệm 40
Bảng 4.2 Kết quả thực nghiệm trên tập Google stock với số nơ-ron lớp ẩn thay đổi 42
Bảng 4.3 Kết quả thực nghiệm trên tập Google stock với số nơ-ron lớp input thay đổi
43
Bảng 4.4 Kết quả thực nghiệm trên tập Google stock với epoch thay đổi 43
Bảng 4.5 Kết quả thực nghiệm trên tập Google stock với số lớp ẩn thay đổi 44
Bảng 4.6 Kết quả thực nghiệm trên tập dữ liệu Gold price với số nơ-ron lớp ẩn thay đổi
45
Bảng 4.7 Kết quả thực nghiệm trên tập dữ liệu Gold prices với số nơ-ron lớp input thay
đổi 46
Bảng 4.8 Kết quả thực nghiệm trên tập dữ liệu Gold prices với epoch thay đổi 47
Bảng 4.9 Kết quả thực nghiệm trên tập dữ liệu Gold prices với số lớp ẩn thay đổi 47
Bảng 4.10 Kết quả thực nghiệm trên tập dữ liệu Temperature LA với số nơ-ron lớp ẩn
thay đổi 48
Bảng 4.11 Kết quả thực nghiệm trên tập dữ liệu Temperature LA với số nơ-ron lớp input
thay đổi 49
Bảng 4.12 Kết quả thực nghiệm trên tập dữ liệu Temperature LA với epoch thay đổi 50
Bảng 4.13 Kết quả thực nghiệm trên tập dữ liệu Temperature LA với số lớp ẩn thay đổi
Bảng 4.16 Kết quả thực nghiệm trên tập dữ liệu Brent oil prices với epoch thay đổi 53
Bảng 4.17 Kết quả thực nghiệm trên tập dữ liệu Brent oil prices với số lớp ẩn thay đổi
54
Trang 14DANH MỤC CHỮ VIẾT TẮT
1 AI Artificial Intelligence Trí tuệ nhân tạo
2 ANN Artificial Neural Network Mạng nơ-ron nhân tạo
Hệ số biến thiên của RMSE
5 DNN Deep Neural Network Mạng nơ-ron sâu
6 LTU Linear Threshold Unit Đơn vị ngưỡng tuyến tính
7 MAE Mean absolute error Sai số tuyệt đối trung bình
8 MAPE Mean absolute percentage
error
Trung bình sai số phần trăm tuyệt đối
9 MLP Multi-Layer Perceptron Perceptron nhiều lớp
10 MSE Mean squared error Sai số bình phương trung bình
11 RMSE Root mean squared error Căn bậc hai của sai số bình
phương trung bình
12 SE Squared error Sai số bình phương
13 SSE Sum of squared error Tổng sai số bình phương
14 SVM Support Vector Machines Máy véc-tơ hỗ trợ
Trang 151
Phần 1: MỞ ĐẦU 1.1 Tính cấp thiết của đề tài
Ngày nay, việc dự báo được ứng dụng rộng rãi trên nhiều phương diện khác nhau như kinh tế, giáo dục, xã hội, Ví dụ như dự báo giá cổ phiếu, dự báo thời tiết, dự báo động đất, thiên tai, dự báo về tỷ lệ tuyển sinh… Việc dự báo nhằm mục đích báo trước
sự thay đổi của đối tượng được dự báo dựa trên cơ sở nghiên cứu, phân tích các quy luật thông tin của đối tượng dự báo đưa ra
Chính vì những lợi ích thiết thực của việc dự báo mang lại mà vì thế nhóm chúng tôi đã quyết định chọn đề tài: “Tìm hiểu mô hình ANN và ứng dụng trong bài toán dự báo chuỗi thời gian” nhằm phân tích và hiểu rõ về mô hình ANN trong bài toán dự báo chuỗi thời gian
1.2 Mục đích của đề tài
Đề tài tập trung nghiên cứu mô hình ANN và mô hình Deep learning, đánh giá hai
mô hình trên dựa vào bài toán dự báo trên tập dữ liệu chuỗi thời gian cụ thể
1.3 Cách tiếp cận và phương pháp nghiên cứu
Nghiên cứu lý thuyết để nắm rõ các mô hình ANN và Deep learning, các phương pháp dự báo về mạng nơ-ron nhân tạo và các thuật toán lan truyền; trên cơ sở đó có thể ứng dụng vào bài toán dự báo chuỗi thời gian
1.4 Kết quả dự kiến đạt được
Dựa trên những kiến thức tìm hiểu nghiên cứu về mô hình ANN và mô hình Deep leaning để xây dựng ứng dụng demo bài toán dự báo trên các tập dữ liệu chuỗi thời gian
cụ thể
Trang 162
Phần 2: NỘI DUNG Chương 1 BÀI TOÁN DỰ BÁO CHUỖI THỜI GIAN 1.1 TỔNG QUAN VỀ CHUỖI THỜI GIAN
Một chuỗi thời gian có thể được coi là một danh sách các số và một số thông tin
về thời gian mà các số đó được ghi lại Ngoài ra cũng có một định nghĩa khác về chuỗi thời gian là “chuỗi thời gian là một chuỗi các quan sát được thu thập một cách tuần tự theo thời gian” [1]
Các thành phần của dữ liệu chuỗi thời gian bao gồm xu hướng, thời vụ, chu kỳ
Mô hình chuỗi thời gian theo xu hướng tồn tại khi có sự tăng hoặc giảm dài hạn trong
dữ liệu nhưng nó không phải là mô hình tuyến tính Mô hình theo mùa xảy ra khi chuỗi thời gian bị ảnh hưởng bởi các yếu tố theo mùa chẳng hạn như thời gian trong năm, ngày trong tuần Tính theo mùa luôn có tần số cố định và ta đã biết nó trước Dữ liệu bán thuốc trị bệnh tiểu đường được thể hiện trong Hình 1.1 Doanh số bán thuốc trị bệnh tiểu đường hàng tháng ở Úc có một xu hướng rõ ràng và ngày càng tăng Ngoài ra còn có một mô hình theo mùa cũng được thể hiện một cách rõ rệt trong Hình 1.1 này
Hình 1.1 Doanh số bán thuốc trị bệnh tiểu đường hàng tháng ở Úc [2]
Trang 173
Chuỗi dữ liệu theo chu kỳ xảy ra khi có dấu hiệu tăng và giảm nhưng không theo tần số cố định Những biến động này thường do điều kiện kinh tế và thường liên quan đến “chu kỳ kinh doanh” Sau một thời kỳ suy thoái kinh tế sẽ là thời kỳ phục hồi và bùng nổ kinh tế, kế tiếp tăng trưởng kinh tế sẽ khựng lại và khởi đầu cho một cuộc suy thoái mới Thời gian của những biến động này thường là ít nhất 2 năm [2]
Thực tế thì có nhiều dữ liệu chuỗi thời gian bao gồm cả ba yếu tố trên, do đó khi chọn phương pháp dự báo, trước tiên chúng ta sẽ cần xác định các mô hình chuỗi thời gian trong dữ liệu và sau đó chọn phương pháp để có thể dự báo mô hình chính xác
1.2 KHÁI QUÁT VỀ DỰ BÁO
1 Hiểu được các yếu tố đóng góp cho nó;
2 Có bao nhiêu dữ liệu đã có sẵn;
3 Liệu các dự đoán có ảnh hưởng đến điều mà chúng ta đang cố gắng dự báo; Trong thực tế, dự báo hiếm khi cho rằng môi trường dự đoán là không thay đổi
Đa phần mọi môi trường đều thay đổi và một mô hình dự báo tốt sẽ nắm bắt cách mà mọi thứ đang thay đổi Một mô hình dự báo được dự định để nắm bắt cách mọi thứ di chuyển, không chỉ là nơi mọi thứ đang diễn ra, đồng thời nếu chúng ta có thể biết mình đang ở đâu và chúng ta đang có xu hướng gì, chúng ta có thể phán đoán tốt hơn những việc cần làm và cách thực hiện điều đó
Như vậy các tình huống dự báo rất sẽ rất khác nhau trong các khoảng thời gian, các yếu tố xác định kết quả thực tế, các loại tập dữ liệu và nhiều khía cạnh khác Đồng thời, các phương pháp dự báo có thể đơn giản hoặc rất phức tạp và đôi khi sẽ không có
dữ liệu nào cả Và việc lựa chọn phương pháp nào sẽ phụ thuộc vào dữ liệu có sẵn và khả năng dự đoán số lượng sẽ được dự báo
Trang 184
1.2.2 Xác định những gì cần dự báo, mục tiêu và kế hoạch
Dự báo là dự đoán tương lai chính xác nhất có thể, dựa trên tất cả các thông tin có sẵn, bao gồm dữ liệu lịch sử và kiến thức về bất kỳ sự kiện nào trong tương lai có thể ảnh hưởng đến dự báo [2] Dựa theo thời gian thì có các loại dự báo như: dự báo ngắn hạn, dự báo trung hạn, dự báo dài hạn
Lập kế hoạch là xác định các hành động phù hợp được yêu cầu để làm cho dự báo của bạn phù hợp với mục tiêu Đồng thời, trong giai đoạn đầu của một dự báo, các quyết định cần phải được đưa ra về những gì cần được dự báo Tìm hiểu về những người sẽ
sử dụng các dự báo để đảm bảo rằng bạn hiểu nhu cầu của họ và cách sử dụng các dự báo đó Tìm hoặc thu thập dữ liệu mà dự báo sẽ dựa vào, định vị và đối chiếu dữ liệu có sẵn trước khi phát triển các phương pháp dự báo phù hợp
1.2.3 Dữ liệu và phương pháp dự báo
Các trường hợp về dữ liệu chuỗi thời gian bao gồm: giá cổ phiếu hàng ngày, lượng mưa hàng tháng, kết quả bán hàng hàng quý cho Amazon cũng có thể là lợi nhuận hàng năm của Google Khi dự báo dữ liệu chuỗi thời gian, mục đích là ước tính chuỗi các quan sát sẽ diễn biến như thế nào trong tương lai
Các phương pháp dự báo chuỗi thời gian đơn giản nhất chỉ sử dụng thông tin về biến được dự báo và không cố gắng khám phá các yếu tố ảnh hưởng đến hành vi của nó [2]
Biến dự đoán và dự báo chuỗi thời gian:
Ví dụ: giả sử chúng tôi muốn dự báo nhu cầu điện hàng giờ (ED) của một khu vực nóng trong thời gian mùa hè Một mô hình với các biến dự đoán có thể có dạng:
𝐸𝐷 = 𝑓(𝑐𝑢𝑟𝑒𝑛𝑡 𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒, 𝑠𝑡𝑟𝑒𝑛𝑔𝑡ℎ 𝑜𝑓 𝑒𝑐𝑜𝑛𝑜𝑚𝑦, 𝑝𝑜𝑝𝑢𝑙𝑎𝑡𝑖𝑜𝑛,
𝑡𝑖𝑚𝑒 𝑜𝑓 𝑑𝑎𝑦, 𝑑𝑎𝑦 𝑜𝑓 𝑤𝑒𝑒𝑘, 𝑒𝑟𝑟𝑜𝑟 )
Đây là mô hình giải thích vì nó giúp giải thích nguyên nhân gây ra sự thay đổi trong nhu cầu điện Bên cạnh đó, do dữ liệu nhu cầu điện tạo thành một chuỗi thời gian, nên có thể sử dụng mô hình chuỗi thời gian để dự báo
𝐸𝐷𝑡+1 = 𝑓(𝐸𝐷𝑡, 𝐸𝐷𝑡−1, 𝐸𝐷𝑡−2, 𝐸𝐷𝑡−3, … , 𝑒𝑟𝑟𝑜𝑟) Ngoài ra còn có một loại mô hình thứ ba kết hợp các tính năng của hai mô hình trên:
Trang 195
𝐸𝐷𝑡+1 = 𝑓(𝐸𝐷𝑡, 𝑐𝑢𝑟𝑒𝑛𝑡 𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒, 𝑡𝑖𝑚𝑒 𝑜𝑓 𝑑𝑎𝑦, 𝑑𝑎𝑦 𝑜𝑓 𝑤𝑒𝑒𝑘, 𝑒𝑟𝑟𝑜𝑟 ) Một mô hình giải thích rất hữu ích vì nó kết hợp thông tin về các biến khác, thay
vì chỉ các giá trị lịch sử của biến được dự báo Tuy nhiên, có một số lý do một người dự báo có thể chọn mô hình chuỗi thời gian thay vì mô hình giải thích hoặc hỗn hợp Vì đầu tiên, hệ thống có thể không được hiểu và ngay cả khi được hiểu, nó có thể cực kỳ khó đo lường các mối quan hệ được giả định để chi phối hành vi của nó Thứ hai, cần phải biết hoặc dự báo các giá trị trong tương lai của các yếu tố dự đoán khác nhau để có thể dự báo biến quan tâm và điều này có thể quá khó khăn Thứ ba, mối quan tâm chính
có thể chỉ là dự đoán những gì sẽ xảy ra, không biết tại sao nó lại xảy ra Cuối cùng, mô hình chuỗi thời gian có thể đưa ra dự báo chính xác hơn so với mô hình giải thích hoặc hỗn hợp Như vậy, các biến dự đoán thường hữu ích trong dự báo chuỗi thời gian
1.3 CÁC BƯỚC CƠ BẢN TRONG MỘT NHIỆM VỤ DỰ BÁO
sở dữ liệu và sử dụng các dự báo cho kế hoạch trong tương lai
1.3.2 Thu thập thông tin
Luôn có ít nhất hai loại thông tin cần thiết: dữ liệu thống kê và chuyên môn tích lũy của những người thu thập dữ liệu để sử dụng các dự báo [2] Thông thường, sẽ rất khó có đủ dữ liệu lịch sử để có thể phù hợp với một mô hình thống kê tốt Trong trường hợp đó, các phương pháp dự báo phán đoán có thể được sử dụng Đôi khi, dữ liệu cũ sẽ
ít hữu ích hơn do những thay đổi cấu trúc trong hệ thống được dự báo nên nhóm tác giả
có thể chọn chỉ sử dụng dữ liệu mới nhất [2] Tuy nhiên, các mô hình thống kê tốt sẽ xử
lý các thay đổi tiến hóa trong hệ thống do đó không nên bỏ dữ liệu tốt nếu không cần thiết
1.3.3 Phân tích sơ bộ
Luôn luôn bắt đầu bằng cách vẽ đồ thị dữ liệu Mô hình có nhất quán không? Mô hình có tính xu hướng đáng kể không? Hay tính mùa vụ có quan trọng không? Có bằng
Trang 206
chứng về sự hiện diện của chu kỳ kinh doanh không? Có bất kỳ ngoại lệ nào trong dữ liệu cần được giải thích bởi những người có kiến thức chuyên môn không? Làm thế nào tìm ra mối quan hệ giữa các biến có sẵn để phân tích? Từ đó có nhiều công cụ đã được phát triển để giúp phân tích những điều trên
1.3.4 Chọn lựa các mô hình phù hợp
Mô hình tốt nhất để sử dụng phụ thuộc vào tính khả dụng của dữ liệu lịch sử, độ mạnh của mối quan hệ giữa biến dự báo và bất kỳ biến giải thích nào và cách sử dụng
dự báo Đó là cách phổ biến để so sánh hai hoặc ba mô hình tiềm năng Mỗi mô hình tự
nó là một cấu trúc nhân tạo dựa trên một tập hợp các giả định (rõ ràng và ẩn) và thường liên quan đến một hoặc nhiều tham số phải được ước tính bằng cách sử dụng dữ liệu lịch sử đã biết
1.3.5 Sử dụng và đánh giá mô hình dự báo
Khi một mô hình đã được chọn và các thông số của nó đã được ước tính, mô hình được sử dụng để đưa ra dự báo Khả năng dự báo mô hình chỉ có thể được đánh giá đúng cách sau khi dữ liệu cho giai đoạn dự báo đã trở nên có sẵn [2] Một số phương pháp đã được phát triển để giúp đỡ trong việc đánh giá tính chính xác của dự báo
Trang 217
Chương 2 TỔNG QUAN VỀ ARTIFICIAL NEURAL NETWORK
2.1 GIỚI THIỆU VỀ ARTIFICIAL NEURAL NETWORK
Artificial Neural Network (ANN) là một mô hình toán học hay mô hình tính toán
được xây dựng dựa trên các mạng nơ-ron sinh học [3] ANN đã xuất hiện khá lâu, lần đầu tiên chúng được giới thiệu trở lại vào năm 1943 bởi nhà sinh lý học thần kinh Warren McCulloch và nhà toán học Walter Pitts [4] Trong bài viết mang tính bước ngoặt của
họ, hai tính toán hợp lý về ý tưởng trong hoạt động thần kinh, McCulloch đã trình bày một mô hình tính toán đơn giản về cách các nơ-ron sinh học có thể phối hợp với nhau trong não động vật để thực hiện các tính toán phức tạp bằng mệnh đề logic Đây là kiến trúc mạng nơ-ron nhân tạo đầu tiên Kể từ đó, nhiều kiến trúc khác đã được phát minh dựa trên nền tảng này
Những thành công ban đầu của ANN cho đến những năm 1960 đã dẫn đến niềm tin rộng rãi rằng chúng ta sẽ sớm trò chuyện với những cỗ máy thực sự thông minh Nhưng thực tế những điều này sẽ không được thực hiện (ít nhất là trong một thời gian dài), ANN bước vào một kỷ nguyên đen tối [4] Đầu những năm 1980, đã có một sự quan tâm đến ANN khi các kiến trúc mạng mới được phát minh và các kỹ thuật huấn
luyện tốt hơn đã được phát triển [4] Nhưng vào những năm 1990, các kỹ thuật Machine
Learning thay thế mạnh mẽ như Support Vector Machines đã được hầu hết các nhà
nghiên cứu ưa chuộng, vì chúng dường như mang lại kết quả tốt hơn và nền tảng lý thuyết mạnh mẽ hơn [4] Cuối cùng, một làn sóng quan tâm khác về ANN Làn sóng này sẽ chết như những lần trước hay sẽ phát triển hơn? Có một vài lý do chính đáng để tin rằng lần này khác biệt và sẽ có tác động sâu sắc hơn nhiều đến cuộc sống của chúng
ta [4]:
- Hiện tại có một lượng dữ liệu khổng lồ có sẵn để huấn luyện các mạng nơ-ron và
ANN, vượt trội hơn các kỹ thuật Machine Learning khác
- Sự gia tăng mạnh mẽ của sức mạnh tính toán kể từ những năm 1990 cho phép huấn luyện các mạng lưới nơ-ron lớn trong một khoảng thời gian hợp lý Điều này một phần là do Moore’s Law, nhưng cũng nhờ vào ngành công nghiệp game, nơi đã tạo ra hàng triệu thẻ GPU mạnh mẽ
Trang 228
- Các thuật toán huấn luyện đã được cải thiện Công bằng mà nói, chúng chỉ khác một chút so với những cái được sử dụng trong những năm 1990, nhưng những điều chỉnh tương đối nhỏ này có tác động rất lớn và vô cùng tích cực
- Một số hạn chế về mặt lý thuyết của ANN đã trở nên lành tính trong thực tế Ví
dụ, nhiều người nghĩ rằng các thuật toán huấn luyện ANN đã bị tiêu diệt bởi vì chúng có khả năng bị mắc kẹt trong tối ưu cục bộ, nhưng hóa ra điều này khá hiếm trong thực tế
ANN dường như đã bước vào một vòng tròn tài chính và tiến bộ Các sản phẩm tuyệt vời dựa trên ANN thường xuyên đưa ra các tin tức tiêu đề, thu hút ngày càng nhiều
sự chú ý và tài trợ cho chúng, dẫn đến ngày càng tiến bộ hơn và thậm chí nhiều sản phẩm tuyệt vời hơn
Như đã đề cập ở trên, ANN được xây dựng dựa trên các mạng nơ-ron sinh học do
đó trước khi thảo luận về các nơ-ron nhân tạo thì chúng tôi sẽ tìm hiểu về cấu trúc của một nơ-ron sinh học trước (được biểu thị trong Hình 2.1) Nơ-ron là đơn vị cơ bản cấu tạo hệ thống thần kinh và là một phần quan trọng nhất của não Não con người gồm khoảng 10 triệu nơ-ron và mỗi nơ-ron liên kết với 10.000 nơ-ron khác Ở mỗi nơ-ron có phần thân (soma) chứa nhân, các tín hiệu đầu vào qua sợi nhánh và các tín hiệu đầu ra qua sợi trục (axon) kết nối với các nơ-ron khác Hiểu đơn giản mỗi nơ-ron nhận dữ liệu đầu vào qua sợi nhánh và truyền dữ liệu đầu ra qua sợi trục, đến các sợi nhánh của các nơ-ron khác Mỗi nơ-ron nhận xung điện từ các nơ-ron khác qua sợi nhánh Nếu các xung điện này đủ lớn để kích hoạt nơ-ron, thì tín hiệu này đi qua sợi trục đến các sợi nhánh của các nơ-ron khác Do vậy ở mỗi nơ-ron cần quyết định có kích hoạt nơ-ron đấy hay không
Trang 239
Hình 2.1 Cấu tạo của nơ - ron sinh học [5]
Do đó, các nơ-ron sinh học riêng lẻ dường như hoạt động theo một cách khá đơn giản, nhưng chúng được tổ chức trong một mạng lưới rộng lớn hàng tỷ nơ-ron, mỗi nơ-ron thường kết nối với hàng ngàn nơ-ron khác Các tính toán phức tạp cao có thể được thực hiện bởi một mạng lưới các nơ-ron khá đơn giản, giống như một ổ kiến phức tạp
có thể xuất hiện từ những nỗ lực kết hợp của những con kiến đơn giản
2.2 PERCEPTRON
Perceptron là một trong những kiến trúc ANN đơn giản nhất, được phát minh vào
năm 1957 bởi Frank Rosenblatt [4] Nó dựa trên một nơ-ron nhân tạo có chút khác biệt
(xem Hình 2.2) được gọi là đơn vị ngưỡng tuyến tính - Linear Threshold Unit (LTU):
đầu vào và đầu ra là số (thay vì giá trị nhị phân) và mỗi kết nối đầu vào được liên kết với một trọng số LTU tính tổng của các đầu vào có trọng số (𝑧 = 𝑤1𝑥1+ 𝑤2𝑥2+ ⋯ +
𝑤𝑛𝑥𝑛 = 𝒘𝑇 𝒙), sau đó áp dụng hàm bước cho tổng đó và đưa ra kết quả:
ℎ𝒘(𝒙) = 𝑠𝑡𝑒𝑝 (𝑧) = 𝑠𝑡𝑒𝑝(𝒘𝑇 𝒙)
Trang 2410
Hình 2.2 Linear Threshold Unit
Hàm bước được sử dụng trong perceptron là hàm bước Heaviside đôi khi hàm sign
Nó tính toán một tổ hợp tuyến tính của các đầu vào và nếu kết quả vượt quá ngưỡng, nó đưa ra lớp dương hoặc nếu không phải là lớp âm Ví dụ: có thể sử dụng một LTU duy nhất để phân loại hoa iris dựa trên chiều dài và chiều rộng của cánh hoa Huấn luyện LTU có nghĩa là tìm các giá trị phù hợp cho 𝑤1, 𝑤2 và 𝑤3
Một perceptron có hai đầu vào và ba đầu ra được biểu diễn trong Hình 2.3,
perceptron này có thể phân loại các thể hiện đồng thời thành ba lớp nhị phân khác nhau,
điều này làm cho nó trở thành một phân loại đa tham số
Hình 2.3 Mô hình Perceptron
Trang 2511
Vậy một perceptron được huấn luyện như thế nào? Thuật toán huấn luyện
perceptron do Frank Rosenblatt đề xuất phần lớn lấy cảm hứng từ quy tắc Hebb Trong
cuốn sách The Organization of Behavior, xuất bản năm 1949, Donald Hebb đã đề xuất rằng khi một tế bào nơ-ron sinh học thường kích hoạt một tế bào nơ-ron khác, sự kết nối
giữa hai tế bào nơ-ron này phát triển mạnh mẽ hơn Cụ thể hơn, perceptron được cung
cấp một trường hợp huấn luyện tại một thời điểm và đối với mỗi trường hợp, nó đưa ra
dự đoán của mình Đối với mỗi nơ-ron đầu ra tạo ra một dự đoán sai, nó củng cố các trọng số kết nối từ các đầu vào để từ đó có thể góp phần vào dự đoán chính xác hơn Quy tắc được thể hiện trong Công thức 2 [4]
+ 𝜂 là tốc độ học tập
Ranh giới quyết định của mỗi nơ-ron đầu ra là tuyến tính, do đó perceptron không
có khả năng học các tập phức tạp (giống như các phân loại Hồi quy Logistic) Tuy nhiên, nếu các trường hợp huấn luyện có thể phân tách tuyến tính, Rosenblatt đã chứng minh rằng thuật toán này sẽ hội tụ thành một giải pháp Đây được gọi là định lý hội tụ
Perceptron
Lưu ý rằng trái với các phân loại Hồi quy Logistic, perceptron không đưa ra xác
suất lớp; thay vào đó, chúng chỉ đưa ra dự đoán dựa trên một ngưỡng cứng Đây là một
trong những lý do tốt để giải thích việc thích dùng Hồi quy Logistic hơn perceptron
Trong bài nghiên cứu năm 1969 của Marvin Minsky và Seymour Papert có tiêu đề
Perceptrons, nhóm tác giả đã nhấn mạnh một số điểm yếu nghiêm trọng của perceptron
là chúng không có khả năng giải quyết một số vấn đề bình thường (ví dụ: vấn đề phân
Trang 2612
loại OR (XOR) (Hình 2.4) Tất nhiên điều này cũng đúng với bất kỳ mô hình phân loại
tuyến tính nào khác (chẳng hạn như phân loại Hồi quy Logistic), nhưng các nhà nghiên cứu đã mong đợi nhiều hơn từ perceptron, và sự thất vọng của họ là rất lớn Kết quả là
nhiều nhà nghiên cứu đã bỏ hoàn toàn việc nghiên cứu của các mạng nơ-ron và ủng hộ các vấn đề cấp cao hơn như logic, giải quyết vấn đề và tìm kiếm
Tuy nhiên, nó chỉ ra rằng một số hạn chế của perceptron có thể được loại bỏ bằng cách xếp chồng nhiều perceptron ANN kết quả được gọi là perceptron nhiều lớp Multi-
Layer Perceptron (MLP) Cụ thể, MLP có thể giải quyết vấn đề XOR, vì bạn có thể xác
minh bằng cách tính toán đầu ra của MLP được biểu thị ở bên phải của Hình 2.4, cho mỗi kết hợp đầu vào: với đầu vào (0, 0) hoặc (1, 1 ) thì đầu ra là 0 và với đầu vào (0, 1) hoặc (1, 0) thì đầu ra là 1
Hình 2.4 Vấn đề phân loại XOR và MLP giải quyết nó [4]
2.3 MULTI-LAYER PERCEPTRON
Một Multi Layer Perceptron (MLP) bao gồm một lớp đầu vào, một hoặc nhiều lớp
LTU, được gọi là các lớp ẩn và một lớp LTU cuối cùng được gọi là lớp đầu ra (xem
Hình 2.5) Mỗi lớp ngoại trừ lớp đầu ra bao gồm một nơ-ron thiên vị (bias) và được kết nối đầy đủ với lớp tiếp theo Khi ANN có hai hoặc nhiều lớp ẩn, nó được gọi là Deep
Neural Network (DNN) [4]
Trang 2713
Hình 2.5 Multi-Layer Perceptron
Trong nhiều năm, các nhà nghiên cứu đã vật lộn để tìm cách huấn luyện MLP, nhưng không thành công Nhưng vào năm 1986, D E Rumelhart đã xuất bản một bài
viết đột phá giới thiệu thuật toán huấn luyện backpropagation [4]
Đối với mỗi phương pháp huấn luyện, thuật toán cung cấp nó cho mạng và tính toán đầu ra của mỗi nơ-ron trong mỗi lớp liên tiếp (đây là đường truyền chuyển tiếp, giống như khi đưa ra dự đoán) Sau đó, nó tính sai số đầu ra của mạng (tức là sự khác biệt giữa đầu ra mong muốn và đầu ra thực tế của mạng) và nó tính toán mỗi nơ-ron trong lớp ẩn cuối cùng đóng góp bao nhiêu cho mỗi sai số nơ-ron đầu ra Sau đó, nó tiến hành tính xem có bao nhiêu phần đóng góp sai số này đến từ mỗi nơ-ron trong lớp ẩn trước đó và cứ thế cho đến khi thuật toán chuyển tiếp đến lớp đầu vào Truyền ngược này tính toán hiệu quả độ dốc sai số trên tất cả các trọng số kết nối trong mạng bằng cách truyền độ dốc sai số về phía sau trong mạng (do đó là tên của thuật toán) Việc chuyển tiếp và đảo ngược của truyền ngược lại chỉ đơn giản là thực hiện tự động chế độ
đảo ngược Bước cuối cùng của thuật toán backpropagation là bước Gradient Descent
trên tất cả các trọng số kết nối trong mạng, sử dụng các gradient sai số đã được tính trước đó
Nói một cách ngắn gọn thì đối với mỗi trường hợp huấn luyện, thuật toán
backpropagation trước tiên đưa ra dự đoán (chuyển tiếp), tính sai số, sau đó đi qua từng
lớp để đảo ngược sự đóng góp sai số từ mỗi kết nối (vượt qua ngược lại) và cuối cùng
là điều chỉnh các trọng số kết nối để giảm sai số (bước Gradient Descent)
Trang 2814
Để thuật toán này hoạt động chính xác, các tác giả đã thực hiện một thay đổi quan trọng đối với kiến trúc MLP, họ đã thay thế hàm bước bằng hàm kích hoạt Điều này rất cần thiết bởi vì hàm bước chỉ chứa các phân đoạn phẳng, do đó không có độ dốc để làm
việc (Gradient Descent không thể di chuyển trên một bề mặt phẳng), trong khi hàm kích hoạt có đạo hàm không khác được xác định rõ ở mọi nơi, cho phép Gradient Descent tạo ra một số tiến bộ ở mọi bước Thuật toán backpropagation có thể được sử dụng với
dữ liệu sau đó
2.4.2 Phân tích và xử lý dữ liệu
Chuẩn hóa dữ liệu thường được thực hiện trước khi quá trình huấn luyện bắt đầu Như đã đề cập trước đó, khi các hàm kích hoạt phi tuyến được sử dụng tại các nơ-ron lớp output, các giá trị đầu ra mong muốn phải được chuyển đổi sang phạm vi của các đầu ra thực tế Ngay cả khi sử dụng hàm kích hoạt đầu ra tuyến tính, vẫn có thể thuận lợi để chuẩn hóa các đầu ra cũng như các đầu vào để tránh các vấn đề tính toán để đáp ứng yêu cầu thuật toán và tạo điều kiện học tập mạng
Chuẩn hóa các giá trị đầu ra thường không phụ thuộc vào chuẩn hóa các giá trị đầu vào Tuy nhiên, đối với các vấn đề dự báo chuỗi thời gian, việc chuẩn hóa các giá trị đầu ra thường được thực hiện cùng với các giá trị đầu vào Việc lựa chọn phạm vi mà giá trị đầu vào và đầu ra được chuẩn hóa phụ thuộc phần lớn vào hàm kích hoạt của các nơ-ron lớp output, với [0, 1] điển hình cho hàm logistic và [-1, 1] cho hàm hyperbolic tangent [6]
Trang 2915
2.4.3 Xây dựng cấu trúc ANN
Một ANN thường bao gồm các lớp nơ-ron Trong MLP, tất cả các nơ-ron lớp input nằm trong một lớp đầu vào, tất cả các nơ-ron lớp output nằm trong một lớp đầu ra và các nơ-ron lớp ẩn được phân phối thành một hoặc nhiều lớp ẩn ở giữa Khi thiết kế MLP, người ta phải xác định các tham số sau: số lượng nơ-ron lớp input, số lượng các lớp ẩn
và các nơ-ron lớp ẩn, số lượng nơ-ron lớp output
2.4.3.1 Số lượng các nơ-ron lớp input
Số lượng nơ-ron lớp input tương ứng với số lượng biến trong vectơ đầu vào được
sử dụng để dự báo các giá trị trong tương lai Đối với dự báo nhân quả, số lượng đầu vào thường minh bạch và tương đối dễ lựa chọn Trong bài toán dự báo chuỗi thời gian,
số lượng nơ-ron lớp input tương ứng với số lượng quan sát bị trễ được sử dụng để khám phá mẫu cơ bản trong chuỗi thời gian và để dự báo cho các giá trị trong tương lai Tuy nhiên, hiện tại không có cách nào được đề xuất một cách có hệ thống để xác định con
số này Việc lựa chọn tham số này nên được đưa vào quy trình xây dựng mô hình Lý tưởng nhất, chúng tôi mong muốn một số lượng nhỏ các nơ-ron thiết yếu có thể tiết lộ các tính năng độc đáo được nhúng trong dữ liệu Quá ít hoặc quá nhiều nơ-ron lớp input
có thể ảnh hưởng đến khả năng học tập hoặc dự đoán của mạng
Theo tác giả, số lượng nơ-ron lớp input có lẽ là biến quyết định quan trọng nhất cho vấn đề dự báo chuỗi thời gian vì nó chứa thông tin quan trọng về cấu trúc tự tương quan phức tạp (tuyến tính và / hoặc phi tuyến) trong dữ liệu [6]
2.4.3.2 Số lượng các lớp ẩn và nơ – ron lớp ẩn
Lớp ẩn và các nơ-ron đóng vai trò rất quan trọng đối với nhiều ứng dụng thành công của mạng nơ-ron Chính các nơ-ron lớp ẩn trong lớp ẩn cho phép các mạng nơ-ron phát hiện tính năng, nắm bắt mẫu trong dữ liệu và thực hiện ánh xạ phi tuyến phức tạp giữa các biến đầu vào và đầu ra
Đối với nhiều vấn đề chúng ta có thể bắt đầu chỉ với một hoặc hai lớp ẩn và nó sẽ hoạt động tốt [6] Đối với các vấn đề phức tạp hơn, chúng ta có thể tăng dần số lượng các lớp ẩn, cho đến khi bạn bắt đầu vượt quá tập huấn luyện [6] Các nhiệm vụ rất phức tạp, chẳng hạn như phân loại hình ảnh lớn hoặc nhận dạng giọng nói, thường yêu cầu các mạng có hàng chục lớp (hoặc thậm chí hàng trăm, nhưng không được kết nối đầy
Trang 3016
đủ) và chúng cần một lượng dữ liệu huấn luyện khổng lồ Tuy nhiên, bạn sẽ hiếm khi phải huấn luyện các mạng như vậy từ đầu: việc sử dụng lại các bộ phận của một mạng hiện đại được thực hiện một nhiệm vụ tương tự phổ biến hơn nhiều Huấn luyện sẽ nhanh hơn rất nhiều và yêu cầu ít dữ liệu hơn
Vấn đề xác định số lượng nơ-ron lớp ẩn tối ưu là một vấn đề quan trọng nhưng phức tạp Nói chung, các mạng có ít nơ-ron lớp ẩn được ưa thích hơn vì chúng thường
có khả năng khái quát hóa tốt hơn và ít vấn đề quá mức [6] Nhưng các mạng có quá ít nơ-ron lớp ẩn có thể không đủ sức để mô hình hóa và tìm hiểu dữ liệu
2.4.3.3 Số lượng các nơ-ron output
Số lượng các nơ-ron lớp output tương đối dễ dàng để xác định vì nó liên quan trực tiếp đến vấn đề đang nghiên cứu Đối với một vấn đề dự báo chuỗi thời gian, số lượng nơ-ron lớp output thường tương ứng với đường ngang dự báo Có hai loại dự báo: dự báo trước một bước (sử dụng một nơ-ron lớp output) và dự báo trước nhiều bước [6] Hai cách để thực hiện dự báo nhiều bước Đầu tiên được gọi là dự báo lặp được sử dụng trong mô hình Box-Jenkins trong đó các giá trị dự báo được sử dụng lặp làm đầu vào cho các dự báo tiếp theo Trong trường hợp này, chỉ cần một nơ-ron lớp output Cách thứ hai được gọi là phương thức trực tiếp là để cho mạng nơ-ron có một số nơ-ron lớp output để dự báo trực tiếp từng bước trong tương lai
Trang 3117
Hình 2.6 Đồ thị hàm Sigmoid
Hàm Sigmoid nhận đầu vào là một số thực và chuyển thành một giá trị trong
khoảng (0;1) (hình 2.8) Đầu vào là số thực âm rất nhỏ sẽ cho đầu ra tiệm cận với 0, ngược lại, nếu đầu vào là một số thực dương lớn sẽ cho đầu ra là một số tiệm cận với 1
Trang 322.4.5 Thiết lập dữ liệu dùng để huấn luyện, kiểm tra
Như chúng tôi đã đề cập trước đó, tập huấn luyện và tập kiểm tra thường được yêu cầu để xây dựng bài toán dự báo sử dụng ANN Tập huấn luyện được sử dụng để phát triển mô hình ANN và tập kiểm tra được thông qua để đánh giá khả năng dự báo của mô
hình Đôi khi, có một tập khác được gọi là tập xác thực (validation) cũng được sử dụng
để tránh vấn đề quá khớp hoặc để xác định điểm dừng của quá trình huấn luyện Thông thường sử dụng một bộ kiểm tra cho cả mục đích xác thực và kiểm tra, đặc biệt với các
bộ dữ liệu nhỏ Theo quan điểm của nhóm tác giả, việc lựa chọn tập huấn luyện và kiểm tra có thể ảnh hưởng đến hiệu quả của ANN [6]
Vấn đề đầu tiên ở đây là việc phân chia dữ liệu thành các bộ huấn luyện và kiểm tra Mặc dù không có giải pháp chung cho vấn đề này, một số yếu tố như đặc điểm của vấn đề, loại dữ liệu và kích thước của dữ liệu có sẵn cần được xem xét khi đưa ra quyết định Điều này có tầm quan trọng đặc biệt đối với các vấn đề dự báo chuỗi thời
Trang 33dữ liệu thành mười tập con độc lập Việc ước tính mô hình được thực hiện bằng chín tập con và sau đó mô hình được kiểm tra với tập còn lại Theo Granger (1993) đề xuất rằng đối với các mô hình dự báo phi tuyến, ít nhất 20% của bất kỳ tập dữ liệu nào phải được giữ lại để đánh giá dự báo ngoài tập [6]
Một yếu tố liên quan chặt chẽ là kích thước tập dữ liệu Không có quy tắc xác định tồn tại cho yêu cầu của kích thước tập dữ liệu cho một vấn đề nhất định Lượng dữ liệu sử dụng cho huấn luyện mạng phụ thuộc vào cấu trúc mạng, phương pháp huấn luyện và mức độ phức tạp của vấn đề cụ thể hoặc lượng nhiễu trong dữ liệu Nói chung, như trong bất kỳ phương pháp thống kê nào, kích thước tập dữ liệu có liên quan chặt chẽ với độ chính xác cần thiết của vấn đề Kích thước càng lớn, thì kết quả dự báo càng chính xác hơn
Với một mức độ chính xác nhất định, một tập dữ liệu lớn được yêu cầu vì mối quan
hệ cơ bản giữa đầu ra và đầu vào trở nên phức tạp hơn hoặc độ nhiễu trong dữ liệu tăng lên Tuy nhiên, trong thực tế, kích thước tập dữ liệu bị hạn chế bởi tính khả dụng của dữ liệu Độ chính xác của một vấn đề dự báo cụ thể cũng có thể bị ảnh hưởng bởi kích thước tập dữ liệu được sử dụng trong tập huấn luyện hoặc tập kiểm tra
2.4.5.1 Vấn đề Overfiting và Underfiting
Mô hình sau khi huấn luyện có thể đạt hiệu quả không tốt khi dự đoán với một dữ liệu mới Chuyện này xảy ra là do mô hình chưa tổng quát hoá được với toàn bộ tập dữ liệu Nguyên nhân cũng khá dễ hiểu khi mà tập huấn luyện chỉ là một tập nhỏ chưa thể đại diện cho toàn thể dữ liệu và hơn nữa nó còn có thể bị nhiễu Người ta chia nguyên
nhân ra làm hai loại chính là Overfiting và Underfiting
Mô hình được coi là chưa khớp (Underfiting) nếu nó chưa phù hợp với tập dữ liệu
huấn luyện và cả các tập mới khi dự đoán Nguyên nhân có thể là do mô hình chưa đủ
độ phức tạp cần thiết để bao quát được tập dữ liệu
Trang 3420
Mô hình Overfiting là mô hình rất hợp lý, rất khớp với tập huấn luyện nhưng khi
đưa nó ra dự đoán với dữ liệu mới thì lại không phù hợp Nguyên nhân có thể do chưa
đủ dữ liệu để đánh giá hoặc do mô hình quá phức tạp Mô hình bị quá phức tạp khi mà
mô hình sử dụng cả những nhiễu lớn trong tập dữ liệu để học từ đó mất tính tổng quát của mô hình
Cả hai hiện tượng Overfitting và Underfitting đều khiến mô hình xây dựng có độ chính xác kém Nhưng hiện nay, vấn đề phổ biến nhất xuất hiện là Overfitting [7]
Overfitting thực sự là một vấn đề quan trọng bởi vì việc đánh giá mô hình học máy trên
bộ dữ liệu huấn luyện sẽ khác biệt với việc đánh giá độ chính xác của tổng thể (những
dữ liệu mà mô hình chưa gặp bao giờ) Có hai kỹ thuật quan trọng trong việc đánh giá
mô hình học máy và tránh hiện tượng Overfitting là Validation và Cross-validation
2.4.5.2 Validation [8]
Chia tập dữ liệu ra thành hai tập nhỏ: tập train và tập test
Phương pháp này là trích từ tập train ra một tập con nhỏ và thực hiện việc đánh giá
mô hình trên tập con nhỏ này [8] Tập con nhỏ được trích ra từ tập train này được gọi là
tập validation Lúc này, tập train là phần còn lại của tập train ban đầu Train error được
tính trên tập train mới này và có một khái niệm nữa được định nghĩa tương tự như trên
là validation error tức là sai số được tính trên tập validation
Với khái niệm mới này, ta tìm mô hình sao cho cả train eror và validation error đều nhỏ, qua đó có thể dự đoán được rằng test error cũng nhỏ Phương pháp thường được sử dụng là sử dụng nhiều mô hình khác nhau Mô hình nào cho validation error
nhỏ nhất sẽ là mô hình tốt
Thông thường, ta bắt đầu từ mô hình đơn giản, sau đó tăng dần độ phức tạp của
mô hình Tới khi nào validation error có chiều hướng tăng lên thì chọn mô hình ngay trước đó Chú ý rằng mô hình càng phức tạp thì train error có xu hướng càng nhỏ đi
Hình 2.9 dưới đây mô tả ví dụ phía trên với bậc của đa thức tăng từ 1 đến 8 Tập validation bao gồm 10 điểm được lấy ra từ tập training ban đầu
Trang 3521
Hình 2.9 Lựa chọn mô hình dựa trên validation [8]
Chúng ta hãy tạm chỉ xét hai đường màu lam và đỏ, tương ứng với train error và
validation error Khi bậc của đa thức tăng lên, train error có xu hướng giảm Điều này
dễ hiểu vì đa thức bậc càng cao, dữ liệu càng được phù hợp Quan sát đường màu đỏ,
khi bậc của đa thức là 3 hoặc 4 thì validation error thấp, sau đó tăng dần lên Dựa vào
validation error, ta có thể xác định được bậc cần chọn là 3 hoặc 4 Quan sát tiếp đường
màu lục, tương ứng với test error, thật là trùng hợp, với bậc bằng 3 hoặc 4, test error
cũng đạt giá trị nhỏ nhất, sau đó tăng dần lên Vậy cách làm này ở đây đã tỏ ra hiệu quả
Việc không sử dụng tập test khi lựa chọn mô hình ở trên nhưng vẫn có được kết quả khả quan vì ta giả sử rằng tập validation và tập test có chung một đặc điểm nào đó
Và khi cả hai đều là dữ liệu chưa biết thì error trên hai tập này sẽ tương đối giống nhau Khi bậc nhỏ (bằng 1 hoặc 2), cả ba error đều cao, ta nói mô hình bị underfitting
2.4.5.3 Cross-validation
Cross-validation là một cải tiến của validation với lượng dữ liệu trong tập
validation là nhỏ nhưng chất lượng mô hình được đánh giá trên nhiều tập validation
khác nhau [8] Một cách thường được sử dụng là chia tập train thành k tập con không
có phần tử chung, có kích thước gần bằng nhau Tại mỗi lần kiểm thử, được gọi là run, một trong số k tập con được lấy ra làm tập validation Mô hình sẽ được xây dựng dựa
vào hợp của k−1 tập con còn lại Mô hình cuối được xác định dựa trên trung bình của
các train error và validation error Cách làm này còn có tên gọi là k-fold cross
Trang 3622
validation Khi k bằng với số lượng phần tử trong tập train ban đầu, tức mỗi tập con có đúng một phần tử, ta gọi kỹ thuật này là leave-one-out
2.4.6 Huấn luyện mạng ANN
Huấn luyện mạng nơ-ron là làm cho trọng số các kết nối của mạng được sửa đổi lặp đi lặp lại để giảm thiểu sai số giữa các giá trị đầu ra thực tế và mong muốn cho tất
cả các nơ-ron đầu ra trên tất cả các mẫu đầu vào Sự tồn tại của nhiều phương pháp tối
ưu hóa khác nhau (Fletcher, 1987) cung cấp nhiều lựa chọn khác nhau cho huấn luyện mạng lưới nơ-ron Phương pháp huấn luyện được sử dụng phổ biến nhất là thuật toán
Backpropagation (thuật toán lan truyền ngược) [6]
Thuật toán được mô tả như sau:
Bước 1: Lan truyền tiến các tính toán trong mạng truyền thẳng Khi đó, đầu ra của một lớp trở thành đầu vào của lớp kế tiếp
- Các nơron trong lớp thứ nhất nhận các tín hiệu từ bên ngoài
- Đầu ra của lớp cuối cùng được xem là đầu ra của mạng
Bước 2: Lan truyền ngược (lan truyền lỗi)
- Căn cứ vào giá trị đầu ra mong muốn của vector đầu vào, hệ thống sẽ tính toán giá trị lỗi
- Giá trị lỗi được lan truyền ngược từ lớp đầu ra đến lớp đầu vào
Bước 3: Cập nhật lại các trọng số và độ lệch tương ứng
Để hiểu rõ hơn về thuật toán chúng tôi sẽ đề cập chi tiết từng thuật toán ở phần dưới đây như sau:
2.4.6.1 Thuật toán lan truyền tiến [9]