1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: Dự báo chuỗi thời gian có tính hỗn loạn dựa vào mạng nơ-ron học sâu LSTM

122 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI (17)
    • 1.1. CƠ SỞ HÌNH THÀNH ĐỀ TÀI (17)
    • 1.2. Ý NGHĨA ĐỀ TÀI (18)
      • 1.2.1. Ý nghĩa thực tiễn (18)
      • 1.2.2. Ý nghĩa khoa học (18)
    • 1.3. PHẠM VI ĐỀ TÀI (19)
    • 1.4. TÓM LƯỢC NHỮNG KẾT QUẢ ĐẠT ĐƯỢC (19)
    • 1.5. CẤU TRÚC BÁO CÁO (20)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (20)
    • 2.1. DỮ LIỆU CHUỖI THỜI GIAN (22)
    • 2.2. DỮ LIỆU CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN (23)
      • 2.2.1. Tính hỗn loạn (23)
      • 2.2.2. Cách xác định tính hỗn loạn dựa vào số mũ Lyapunov (25)
      • 2.2.3. Xây dựng lại không gian pha (Phase Space Reconstruction) (28)
    • 2.3. MẠNG NƠ-RON HỌC SÂU LSTM (33)
      • 2.3.1. Bên trong LSTM (36)
      • 2.3.2. Mạng LSTM (38)
    • 2.4. Một số hàm chi phí (cost function) đánh giá hiệu quả cho mô hình dự báo (40)
  • CHƯƠNG 3. CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN (41)
    • 3.2. DỰ BÁO CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN SỬ DỤNG MẠNG NƠ- (44)
    • 3.3. DỰ BÁO CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN SỬ DỤNG MẠNG NƠ- (44)
    • 3.4. DỰ BÁO CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN SỬ DỤNG MẠNG NƠ- (46)
    • 3.5. DỰ BÁO CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN SỬ DỤNG MẠNG NƠ- (48)
    • 3.6. DỰ BÁO CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN SỬ DỤNG MẠNG NƠ- (48)
  • CHƯƠNG 4. XÂY DỰNG MÔ HÌNH DỰ BÁO CHUỖI THỜI GIAN HỖN LOẠN DỰA VÀO MẠNG NƠ-RON HỌC SÂU LSTM KẾT HỢP VỚI TÁI TẠO KHÔNG (52)
    • 4.1. GIẢI THUẬT LAN TRUYỀN NGƯỢC QUA THỜI GIAN BPTT (52)
      • 4.1.1. Giai đoạn lan truyền tiến (52)
      • 4.1.2. Giai đoạn lan truyền ngược (54)
    • 4.2. KỸ THUẬT KHỞI TẠO TRỌNG SỐ CHO MẠNG NƠ-RON HỌC SÂU (62)
    • 4.3. XÂY DỰNG MÔ HÌNH DỰ BÁO (67)
      • 4.3.1. Ý tưởng (67)
      • 4.3.2. Hiện thực (69)
  • CHƯƠNG 5. THỰC NGHIỆM VÀ ĐÁNH GIÁ (21)
    • 5.1. CÁCH THỨC THỰC NGHIỆM (74)
    • 5.2. KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ (75)
      • 5.2.1. Bộ dữ liệu được tạo bởi phương trình Lorenz (75)
      • 5.2.2. Bộ dữ liệu được tạo bởi phương trình Mackey-Glass (80)
      • 5.2.4. Bộ dữ liệu về độ đo trung bình các vệt đen mặt trời (89)
      • 5.2.5. Bộ dữ liệu về tỉ giá trung bình của đô la Úc với đô la Mỹ (94)
      • 5.2.6. Bộ dữ liệu về tỉ giá trung bình hàng ngày của Euro với đô la Mỹ (98)
      • 5.2.7. Bộ dữ liệu về giá (đóng cửa) hàng ngày của cổ phiếu IBM (103)
    • 5.3. NHẬN XÉT CHUNG (109)
  • CHƯƠNG 6. KẾT LUẬN (21)
    • 6.1. ĐÁNH GIÁ KẾT QUẢ (110)
      • 6.1.1. Những công việc đã làm được (110)
      • 6.1.2. Những đúc kết về mặt lý luận (110)
      • 6.1.3. Các mặt hạn chế (111)
    • 6.2. HƯỚNG PHÁT TRIỂN (111)
  • TÀI LIỆU THAM KHẢO (113)

Nội dung

GIỚI THIỆU ĐỀ TÀI

CƠ SỞ HÌNH THÀNH ĐỀ TÀI

Trong những thập niên gần đây các mô hình dự báo cho chuỗi thời gian không ngừng phát triển và được cải tiến thường xuyên Trong đó có nhiều phương pháp nhằm giúp tối ưu các giải thuật cũng như cho khả năng dự báo tốt hơn Mạng nơ-ron nhân tạo nói chung, mạng nơ-ron RBF (Radial Basis Function), và mạng nơ-ron hồi quy (recurrent neural network) nói riêng cũng được nghiên cứu trong rất nhiều đề tài và được áp dụng vào các mô hình dự báo thực tiễn của chuỗi thời gian nhờ vào khả năng xấp xỉ hàm phi tuyến Tuy nhiên, nhiều nghiên cứu cho thấy đối với chuỗi thời gian có tính hỗn loạn (chaotic time series) thì chất lượng dự báo của mạng nơ-ron nhân tạo không được cao

Chuỗi thời gian có tính hỗn loạn xuất hiện nhiều trong các lãnh vực ứng dụng thực tế như tài chính [1] [2], giao thông [3] [4], môi trường [5], khí tượng thủy văn [6], địa chất [7], v.v Chuỗi thời gian có tính hỗn loạn được xem như sinh ra từ chuyển động tất định của một hệ thống phi tuyến Một hệ thống có tính hỗn loạn thường nhạy cảm với những điều kiện ban đầu: những điểm mà ngẫu nhiên ban đầu gần nhau lại trở nên cách xa nhau với mức độ tăng hàm mũ theo thời gian Do đó dự báo chuỗi thời gian có tính hỗn loạn là một công tác đầy thách thức Công tác dự báo sử dụng các kỹ thuật thống kê truyền thống, giải thuật k-lân cận gần nhất, mạng perceptron đa tầng (multi-layer-perceptron -MLP), mạng nơ ron hồi quy, mạng hàm căn bản xuyên tâm (Radial-Basis-Function-RBF) và máy vector hỗ trợ (support vector machine), thường không đem lại kết quả dự báo đáng tin cậy đối với chuỗi thời gian có tính hỗn loạn

Gần đây, các nhà nghiên cứu khoa học đã sử dụng các mạng nơ-ron học sâu như DBN (Deep Belief Network) [8] [9] [10], LSTM (Long Short-Term Memory)

[11] [4] [12] để dự báo chuỗi thời gian và cả chuỗi thời gian có tính hỗn loạn và qua các thực nghiệm, các công trình nghiêu cứu cho thấy các mạng nơ ron học sâu nêu trên đã đem lại độ chính xác dự báo tốt hơn mạng nơ ron truyền thống và các phương pháp học máy truyền thống khi dự báo chuỗi thời gian có tính hỗn loạn Tuy nhiên vẫn chưa có công trình nào tiến hành nghiên cứu so sánh hiệu quả dự báo của hai loại mạng nơ ron học sâu LSTM kết hợp với tái tạo không gian pha (viết tắt là LSTM_PSR) và DBN kết hợp với tái tạo không gian pha (viết tắt là DBN_PSR) khi dự báo chuỗi thời gian có tính hỗn loạn để tạo cơ sở cho người dùng có thể lựa chọn mạng nơ ron học sâu nào phù hợp cho việc dự báo loại dữ liệu chuỗi thời gian có tính hỗn loạn.

Ý NGHĨA ĐỀ TÀI

- Góp phần tăng tốc độ dự báo, tăng độ chính xác dự báo đối với các dữ liệu thời gian mang tính hỗn loạn

- Giúp các nhà đầu tư chứng khoán, các nhà dự báo thời tiết, các nhà khoa học có cái nhìn chính xác hơn về các dữ liệu để đưa ra cảnh báo, lời khuyên đối với khách hàng, người dùng

- Giảm thiểu yêu cầu về nhân lực trong quá trình phân tích các biến động trong chuỗi thời gian có tính hỗn loạn phức tạp

- Góp phần đưa ra một mô hình, phương pháp học sâu mới để giải quyết lớp các bài toán về chuỗi thời gian có tính hỗn loạn

- So sánh hiệu quả dự báo của mạng nơ ron học sâu LSTM kết hợp với tái tạo không gian pha và mạng nơ ron học sâu DBN kết hợp với tái tạo không gian pha khi dự báo chuỗi thời gian có tính hỗn loạn trên nhiều bộ dữ liệu chuỗi thời gian hỗn loạn làm tiền đề cho người dùng lựa chọn mô hình dự báo phù hợp.

PHẠM VI ĐỀ TÀI

Về dữ liệu: Đề tài chỉ tập trung đưa ra độ chính xác dự báo cho hai loại bộ dữ liệu mẫu đó là bộ dữ liệu tổng hợp và bộ dữ liệu thực tế Bộ dữ liệu tổng hợp bao gồm các bộ dữ liệu sinh ra từ phương trình toán học như phương trình Lorenz, phương trình Mackey-Glass, phương trình Rosler Bộ dữ liệu thực tế bao gồm các bộ dữ liệu về độ đo trung bình các vệt đen mặt trời (bão mặt trời) hàng tháng từ tháng 1 năm

1824 tới tháng 12 năm 2018, bộ dữ liệu về tỉ giá trung bình của đô la Úc với đô la

Mỹ từ tháng 01 năm 1990 đến tháng 12 năm 2019, bộ dữ liệu về tỉ giá trung bình của Euro với đô la Mỹ từ tháng 01 năm 1990 đến tháng 12 năm 2019 và bộ dữ liệu về về giá (đóng cửa) hàng ngày cổ phiếu IBM từ ngày 02 tháng 01 năm 2002 đến ngày 31 tháng 12 năm 2020

Về phương pháp nghiên cứu: Đề tài tập trung nghiên cứu mô hình mạng nơ- ron học sâu LSTM, phương pháp tái tạo không gian pha, giải thuật lan truyền ngược qua thời gian để huấn luyện mạng LSTM cùng với các kỹ thuật khởi tạo trọng số cho mạng LSTM.

TÓM LƯỢC NHỮNG KẾT QUẢ ĐẠT ĐƯỢC

Thông qua quá trình nghiên cứu và thực nghiệm chúng tôi đã có được một số kết quả mong đợi như sau:

▪ Hiểu được việc tái tạo không gian pha trên chuỗi thời gian có tính hỗn loạn và việc kết hợp giữa mạng nơ-ron học sâu LSTM với phương pháp tái tạo không gian pha để tạo ra mô hình học mới cho việc dự báo chuỗi thời gian có tính hỗn loạn

▪ Giải thuật lan truyền ngược qua thời gian – BPTT (back propagation through time) giúp ích rất lớn trong việc huấn luyện mạng LSTM kết hợp với tái tạo không gian pha để đưa ra kết quả dự báo tốt hơn so với mạng DBN kết hợp với tái tạo không gian pha

▪ Chúng tôi cũng đã xây dựng được ứng dụng hiện thực hệ thống dự báo chuỗi thời gian có tính hỗn loạn sử dụng mạng nơ-ron học sâu LSTM kết hợp với tái tạo không gian pha

