神经网络算法中,参数的设置或者调整,有什么方法可以采用
若果对你有帮助,请点赞。神经网络的结构(例如2输入3隐节点1输出)建好后,一般就要求神经网络里的权值和阈值。
现在一般求解权值和阈值,都是采用梯度下降之类的搜索算法(梯度下降法、牛顿法、列文伯格-马跨特法、狗腿法等等),这些算法会先初始化一个解,在这个解的基础上,确定一个搜索方向和一个移动步长(各种法算确定方向和步长的方法不同,也就使各种算法适用于解决不同的问题),使初始解根据这个方向和步长移动后,能使目标函数的输出(在神经网络中就是预测误差)下降。
然后将它更新为新的解,再继续寻找下一步的移动方向的步长,这样不断的迭代下去,目标函数(神经网络中的预测误差)也不断下降,最终就能找到一个解,使得目标函数(预测误差)比较小。
而在寻解过程中,步长太大,就会搜索得不仔细,可能跨过了优秀的解,而步长太小,又会使寻解过程进行得太慢。因此,步长设置适当非常重要。
学习率对原步长(在梯度下降法中就是梯度的长度)作调整,如果学习率lr=0.1,那么梯度下降法中每次调整的步长就是0.1*梯度,而在matlab神经网络工具箱里的lr,代表的是初始学习率。
因为matlab工具箱为了在寻解不同阶段更智能的选择合适的步长,使用的是可变学习率&