1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

73 34 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 3,47 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

THÀ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 6

LỜ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 8

Chỉ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 9

MỤ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 10

2.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 11

4.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 12

DANH 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 13

DANH 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 14

DANH 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 15

1

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 16

2

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 17

3

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 18

4

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 19

5

𝐸𝐷𝑡+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 20

6

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 21

7

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 22

8

- 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 23

9

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 24

10

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 25

11

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 26

12

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 27

13

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 28

14

Để 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 29

15

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 30

16

đủ) 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 31

17

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 32

2.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 33

dữ 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 34

20

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 35

21

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 36

22

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]

Ngày đăng: 27/11/2021, 15:52

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] J. Brownlee, "What Is Time Series Forecasting?," Machine Learning Mastery, 2 12 2016. [Online]. Available: https://machinelearningmastery.com/time-series-forecasting/. [Accessed 28 9 2019] Sách, tạp chí
Tiêu đề: What Is Time Series Forecasting
[3] Wikipedia contributors, "Artificial neural network," Wikipedia, [Online]. Available:https://en.wikipedia.org/w/index.php?title=Artificial_neural_network&oldid=972940778. [Accessed 15 9 2019] Sách, tạp chí
Tiêu đề: Artificial neural network
[5] Quasar Jarosz, "File:Neuron-no labels2.png," English Wikipedia, [Online]. Available: https://commons.wikimedia.org/w/index.php?curid=7616130.[Accessed 15 9 2019] Sách, tạp chí
Tiêu đề: File:Neuron-no labels2.png
[7] "Vấn đề Overfitting & Underfitting trong Machine Learning," Trí tuệ nhân tạo, 2 4 2019. [Online]. Available: https://trituenhantao.io/kien-thuc/van-de-overfitting-underfitting-trong-machine-learning/. [Accessed 24 10 2019] Sách, tạp chí
Tiêu đề: Vấn đề Overfitting & Underfitting trong Machine Learning
[8] "Bài 15: Overfitting," Machine Learning cơ bản, 4 3 2017. [Online]. Available: https://machinelearningcoban.com/2017/03/04/overfitting/. [Accessed 24 10 2019] Sách, tạp chí
Tiêu đề: Bài 15: Overfitting
[9] Tạ Quốc Dũng, Lê Thế Hà, Phạm Duy Khang, "Ứng dụng mạng Neural nhân tạo (ANN) trong dự báo độ rỗng," Tạp chí dầu khí, 2019 Sách, tạp chí
Tiêu đề: Ứng dụng mạng Neural nhân tạo (ANN) trong dự báo độ rỗng
[11] Matt Mazur, "A Step by Step Backpropagation Example," 2017. [Online]. Available: https://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/. [Accessed 15 11 2019] Sách, tạp chí
Tiêu đề: A Step by Step Backpropagation Example
[12] Wikipedia contributors, "Chain rule," Wikipedia, [Online]. Available: https://en.wikipedia.org/w/index.php?title=Chain_rule&oldid=950737064.[Accessed 15 11 2019] Sách, tạp chí
Tiêu đề: Chain rule
[13] M. Copeland, "What’s the Difference Between Artificial Intelligence, Machine Learning and Deep Learning?," 29 7 2016. [Online]. Available:https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/. [Accessed 4 4 2020] Sách, tạp chí
Tiêu đề: What’s the Difference Between Artificial Intelligence, Machine Learning and Deep Learning
[14] "Deep Learning là gì? Tổng quan về Deep learning," Nordic Coder, 30 12 2019. [Online]. Available: https://nordiccoder.com/blog/deep-learning-la-gi/.[Accessed 2 4 2020] Sách, tạp chí
Tiêu đề: Deep Learning là gì? Tổng quan về Deep learning
[15] "Bài 35: Lược sử Deep Learning," Machine Learning cơ bản, 22 7 2018. [Online]. Available:https://machinelearningcoban.com/2018/06/22/deeplearning/. [Accessed 2020 4 5] Sách, tạp chí
Tiêu đề: Bài 35: Lược sử Deep Learning
[16] Wikipedia contributors, "Root-mean-square deviation," Wikipedia, 17 2 2020. [Online]. Available: https://en.wikipedia.org/w/index.php?title=Root-mean-square_deviation&oldid=941256353. [Accessed 10 6 2020] Sách, tạp chí
Tiêu đề: Root-mean-square deviation
[2] Hyndman, R.J., & Athanasopoulos, G., "Forecasting: principles and practice,&#34 Khác
[4] Aurélien Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow, 2017, pp. 253-273 Khác
[6] Guoqiang Zhang, B. Eddy Patuwo, Michael Y. Hu, Forecasting with artificial neural networks: The state of the art, Elsevier, 1998 Khác
[10] D. T. Trang, Ứng dụng mạng nơron nhân tạo dự báo số học sinh tuyển vào Trung tâm GDNNGDTX quận Đống Đa, 2017 Khác

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w