▪ Chúng tôi đã kiểm tra độ chính xác của mô hình LSTM kết hợp với tái tạo không gian pha trên bảy (7) bộ dữ liệu bao gồm ba (3) bộ dữ liệu tổng hợp (synthetic data) (từ phương trình toán học) và bốn (4) bộ dữ liệu thực tế (real world data) và đạt được kết quả dự báo với độ chính xác cao hơn so với mô hình mạng nơ-ron học sâu DBN kết hợp với tái tạo không gian pha trên tất cả các bộ dữ liệu.

CẤU TRÚC BÁO CÁO

Báo cáo được chia thành 6 phần chính như sau:

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

DỮ LIỆU CHUỖI THỜI GIAN

Chuỗi thời gian có thể được xem là tập hợp dữ liệu trong không gian hai chiều, với bộ giá trị (T, V), trong đó T là thời điểm giá trị được xác định, V là giá trị quan sát tương ứng Vì khoảng thời gian quan sát là bằng nhau nên có thể không quan tâm đến T Lúc này, chuỗi thời gian có thể xem là dữ liệu n chiều Trong phạm vi đề tài này, chuỗi thời gian được nhìn dưới góc độ là dữ liệu n chiều, được ký hiệu là

Hình 2.1 dưới đây là một ví dụ về dữ liệu chuỗi thời gian thể hiện lượng mưa hàng năm ghi nhận tại Los Angeles – California (từ năm 1880 đến năm 1980)

Hình 2.1 Minh họa chuỗi thời gian lượng mưa hàng năm ghi nhận tại Los Angeles –

Trong thực tế, khi quan sát chuỗi thời gian ta nhận thấy bốn thành phần ảnh hưởng lên mỗi giá trị của chuỗi thời gian đó là thành phần xu hướng (trend component), thành phần chu kỳ (cyclical component), thành phần mùa (seasonal component) và thành phần bất thường (irregular component)

Việc xác định một chuỗi thời gian có thành phần xu hướng hay thành phần mùa hay không rất quan trọng trong bài toán dự báo chuỗi thời gian Nó giúp ta lựa chọn được mô hình dự báo phù hợp hay giúp cải tiến mô hình đã có chính xác hơn

Và các mẫu quan sát được theo thời gian dựa trên các chuỗi thời gian chính là cơ sở để hiểu được đặc tính cũng như là dự báo các hành vi tương lai của đối tượng đó.

DỮ LIỆU CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN

Sự hỗn loạn là một hành vi trong thời gian dài không có tính chu kỳ (aperiodic long term) phát sinh trong hệ động lực (dynamical system) và phụ thuộc nhạy cảm vào điều kiện ban đầu [13] hoặc là hiệu ứng bươm bướm (butterfly effect - là cụm từ dùng để mô tả khái niệm trong lý thuyết hỗn loạn về độ nhạy cảm của hệ thống đối với điều kiện gốc) trong nghiên cứu ban đầu về dự báo thời tiết và vì vậy được coi là nguồn gốc của sự hỗn loạn Sau đó, sự hỗn loạn được mở rộng trong nghiên cứu và có nhiều nội dung quan trọng được giới thiệu như là số chiều, số mũ Lyapunov, biến đổi Fourier và biến đổi Hilbert, xây dựng lại không gian pha (phase space reconstruction)

Trong toán học, sự hỗn loạn có thể được biểu diễn bằng cả hai phương trình rời rạc và liên tục [14] [15] Hệ thống rời rạc có thể được diễn tả như sau : trong đó 𝑓(𝑥 𝑛 ) là hàm số thể hiện đầu ra mong muốn tại thời điểm n và có thể biểu diễn bằng biểu đồ Logistic, biểu đồ Hénon, biểu đồ tiêu chuẩn (standard map), biểu đồ lều (tent map), biểu đồ vòng tròn (circle map) và biểu đồ Ikeda Hệ thống liên tục có thể diễn tả bằng một phương trình khác : trong đó 𝑥(𝑡) = [𝑥 1 (𝑡), 𝑥 2 (𝑡), 𝑥 3 (𝑡), … , 𝑥 𝑚 (𝑡)] là véc-tơ trạng thái tại thời điểm t

Các phương trình thể hiện cho tính hỗn loạn điển hình là phương trình Lorenz, phương trỡnh Rửssler, phương trỡnh của Duffing vv

Một ví dụ đơn giản của một chuỗi thời gian có tính hỗn loạn được đưa ra trong

Hình 2.2, thu được bằng cách quan sát tọa độ x của biểu đồ Hénon [15] [16] trong đó a và b là các tham số Trong trường hợp này a = 1.4 và b = 0.3, hàm quan sát là 𝜑(𝑥 𝑛 , 𝑦 𝑛 ) = 𝑥 𝑛 và 𝜑 𝑛 = 𝑥 𝑛

Hình 2.2 Chuỗi thời gian có tính hỗn loạn {xn} từ biểu đồ Henon

Hình 2.3 Chuỗi thời gian { 𝝋 𝒏 } nhận được từ phương trình Lorenz

Hình 2.3 là một ví dụ khác, lần này được thực hiện bằng cách quan sát toạ độ z của phương trình Lorenz:

2.2.2 Cách xác định tính hỗn loạn dựa vào số mũ Lyapunov

Số mũ Lyapunov là đại lượng quan trọng nhất trong hệ thống mang tính hỗn loạn, một số mũ Lyapunov tối đa dương là sự xác thực mạnh mẽ của tính hỗn loạn

Số mũ Lyapunov là số thước đo khoảng cách của hai quỹ đạo lân cận trong không gian pha với điều kiện ban đầu Nếu nó là số dương, thì khoảng cách giữa quỹ đạo lân cận phát triển theo số mũ và hệ thống thể hiện sự phụ thuộc nhạy cảm vào những điều kiện ban đầu, vì vậy nó là hỗn loạn Ngược lại, số mũ Lyapunov tối đa là

0 biểu thị một chu kỳ giới hạn hoặc quỹ đạo bán chu kỳ và số mũ Lyapunov tối đa âm biểu diễn một điểm cố định (nghĩa là hệ thống không nhạy cảm với điều kiện ban đầu) Theo Eckmann và các cộng sự (1986) [17] một hệ thống m chiều có m số mũ Lyapunov với 𝜆 1 , 𝜆 2 ,…, 𝜆 𝑚 trong thứ tự giảm dần

Phương trình vi phân véc-tơ 𝜕𝑥 trong không gian tiếp tuyến (tangent space) 𝑥(𝑡):

Giải quyết phương trình trên như sau:

Trong đó: 𝐴 𝑡 = 𝑒 ( ∫(𝜕𝐹 𝜕𝑥 ) 𝑑𝑡 là toán tử tuyến tính khai triển một véc-tơ vi phân tại thời điểm 0 đến thời điểm 𝑡 Tỉ lệ số mũ trung bình của tính phân kỳ của véc-tơ tiếp tuyến (tangent vector) được cho bởi:

Số mũ Lyapunov được cho bởi:

Trong đó 𝑒 𝑖 là véc-tơ cơ sở m chiều Theo quan sát, mỗi số mũ Lyapunov là một giá trị trung bình của tỉ lệ phân kỳ cục bộ trên toàn bộ không gian attractor Trong các hệ thống mang tính hỗn loạn, giá trị của 𝜆 𝑖 không phụ thuộc vào lựa chọn của điều kiện ban đầu 𝑥(0) (nghĩa là quỹ đạo lân cận sẽ tách biệt theo hàm số mũ nhanh chóng), trong chừng mực nào đó 𝑥(0) được chọn ngẫu nhiên [14] [18] Để kiểm tra rằng một chuỗi thời gian là mang tính hỗn loạn hay không, một điều cần thiết là phải tính toán 𝜆 𝑖 đó là số mũ Lyapunov cao nhất 𝜆 𝑚𝑎𝑥 Việc tính

𝜆 𝑚𝑎𝑥 thì dễ dàng hơn với việc tính toán tất cả các giá trị của 𝜆 𝑖 vì quỹ đạo mang tính hỗn loạn sẽ tự động đạt đến theo hướng mở rộng tối đa (maximum expending direction) Một cách tương tự, một quỹ đạo mang tính hỗn loạn sẽ tự động đạt đến theo hướng thu hẹp tối đa (maximum contracting direction) nếu chúng ta để nó làm ngược lại quá trình với 𝑡 → −𝑡, dẫn đến tính toán giá trị nhỏ nhất của số mũ Lyapunov

𝜆 𝑚 Về số lượng có thể tính toán 𝜆 max như sau:

• Lựa chọn 2 điểm gần nhất và khoảng cách giữa chúng là 𝑑 0 ≪ 1 Sau khi tích hợp hệ thống động lực trong một khoảng thời gian nhỏ 𝜏 thì khoảng cách là 𝑑 𝑖 Cho rằng attractor có kích thước hữu hạn, nó dễ dàng cho quỹ đạo tiếp cận đường biên của attractor Một khi nó xảy ra, khoảng cách 𝑑 𝑖 sẽ không gia tăng số mũ Một cách thức phù hợp để giải quyết vấn đề này là sự tái chuẩn hóa (renormalization), tạo cho việc đánh giá bắt đầu tại một khoảng cách nhỏ hơn một lần nữa Cụ thể, chúng ta lựa chọn một điểm mới tại vị trí cuối cùng của quỹ đạo và cho chúng khoảng cách là 𝑑 0 Thực hiện tích hợp một lần nữa chúng ta sẽ nhận được một 𝑑 𝑖 Chúng ta có:

Hình 2.4 Sơ đồ minh họa làm thế nào để tính toán số lượng mũ Lyapunov tối đa

• Cách tiếp cận chỉ ra trong hình 2.4 cũng có thể ứng dụng trong các hệ thống rời rạc Xem xét ánh xạ m chiều 𝑥(𝑖)(𝑖 = 1, 2, … , 𝑚) Để {𝑥 𝑛 (𝑖)} là trạng thái tại của hệ thống thời điểm n Chúng ta tạo ra một trạng thái mới {𝑥 𝑛 ′ (𝑖)} bằng việc thêm vào một độ nhiễu nhỏ {𝑑𝑥(𝑖)} Đó là {𝑥 𝑛 ′ (𝑖) = 𝑥 𝑛 (𝑖) + 𝑑𝑥(𝑖)} Cả {𝑥 𝑛 (𝑖)} và {𝑥 𝑛 ′ (𝑖)} khai triển cho một khoảng thời gian để đưa đến khoảng cách {𝑑𝑥(𝑖)} Khi đó số mũ Lyapunov cao nhất

Khi đó ‖𝑑𝑥 𝑛 ‖ = √∑ 𝑚 𝑖=1 [𝑑𝑥 𝑛 (𝑖)] 2 Thực tế, chúng ta không thể sử dụng hướng tiếp cận trên cho dữ liệu thực tế hoặc các chuỗi thời gian khi không thể có một cặp điểm với khoảng cách 𝑑 0 tại thời điểm 𝑡 = 𝑛𝜏 Vì vậy chúng ta cần một vài hiệu chỉnh cho nó Xử lý cụ thể như sau:

• Vì sự tái diễn của quỹ đạo mang tính hỗn loạn, có thể luôn tìm được 2 điểm gần nhau với khoảng cách 𝑑 0 (𝑡 0 ) tại thời điểm 𝑡 0 Tiếp theo quỹ đạo tại thời điểm 𝑡 1 và phép đo khoảng cách là 𝑑 1 (𝑡 1 ) Thời gian đánh giá là 𝑡 1 − 𝑡 0 Sau đó chúng ta tái chuẩn hóa để tìm một điểm mới Điểm mới phù hợp được lựa chọn thỏa hai ràng buộc sau:

2 Giữ hướng mở rộng là tối đa, góc giữa 𝑑 0 (𝑡 1 ) và 𝑑 1 (𝑡 1 ) là nhỏ nhất

Hình 2.5 Sơ đồ minh họa làm thế nào để tính toán số mũ Lyapunov tối đa từ chuỗi thời gian hoặc dữ liệu thực nghiệm

Hình 2.5 chỉ ra sơ đồ minh họa Theo cách này chúng ta có:

• Dữ liệu thực tế nhìn chung bị nhiễm bẩn bởi nhiễu Sự ảnh hưởng của nhiễu có thể giảm bằng cách sử dụng thống kê trung bình (averaging statistics) khi tính toán số mũ Lyapunov Xử lý cụ thể như sau: lựa chọn một điểm 𝑥(0) và chọn tất cả các điểm láng giềng của nó với khoảng cách nhỏ hơn 𝜖 Kích thước của các điểm láng giềng nên càng nhỏ càng tốt nhưng phải đủ lớn để cho mỗi giá trị trung bình liên quan đến điểm có ít nhất một vài láng giềng Tính toán giá trị trung bình thông qua khoảng cách của tất cả các điểm láng giềng trên một phần của quỹ đạo liên quan như là một hàm thời gian liên quan Ngoài ra, có thể tham khảo chi tiết thêm tại [17] [19] để tính toán số mũ Lyapunov

2.2.3 Xây dựng lại không gian pha (Phase Space Reconstruction)

Việc xây dựng lại (tái tạo) không gian pha là rất quan trọng, như chúng ta đã giới thiệu chiều và số mũ Lyapunov là các nội dung để miêu tả attractor mang tính

MẠNG NƠ-RON HỌC SÂU LSTM

Mạng nơ-ron học sâu LSTM (Long Short Term Memory) là một dạng đặc biệt của mạng nơ ron hồi quy (Recurrent Neural Network - RNN), nó có khả năng học được các phụ thuộc xa LSTM được giới thiệu bởi Hochreiter & Schmidhuber (1997) [25], và sau đó đã được cải tiến và phổ biến bởi rất nhiều người trong lĩnh vực học máy

Mạng LSTM hoạt động cực kì hiệu quả trên nhiều bài toán khác nhau nên dần đã trở nên phổ biến như hiện nay

LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-term dependency) Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của chúng, chứ ta không cần phải huấn luyện nó để có thể nhớ được Tức là ngay nội tại của nó đã có thể ghi nhớ được mà không cần bất kì can thiệp nào

