上一章:
下一章:
-------------------------------------------翻译:xychn15@yahoo.com.cn--------------------------------
训练算法
在神经网络工具箱中有许多已经实现了的训练算法。这要比我们手工调整权值要好要快。现在让我们来使用默认的训练算法调整我们的网络。使用的matlab命令是 train, 需要的参数有网络, 输入矩阵和目标值矩阵. train 命令返回一个训练过的网络。输入 helpwin train得到更多相关信息. 在这个例子中我们不需要训练算法输出的所有信息,所以我们关闭它:
>> net.trainParam.show=NaN;最重要的训练参数是 .epochs,决定了训练的最大次数, .show the interval between each presentation of training progress. 如果执行梯度小于.min_grad 将结束训练. .time 决定最大训练时间。
训练网络输入:
>> net = train(net,input,target);
由于这是个小型网络,训练在一两秒钟内就 完成了。现在我们再次仿真网络,来看看对输入的反应:
>> output = sim(net,input)
output =
0.0000 1.0000 1.0000 0.0000
这正是我们期望的输出!你现在可以画出输出,并见到+都落在o上了。现在检查训练算法设置的权值,同你发现的权值像吗?
>> net.IW{1,1}
ans =
11.0358 -9.5595
16.8909 -17.5570
>> net.LW{2,1}
ans =
25.9797 -25.7624
也可以在建立网络的时候输入训练算法名,更多信息见help newff .
- 练习
使得训练算法显示每个时间段的信息。显示了哪些信息?为什么训练会停止?
用神经网络解决异或问题。使用 traingd 算法训练, epochs取2000.
建立前向神经网络解决作业1。你找到的权值和Matlab找到的一样吗?
上一章:绪论