多语言展示
当前在线:1139今日阅读:84今日分享:32

神经网络使用和训练有哪些注意点

根据算法模拟生物神经,通过设置多层不同功能层,完成对数据的自提取自学习自分类。
工具/原料
1

互联网

2

思维

方法/步骤
1

由于学习速率是固定的,因此网络的收敛速度慢,需要较长的训练时间。对于一些复杂问题,BP算法需要的训练时间可能非常长,这主要是由于学习速率太小造成的,可采用变化的学习速率或自适应的学习速率加以改进。BP算法可以使权值收敛到某个值,但并不保证其为误差平面的全局最小值,这是因为采用梯度下降法可能产生一个局部最小值。对于这个问题,可以采用附加动量法来解决。网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。因此,网络往往存在很大的冗余性,在一定程度上也增加了网络学习的负担。网络的学习和记忆具有不稳定性。也就是说,如果增加了学习样本,训练好的网络就需要从头开始训练,对于以前的权值和阈值是没有记忆的。但是可以将预测、分类或聚类做的比较好的权值保存。

2

训练一个网络的三要素:结构、算法、权值梯度!相对误差>1e-2意味着你的实现肯定是有问题的1e-2>相对误差>1e-4,你会有点担心1e-4>相对误差,基本是OK的,但是要注意极端情况(使用tanh或者softmax时候出现kinks)那还是太大1e-7>相对误差,放心大胆使用

3

使用双精度浮点数。如果你使用单精度浮点数计算,那你的实现可能一点问题都没有,但是相对误差却很大。实际工程中出现过,从单精度切到双精度,相对误差立马从1e-2降到1e-8的情况。要留意浮点数的范围。我们得保证计算时,所有的数都在浮点数的可计算范围内,太小的值(比如h)会带来计算上的问题。

注意事项
1

训练前需要做检查,并通过监控一些指标来了解学习状态

2

随着时间推进要用不同的方式去衰减学习率。 用交叉验证等去搜索和找到最合适的超参数。

推荐信息