Mọi mạng hồi quy đều có dạng là một chuỗi các mô-đun lặp đi lặp lại của mạng nơ-ron Với mạng RNN chuẩn, các mô-dun này có cấu trúc rất đơn giản, thường là một tầng tanh Hình 2.9 minh họa cấu trúc của mạng RNN

Hình 2.9 Minh họa cấu trúc của mạng RNN chuẩn với 1 tầng

LSTM cũng có kiến trúc dạng chuỗi, nhưng các mô-đun bên trong nó có cấu trúc khác với mạng RNN chuẩn Mạng RNN chuẩn chỉ có một tầng mạng nơ-ron còn mạng LSTM có tới 4 tầng tương tác với nhau một cách rất đặc biệt Hình 2.10 minh họa cấu trúc của mạng LSTM với 1 tầng

Hình 2.10 Minh họa cấu trúc của mạng LSTM với 1 tầng

Các kí hiệu mà chúng ta sẽ sử dụng ở dưới đây: Ở sơ đồ trên, mỗi một đường mang một véc-tơ từ đầu ra của một nút tới đầu vào của một nút khác Các hình trong màu hồng biểu diễn các phép toán như phép cộng véc- tơ, phép nhân vec-tơ, …, các ô màu vàng được sử dụng để học trong từng mạng nơ-ron Các đường hợp nhau kí hiệu việc kết hợp, còn các đường rẽ nhánh ám chỉ nội dung của nó được sao chép và chuyển tới các nơi khác nhau

Chìa khóa của LSTM là trạng thái tế bào (cell state), là đường chạy thông ngang phía trên của sơ đồ (xem Hình 2.11)

Trạng thái tế bào là một dạng giống như băng truyền Nó chạy xuyên suốt tất cả các mắt xích (các nút mạng) và chỉ tương tác tuyến tính đôi chút Vì vậy mà các thông tin có thể dễ dàng truyền đi thông suốt mà không sợ bị thay đổi

Hình 2.11 Minh họa đường truyền thông tin trong một tế bào trong mạng LSTM

LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái tế bào, chúng được điều chỉnh cẩn thận bởi các nhóm được gọi là cổng (gate)

Các cổng là nơi sàng lọc thông tin đi qua nó, chúng được kết hợp bởi một tầng mạng sigmoid và một phép nhân Hình 2.12 minh họa một cổng trong một tế bào của mạng LSTM

Hình 2.12 Minh họa một cổng trong một tế bào của mạng LSTM

Tầng sigmoid sẽ cho đầu ra là một số trong khoảng [0, 1], mô tả có bao nhiêu thông tin có thể được thông qua Khi đầu ra là 0 thì có nghĩa là không cho thông tin nào qua, còn khi là 1 thì có nghĩa là cho tất cả các thông tin đi qua nó

Một LSTM gồm có ba cổng như vậy để duy trì và điều hành trạng thái của tế bào

Forget gate layer (Tầng cổng quên)

Forget gate layer quyết định xem thông tin nào cần bỏ đi từ trạng thái tế bào Quyết định này được đưa ra bởi tầng sigmoid Nó sẽ lấy đầu vào là h t−1 và x t rồi đưa ra kết quả là một số trong khoảng [0, 1] cho mỗi số trong trạng thái tế bào C t−1 Đầu ra là 1 thể hiện rằng nó giữ lại toàn bộ thông tin, còn đầu ra là 0 chỉ rằng toàn bộ thông tin sẽ bị bỏ đi

Hình 2.13 minh họa cổng quên (forget gate) trong một tế bào của mạng LSTM

Hình 2.13 Minh họa cổng quên (forget gate) trong một tế bào của mạng LSTM

Input gate layer (Tầng cổng nhập)

Input gate layer quyết định xem thông tin mới nào sẽ lưu vào trạng thái tế bào Việc này gồm hai phần Đầu tiên là sử dụng một tầng sigmoid được gọi là tầng cổng nhập (input gate layer) để quyết định giá trị nào sẽ cập nhập Tiếp theo là một tầng tanh tạo ra một véc-tơ cho giá trị mới Ct~ nhằm thêm vào cho trạng thái Trong bước tiếp theo nó sẽ kết hợp hai giá trị đó để tạo ra một cập nhập cho trạng thái Hình 2.14 minh họa cổng nhập (input gate) trong một tế bào của mạng LSTM

Tiếp theo sẽ cập nhập trạng thái tế bào cũ C t−1 thành trạng thái mới C t Nhân trạng thái cũ với f t để bỏ đi những thông tin quyết định quên lúc trước, sau đó cộng thêm i t *𝐶̃ 𝑡 Trạng thái mới thu được này phụ thuộc vào việc ta quyết định cập nhập mỗi giá trị trạng thái ra sao Hình 2.15 minh họa bước cập nhật thông tin trong một tế bào của mạng LSTM

Hình 2.14 Minh họa cổng nhập (input gate) trong một tế bào của mạng LSTM

Hình 2.15 Minh họa bước cập nhật thông tin trong một tế bào của mạng LSTM

Output gate layer (Tầng cổng xuất)

Output gate layer quyết định xem ta muốn đầu ra là gì Giá trị đầu ra sẽ dựa vào trạng thái tế bào, nhưng sẽ được tiếp tục sàng lọc Đầu tiên chạy một tầng sigmoid để quyết định phần nào của trạng thái tế bào muốn xuất ra Sau đó đưa trạng thái tế bào qua một hàm tanh để nó có giá trị về khoảng [−1, 1] và nhân nó với đầu ra của cổng sigmoid để được giá trị đầu ra mong muốn Hình 2.16 minh họa cổng xuất (output gate) trong một tế bào của mạng LSTM

Hình 2.16 Minh họa cổng xuất (output gate) trong một tế bào của mạng LSTM

2.3.2.1 Khái niệm về mạng LSTM

Mạng LSTM được xem là khá giống với kiến trúc sequence to sequence với các hoạt động xuất sắc trong xử lý ngôn ngữ tự nhiên ở thập kỷ trước Ý tưởng, được trình bày theo sơ đồ trong Hình 2.17, là thiết lập một cấu trúc có tính tuần tự của chuỗi thời gian Để làm được điều đó, các nút trong các tầng ẩn không phải là các nơ- ron truyền thẳng truyền thống mà là các nút hồi quy, đặc biệt là các tế bào (cell)

Mỗi tế bào LSTM có hai trạng thái bên trong (trạng thái tế bào và trạng thái ẩn) và ba cổng (cổng đầu vào, cổng đầu ra và cổng quên) Về mặt trực quan, trạng thái tế bào có trách nhiệm theo dõi thông tin liên quan được cung cấp bởi các đầu vào trong quá khứ, trạng thái ẩn tổng hợp thông tin được cung cấp bởi đầu vào hiện tại, trạng thái tế bào và trạng thái ẩn trước đó Các cổng có chức năng điều chỉnh luồng thông tin vào và ra của nơ-ron Cụ thể, cổng vào và cổng quên kiểm soát mức độ ảnh hưởng của giá trị đầu vào mới và trạng thái tế bào hiện tại tương ứng với trạng thái tế bào mới; cổng đầu ra kiểm soát mức độ mà các trạng thái bên trong ảnh hưởng đến đầu ra

Một số hàm chi phí (cost function) đánh giá hiệu quả cho mô hình dự báo

Đối với bài toán dự báo chuỗi thời gian có tính hỗn loạn ta có thể dùng một trong số các hàm chi phí sau đây:

- Hàm mean squared error (MSE):

- Hàm mean absolute percentage error (MAPE):

- Hàm mean absolute error (MAE)

Trong đó 𝑦 𝑡 là giá trị nhãn của dữ liệu đầu vào hay còn gọi là giá trị thật (ground truth value), ŷ 𝑡 là giá trị mà mô hình dự báo

Trong học máy, hàm MSE thường được sử dụng để làm hàm chi phí cho các mô hình mạng nơ-ron

CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN

DỰ BÁO CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN SỬ DỤNG MẠNG NƠ-

MẠNG NƠ-RON RBF VÀ LÝ THUYẾT HỖN LOẠN

Nguyen Van Truc và Duong Tuan Anh năm 2018 [27] [28] cũng đã đề xuất một phương pháp kết hợp mạng nơ ron RBF và lý thuyết hỗn loạn để dự báo chuỗi thời gian có tính hỗn loạn

Kết quả thực nghiệm thu được cho thấy phương pháp đề xuất hoạt động tốt hơn phương pháp ANN truyền thống Ý tưởng chính của phương pháp là sự kết hợp của mạng RBF và lý thuyết hỗn loạn để nâng cao chất lượng dự báo

