一、简介
RBF神将网络是一种三层神经网络,其包括输入层、隐层、输出层。从输入空间到隐层空间的变换是非线性的,而从隐层空间到输出层空间变换是线性的。流图如下:
RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接映射到隐空间,而不需要通过权连接。当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。其中,隐含层的作用是把向量从低维度的p映射到高维度的h,这样低维度线性不可分的情况到高维度就可以变得线性可分了,主要就是核函数的思想。这样,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。
2 RBF神经网络的学习问题
二、源代码
%% I. 清空环境变量
clear all
clc
%% II. 训练集/测试集产生
%%
% 1. 导入数据
list=dir(['.\data\','*.xls']);
k=length(list);
data_train_x=[];%训练集输入
data_train_y=[];%训练集输出
data_test_x=[];%测试集输入
data_test_y=[];%测试集输出
for i=1:k
str= strcat ('.\data\', list(i).name)
if i<k
[data_train_x1,data_train_y1]=data_chuli(str);
data_train_x=[data_train_x;data_train_x1];%训练集输入
data_train_y=[data_train_y;data_train_y1];%训练集输入
else
[data_test_x1,data_test_y1]=data_chuli(str);
data_test_x=[data_test_x;data_test_x1];%训练集输入
data_test_y=[data_test_y;data_test_y1];%训练集输入
end
end
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.