CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI Chương này giới thiệu sơ lược về đề tài, mục tiêu và phạm vi nghiên cứu cũng như cấu trúc của đề tài. CƠ SỞ LÝ THUYẾT Chương này trình bày chi tiết về các vấn đề lý thuyết sẽ được áp dụng trong đề tài như: Dự báo dữ liệu chuỗi thời gian bằng mạng nơron DBN, Deep Belief NetWorks (DBNs) và Tham số Deep Belief Networks, meta-heuristic Harmony Search và PSO. NHỮNG CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN Chương này trình bày sơ lược các công trình có liên quan đến tinh chỉnh tham số của mạng DBN khi dùng mạng này để dự báo dữ liệu chuỗi thời gian.
Đó là công trình “Tinh chỉnh Deep Belief Networks sử dụng giải thuật Harmony Search” của tác giả Papa và cộng sự [2] áp dụng DBN trong các bài toàn phân lớp, và công trình “Dự báo chuỗi thời gian sử dụng DBN” của Kuremoto và các đồng nghiệp [1] nhằm củng cố lý thuyết và nền tảng của luận văn này. XÂY DỰNG MÔ HÌNH HUẤN LUYỆN VÀ DỰ BÁO DỰA VÀO MẠNG NƠ-RON HỌC SÂU DBN Chương này trình bày chi tiết về mô hình dự đoán, lược đồ hoạt động của mô hình. Cụ thể là ý tưởng của mô hình, quá trình kết hợp huấn luyện mạng DBN và tinh chỉnh tham số. Ngoài ra chương này còn đề cập cụ thể quá trình kết hợp của giải thuật phân kỳ tương phản kết hợp với giải thuật lan truyền ngược BP và các module source code được hiện thực bằng ngôn ngữ Python.
THỰC NGHIỆM VÀ ĐÁNH GIÁ Chương này trình bày thực nghiệm và đánh giá với độ đo MSE, so sánh độ chính xác trong dự báo khi sử dụng các phương pháp tinh chỉnh tham số bằng phương pháp ngẫu nhiên và các phương pháp meta-heuristic như là PSO hay đặc biệt là giải thuật Harmony Search. KẾT LUẬN Chương này đánh giá kết quả đạt được, các mặt hạn chế và hướng phát triển của đề tài. CƠ SỞ LÝ THUYẾT Phần đầu chương này giới thiệu dự báo dữ liệu chuỗi thời gian bằng cách sử dụng mạng nơron. Phần thứ hai giới thiệu mạng Deep Belief Networks.
Phần thứ ba giới thiệu phương pháp meta-heuristic PSO. Phần cuối giới thiệu phương pháp meta- heuristic Harmony Search.1 Dự Báo Dữ Liệu Chuỗi Thời Gian Là việc quan sát và mô hình hóa chuỗi dữ liệu để có được một dự báo chính xác. Dữ liệu chuỗi thời gian có thể là dữ liệu về kinh tế như là cố phiếu, tỷ giá hối đoái, cũng có thể là dữ liệu liên quan đến vật lý như thời tiết, vết đen mặt trời, dòng chảy của sông. Việc dự báo chính xác từ dữ liệu chuỗi thời gian không phải là dễ dàng, bởi các lý do như sau: - Số lượng dữ liệu hạn chế, chuỗi dữ liệu có được quá ngắn để có thể tiến hành dự báo - Có nhiều điểm dữ liệu thu thập bị sai lệch, che khuất hay còn gọi là nhiễu - Các thay đổi theo thời gian, dữ liệu thời gian cũ đã không còn phù hợp để phân tích trong thời điểm hiện tại.
- Có nhiều phương pháp để dự báo và việc lựa chọn phương pháp dự báo phù hợp là không hề đơn giản. Dữ liệu chuỗi thời gian thường được dự báo bằng phương pháp thống kê như là ARIMA, hồi quy, làm trơn hàm mũ (exponential smoothing) hoặc phương pháp học máy như K-NN, ANN, SVM.2 Dự Báo Dữ Liệu Chuỗi Thời Gian Sử Dụng Mạng Nơ Ron Mạng nơron đã được sử dụng rộng rãi trong việc dự báo chuỗi thời gian, thường thấy là các mạng truyền thẳng (feed-forward networks) với việc sử dụng cửa sổ trượt thông qua tính thứ tự của dữ liệu. Mạng nơron xem dữ liệu chuỗi thời gian 𝑋1 , 𝑋2 , … , 𝑋𝑛 như là một sự liên kết của một vector đầu vào với một giá trị kết quả. Kích thước của cửa sổ trượt tương ứng với số lượng thành phần đầu vào của mạng nơron.
Theo chiều thuận, các mức hoạt động được truyền qua một lớp ẩn đến một thành phần đầu ra. Lỗi 7 sử dụng cho quá trình học của thuật toán lan truyền ngược (BP) được tính bằng việc so sánh giá trị đầu ra với giá trị có được của chuỗi thời gian tại thời điểm 𝑡 + 1. Lỗi sẽ được truyền ngược về các kết nối giữa đầu ra và lớp ẩn. Sau đó toàn bộ trọng số sẽ được cập nhật, kết thúc một lần huấn luyện (xem hình 1).
Hình 1: Huấn luyện mạng nơ ron đê dự báo chuỗi thời gian [9] 2.3 Deep Belief NetWorks (DBNs) Mạng nơron học sâu được xây dựng dựa trên cơ sở một ANN, tổ chức thành từng lớp, kết quả của mỗi lớp lại biểu diễn các thuộc tính của lớp cao hơn. Các mạng nơron học sâu giúp giải quyết các bài toán phức tạp hơn với độ chính xác cao hơn vì có thể tăng số chiều hoặc tăng số biến đổi phi tuyến. Một vài mạng nơron học sâu tiêu biểu như là: Deep Belief Network, mạng nơron tích chập, mạng Autoencoder … Hình sau đây mô tả cấu trúc của của mạng nơron học sâu: 8 Hình 2: Sự khác biệt giữa mạng nơron kiến trúc sâu và kiến trúc nông [9] DBN là một loại trong Deep Neural Network, nó kết hợp nhiều lớp ẩn và không có kết nối giữa các thành phần trong cùng một lớp. DBN được thiết kế theo mô hình sinh, nó bao gồm nhiều Restricted Boltzman Machine (RBM) xếp chồng lên nhau, mỗi RBM là một mô hình sinh dựa vào năng lượng.
RBM bao gồm một lớp có thể quan sát và một lớp ẩn, mỗi thành phần của RBM có trạng thái thể hiện ở dạng nhị phân (0 hoặc 1), và được kết nối hai chiều có trọng số với lớp kế cận. Quá trình huấn luyện DBN thường bao gồm 2 phần, phần huấn luyện không giám sát cho các RBM còn được gọi là tiền huấn luyện (pre-training). Việc huấn luyện hướng đến cực đại hóa xác suất của giá trị lớp quan sát, giải thuật cho việc huấn luyện không giám sát được Hinton đề nghị là giải thuật Phân kỳ tương phản (Contrastive Divergence) dựa vào cách lấy mẫu Gibb 𝑘 lần (𝐶𝐷 − 𝑘). Để thực hiện phân lớp, sẽ có một lớp được gắn thêm vào cuối DBN, khi đó kết quả của DBN sẽ được tinh chỉnh bằng giải thuật lan truyền ngược (Back-Progagation), đây cũng chính là phần huấn luyện có giám sát.1 Restricted Boltzmann Machines (RBMs) RBM là một mô hình sinh (generative model) dựa trên năng lượng, nó bao gồm một lớp I thành phần nhị phân có thể quan sát được (visible), 𝑣 = [𝑣1 , 𝑣2 , … , 𝑣𝑖 ] với 𝑣𝑖 ∈ {0,1}, và một lớp gồm 𝐽 thành phần ẩn có giá trị nhị phân, ℎ = [ℎ1 , ℎ2 , … , ℎ𝑗 ] với ℎ𝑗 ∈ {0,1}, cùng với những kết nối trọng số có hướng, như hình 3 RBMs tuân theo mô hình mã hóa – giải mã (encoder-decoder).
Trong mô hình này quá trình mã hóa chuyển hóa đầu vào thành một vector đặc trưng, ngược lại quá trình giải mã tái thiết lại đầu vào. Trong trường hợp của RBMs cả quá trình mã hóa và giải mã được thực hiện một cách ngẫu nhiên. Kiến trúc mã hóa – giải mã là một kiến trúc khá hay nhờ vào: (i) sau khi huấn luyện, các vector đặc trung có thể được tính toán một cách nhanh chóng và (ii) bằng cách tái thiết đầu vào chúng ta có thể đánh giá mức độ hiệu quả sự ghi nhận các thông tin quan trọng từ dữ liệu. Hình 3: Cấu tạo RBM [5] Cho trạng thái của thành phần có thể quan sát được, năng lượng cấu hình kết hợp của các thành phần hiện và ẩn như sau, công thức: 𝐸 (𝑣, ℎ) = −𝑐𝑣 𝑇 − 𝑏ℎ𝑇 − ℎ𝑊𝑣 𝑇 (1) = − ∑𝐼𝑖=1 𝑐𝑖 𝑣𝑖 − ∑𝐽𝑗=1 𝑏𝑗 ℎ𝑗 − ∑𝐽𝑗=1 ∑𝐼𝑖=1 𝑊𝑖𝑗 𝑣𝑖 ℎ𝑗 Trong đó 𝑊 ∈ ℝ𝐽×𝐼 là một ma trận trọng số của RBM, 𝑐 = [𝑐1 , 𝑐2 , … , 𝑐𝑖 ] ∈ ℝ𝐼 là độ lệch của các thành phần quan sát được và 𝑏 = [𝑏1 , 𝑏2 , … , 𝑏𝑗 ] ∈ ℝ𝐽 là độ lệch của các 10 thành phần ẩn.
Nhằm phá vỡ sự đối xứng, thông thường các trọng số được tạo với những giá trị nhỏ ngẫu nhiên (trong khoảng từ -0. Độ lệch của lớp ẩn 𝑏𝑗 ,có thể được khởi tạo với một số âm có giá trị lớn (ví dụ -4) với mục đích khuyến 𝑃̂𝑖 khích sự thưa thớt và các độ lệch của lớp quan sát được (visible), 𝑐𝑖 là log ( ),ở 𝐼−𝑃̂𝑖 ̂𝑖 tỷ lệ với các vector huấn luyện có 𝑣𝑖 = 1. Nếu không làm như vậy thì quá trình đây 𝑃 học cần phải điều chỉnh (trong những lớp huấn luyện sớm) xác suất của thành phần ̂𝑖. Kỹ thuật khởi tạo quan sát được 𝑖 được bật lên, và như vậy thì nó sẽ dần hội tụ về 𝑃 đơn giản này cho phép mô hình nắm bắt được những đặc trưng chính của dữ liệu huấn luyện và tránh được những bước học không cần thiết.
RBM gán một xác suất cho mỗi cấu hình (𝑣, ℎ) như sau, công thức: 𝑒 −𝐸(𝑣,ℎ) 𝑃(𝑣, ℎ) = (2) 𝑍 Trong đó 𝑍 là hằng số chuẩn hóa hay hàm chia (partition function) tương tự như trong hệ thống vật lý, nó được tính bằng tổng năng lượng của tất cả các cấu hình (𝑣, ℎ) như công thức (3): Z = ∑𝑣,ℎ 𝑒 −𝐸(𝑣,ℎ) (3) Bởi vì không có kết nối giữa các thành phần trong cùng một lớp, cho một cấu hình đầu vào ngẫu nhiên 𝑣, tất cả các thành phần ẩn sẽ độc lập với nhau, khi đó xác suất của ℎ cho bởi 𝑣 sẽ là, công thức: 𝑝(ℎ|𝑣 ) = ∏𝑗 𝑝(ℎ𝑗 = 1 | 𝑣) (4) Trong đó, xác suất có giá trị là 1 của mỗi thành phần ẩn được tính như sau, công thức: 𝑝(ℎ𝑗 = 1|𝑣) = 𝜎(𝑏𝑗 + ∑𝐼𝑖=1 𝑣𝑖 𝑤𝑗𝑖 ) (5) Khi hiện thực, ℎ𝑗 được gán là 1 khi mà 𝑝(ℎ𝑗 = 1|𝑣) lớn hơn một số ngẫn nhiên (theo phân phối chuẩn từ 0 đến 1) và ngược lại sẽ được gán là 0. Tương tự như vậy cho trường hợp một trạng thái ẩn cụ thể, ℎ xác suất của 𝑣 cho bởi ℎ được tính bởi, công thức: 𝑝(𝑣 | ℎ) = ∏𝑖 𝑝(𝑣𝑖 = 1 | ℎ) (6) Trong đó, xác suất có giá trị là 1 của mỗi thành phần hiện được tính như sau, công thức: 𝑝(𝑣𝑖 = 1 | ℎ) = 𝜎(𝑐𝑖 + ∑𝐽𝑗=1 ℎ𝑗 𝑤𝑗𝑖 ) (7) 11 Khi sử dụng công thức (7) để tái thiết vector nhập, quan trọng là việc chuyển các giá trị ẩn thành dạng nhị phân. Sử dụng các xác xuất thực tế sẽ vi phạm nghiêm trọng vấn đề thắt cổ chai của thông tin, khi đó cần thực hiện hành vi quản lý mạnh và ép buộc chuyển các giá trị ẩn để truyền giá trị nhị phân.