Ngoài ra các tác giả cũng áp dụng giải thuật Lan Truyền Ngược Sửa Đổi [29] trong việc huấn luyện mạng RBF Phương pháp đề xuất được so sánh bằng thực nghiệm trên nhiều bộ dữ liệu chuỗi thời gian có tính hỗn loạn với phương pháp sử dụng mạng nơ ron ANN truyến thống Kết quả thực nghiệm thu được trên bảy bộ dữ liệu chuỗi thời gian có tính hỗn loạn (gồm 3 bộ dữ liệu tổng hợp: Lorenz, Rossler, Mackey-Glass và bốn bộ dữ liệu thực tế) cho thấy phương pháp đề xuất dựa vào mạng nơ ron RBF kết hợp với lý thuyết hỗn loạn đem lại hiệu quả dự báo tốt hơn phương pháp ANN truyến thống

Trong công trình này, các tác giả áp dụng kỹ thuật false nearest neighbor để xác định số chiều nhúng m và sử dụng số mũ Lyapunov cực đại để kiểm tra xem chuỗi thời gian có hỗn loạn hay không Các tác giả sử dụng hai công cụ trong gói tseriesChaos của phần mềm R để xử lý hai nhiệm vụ quan trọng này của lý thuyết hỗn loạn [30].

DỰ BÁO CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN SỬ DỤNG MẠNG NƠ-

MẠNG NƠ-RON HỌC SÂU DBN

Kuremoto và các cộng sự (2012) [8] đề xuất mô hình DBN ba lớp được xây dựng từ máy Boltzmann giới hạn như Hình 3.3

Mạng nơ-ron học sâu DBN này được dùng để dự báo cho chuỗi thời gian và chuỗi thời gian có tính hỗn loạn Khi dữ liệu đầu vào có số chiều lớn thì tầng ẩn của RBM có nhiệm vụ phát hiện các đặc trưng của dữ liệu thuộc các lớp khác nhau dựa vào ma trận trọng số kết nối giữa tầng nhập và tẩng ẩn Cùng lúc đó, tầng ẩn thứ nhất là input của tầng ẩn thứ hai, tầng ẩn thứ hai này sẽ học các đặc trưng của tầng ẩn thứ nhất vì vậy nó được gọi là đặc trưng của đặc trưng của dữ liệu đầu nào (feature of feature of input data)

Hình 3.3 Mạng nơ-ron học sâu DBN hai tầng được xây dựng từ hai bộ RBM [8]

Việc sử dụng kết hợp các máy Boltzmann giới hạn này tạo thành mô hình mạng DBN dùng để dự báo Việc cập nhật các ma trận trọng số của RBM trong mạng nơ-ron học sâu DBN được hiện thực bằng giải thuật phân kì tương phản (contrastive divergence - CD) để cập nhật hàm năng lượng theo chiều hướng giảm dần (giữa tầng nhập và tầng ẩn) Giải thuật lan truyền ngược (back propagation - BP) được dùng để hiệu chỉnh các trọng số ma trận sau bước học không giám sát

Nhóm tác giả cũng đề xuất giải thuật meta-heuristic Particle Swarm Optimization (PSO) để quyết định số unit trong tầng nhập, tầng ẩn và hệ số học

Quá trình thực nghiệm và kết quả thực nghiệm của công trình này được mô tả trong bài báo (2012) [8] Các tham số được dùng trong quá trình thực nghiệm được mô tả trong [8]

Nhóm tác giả đã thử nghiệm trên hai bộ dữ liệu chuỗi thời gian có tính hỗn loạn đó là dữ liệu sinh ra từ phương trình Lorenz và dữ liệu từ biểu đồ logistic

Kết quả thực nghiệm cho thấy tỉ lệ lỗi trong quá trình huấn luyện cũng như trong quá trình kiểm thử của mô hình mà nhóm tác giả đề xuất tốt hơn so với các mô hình có trước đó (như mạng nơ-ron truyền thẳng)

Tuy kết quả thực nghiệm đối với mô hình đề xuất cao hơn so với các mô hình đề xuất trước đó, mô hình này cũng chưa cho được tỉ lệ chính xác cao đồng thời nhóm tác giả cũng chỉ mới thử nghiệm trên hai bộ dữ liệu tổng hợp và mô hình chưa được thử nghiệm trên các bộ dữ liệu thực tiễn Dù vậy, nhóm tác giả đã mở ra một hướng nghiên cứu mới cho việc xây dựng mạng nơ-ron mới để giải quyết cái bài toán về chuỗi thời gian có tính hỗn loạn Nhóm tác giả cũng đã đề xuất một mô hình mới để giải quyết bài toán này đó là xây dựng mạng DBN bằng cách kết hợp RBM và MLP (multi-layer perceptron) được đề cập ở mục 3.4

DỰ BÁO CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN SỬ DỤNG MẠNG NƠ-

MẠNG NƠ-RON HỌC SÂU DBN (MẠNG BOLTZMAN GIỚI HẠN KẾT HỢP VỚI MẠNG MLP TRUYỀN THỐNG)

Cũng chính Kuremoto và các cộng sự (2014) [9] đề xuất một mô hình DBN mới với việc kết hợp mạng Boltzmann giới hạn RBM với mạng MLP truyền thống Mạng DBN mới này được khơi nguồn ý tưởng từ mạng MLP, mạng này có khả năng xấp xỉ các hàm phi tuyến với độ chính xác cao, trong khi đó mạng RBM lại có khả năng phân tách dữ liệu đầu vào thành không gian đặc trưng (feature space)

Quá trình huấn luyện của mạng DBN này cũng được chia thành hai giai đoạn đó là giai đoạn học không giám sát và giai đoạn học có giám sát

Quá trình thực nghiệm và kết quả thực nghiệm của công trình này (2014) [9] dựa trên hai bộ dữ liệu chuỗi thời gian có tính hỗn loạn đó là dữ liệu sinh ra từ phương trình Lorenz và dữ liệu từ biểu đồ Henon

Mô hình mạng DBN mới này được minh họa ở Hình 3.4 Bảng 3.1 cho thấy tỉ lệ lỗi MSE của mô hình mới đề xuất so với các mô hình khác dựa trên dữ liệu hỗn loạn Lorenz Bảng 3.2 cho thấy tỉ lệ lỗi MSE dựa trên dữ liệu biểu đồ Henon

Hình 3.4 Mạng DBN được xây dựng từ RBM kết hợp với MLP [9]

Method Mean Squarred Error (MSE)

Bảng 3-1 So sánh việc dự báo của các phương pháp khác nhau cho dữ liệu hỗn loạn

Method Mean Squarred Error (MSE)

Bảng 3-2 So sánh việc dự báo của các phương pháp khác nhau cho dữ liệu hỗn loạn biểu đồ Henon [9]

Từ hai hình trên ta có thể thấy được, đối với bộ dữ liệu hỗn loạn Lorenz thì mô hình DBN (1 RBM + 1 MLP) tốt hơn DBN (2 RBMs + 2 MLPs), nhưng đối với bộ dữ liệu biểu đồ Henon thì mô hình sau tốt hơn mô hình trước Điều đó cho thấy, không phải mô hình nào sâu hơn (deeper) thì học tốt hơn Đó là vấn đề cần phải được giải quyết trong tương lai trong quá trình xác định cấu hình cho mạng học sâu DBN Đối với mô hình này, nhóm tác giả cũng chỉ mới thực nghiệm trên hai bộ dữ liệu nhân tạo nên còn hạn chế để kiểm định độ tin cậy mô hình đối với các dữ liệu thực tế Điều đó mở ra hướng nghiên cứu cũng như cần nhiều thử nghiệm đối với các mô hình mạng nơ-ron học sâu DBN.

DỰ BÁO CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN SỬ DỤNG MẠNG NƠ-

MẠNG NƠ-RON HỌC SÂU DBN KẾT HỢP VỚI LÝ THUYẾT HỖN LOẠN

Ta Ngoc Huy Nam và Duong Tuan Anh năm 2020 [10] cũng đã đề xuất một phương pháp kết hợp mạng nơ ron học sâu DBN và lý thuyết hỗn loạn để dự báo chuỗi thời gian có tính hỗn loạn Phương pháp đề xuất được so sánh bằng thực nghiệm trên nhiều bộ dữ liệu chuỗi thời gian có tính hỗn loạn với phương pháp sử dụng mạng nơ-ron RBF kết hợp với lý thuyết hỗn loạn Kết quả thực nghiệm thu được trên bảy bộ dữ liệu chuỗi thời gian có tính hỗn loạn (gồm ba bộ dữ liệu tổng hợp: Lorenz, Rossler, Mackey-Glass và bốn bộ dữ liệu thực tế) cho thấy phương pháp đề xuất dựa vào mạng nơ ron học sâu DBN kết hợp với lý thuyết hỗn loạn đem lại hiệu quả dự báo tốt hơn phương pháp dùng mạng nơ ron RBF truyền thống kết hợp với lý thuyết hỗn loạn.

DỰ BÁO CHUỖI THỜI GIAN CÓ TÍNH HỖN LOẠN SỬ DỤNG MẠNG NƠ-

MẠNG NƠ-RON HỌC SÂU LSTM (LONG SHORT-TERM MEMORY)

Zhang và các cộng sự, năm 2018 [4] đã đề xuất một phương pháp dự báo kết hợp lý thuyết hỗn loạn và mạng nơ ron học sâu LSTM để dự báo một loại dữ liệu chuỗi thời gian có tính hỗn loạn: dữ liệu hàng ngày của số lượng hành khách tàu hỏa (passenger flow) của hệ thống tàu hỏa Trung quốc

Khi kết hợp lý thuyết cấu tạo không gian pha vào mô hình dự báo, Zhang và các cộng sự đã sử dụng phương pháp được đề xuất bởi Kim và các cộng sự năm 1999 [31], được gọi là phương pháp C-C, để ước lượng độ trễ thời gian  và số chiều nhúng m

Nhóm tác giả thực nghiệm mô hình dự báo đề xuất với các bộ dữ liệu thu thập hàng ngày trong vòng ba năm của hệ thống tàu hỏa Trung quốc Nhóm tác giả so sánh hiệu quả dự báo của mô hình dự báo đề xuất (LSTM có sử dụng cấu tạo không gian pha) với mô hình LSTM không sử dụng cấu tạo không gian pha và kết quả thực nghiệm cho thấy mô hình LSTM có sử dụng cấu tạo không gian pha đem lại hiệu quả dự báo tốt hơn mô hình LSTM không sử dụng cấu tạo không gian pha

Ngoài ra, nhóm tác giả còn so sánh hiệu quả của mô hình dự báo đề xuất với mô hình mạng nơ ron truyền thống và mô hình Support Vector Regression (SVR), và nhận thấy mô hình dự báo đề xuất đem lại độ chính xác dự báo tốt hơn hai mô hình truyền thống kia

Madonna và Gibbons, năm 2018 [11] đã đề xuất một phương pháp dự báo kết hợp lý thuyết hỗn loạn và mạng nơ ron học sâu LSTM để dự báo dữ liệu chuỗi thời gian có tính hỗn loạn Phương pháp của Madonna và Gibbons tập trung vào dự báo một bước Madonna và Gibbons sử dụng thư viện phần mềm Keras [32] để hiện thực mạng nơ ron học sâu LSTM Nhóm tác giả so sánh hiệu quả dự báo của mô hình dự báo đề xuất (LSTM có sử dụng cấu tạo không gian pha) với mô hình mạng nơ ron hồi quy truyền thống (RNN) Hai mô hình dự báo được chạy thử nghiệm trên bộ dữ liệu Lorenz, là chuỗi thời gian sinh ra từ hệ phương trình vi phân:

