1.首选我们来回顾一下优化算法
2.除去梯度下降法,我们还有什么方法可以学习参数
(BFGS:共轭梯度法,L-BFGS:限制变尺度法),以上三种优化算法不在我们讨论范围类,但是我会介绍怎么在Octave中运用这些优化算法来加速最小化J(Theta)以及他们的优缺点
3.下面我们看一个怎么用这些算法的例子
我们在octave中可以这样来实现
它的调用形式为下图:
# ‘’GradObj and On“设置梯度目标参数为打开(on),表面你现在确实要对这个算法提供一个梯度。”MaxIter 100“设置最大迭代次数
#initialTheta 设置一个初始参数
#@表示指向我们刚刚定义的函数的指针,当你调用它,它就会调用那些高级优化算法中的一个,自动决定学习速率,从而学习得到Theta。
4.我们将以上思想应用到LR。
For example:
总结:
这些优化算法可以帮助我们加速损失函数的收敛,更快的达到最小值,更重要的是我们不需要手工的决定学习速率,处理大型数据回归问题非常方便。