Thuật toán huấn luyện hệ suy luận mờ ANFIS

Một phần của tài liệu Dự báo dữ liệu chuỗi thời gian dựa trên hệ suy luận ANFIS (Trang 63 - 66)

CHƯƠNG 4 HỆ SUY LUẬN ANFIS

4.2. Xây dựng mô hình suy luận mờ ANFIS nhằm dự báo giá cổ phiếu

4.4.3. Thuật toán huấn luyện hệ suy luận mờ ANFIS

Nhằm xây dựng hệ dự báo giá cổ phiếu dựa trên mạng ANFIS như đã đề xuất, bước đầu tiên cần phải thực hiện huấn luyện mạng ANFIS này. Kết quả huấn luyện sẽ có được một ma trận hệ số để từ đó giúp cho quá trình nội suy bằng phương pháp Takagi-Sugeno để có được kết quả dự báo. Trong phần này trình bày thuật toán huấn luyện mạng neuro-fuzzy ANFIS như đã đề xuất với đầu vào là tập dữ liệu huấn luyện được lấy từ dữ liệu thực tế trên Cophieu68. Để huấn luyện theo các giá trị thực tế, trong thuật toán huấn luyện này cần có một tập các vector giá trị thực để từ đó tính sai số trong mỗi lần lan truyền xuôi trên mạng neuro-fuzzy ANFIS. Dựa trên kết quả lan truyền xuôi, thuật toán huấn luyện thực hiện tính sai số, nếu như sai số chưa thỏa mãn điều kiện hội tụ thì thuật toán huấn luyện thực hiện quá trình lan truyền ngược để tinh chỉnh các hệ số suy luận sao cho phù hợp với giá trị thực tế, tức là làm giảm đi sai số dự báo.

Thuật toán huấn luyện mạng neuro-fuzzy ANFIS được trình bày như sau:

Đầu vào: Tập ma trận dữ liệu huấn luyện Training{M1,...,MT} Tập vector giá trị thực Real{ ,..., }r1 rT

Đầu ra: Tập ma trận hệ số suy luận R{ ,R R1 2,...,RT} Phương pháp

Bước 1: Khởi tạo

(1) Tạo tập ma trận mờ Mfuzzy{Mf1,...,MfT} từ tập huấn luyện Training; (2) Tạo tập vector trọng số W {W1,...,WT} từ tập ma trận mờ Mfuzzy;

(3) Chuẩn hóa tập vector trọng số W ;

(4) Khởi tạo ngẫu nhiên ma trận hệ số suy luận mờ R;

(5) Tính sai số Error ban đầu;

Bước 2: Huấn luyện (tức là cập nhật ma trận hệ số suy luận R) (6) Foreach (với mỗi bộ dữ liệu huấn luyện Mfi) do

(7) While (Error AND số lần lặp < 1000) do

(8) Tạo mới ma trận hệ số suy luận Ri dựa trên hàm lỗi;

(9) Tính ma trận dự báo Fi; (10) Chuẩn hóa ma trận dự báo;

(11) Tính kết quả dự báo;

(12) Tính sai số Error; (13) EndWhile

(14) Lưu trữ ma trận hệ số Ri của bộ dữ liệu huấn luyện Mfi; (15) EndForeach

Kết thúc

Trong thuật toán trên thực hiện gồm 2 bước, bước thứ nhất thực hiện quá trình khởi tạo các giá trị cần thiết cho quá trình huấn luyện, bước thứ hai thực hiện huấn luyện (tức là cập nhật ma trận hệ số suy luận R).

Tại dòng lệnh (1) của thuật toán huấn luyện thực hiện việc tính tập các ma trận mờ từ tập dữ liệu huấn luyện. Giả sử có T bộ dữ liệu huấn luyện, mỗi bộ dữ liệu huấn luyện có k trạng thái (trong thực nghiệm k4 ứng với 4 trạng thái giá cổ phiếu gồm giá mở <Open>, giá cao nhất <High>, giá thấp nhất <Low>, giá đóng <Close>). Ứng với mỗi bộ dữ liệu huấn luyện Mi, tại dòng lệnh (1) tính ma trận mờ tương ứng. Giả sử ma trận huấn luyện Mim dòng n cột và k trạng thái thì quá trình mờ hóa bao gồm m n k  phép toán mờ hóa. Do đó, độ phức tạp để mờ hóa một bộ dữ liệu MiO m n k C(    ), trong đó C là hằng số mô tả số phép toán mờ hóa bằng hàm Gaussian. Vì vậy, độ phức tạp của dòng lệnh (1) là O T m n k C(     ). Trong thực nghiệm thì T 50, m120, n30, do đó độ phức tạp là 50 120 30  C. Do đó, tại dòng lệnh thứ nhất độ phức tạp là tuyến tính 180,000C.

Tại dòng lệnh (2) thực hiện tính trọng số mờ ứng với mỗi ma trận mờ Mfi để tạo thành các vector trọng số Wi. Trong trường hợp dự báo giá cổ phiếu của luận văn thì có 4 trạng thái, do đó mỗi vector trọng số Wi có 4 vector thành phần tương ứng với 4 trạng thái của giá cổ phiếu. Mỗi giá trị của một vector thành phần được tính bằng cách tổng hợp từng cột của ma trận hệ số mờ Mfi. Do đó, cần phải thực hiện m phép toán. Tương tự như trên, độ phức tạp của dòng lệnh (2) trong trường hợp này là

( )

O T  k m n . Vì các giá trị T k m n, , , là giới hạn, nên trong trường hợp này độ phức tạp của dòng lệnh (2) cũng là tuyến tính.

Tại dòng lệnh (3) thực hiện chuẩn hóa tập vector trọng số do đó độ phức tạp của dòng lệnh này sẽ là O T k n(   ), với n là số cột của ma trận mờ. Như vậy, tại bước 1 độ phức tạp là (O T k n m C)(   m 1).

Tại bước 2 của thuật toán huấn luyện thực hiện quá trình huấn luyện trên mỗi bộ dữ liệu Mfi. Tại dòng lệnh (7) thực hiện kiểm tra điều kiện hội tụ của quá trình huấn luyện của từng bộ dữ liệu. Mỗi lần huấn luyện cần thực hiện tối đa là V vòng lặp (trong thực nghiệm V 1, 000). Tại mỗi lần lặp, cần tính lại ma trận hệ số suy luận Ri tương ứng để từ đó tính ma trận dự báo Fi tại dòng lệnh (9). Độ phức tạp tại

dòng lệnh (8) và (9) là O k m n(   ). Tại dòng lệnh (10) thực hiện chuẩn hóa ma trận dự báo Fi, tại dòng lệnh này độ phức tạp vẫn là O k m n(   ). Dựa trên ma trận dự báo đã chuẩn hóa thực hiện tính kết quả dự báo bằng cách tổng hợp theo phương pháp suy luận mờ Takagi-Sugeno tại dòng lệnh (11), trong trường hợp này độ phức tạp là

( )

O m k . Tại dòng lệnh (12) thực hiện tính giá trị sai số bằng tổng trung bình độ lệch do đó độ phức tạp là (O m k ).

Trên cơ sở phân tích như trên, tại bước 2 của thuật toán huấn luyện có độ phức tạp là O V(  m k(3 n 2)).

Do đó, độ phức tạp của thuật toán huấn luyện là:

( )( 1) ( (3 2))

Một phần của tài liệu Dự báo dữ liệu chuỗi thời gian dựa trên hệ suy luận ANFIS (Trang 63 - 66)

Tải bản đầy đủ (PDF)

(99 trang)