Bộ dữ liệu Lorenz gồm 7912 mẫu để huấn luyện (training) và 3956 mẫu để kiểm chứng (validation) Kết quả thực nghiệm trên bộ dữ liệu tiêu biểu này cho thấy mô hình đề xuất sử dụng LSTM kết hợp với lý thuyết hỗn loạn đem lại hiệu quả dự báo tốt hơn mô hình RNN truyền thống kết hợp với lý thuyết hỗn loạn

Sangiorgio và Dercole năm 2020 [12] đã đề xuất một phương pháp dự báo kết hợp lý thuyết hỗn loạn và mạng nơ ron học sâu LSTM để dự báo dữ liệu chuỗi thời gian có tính hỗn loạn Công trình này tập trung vào dự báo nhiều bước (multi-step ahead forecasting) Với mô hình mạng nơ ron học sâu LSTM, Sangiorgio và Dercole đã đề xuất hai kiểu huấn luyện áp dụng cho mạng LSTM khi dự báo nhiều bước: áp dụng teacher- forcing hay không áp dụng teacher-forcing Sự khác biệt giữa hai kiểu huấn luyện mạng LSTM được minh họa ở hình 3.5

Sangiorgio và Dercole so sánh hiệu quả dự báo của mô hình dự báo đề xuất LSTM có kếp hợp cấu tạo không gian pha (huấn luyện bằng hai kiểu: TF hoặc không TF) với mô hình mạng nơ ron truyền thống (dự báo nhiều-bước theo hai phương thức: đệ quy (recursive) hoặc nhiều đầu ra (multiple-output)) Nhóm tác giả tiến hành thử nghiệm các phương pháp so sánh trên hai bộ dữ liệu mẫu (biểu đồ logistic và biểu đồ Henon) Nhóm tác giả sử dụng tiêu chí MSE và hệ số tương quan Pearson R 2 để đánh giá hiệu quả dự báo của các phương pháp so sánh Kết quả thực nghiệm mô hình dự báo đề xuất dựa vào LSTM và lý thuyết hỗn loạn (không áp dụng kiểu huấn luyện TF) đem lại hiệu quả dự báo tốt hơn mô hình mạng nơ ron truyền thống khi dự báo nhiều bước với hai phương thức: đệ quy và nhiều đầu ra

Hình 3.5 Minh họa hai kiểu huấn luyện mạng LSTM: (a) có áp dụng teacher-forcing

(b) không áp dụng teacher-forcing

Kết luận: Từ các công trình liên quan được nêu trong mục này, chúng tôi nhận thấy triển vọng của mô hình dự báo dữ liệu chuỗi thời gian có tính hỗn loạn dựa mạng nơ-ron học sâu LSTM kết hợp với lý thuyết hỗn loạn Ngoài ra, cần thiết phải có một nghiên cứu có hệ thống để đánh giá hiệu quả dự báo của hai mô hình học sâu LSTM kết hợp với tái tạo không gian pha và DBN kết hợp với tái tạo không gian pha để dự báo chuỗi thời gian có tính hỗn loạn Kết quả của nghiên cứu như vậy sẽ tạo cơ sở cho người dùng có thể lựa chọn mạng nơ ron học sâu nào phù hợp cho việc dự báo loại chuỗi thời gian có tính hỗn loạn.

XÂY DỰNG MÔ HÌNH DỰ BÁO CHUỖI THỜI GIAN HỖN LOẠN DỰA VÀO MẠNG NƠ-RON HỌC SÂU LSTM KẾT HỢP VỚI TÁI TẠO KHÔNG

GIẢI THUẬT LAN TRUYỀN NGƯỢC QUA THỜI GIAN BPTT

Giải thuật lan truyền ngược qua thời gian (BPTT) được tham khảo tại [26] Như đã đề cập trong chương 2, huấn luyện mạng LSTM có thể được chia thành hai giai đoạn:

• Giai đoạn lan truyền tiến (forward pass)

• Giai đoạn lan truyền ngược (backward pass)

4.1.1 Giai đoạn lan truyền tiến

Hình 4.1 Sơ đồ Lan truyền tiến (Forward Pass)

Nhập dữ liệu đầu vào (input) tại thời điểm t trong tế bào LSTM là x t ; trạng thái tế bào tại thời điểm t-1 là c t-1 và tại thời điểm t là c t ; đầu ra (output) tại thời điểm t-1 là h t-1 và tại thời điểm t là h t Giá trị ban đầu của c t và h t tại t = 0 sẽ bằng không

Bước 1: Khởi tạo các trọng số (weights)

Trọng số của các cổng (gate) là:

Input gate: w xi , w xg , b i , w hi , w hg , b g

Bước 2: Lan truyền qua các cổng khác nhau

Inputs: x t và h t-1 , c t-1 được đưa vào tế bào LSTM

Lan truyền qua input gate:

Z i = w xi * x t + w hi * h t-1 + b i i = sigmoid(Z i ) input_gate_out = g*i

Lan truyền qua forget gate:

Z f = w xf * x + w hf * h t-1 + b f f = sigmoid(Z f ) forget_gate_out = f

Lan truyền qua output gate:

Z o = w xo * x t + w ho * h t-1 + b o o = sigmoid(z o ) out_gate_out = o

Bước 3: Tính giá trị output h t và trạng thái tế bào hiện tại c t

Tính trạng thái tế bào hiện tại c t : c t = (c t-1 * forget_gate_out) + input_gate_out Tính output gate h t : h t = out_gate_out * tanh(c t )

4.1.2 Giai đoạn lan truyền ngược

Hình 4.2 Sơ đồ Lan truyền ngược (Back Pass)

Tính gradient qua quá trình lan truyền ngược theo thời gian tại bước thời gian t bằng cách sử dụng quy tắc chuỗi (chain rule) Đây là giai đoạn Backward Pass của giải thuật

Cho phép gradient truyền ngược

Nếu chúng ta sử dụng hàm MSE (mean square error) để tính sai số:

Trong đó : y là giá trị ban đầu và h(x) là giá trị dự đoán

Gradient của hàm lỗi đối với output gate (cổng đầu ra): dE/do = (dE/dh t ) * (dh t /do) = E_delta * (dh t /do) dE/do = E_delta * tanh(c t )

Gradient của hàm lỗi đối với c t : dE/dc t = (dE/dh t ) * (dh t /dc t ) = E_delta * (dh t /dc t ) dE/dc t = E_delta * o * (1-tanh 2 (c t ))

Gradient của hàm lỗi đối với input gate và trạng thái ẩn : dE/di = (dE/dc t ) * (dc t /di) dE/di = E_delta * o * (1-tanh 2 (c t )) * g

Làm tương tự với g: dE/dg = E_delta * o * (1-tanh 2 (c t )) * i

Gradient của hàm lỗi đối với forget gate : dE/df = (dE/dc t ) * (dc t /df) dE/df = E_delta * o * (1-tanh 2 (c t )) * c t-1

Gradient của hàm lỗi đối với c t-1 : dE/dc t-1 = (dE/dc t ) * (dc t /dc t-1 ) dE/dc t = E_delta * o * (1-tanh 2 (c t )) * f

Gradient của hàm lỗi đối với các trọng số output gate : dE/dw xo = dE/do * (do/dw xo ) = E_delta * tanh(c t )

* sigmoid(z o ) * (1-sigmoid(z o )) * x t dE/dw ho = dE/do * (do/dw ho ) = E_delta * tanh(c t )

* sigmoid(z o ) * (1-sigmoid(z o )) * h t-1 dE/db o = dE/do * (do/db o ) = E_delta * tanh(c t )

Gradient của hàm lỗi đối với các trọng số forget gate : dE/dw xf = dE/df * (df/dw xf ) = E_delta * o * (1-tanh 2 (c t ))

* c t-1 * sigmoid(z f ) * (1-sigmoid(z f )) * x t dE/dw hf = dE/df * (df/dw hf ) = E_delta * o * (1-tanh 2 (c t ))

* c t-1 * sigmoid(z f ) * (1-sigmoid(z f )) * h t-1 dE/db f = dE/df * (df/db f ) = E_delta * o * (1-tanh 2 (c t ))

Gradient của hàm lỗi đối với các trọng số input gate : dE/dw xi = dE/di * (di/dw xi ) = E_delta * o * (1-tanh 2 (c t ))

* g * sigmoid(z i ) * (1-sigmoid(z i )) * x t dE/dw hi = dE/di * (di/dw hi ) = E_delta * o * (1-tanh 2 (c t ))

* g * sigmoid(z i ) * (1-sigmoid(z i )) * h t-1 dE/db i = dE/di * (di/db i ) = E_delta * o * (1-tanh 2 (c t ))

* g * sigmoid(z i ) * (1-sigmoid(z i )) dE/dw xg = dE/dg * (dg/dw xg ) = E_delta * o * (1-tanh 2 (c t ))

* i * (1-tanh 2 (z g )) * x t dE/dw hg = dE/dg * (dg/dw hg ) = E_delta * o * (1-tanh 2 (c t ))

* i * (1-tanh 2 (z g )) * h t-1 dE/db g = dE/dg * (dg/db g ) = E_delta * o * (1-tanh 2 (c t ))

Cuối cùng, các gradient được liên kết với các trọng số là:

▪ dE/dw xo = dE/do * (do/dw xo ) = E_delta * tanh(c t ) * sigmoid(z o ) * (1-sigmoid(z o )) * x t

▪ dE/dw ho = dE/do * (do/dw ho ) = E_delta * tanh(c t ) * sigmoid(z o ) * (1-sigmoid(z o )) * h t-1

▪ dE/db o = dE/do * (do/db o ) = E_delta * tanh(c t ) * sigmoid(z o ) * (1-sigmoid(z o ))

▪ dE/dw xf = dE/df * (df/dw xf ) = E_delta * o * (1-tanh 2 (c t )) * c t-1 * sigmoid(z f ) * (1-sigmoid(z f )) * x t

▪ dE/dw hf = dE/df * (df/dw hf ) = E_delta * o * (1-tanh 2 (c t )) * c t-1 * sigmoid(z f ) * (1-sigmoid(z f )) * h t-1

▪ dE/db f = dE/df * (df/db f ) = E_delta * o * (1-tanh 2 (c t )) * c t-1 * sigmoid(z f ) * (1-sigmoid(z f ))

▪ dE/dw xi = dE/di * (di/dw xi ) = E_delta * o * (1-tanh 2 (c t )) * g * sigmoid(z i ) * (1-sigmoid(z i )) * x t

▪ dE/dw hi = dE/di * (di/dw hi ) = E_delta * o * (1-tanh 2 (c t )) * g * sigmoid(z i ) * (1-sigmoid(z i )) * h t-1

▪ dE/db i = dE/di * (di/db i ) = E_delta * o * (1-tanh 2 (c t )) * g * sigmoid(z i ) * (1-sigmoid(z i ))

▪ dE/dw xg = dE/dg * (dg/dw xg ) = E_delta * o * (1-tanh 2 (c t )) * i * (1-tanh 2 (z g )) * x t

▪ dE/dw hg = dE/dg * (dg/dw hg ) = E_delta * o * (1-tanh 2 (c t )) * i * (1-tanh 2 (z g )) * h t-1

▪ dE/db g = dE/dg * (dg/db g ) = E_delta * o * (1-tanh 2 (c t )) * i * (1-tanh 2 (z g ))

