感性认知神经网络的训练和学习

以BP神经网络为例:

%产生正弦样本
p = [0:0.2*pi:2*pi];
x = [0:pi/180:2*pi];
t = sin(2*x);

n=20;%设置BP网络隐含层的神经元数量
%BP网络创建,并绘制初始状态
net = newff(minmax(p),[n n 1],{'tansig' 'tansig' 'purelin'},'trainlm');
out_before = sim(net,x);

%给出训练参数,开始训练
net.trainParam.epochs =10;%次数
net.trainParam.goal = 0.01;%精度
net = train(net,x,t);
out_later= sim(net,x);
plot(x,t,'-',x,out_before,'--',x,out_later,'--',x,2*x,'-');

以上代码在matlab7.0上编辑测试的,BP(Back-Propagation) 网络即误差反向传播网络是应用广泛的神经网络模型,给以上代码配个应用题大概如下:以[0,2*pi]选择样本进行BP网络学习训练,目标函数是t=sin(2*x);

       代码解释大概如下:(一)newff()函数的参数以英文逗号分隔,第一部分minmax是取特征向量的最小值与最大值(等距选择样本的设定笔者暂时不确定,在此不详述),第二部分设置输入层、隐层、输出层的神经元个数,第三部分设置神经元的特性函数(亦称激活函数、传递函数等),tansig为双曲正切的S型函数,purelin一般为输出层的线性传输函数,第四部分是训练方法,trainlm是梯度下降和牛顿法的结合;(二)sim函数则对输入进行仿真拟合,工具函数newff自然也可以设置最大收敛次数、训练精度,也可以设置每一层的权值、阀值(其中的理论知识有兴趣可以继续学习)等;最后输出的结果,由图可得,同样在[0,2*pi]的范围内,以pi/180为间隔的拟合曲线一般可以在最大训练次数之内符合收敛误差。

附记:好久没来CSDN看看了,年末写篇博客纪念下上一篇博客,哈哈!这里提到的BP神经网络仅仅只是在matlab里直观感性地认知下,可能连入门的水平都还没到,有些参数需要读者自己尝试修改,反复看结果来摸索参数的含义了,同样地感谢曾经给予过帮助的人,-->>还要感谢一本书 《人工智能技术导论》--廉师友编著

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值