机器学习(李宏毅)—— Gradient Descent

        使用梯度下降法时要谨慎的调整学习率:\theta ^{i}=\theta ^{i-1}-\eta\cdot \triangledown L(\theta ^{i-1}),\eta是学习率。在调整学习率后要把不同学习率的Parameter-Loss曲线画出来,以便调整学习率参数(学习率太大收敛到一定程度时Loss还很大,学习率太小时收敛速度慢)。
        Feature Scaling:每一个参数的scaling要尽可能相匹配(对于多个参数情况,scaling匹配时不同参数的学习率迭代过程相近且迭代过程沿着目标方向进行)。如何进行Feature Scaling?数据标准化方法(处理后的数据均值为0,方差为1)。
        为什么梯度下降的方向迭代是这样的?\theta ^{i}=\theta ^{i-1}-\eta\cdot \triangledown L(\theta ^{i-1})
x趋近于x_{0}时,由泰勒级数可知h(x)\approx h(x_{0})+h^{'}(x_{0})(x-x_{0});当x,y趋近于x_{0},y_{0}时,由泰勒级数可知h(x,y)\approx h(x_{0},y_{0})+\frac{\partial h(x_{0},y_{0})}{\partial x}(x-x_{0})+\frac{\partial h(x_{0},y_{0})}{\partial y}(y-y_{0})
当损失函数在某一个小邻域圆内,有L(\theta_{1},\theta_{2})\approx L(a,b)+\frac{\partial L(a,b)}{\partial \theta _{1}}(\theta _{1}-a)+\frac{\partial L(a,b)}{\partial \theta _{2}}(\theta _{2}-b)
s=L(a,b)u=\frac{\partial L(a,b)}{\partial \theta_{1}}v=\frac{\partial L(a,b)}{\partial \theta_{2}},有L(\theta _{1},\theta _{2})\approx s+u(\theta _{1}-a)+v(\theta _{2}-b),在(\theta _{1}-a)^{2}+(\theta _{2}-b)^{2}\leq d^{2}约束条件下使得L(\theta _{1},\theta _{2})最小。
\Delta \theta _{1}=\theta _{1}-a\Delta \theta _{2}=\theta _{2}-b,则有\begin{bmatrix} \Delta \theta _{1}\\ \Delta \theta _{2} \end{bmatrix}=-\eta\begin{bmatrix} u\\ v \end{bmatrix}\Rightarrow \begin{bmatrix}\theta _{1}\\\theta _{2} \end{bmatrix}=\begin{bmatrix} a\\ b \end{bmatrix}-\eta\begin{bmatrix} u\\ v \end{bmatrix},即\begin{bmatrix}\theta _{1}\\\theta _{2} \end{bmatrix}=\begin{bmatrix} a\\ b \end{bmatrix}-\eta\begin{bmatrix} \frac{\partial L(a,b)}{\partial \theta _{1}}\\ \frac{\partial L(a,b)}{\partial \theta _{2}}\end{bmatrix}时 L(\theta _{1},\theta _{2})最小,这就是梯度下降法方向迭代的公式,只有\eta尽可能地小(受d限制)才能满足泰勒级数展开的要求,故在设置学习率的值时不能过于大。

        Adaptive Learning Rates:在开始时离目标很远,设置较大的学习率;在经过几个epoch后离目标很近,需要设置较小的学习率(学习率随着epoch的增加呈现出衰减的趋势,例如设置学习率为\eta ^{t}=\frac{\eta }{\sqrt{t+1}},\eta是最初始学习率),对不同的参数要设置不同的学习率。
Adagrad:
w^{t+1}\leftarrow w^{t}-\frac{\eta ^{t}}{\sigma ^{t}}\cdot g^{t}\eta ^{t}=\frac{\eta }{\sqrt{t+1}}g^{t}=\frac{\partial L(\theta ^{t})}{\partial w}\sigma ^{t}=\sqrt{\frac{1}{t+1}\sum_{i=0}^{t}(g^{i})^{2}}L=\sum_{n}^{}(\hat{y}^{n}-(b+\sum w_{i}x_{i}^{n}))^{2}
\sigma ^{t}是微分值g^{t}(t=0,1,...,t-1,t)的均方根(先取平方和的平均值再开根号)。将上式化简可得w^{t+1}\leftarrow w^{t}-\frac{\eta}{\sqrt{\sum_{i=0}^{t}(g^{i})^{2}}}\cdot g^{t}\eta是最初设置的学习率。Adagrad强调迭代过程梯度大小反差的效果(步长最好为\frac{|First\, \, derivative|}{Second\, \, derivative})。

        Stochastic Gradient Descent:随机选取一个样本x^{n},其损失函数为L^{n}=(\hat{y}^{n}-(b+\sum w_{i}x_{}^{n}))^{2}。SGD收敛速度与Gradient Descent相比更快一些(SGD每一个样本都进行一次迭代,而Gradient Descent每次迭代需要一系列数据导致其收敛速度较慢)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值