Sử dụng tất cả các gradient, chúng tôi có thể dễ dàng cập nhật các trọng số liên quan đến cổng đầu vào, cổng đầu ra và cổng quên

Việc huấn luyện mạng LSTM giúp hạn chế vấn đề bị suy giảm độ dốc

(vanishing gradient) hoặc vấn đề bùng nổ độ dốc (exploding gradient)

Chi tiết giải thuật được trình bày ở Hình 4.3

1 Loop until điều kiện dừng thỏa (Maximum number epoch)

1.1 For each batch trong tập dữ liệu

1.1.1 For each element trong tập batch

1.1.1.1 Thực hiện forward pass cho tế bào LSTM

- Khởi tạo các trọng số của các cổng trong tế bào LSTM + Trọng số của Input gate: w xi , w xg , b i , w hi , w hg , b g + Trọng số của Forget gate: w xf , b f , w hf

+ Trọng số của Output gate : w xo , b o , w ho

- Thực hiện việc lan truyền qua các cổng

+ Tính giá trị đầu ra của Input gate:

+ Tính giá trị đầu ra tại Forget gate:

+ Tính giá trị đầu ra của Output gate:

Trong đó: x t là giá trị input tại thời điểm t và h t-1 là đầu ra tại thời điểm t-1

- Tính giá trị output h t và trạng thái tế bào hiện tại c t

1.1.1.2 Thực hiện backward pass bằng giải thuật Gradient Descent

(theo quy tắc chain rule) để minimize hàm Loss

Gọi y là giá trị ban đầu và h(x) là giá trị dự báo

- Tính sai số của hàm lỗi:

- Tính đạo hàm của hàm lỗi đối với h t : E_delta = dE/dh t

- Tính đạo hàm của hàm lỗi đối với output gate : dE/do = (dE/dh t ) * (dh t /do) = E_delta * (dh t /do) dE/do = E_delta * tanh(c t )

- Tính đạo hàm của hàm lỗi đối với c t : dE/dc t = (dE/dh t ) * (dh t /dc t )= E_delta * (dh t /dc t ) dE/dc t = E_delta * o * (1-tanh 2 (c t ))

- Tính đạo hàm của hàm lỗi đối với input gate và trạng thái ẩn: dE/di = (dE/dc t ) * (dc t /di) dE/di = E_delta * o * (1-tanh 2 (c t )) * g

Làm tương tự với trạng thái ẩn g: dE/dg = E_delta * o * (1-tanh 2 (c t )) * i

- Tính đạo hàm của hàm lỗi đối với forget gate : dE/df = (dE/dc t ) * (dc t /df) dE/df = E_delta * o * (1-tanh 2 (c t )) * c t-1

- Tính đạo hàm của hàm lỗi đối với c t-1 : dE/dc t-1 = (dE/dc t ) * (dc t /dc t-1 ) dE/dc t-1 = E_delta * o * (1-tanh 2 (c t )) * f

- Tính đạo hàm của hàm lỗi đối với các trọng số output gate : dE/dw xo = dE/do * (do/dw xo ) = E_delta * tanh(c t )

* sigmoid(z o ) * (1-sigmoid(z o )) * x t dE/dw ho = dE/do * (do/dw ho ) = E_delta * tanh(c t )

* sigmoid(z o ) * (1-sigmoid(z o )) * h t-1 dE/db o = dE/do * (do/db o ) = E_delta * tanh(c t )

- Tính đạo hàm của hàm lỗi đối với các trọng số forget gate: dE/dw xf = dE/df * (df/dw xf ) = E_delta * o * (1-tanh 2 (c t ))

* c t-1 * sigmoid(z f ) * (1-sigmoid(z f )) * x t dE/dw hf = dE/df * (df/dw hf ) = E_delta * o * (1-tanh 2 (c t ))

* c t-1 * sigmoid(z f ) * (1-sigmoid(z f )) * h t-1 dE/db o = dE/df * (df/db o ) = E_delta * o * (1-tanh 2 (c t ))

- Tính đạo hàm của hàm lỗi đối với các trọng số input gate : dE/dw xi = dE/di * (di/dw xi ) = E_delta * o * (1-tanh 2 (c t ))

*g * sigmoid(z i ) * (1-sigmoid(z i )) * x t dE/dw hi = dE/di * (di/dw hi ) = E_delta * o * (1-tanh 2 (c t ))

* g * sigmoid(z i ) * (1-sigmoid(z i )) * h t-1 dE/db i = dE/di * (di/db i ) = E_delta * o * (1-tanh 2 (c t ))

* g * sigmoid(z i ) * (1-sigmoid(z i )) dE/dw xg = dE/dg * (dg/dw xg ) = E_delta * o * (1-tanh 2 (c t ))

* i * (1-tanh 2 (z g )) * x t dE/dw hg = dE/dg * (dg/dw hg ) = E_delta * o * (1-tanh 2 (c t ))

* i * (1-tanh 2 (z g )) * h t-1 dE/db g = dE/dg * (dg/db g ) = E_delta * o * (1-tanh 2 (c t ))

1.1.1.3 Cập nhật lại các trọng số liên quan đến input gate, forget gate và output gate của tế bào LSTM

Hình 4.3 Huấn luyện mạng LSTM bằng giải thuật BPTT để điều chỉnh trọng số toàn mạng (fine-tuning)

Sơ đồ giải thuật BPTT được thể hiện qua Hình 4.4

Trong huấn luyện mạng nơ-ron nói chung về cơ bản có ba phương pháp cập nhập các trọng số phân loại theo thời điểm cập nhập: học theo mẫu (learning by pattern) và học theo epoch (learning by epoch) và học theo nhóm mẫu (learning by group pattern) Một epoch là một lần học duyệt qua tất cả các mẫu trong tập dữ liệu mẫu dùng để học

Trong phương pháp học theo mẫu đôi khi còn dược gọi là học trực tuyến

(online learning) áp dụng phương pháp giảm độ dốc tăng cường, cứ mỗi lần một mẫu (một sample) trong tập dữ liệu được duyệt qua thì các trọng số sẽ được cập nhập Phương pháp này cố gắng tối thiểu hàm lỗi tổng thể (overall error) bằng cách tối ưu hàm lỗi cho từng mẫu trong tập dữ liệu học Phương pháp này làm việc tốt cho các tập dữ liệu mẫu có kích cỡ lớn và chứa đựng nhiều thông tin dư thừa

Phương pháp học theo epoch thực hiện lấy tổng tất cả thông tin về độ dốc

(gradient) cho toàn bộ tập mẫu (pattern set hay sample set) sau đó mới cập nhập các trọng số theo phương pháp giảm độ dốc thông thường, nghĩa là nó thực hiện việc cập nhập trọng số sau khi đã duyệt qua hết các mẫu trong tập dữ liệu Phương pháp này còn có tên gọi khác là học theo bó (batch learning)

Phương pháp học theo nhóm mẫu thực hiện chia tập dữ liệu học thành nhiều bó (batch) hay nhiều nhóm mẫu (group sample hay group pattern), sau đó lấy tất cả thông tin về độ dốc (gradient) cho toàn bộ nhóm mẫu để cập nhập các trọng số theo phương pháp giảm độ dốc thông thường, như vậy có bao nhiêu bó trong tập dữ liệu thì các trọng số sẽ được cập nhật bấy nhiêu lần Phương pháp này còn có tên gọi khác là học theo các bó nhỏ (mini-batch learning)

Trong nghiên cứu này chúng tôi hiện thực cài đặt giải thuật học theo nhóm mẫu (mini-batch) với các lần lặp (epoch) và mỗi mẫu trong nhóm mẫu ứng với số nút vào từ tầng nhập, các nhóm mẫu này được huấn luyện và được tính tổng độ lỗi trung bình trên toàn tập dữ liệu được huấn luyện để đảm bảo tối thiểu hàm lỗi tổng thể (overall error) Mặc dù giải thuật lan truyền ngược tương đối đơn giản nhưng trong thực tế việc lựa chọn một hệ số học phù hợp là không hề đơn giản Hệ số học quá nhỏ sẽ dẫn đến thời gian hội tụ của giải thuật quá lâu, ngược lại hệ số học quá lớn sẽ dẫn đến hiện tượng giao động (oscillation), ngăn không cho giá trị hàm mục tiêu hội tụ về một diểm nhất định Hơn nữa, mặc dù điểm tối ưu cục bô có thể được chứng minh là luôn có thể đạt được ở một vài trường hợp cụ thể nhưng không có gì đảm bảo giải thuật sẽ tìm được điểm tối ưu toàn cục của hàm lỗi (hay hàm mục tiêu)

Hình 4.4 Sơ đồ huẩn luyện mạng LSTM bằng giải thuật lan truyền ngược qua thời gian

Một vấn đề khác nữa là kích cỡ của đạo hàm cũng ảnh hướng đến sự cập nhập các trọng số Nếu đạo hàm riêng phần quá nhỏ thì w nhỏ, nếu đạo hàm riêng phần lớn thì wlớn Độ lớn của đạo hàm riêng phần thay đổi không thể biết trước được theo hình dạng của hàm lỗi E trong mỗi lần lặp Do đó quá trình học không ổn định Để cho quá trình học ổn định người ta thêm vào một hệ số quán tính

Hệ số quán tính 𝜇 có tác dụng điều chỉnh mức độ ảnh hưởng của giá trị ∆𝑤 𝑖𝑗 (t – 1) ở bước lặp trước lên giá trị ∆𝑤 𝑖𝑗 (t).

KỸ THUẬT KHỞI TẠO TRỌNG SỐ CHO MẠNG NƠ-RON HỌC SÂU

LONG SHORT-TERM MEMORY (LSTM)

Khi huấn luyện mạng nơ-ron học sâu, một vấn đề thường gặp đó là vấn đề về suy giảm độ dốc (vanishing gradient) hoặc bùng nổ độ dốc (exploding gradient) Vấn đề đó như sau:

Trong giải thuật tối ưu lặp lại (iterative optimization algorithms), giải thuật đi tìm điểm tối ưu cục bộ (local optima) bằng cách cập nhật các trọng số (weight) theo hướng của độ dốc (gradient) sao cho hàm lỗi (loss function) giảm Cụ thể giải thuật suy giảm độ dốc cập nhật các trọng số như sau:

𝜕𝑊 𝑖𝑗 𝑙𝑎𝑦𝑒𝑟 Giải thuật lặp cho đến khi hội tụ (convergence) Trong thực tế, chúng ta thường thiết lập số lần lặp tối đa (max iterations) cho giải thuật suy giảm độ dốc Nếu số lần lặp tối đa quá nhỏ thì giải thuật sẽ chưa đạt đến điểm hội tụ (nghĩa là giá trị hàm lỗi còn lớn) Nếu số lần lặp quá lớn thì chúng ta tốn nhiều thời gian để huấn luyện đó là vấn đề trade-off giữa thời gian huấn luyện và độ chính xác

Nếu độ dốc tại mỗi bước quá nhỏ thì giải thuật sẽ rất lâu để hội tụ bởi vì các trọng số không thay đổi đáng kể sau mỗi lần lặp Như vậy nếu độ dốc cực kì nhỏ thì vấn đề huấn luyện mạng nơ-ron hầu như là bất khả thi (infeasible)

Hình 4.5 là một ví dụ về hàm lỗi có dạng hình thon dài (elongated loss function) vì có độ dốc rất nhỏ nên cần nhiều bước cập nhật cho các trọng số để đạt được điểm tối ưu

