Mục tiêu và Tổng quan
Nghiên cứu này tập trung vào việc cải thiện hiệu suất của mạng nơ-ron lan truyền ngược (BP Neural Network) thông qua việc tích hợp một thuật toán tối ưu hóa bầy đàn mới – thuật toán ngựa hoang (Horse Herd Algorithm - HOA). Việc áp dụng phương pháp này nhằm giải quyết vấn đề hội tụ cục bộ và chọn lựa các trọng số khởi tạo tối ưu cho mô hình phân loại.
Xử lý dữ liệu Iris
Để kiểm chứng tính khả thi, bộ dữ liệu Iris từ thư viện chuẩn được sử dụng làm đầu vào. Dữ liệu này bao gồm 150 mẫu thực nghiệm, mỗi mẫu sở hữu 4 thuộc tính đặc trưng và được gán nhãn vào 3 nhóm loài hoa khác nhau.
Quy trình tiền xử lý dữ liệu được thực hiện như sau:
- Chia tập dữ liệu: Tỷ lệ 70/30 được áp dụng để tách biệt dữ liệu huấn luyện và kiểm định. Cụ thể là 105 mẫu dùng để dạy mô hình và 45 mẫu còn lại để đánh giá độ chính xác.
- Mã hóa nhãn: Các nhãn lớp gốc (1, 2, 3) được chuyển đổi sang dạng vector một-hot để phù hợp với cơ chế hồi quy của mạng nơ-ron:
- Lớp 1 trở thành [1, 0, 0]
- Lớp 2 trở thành [0, 1, 0]
- Lớp 3 trở thành [0, 0, 1]
- Cấp chuẩn hóa (Normalization): Tất cả các đặc điểm đầu vào đều được chuẩn hóa về miền giá trị thống nhất nhằm tăng tốc độ hội tụ trong quá trình học.
Cấu trúc Mô hình Mạng Nơ-ron
Kiến trúc mạng được thiết kế đơn giản do số chiều dữ liệu đầu vào không lớn. Mô hình bao gồm một lớp ẩn duy nhất.
- Lớp đầu vào: 4 nút tương ứng với 4 đặc tính.
- Lớp ẩn: 10 nơ-ron để trích xuất đặc trưng phi tuyến.
- Lớp đầu ra: 3 nút tương ứng với xác suất của 3 loại hoa.
Tham số mạng nơ-ron được khởi tạo theo cấu hình dưới đây:
% Định nghĩa các tham số kiến trúc
num_features = 4; % Số lượng biến độc lập
nodes_hidden = 10; % Số nơ-ron tại tầng tiềm ẩn
num_classes = 3; % Số lớp cần phân loại
% Khởi tạo đối tượng mạng
func_transfer = {'logsig', 'purelin'};
alg_train = 'traingdx';
bp_network = newff(minmax(data_input), [nodes_hidden num_classes], func_transfer, alg_train);
% Cài đặt thông số quá trình đào tạo
bp_network.trainParam.epochs = 200; % Số vòng lặp tối đa
bp_network.trainParam.goal = 0.01; % Mục tiêu sai số
bp_network.trainParam.lr = 0.01; % Tốc độ học
bp_network.trainParam.show = 50; % Tần suất hiển thị
Triển khai Thuật toán Tối ưu HOA
Nguyên tắc hoạt động của HOA mô phỏng hành vi tìm kiếm thức ăn và di cư của đàn ngựa. Trong ngữ cảnh này, vị trí của từng cá thể đại diện cho một bộ trọng số và ngưỡng (bias) cụ thể của mạng nơ-ron.
Không gian tìm kiếm: Chiều dài của vectơ vị trí được tính dựa trên tổng số liên kết giữa các tầng và số lượng ngưỡng:
- Trọng số tầng 1: inputnum × hiddennum
- Ngưỡng tầng 1: hiddennum
- Trọng số tầng 2: hiddennum × outputnum
- Ngưỡng tầng 2: outputnum
Tổng chiều kích thước (dimension) cho bài toán này là 83. Giới hạn tìm kiếm cho các hệ số được đặt trong khoảng [-5, 5].
Hàm thích nghi (Fitness Function): Mục tiêu tối ưu hóa là cực tiểu hóa tỉ lệ lỗi trên cả hai tập huấn luyện và kiểm tra để đảm bảo khả năng tổng quát hóa của mô hình:
Fitness = minimize(ErrorRateTrain + ErrorRateTest)
Các tham số siêu của thuật toán HOA được thiết lập:
% Thiết lập quần thể HOA
size_pop = 10; % Quy mô đàn ngựa
limit_iter = 15; % Vòng lặp tiến hóa
lower_bound = -5; % Cận dưới cho trọng số
upper_bound = 5; % Cận trên cho trọng số
% Tính toán tổng chiều kích向量 tối ưu hóa
% Tổng liên kết trọng số + tổng các ngưỡng sinh
total_dim = (num_features * nodes_hidden) + nodes_hidden + ...
(nodes_hidden * num_classes) + num_classes;
Kết quả Thực nghiệm
Dữ liệu đầu ra sau khi chạy thuật toán cho thấy đường cong hội tụ giảm dần rõ rệt. Điều này xác nhận rằng việc thay thế phương pháp khởi tạo ngẫu nhiên bằng HOA giúp mạng nơ-ron đạt được trạng thái ổn định nhanh hơn và sai số dự đoán thấp hơn so với phiên bản chuẩn.