模型优化算法二:最陡峭下降(梯度下降)
一、梯度下降算法简介
机器学习的套路就是我交给机器一堆数据,然后告诉它什么样的学习方式是对的(目标函数),然后让它朝着这个方向去做。
二、梯队下降算法求线性回归参数
目标函数:
(推导过程可参照线性回归部分)
下山的步骤(更新参数)
- 找到 当前最合适的方向(偏导)
- 走一小步,快了容易跌倒(步长,又叫学习率,对结果会产生巨大的影响)
- 按照方向与步伐去更新我们的参数
三种不同的停止策略:
- 迭代次数(参数更新次数)
- 损失:目标函数的损失值之间差异小,则停止
- 梯度:梯度变化小
二、常用梯队下降算法
1.批量梯度下降(所有样本)
容易得到最优解,精度高,但是由于每次考虑所有样本,速度很慢。
2.随机梯度下降(一个样本)
每次找到一个样本,迭代速度快,但不一定每次都朝着收敛的方向。
损失值忽上忽下,学习率改小,会慢慢收敛。(速度快,但是稳定性差,需要很小的学习率)
3.小批量梯度下降(小部分数据)
每次更新选择一小部分数据来算,实用!
(此处算了10个样本)
浮动仍然比较大,我们来尝试下对数据进行标准化 将数据按其属性(按列进行)减去其均值,然后除以其方差。
最后得到的结果是,对每个属性/每列来说所有数据都聚集在0附近,方差值为1
转载于:https://www.cnblogs.com/xyp666/p/9044817.html
THE END