Hình 4.5 Hàm lỗi với độ dốc phẳng

Hình 4.6 là một ví dụ về hàm lỗi có độ dốc lớn hơn nhiều so với Hình 4.5 nên cần ít bước cập nhật hơn để đạt được đến điểm tối ưu

Hình 4.6 Hàm lỗi có độ dốc lớn

Như vậy, khi độ dốc nhỏ (small gradient ) thì chúng ta gặp vấn đề về cập nhật các trọng số Cụ thể đối với mạng ANN thông thường chúng ta hay sử dụng hàm sigmoid Hình 4.7 biểu diễn đồ thị hàm sigmoid như sau:

Hàm sigmoid hữu dụng trong việc chuyển đổi các giá trị đầu vào thành giá trị đầu ra nằm trong khoảng (0,1) (hai đầu hàm sigmoid tiệm cận 0 và 1) Tuy nhiên trong những năm gần đây người ta ít sử dụng hàm sigmoid thì nó gặp vấn đề suy giảm độ dốc (vanishing gradient) Hình 4.8 biểu diễn độ thị đạo hàm của hàm sigmoid

Hình 4.8 Đồ thị đạo hàm của hàm Sigmoid

Giá trị cao nhất của đạo hàm hàm Sigmoid là 1/4 và hàm này tiệm cận ngang ở 2 phía về 0 Nói cách khác, đầu ra của hàm này luôn nằm trong khoảng giá trị (0, 1/4]

Cấu trúc của một mạng nơ-ron đơn giản được biểu diễu ở Hình 4.9

Hình 4.9 Mô hình đơn giản một mạng ANN Đối với mạng ANN này, mục tiêu là dùng giải thuật suy giảm độ đốc để đầu ra J là nhỏ nhất Chúng ta thực hiện việc tính đạo hàm của hàm J đối với w1 sử dụng quy tắt chuỗi (chain rule) như sau:

Xét một phần tử trong chuỗi tích đạo hàm là:

Vì output được tính bằng sigmoid của đầu ra của hidden2 nên đạo hàm của ouptut sẽ chứa đạo hàm của hàm sigmoid Cụ thể là:

Bởi vì đầu ra của đạo hàm hàm sigmoid luôn nằm trong khoảng (0, 1/4], và việc khởi tạo ban đầu các trọng số w (thông thường là khởi tạo bằng hàm Gauss với

𝜕𝑧 2 𝑤 2 (4.6 ) giá trị trung bình là 0 và độ lệch chuẩn là 1 nên giá trị độ lớn của 𝜕𝑜𝑢𝑝𝑡𝑝𝑢𝑡

𝜕ℎ𝑖𝑑𝑒𝑛1 là tích của các số nhỏ hơn 1 Như vậy đạo hàm của hàm lỗi theo biến w1 sẽ là tích của nhiều số nhỏ hơn 1, điều này dẫn đến giá trị của đạo hàm theo biến w1 sẽ có giá trị cực nhỏ rất nhanh Nếu mạng ANN bao gồm nhiều lớp thì việc xếp chồng các lớp lên với nhau sẽ làm cho đạo hàm này bao gồm tích của rất nhiều số nhỏ hơn

1, vì vậy giá trị của nó sẽ cực kì nhỏ Điều này dẫn đến vấn đề suy giảm độ dốc rất nhanh Đối với trường hợp bùng nổ độ dốc (exploding gradient) thì giá trị của đạo hàm theo một tham số nào đó là tích của các số lớn 1, dẫn đến giá trị của nó sẽ tăng rất nhanh gây nên sự bùng nổ độ dốc

Hiện nay có rất nhiều phương pháp để giúp giảm thiểu vấn đề suy giảm độ dốc đó là việc khởi tạo các trọng số của mạng ANN, việc sử dụng các hàm kích hoạt khác (hàm ReLu), việc sử dụng các kĩ thuật như “short-cut/ skip connection” trong mạng Residual Network [33] Trong đề tài này, chúng tôi sử dụng cách khởi tạo trọng số được đề xuất bởi nhóm tác giả Xavier Glorot, Yoshua Bengio (2010) [34] và sử dụng hàm kích hoạt RELU

Khởi tạo trọng số Xavier bằng cách rút trích từ phân bố Gaussian với giá trị trung bình bằng 0 (zero mean) và với phương sai bằng công thức sau:

Trong đó 𝑛 𝑖𝑛 là số lượng nơ-ron input đầu vào của một lớp trong mạng ANN

Hàm kích hoạt RELU được biểu diễn bởi công thức toán học sau:

Hay một cách viết khác là:

Hình 4.10 biểu diễn đồ thị của hàm kích hoạt RELU

Hình 4.10 Đồ thị biểu diễn hàm RELU

THỰC NGHIỆM VÀ ĐÁNH GIÁ

CÁCH THỨC THỰC NGHIỆM

Trong nghiên cứu này chúng tôi chỉ tập trung vào việc huấn luyện mạng để đưa ra các kết quả dự báo chuỗi thời gian có tính hỗn loạn Vì vậy, để đơn giản cho quá trình thực nghiệm, chúng tôi lựa chọn các bộ dữ liệu chuỗi thời gian có tính hỗn loạn để chạy thực nghiệm từ đề tài của tác giả Tạ Ngọc Huy Nam [36] được đề cập ở trên và sử dụng một số kết quả từ đề tài này để so sánh Để minh chứng cho tính hiệu quả của mô hình sử dụng mạng nơ-ron học sâu LSTM kết hợp với tái tạo không gian pha vào dự báo cho chuỗi thời gian có tính hỗn loạn so với mạng nơ-ron học sâu Deep Belief Network (DBN) kết hợp với tái tạo không gian pha và so sánh sự hiệu quả giữa hai mô hình, chúng tôi tiến hành chạy thực nghiệm trên bảy (7) bộ dữ liệu, trong đó có ba (3) bộ dữ liệu được sinh ra từ phương trình lý thuyết là phương trình Lorenz, phương trình Mackey-Glass (MG), phương trình Rossler và bốn (4) bộ dữ liệu thực tế khác nhau từ đề tài được tham khảo (đề tài của tác giả Tạ Ngọc Huy Nam) Sai số dự báo của các mô hình và thời gian thực thi sẽ được so sánh với nhau

Các mô hình mạng dự báo chuỗi thời gian có tính hỗn loạn thường được chọn có số nút đầu vào bằng với chu kỳ của chuỗi thời gian hoặc bằng với số chiều nhúng mà chúng tôi thu được khi áp dụng phương pháp tái tạo không gian pha, trong hiện thực của luận văn này, chúng tôi cũng ưu tiên chọn số nút đầu vào bằng với số chiều nhúng, số tầng LSTM, số nút ẩn (hidden units) trên mỗi tầng LSTM và các thông số còn lại khác chúng tôi phải xác định chúng qua thực nghiệm, số nút đầu ra ở tầng xuất có giá trị là 1 cho chuỗi thời gian có tính hỗn loạn Ứng với mỗi mô hình, chúng tôi thực hiện chạy trên nhiều cấu hình khác nhau, mỗi cấu hình chạy 3 lần tương ứng với 3 chỉ số sai số ở trên, sai số dự báo của cấu hình là sai số dự báo tốt nhất (nhỏ nhất) trong mỗi lần chạy Độ chính xác dự báo của mô hình khi đem so sánh với các mô hình khác sẽ là độ chính xác của cấu hình có sai số dự báo nhỏ nhất

Môi trường thực nghiệm: các thực nghiệm đều được chạy với máy tính có cấu hình: Ram 8GB, CPU Core i7 2.5 GHz, cài đặt hệ điều hành Windows 10 Professional 64bits, framework Keras Chúng tôi chọn Keras để thực nghiệm vì nó là một trong những công cụ hỗ trợ mạnh nhất (được phát triển vào năm 2005 bởi Francois Chollet, một nhà nghiên cứu trí tuệ nhân tạo tại Google) cho việc xây dựng, huấn luyện, kiểm thử, trực quan hóa dữ liệu cho mạng nơ-ron học sâu Nó hỗ trợ các hàm tính toán ma trận, các hàm kích hoạt, các giải thuật khởi tạo trọng số Xavier [34] cho mạng nơ-ron, giải thuật suy giảm độ dốc (Gradient Descent), các bộ tối ưu hóa như Adam Optimizer, Gradient Descent Optimizer, RMS prop Optimizer, Việc cài đặt và sử dụng các tài liệu liên quan đến Keras được chúng tôi tham khảo [32] Kèm theo đó là các thư viện hỗ trợ như Numpy dùng cho phép chuyển đổi dữ liệu sang dạng ma trận, các phép tính trên ma trận, thư viện Matplotlib hỗ trợ trực quan hóa dữ liệu, các hàm lỗi vv và thư viện Sklearn hỗ trợ các hàm phân tách dữ liệu (chia tập dữ liệu thành tập huấn luyện, tập kiểm thử), các hàm đo đạc hàm lỗi, Ngôn ngữ viết trên nền framework được sử dụng là ngôn ngữ Python

Mô hình LSTM được chúng tôi hiện thực trên ngôn ngữ lập trình Python Dưới đây là kết quả thực nghiệm chi tiết của các bộ dữ liệu.

KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ

5.2.1 Bộ dữ liệu được tạo bởi phương trình Lorenz Đây là bộ dữ liệu được tạo ra từ phương trình Lorenz và được viết lại như sau:

Bộ dữ liệu này chúng tôi chỉ lấy một chuỗi thời gian có chiều dài 1000 mẫu có tính hỗn loạn Chúng tôi dùng các giá trị từ 1 đến 800 để huấn luyện cho mô hình, các giá trị từ 801 đến 1000 dùng để kiểm tra độ chính xác dự báo của mô hình Hình

5.1 biểu diễn hình dạng của chuỗi thời gian này Dựa vào giải thuật xây dựng lại không gian pha, chúng tôi xác định thời gian trễ là 7, số chiều nhúng đối với bộ dữ liệu này là 10 Chúng tôi cấu hình mạng LSTM_PSR gồm 2 tầng LSTM xếp chồng liên tiếp nhau với 10 giá trị đầu vào, 128 đơn vị ẩn cho tầng LSTM thứ nhất, 128 đơn vị ẩn cho tầng LSTM thứ hai và tầng xuất là tầng kết nối đầy đủ có 1 đơn vị Tiếp theo chúng tôi cấu hình mạng dùng giải thuật lan truyền ngược qua thời gian BPTT với hệ số học cho trọng số là 0.0001, số epoch tối đa là 1000, hàm kích hoạt là hàm RELU, kích thước bó là 32, hàm chi phí (hay hàm lỗi) MSE

Kết quả thực nghiệm cho hai mô hình được mô tả trong Bảng 5-1 Ngoài ra,

Hình 5.2 biểu diễn độ lỗi MSE khi huấn luyện mạng nơ-ron LSTM_PSR với dữ liệu

Lorenz, Hình 5.3 cho thấy được kết quả dự báo của mô hình đối với tập huấn luyện,

Hình 5.4 so sánh kết quả dự báo của hai mô hình là LSTM_PSR và DBN_PSR

Thời gian huấn luyện cho mạng LSTM_PSR và mạng DBN_PSR lần lượt là 164.41s và 513s

Hình 5.1 Chuỗi thời gian có tính hỗn loạn Lorenz

Bảng 5-1 Kết quả thực nghiệm cho chuỗi thời gian có tính hỗn loạn Lorenz

Mô hình Cấu hình Sai số dự báo

Mạng nơ-ron học sâu DBN_PSR

(DBN kết hợp với tái tạo không gian pha)

Giải thuật: giải thuật CD + lan truyền ngược

Số epoch tối đa cho RBM: 100

Hệ số học cho RBM: 0.01

Số lần lặp cho giải thuật CD: 2 Kích thước bó: 32

Khởi tạo trọng số: Xavier

Số epoch tối đa cho mạng MLP: 1500

Số nút ẩn cho tầng MLP: 10

Hệ số học cho mạng MLP: 0.03 Hàm kích hoạt: RELU

(LSTM kết hợp với tái tạo không gian pha)

Giải thuật: xây dựng lại không gian pha

Giải thuật: lan truyền ngược qua thời gian

Số chiều nhúng: 10 Thời gian trễ: 7

Hệ số học cho mạng: 0.0001

Số nút cho tầng LSMT 1: 128

Số nút cho tầng LSTM 2: 128 Kích thước bó: 32

Số epoch tối đa cho mạng: 1000 Hàm kích hoạt: RELU

Hình 5.2 Đồ thị biểu thị hàm lỗi MSE của mạng LSTM_PSR đối với dữ liệu Lorenz

Hình 5.3 Kết quả dự báo của mạng LSTM_PSR trên tập huấn luyện Lorenz a) Kết quả dự báo của mạng LSTM_PSR trên tập kiểm thử Lorenz b) Kết quả dự báo của mạng DBN_PSR trên tập kiểm thử Lorenz

