RBF (Radial Basis Function) là một mô hình phi tuyến tính mạnh mẽ, dựa trên phương pháp kernel, có khả năng xử lý dữ liệu phi tuyến tính rất tốt. Bằng cách ánh xạ dữ liệu vào không gian đặc trưng cao chiều và sử dụng các hàm cơ sở radial để phù hợp với dữ liệu, RBF có thể nắm bắt được mối quan hệ phức tạp giữa các điểm dữ liệu. Mô hình này cũng có tính chất cục bộ và toàn cục, giúp nó hoạt động hiệu quả ngay cả với tập dữ liệu nhỏ.
Phân loại dữ liệu phi tuyến tính
Giả sử chúng ta có một tập dữ liệu phân bố theo dạng vòng tròn đồng tâm mà các thuật toán phân loại tuyến tính thông thường không thể giải quyết được. Hãy thử dùng RBF:
theta = linspace(0, 2*pi, 200);
r1 = 1 + 0.1*randn(1,100);
r2 = 2 + 0.1*randn(1,100);
data = [r1.*cos(theta(1:100))', r1.*sin(theta(1:100))';
r2.*cos(theta(101:200))', r2.*sin(theta(101:200))'];
labels = [ones(100,1); -ones(100,1)];
centers = data(randperm(200,20),:);
phi = exp(-pdist2(data, centers).^2/(2*0.5^2));
w = phi \ labels;
[X,Y] = meshgrid(-3:0.1:3,-3:0.1:3);
grid_phi = exp(-pdist2([X(:),Y(:)], centers).^2/(2*0.5^2));
Z = reshape(grid_phi*w, size(X));
contour(X,Y,Z,[0 0],'LineWidth',2);
Mã trên minh họa cách tạo ra một biên phân loại phi tuyến tính cho dữ liệu dạng vòng tròn. Hàm pdist2 đo khoảng cách từ mỗi điểm đến tất cả các tâm, trong khi tham số 0.5 điều chỉnh phạm vi ảnh hưởng của từng tâm.
Dự đoán hồi quy phi tuyến tính
Với dữ liệu biến đổi phi tuyến như đường cong giá cổ phiếu hoặc nhiệt độ, hãy xem cách RBF xử lý:
x = linspace(0,10,100)';
y = sin(x).*exp(-x/5) + 0.2*randn(size(x));
[~, centers] = kmeans(x,15);
sigma = median(pdist(centers))/sqrt(2*log(2));
phi = exp(-(x - centers').^2/(2*sigma^2));
w = phi \ y;
x_test = linspace(0,10,200)';
phi_test = exp(-(x_test - centers').^2/(2*sigma^2));
y_pred = phi_test * w;
Sử dụng k-means để chọn tâm tự động và tự động tính toán tham số sigma giúp tránh phải tinh chỉnh thủ công.
Dự đoán chuỗi thời gian
Trong bài toán dự đoán chuỗi thời gian như dự báo giá cổ phiếu, RBF cũng tỏ ra hữu ích:
t = 0:0.1:20;
ts = sin(t) + 0.5*cos(2*t) + 0.2*randn(size(t));
lookback = 5;
X = []; Y = [];
for i = 1:length(ts)-lookback
X = [X; ts(i:i+lookback-1)];
Y = [Y; ts(i+lookback)];
end
centers = X(1:3:end,:);
phi = exp(-pdist2(X, centers).^2/(2*0.3^2));
w = phi \ Y;
future = 50;
preds = zeros(future,1);
current = X(end,:);
for i = 1:future
phi_current = exp(-pdist2(current, centers).^2/(2*0.3^2));
pred = phi_current * w;
preds(i) = pred;
current = [current(2:end), pred];
end
Cơ chế cập nhật cửa sổ thời gian liên tục cho phép dự đoán liên tiếp và chính xác trong nhiều bước.
Kinh nghiệm tinh chỉnh tham số
Tinh chỉnh tham số RBF đòi hỏi sự linh hoạt. Các tham số quan trọng bao gồm:
- Số lượng tâm: Thường lấy từ 5%-20% số dữ liệu.
- Tham số sigma: Tự động ước lượng bằng
median(pdist(centers)). - Chính quy hóa: Thêm thành phần
(phi'*phi + lambda*eye(size(phi,2)))\ (phi'*y)để tránh ma trận suy biến.
RBF với tính chất cục bộ và toàn cục, vừa nhạy cảm với chi tiết vừa giữ vững xu hướng tổng thể, là một lựa chọn đáng cân nhắc trước khi áp dụng các mô hình học sâu phức tạp.