TTAO-CNN-LSTM: Hướng Dẫn Sử Dụng MATLAB Cho Dự Đoán Dữ Liệu Thời Gian

TTAO-CNN-LSTM là một mô hình dự đoán hồi quy dựa trên tối ưu hóa bộ nhớ tam giác (TTAO) kết hợp mạng nơ-ron tích chập (CNN) và mạng nơ-ron ngắn hạn dài hạn (LSTM). Mô hình này được công bố trên tạp chí HExpert Systems With Applications vào tháng 3 năm 2024, phù hợp cho cả dự đoán đơn biến và đa biến, phân loại, và có thể sử dụng nhiều thuật toán tối ưu khác nhau.

1. Hiểu Về Cấu Trúc Mô Hình

Mô hình kết hợp khả năng trích xuất đặc trưng cục bộ của CNN với khả năng ghi nhớ thời gian của LSTM. Đầu tiên, CNN sẽ phân tích các chi tiết dữ liệu, sau đó LSTM sẽ giải thích xu hướng thời gian.


% Tạo lớp tích chập
convLayer = convolution2dLayer(kichThuocBoLoc, soLuongBoLoc, 'Padding', 'same');
% Tạo lớp LSTM hai chiều
lstmLayer = bilstmLayer(soDonViAn, 'OutputMode', 'sequence');
% Tạo lớp kết nối đầy đủ
outputLayer = fullyConnectedLayer(soPhanHoi);

Các lớp hoạt động như một dây chuyền sản xuất: lớp tích chập trích xuất đặc trưng từ dữ liệu gốc, lớp LSTM hai chiều phân tích ý nghĩa của các đặc trưng theo thời gian, và lớp kết nối đầy đủ chuyển đổi các đặc trưng trừu tượng thành các giá trị dự đoán.

2. Tối Ưu Hóa Với TTAO

TTAO là một thuật toán tối ưu mới, hoạt động bằng cách hình dung không gian tham số như lưới topolog, tìm đường đi tối ưu thông qua phân chia tam giác động.


options = ttaoOptions(...
    'MaxIterations', 100,...
    'PopulationSize', 30,...
    'ExplorationRate', 0.7,...
    'ConvergenceThreshold', 1e-6);

Thuật toán này tận dụng tính năng khám phá rộng rãi ở giai đoạn đầu và tấn công chính xác ở giai đoạn sau, giúp giảm tốc độ hội tụ lên tới 40% so với PSO, GA.

3. Thực Hiện Mã Đơn Giản

Phần tiền xử lý dữ liệu được thiết kế thân thiện:


% Đọc dữ liệu Excel
rawData = readtable('du_lieu_cua_ban.xlsx');
% Chuẩn hóa dữ liệu
[duLieuDaChuanHoa, thongSoDuLieu] = normalizeData(rawData);
% Tạo mẫu huấn luyện bằng cửa sổ trượt
[XTrain, YTrain] = taoCuSoTruot(duLieuDaChuanHoa, kichThuocCuSo);

Hàm taoCuSoTruot tự động xử lý các giá trị thiếu hoặc bất thường, giúp người dùng mới dễ dàng bắt đầu.

4. Hiển Thị Kết Quả

Sau khi chạy mã, các chỉ số quan trọng sẽ hiển thị:


R² = 0.973 | MAE = 1.24 
MSE = 2.57 | RMSE = 1.60

Ngoài ra, chương trình tạo ra 12 biểu đồ chuyên nghiệp, bao gồm đường cong mất mát, bản đồ nhiệt đặc trưng quan trọng, biểu đồ so sánh dự đoán, và phân phối sai số.

5. Tùy Chỉnh Tự Do

Để thay đổi GRU hoặc BiLSTM:


% Thay đổi dòng dưới đây thành loại bạn muốn
lstmLayer = gruLayer(soDonViAn, 'OutputMode', 'sequence');

Đổi thuật toán tối ưu:


% Thay thế TTAO bằng thuật toán mới
optimizer = ftTrainer(options);  % Thuật toán FTTA
optimizer = nrboOptimizer(options); % Thuật toán Newton-Raphson

Thử nghiệm cho thấy FTTA hiệu quả với dữ liệu tài chính, trong khi NRBO nâng cao độ chính xác 15% đối với tín hiệu rung động cao tần.

6. Cảnh Báo Động Cơ

Lưu ý cho người mới:

  • Tên cột trong bảng phải là tiếng Anh.
  • Không nên hợp nhất ô trong Excel.
  • Định dạng cột thời gian phải là 'yyyy-mm-dd'.
  • Kiểm tra phiên bản MATLAB phải từ 2021b trở lên.

Mô hình có thể mở rộng để sử dụng trong nhiều lĩnh vực như dự đoán chứng khoán, tải điện, chất lượng không khí, và dịch bệnh.

Thẻ: TTAO CNN lstm MATLAB thuật_toán_tối_ưu

Đăng vào ngày 28 tháng 5 lúc 06:27