1 .选择的优化算法2 .模型优化3 .模型设计
如何进行模型的调谐? 如何优化模型?
1 .选择的优化算法在机器学习中
在选择优化算法时,选择经过实验证明的比较好的算法。
在基于梯度的优化算法中,随机梯度下降法由于一次次更新参数而不进行迭代,部分样本可能是噪声数据,因此往往会出现弯路。
另一方面,批量梯度下降法,如果不重复一次,所有样本梯度都会被计算,最终得到全局最优解,但在很多情况下,这是不可能的。 因为在数据量特别大的情况下,将所有的数据放在存储器中计算梯度是不现实的。
在一般的机器学习中,喜欢使用小批量梯度下降法。 因为它不像批量梯度下降法那样需要在内存中加载那么多数据,所以一般选择50-100个样品作为小批量。 另外,不用每次都重复更新,至少可以朝着最佳解的方向前进。 因为在数据中,大部分是很好的样本。
在深度学习中的优化
选择动量算法和NAG算法进行下降方向优化,相当于下降方向优化。 动量算法是根据物理学上物体运动的原理推导出来的。 对于运动的物体,根据惯性,其当前时刻的速度与前一时刻的速度相关。 利用这一原理,当前下降方向可以与上次迭代中下降的方向和当前梯度的矢量相结合。 这就是动量算法。
另一方面,在NAG算法中,将反复点向原来的下降方向进一步增加,然后进行向量的组合。
这两种算法都在下降方向上进行了优化。
选择AdaGrad算法进行学习率的优化,相当于优化了学习率。 其实严格来说,我想是的
对学习率设置限制,在反复式中,由于将学习率除以累计平方梯度,所以在反复的过程中,学习率随着累计平方梯度的变化而变化。
选择Adadelta可优化AdaGrad计算的学习率。 由于历史累积梯度越来越大,训练中后期学习率的变化越来越小,效果并不理想。 因此,AdaDelta计算的累积斜率不是所有的项,而是一定大小的几个项,可以很好地避免累积斜率过大的问题。
更详细的介绍参考:
深度学习中常用的优化算法
2 .使用一些技巧来优化模型
一般进行k形转弯交叉验证,通过网格搜索找到最佳参数。
然后对各个模型进行堆叠。 其原理是,以大多数基分类器预测的结果为特征,试着用分类器进行预测。
当然,也可以更粗暴地,直接使用基分类器的概率作为特征进行预测。
请参阅更多
模型调谐和模型融合(代码应用篇) )
群智能优化
使用粒子群等群智能优化算法。
其他参考:
优化算法分析
3 .模型设计模型设计原则:易于优化的模型比使用更强大的优化算法更好
因此,模型设计最好重视模块化和可复用这两个特性。
我最喜欢lkdsp老师的一句话。 计算机知道工具,善于玩它是一门艺术,但知道用它解决什么问题,而且能有效解决才是真正的本领。