Hình 5.4 Kết quả dự báo của mạng LSTM_PSR trên tập kiểm thử so với mạng

Nhận xét: Đối với bộ dữ liệu này thì mô hình dự báo sử dụng mạng nơ-ron

LSTM kết hợp với tái tạo không gian pha cho kết quả tốt hơn về mặt độ chính xác dự báo so với mô hình DBN kết hợp với tái tạo không gian pha

5.2.2 Bộ dữ liệu được tạo bởi phương trình Mackey-Glass Đây là bộ dữ liệu mà được tạo ra từ phương trình Mackey-Glass sau đây:

Bộ dữ liệu này là một chuỗi thời gian có chiều dài 1001 mẫu đồng thời có tính hỗn loạn Chúng tôi dùng các giá trị từ 1 đến 800 để huấn luyện cho mô hình, các giá trị từ 801 đến 1001 dùng để kiểm tra độ chính xác dự báo của mô hình Hình 5.2 biểu diễn hình dạng của chuỗi thời gian này Dựa vào giải thuật xây dựng lại không gian

1 + 𝑥 𝑐 (𝑡 − 𝜏)− 𝑏𝑥(𝑡) (5.2 ) pha, chúng tôi xác định thời gian trễ là 17, số chiều nhúng đối với bộ dữ liệu này là

10 Chúng tôi chọn mạng nơ-ron gồm 2 tầng LSTM xếp chồng liên tiếp nhau với 10 giá trị đầu vào, 128 đơn vị ẩn cho tầng LSTM thứ nhất, 128 đơn vị ẩn cho tầng LSTM thứ hai và tầng xuất là tầng kết nối đầy đủ có 1 đơn vị

Tiếp theo chúng tôi cấu hình mạng dùng giải thuật lan truyền ngược qua thời gian BPTT với hệ số học cho trọng số là 0.0001, số epoch tối đa là 800, hàm kích hoạt là hàm RELU, kích thước bó là 32, hàm chi phí (hay hàm lỗi) MSE

Hình 5.5 Chuỗi thời gian có tính hỗn loạn Mackey-Glass

Kết quả thực nghiệm cho hai mô hình được mô tả trong Bảng 5-2 Ngoài ra,

Hình 5.6 biểu diễn độ lỗi MSE khi huấn luyện mạng nơ-ron LSTM_PSR với dữ liệu

Mackey-Glass, Hình 5.7 cho thấy được kết quả dự báo của mô hình đối với tập huấn luyện, Hình 5.8 so sánh kết quả dự báo của hai mô hình là LSTM_PSR và DBN_PSR

Thời gian huấn luyện cho mạng LSTM_PSR và mạng DBN_PSR lần lượt là 96.77s và 151s

Bảng 5-2 Kết quả thực nghiệm cho chuỗi thời gian có tính hỗn loạn Mackey-Glass

Mô hình Cấu hình Sai số dự báo

Mạng nơ-ron học sâu DBN_PSR

(DBN kết hợp với tái tạo không gian pha)

Giải thuật: giải thuật CD + lan truyền ngược

Số epoch tối đa cho RBM: 100

Hệ số học cho RBM: 0.01

Số lần lặp cho giải thuật CD: 2 Kích thước bó: 32

Khởi tạo trọng số: Xavier

Số epoch tối đa cho mạng MLP: 1500

Số nút ẩn cho tầng MLP: 10

Hệ số học cho MLP: 0.03 Hàm kích hoạt RELU

(LSTM kết hợp với tái tạo không gian pha)

Giải thuật: xây dựng lại không gian pha

Giải thuật: lan truyền ngược qua thời gian

Số chiều nhúng: 10 Thời gian trễ: 17

Hệ số học cho mạng: 0.0001

Số nút ẩn cho tầng LSTM1: 128

Số nút ẩn cho tầng LSTM2: 128 Kích thước bó: 32

Số epoch tối đa cho mạng: 800 Hàm kích hoạt: RELU

Hình 5.6 Đồ thị biểu thị hàm lỗi MSE của mạng LSTM_PSR đối với dữ liệu Mackey-

Hình 5.7 Kết quả dự báo của mạng LSTM_PSR trên tập huấn luyện Mackey-Glass a) Kết quả dự báo của mạng LSTM_PSR trên tập kiểm thử Mackey-Glass b ) Kết quả dự báo của mạng DBN_PSR trên tập kiểm thử Mackey-Glass

Hình 5.8 Kết quả dự báo của hai mô hình cho chuỗi thời gian có tính hỗn loạn Mackey-

Nhận xét: Đối với bộ dữ liệu này thì mô hình dự báo sử dụng mạng nơ-ron

LSTM kết hợp với tái tạo không gian pha cho kết quả tốt hơn mạng DBN kết hợp với tái tạo không gian pha về mặt độ chính xác dự báo

5.2.3 Bộ dữ liệu được tạo bởi phương trình Rossler Đây là bộ dữ liệu mà được tạo ra từ phương trình Rossler sau đây:

Bộ dữ liệu này là một chuỗi thời gian có chiều dài 8192 đồng thời có tính hỗn loạn Chúng tôi dùng các giá trị từ 1 đến 6554 để huấn luyện cho mô hình, các giá trị từ 6555 đến 8192 dùng để kiểm tra độ chính xác dự báo của mô hình Hình 5.9 biểu diễn hình dạng của chuỗi thời gian này Dựa vào giải thuật xây dựng lại không gian pha, chúng tôi xác định thời gian trễ là 15, số chiều nhúng đối với bộ dữ liệu này là các giá trị từ 4 đến 10 Chúng tôi chọn mạng nơ-ron gồm 2 tầng LSTM xếp chồng liên tiếp nhau với 10 giá trị đầu vào, 128 đơn vị ẩn cho tầng LSTM thứ nhất, 128 đơn vị ẩn cho tầng LSTM thứ hai và tầng xuất là tầng kết nối đầy đủ có 1 đơn vị

Tiếp theo chúng tôi cấu hình mạng dùng giải thuật lan truyền ngược qua thời gian BPTT với hệ số học cho trọng số là 0.0001, số epoch tối đa là 1000, hàm kích hoạt là hàm RELU, kích thước bó là 32, hàm chi phí (hay hàm lỗi) MSE

Kết quả thực nghiệm cho các mô hình được mô tả trong Bảng 5-3 Ngoài ra,

Hình 5.10 biểu diễn độ lỗi MSE khi huấn luyện mạng nơ-ron LSTM_PSR với dữ liệu

Rossler, Hình 5.11 cho thấy được kết quả dự báo của mô hình đối với tập huấn luyện,

Hình 5.12 so sánh kết quả dự báo của hai mô hình là LSTM_PSR và DBN_PSR

Thời gian huấn luyện cho mạng LSTM_PSR và mạng DBN_PSR lần lượt là 506.34s và 395s

Hình 5.9 Chuỗi thời gian có tính hỗn loạn Rossler Bảng 5-3 Kết quả thực nghiệm cho chuỗi thời gian có tính hỗn loạn Rossler

Mô hình Cấu hình Sai số dự báo

Mạng nơ-ron học sâu DBN_PSR

(DBN kết hợp với tái tạo không gian pha)

Giải thuật: giải thuật CD + lan truyền ngược

Số epoch tối đa cho RBM: 20

Hệ số học cho RBM: 0.01

Số lần lặp cho giải thuật CD: 2 Kích thước bó: 32

Khởi tạo trọng số: Xavier

Số epoch tối đa cho mạng MLP: 500

Số nút ẩn cho tầng MLP: 10

Hệ số học cho mạng MLP: 0.03 Hàm kích hoạt: RELU

(LSTM kết hợp với tái tạo không gian pha)

Giải thuật: xây dựng lại không gian pha

Giải thuật: lan truyền ngược qua thời gian

Số chiều nhúng: 10 Thời gian trễ: 15

Hệ số học cho mạng: 0.0001

Số nút ẩn cho tầng LSTM1: 128

Số nút ẩn cho tầng LSTM2: 128 Kích thước bó: 32

Số epoch tối đa cho mạng: 500 Hàm kích hoạt: RELU

Hình 5.10 Đồ thị biểu thị hàm lỗi MSE của mạng LSTM_PSR đối với dữ liệu Rossler

Hình 5.11 Kết quả dự báo của mạng LSTM_PSR trên tập huấn luyện Rossler a) Kết quả dự báo của mạng LSTM_PSR trên tập kiểm thử Rossler b) Kết quả dự báo của mạng DBN_PSR trên tập kiểm thử Rossler

Hình 5.12 Kết quả dự báo của hai mô hình cho chuỗi thời gian có tính hỗn loạn Rossler

Nhận xét: Đối với bộ dữ liệu Rossler, tập huấn luyện có nhiều mẫu nên việc việc huấn luyện cho LSTM_PSR sẽ tốn nhiều thời gian thực thi nên chúng tôi điều chỉnh số epoch tối đa của mô hình giảm xuống nhiều so với bộ dữ liệu Lorenz và Mackey-Glass Mặc dù thực thi lâu hơn mô hình DBN_PSR, nhưng độ chính xác dự báo thì cao hơn so với DBN_PSR Kết quả cho thấy chuỗi dữ liệu có số mẫu lớn thì mô hình huấn luyện sẽ cho ra kết quả sự báo chính xác hơn, đó là điều hoàn toàn hợp lý cho việc huấn luyện mạng nơ-ron học sâu

5.2.4 Bộ dữ liệu về độ đo trung bình các vệt đen mặt trời

Bộ dữ liệu về độ đo trung bình số vệt đen mặt trời được thu thập hàng tháng từ tháng 1 năm 1824 tới tháng 12 năm 2018

Bộ dữ liệu này là một chuỗi thời gian có chiều dài 2340 mẫu có tính hỗn loạn Chúng tôi dùng các giá trị từ 1 đến 2223 để huấn luyện cho mô hình, các giá trị từ

Ngày đăng: 31/07/2024, 09:55

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN