机器学习问题推导最终大多转化为对目标函数或者损失函数的优化
最优化模型包括梯度下降法、牛顿法及其改进
梯度下降法和牛顿法:
1、泰勒展开
对损失函数L(wt+1)在wt处展开,可以得到L(wt+1)为L(wt)加上一阶导数乘以(wt+1减去wt)
2、最小化损失函数
若要减小损失函数,即令一阶导数乘以(wt+1减去wt)小于0
3、求得w的更新量
技巧:可以令(wt+1减去wt)=-学习率*一阶导数,其中学习率大于0
这样就推出了梯度下降公式,牛顿法则是二次展开,令一次项+二次项等于0,解得(wt+1减去wt)的值
x += - learning_rate * dx #learning_rate为学习率,dx为一阶导数
批梯度下降法和随机梯度下降法:
1、原理
同梯度下降法,只不过梯度下降法每次更新用了所有的数据,而这两种方法采用部分数据更新
2、公式
同梯度下降法,只是求导数时,用部分数据的期望代替梯度下降法中所有数据的期望
动量梯度下降法
1、原理
保留一定比例上一轮更新量,给以更新量一定的惯性
2、公式
v = mu * v