机器学习之梯度降低

1、梯度降低

  引入:当咱们获得了一个目标函数后,如何进行求解?直接求解吗?(并不必定能够直接求解,线性回归能够当作是一个特例)机器学习

  梯度:梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。在机器学习中通常指的就是目标函数的偏导数。函数

  降低:正常求出来的一个梯度是朝着梯度上升的一个方向,因此梯度降低就是梯度上升的反方向。学习

  基本过程:首先,咱们有一个可微分的函数。这个函数就表明着一座山。咱们的目标就是找到这个函数的最小值,也就是山底。根据以前的场景假设,最快的下山的方式就是找到当前位置最陡峭的方向,而后沿着此方向向下走,对应到函数中,就是找到给定点的梯度 ,而后朝着梯度相反的方向,就能让函数值降低的最快!由于梯度的方向就是函数之变化最快的方向因此,咱们重复利用这个方法,反复求取梯度,最后就能到达局部的最小值,这就相似于咱们下山的过程。局部优化达到最大的优化。优化

  常规套路:机器学习的套路就是我交给机器一堆数据,而后告诉它什么样的学习方式是对的(目标函数),而后让它朝着这个方向去作。spa

  如何优化:一口吃不成个胖子,咱们要静悄悄的一步步的完成迭代(每次优化一点点,累积起来就是个大成绩了)。blog

  如今假设有这样一个目标函数:内存

  

   

  如今咱们须要寻找山谷的最低点,也就是咱们的目标函数终点(什么样的参数能使得目标函数达到极值点)。效率

  那么下山要分几步走呢?首先随机取一个点bfc

  (1):而后找到当前最合适的方向
  (2):走那么一小步,走快了该”跌倒 ”了
  (3):按照方向与步伐去更新咱们的参数,也就是重复一二步。方法

 2、梯度降低策略选择

  (1)批量梯度降低:(容易获得最优解,可是因为每次考虑全部样本,速度很慢)
  (2)随机梯度降低:(每次找一个样本,迭代速度快,但不必定每次都朝着收敛的方向)
  (3)小批量梯度降低法:(每次更新选择一小部分数据来算,实用!)batch

 3、学习率

  上面提到咱们会按照方向去更新参数,那么更新的幅度就叫作步长,通常叫作学习率。

  (1)学习率(步长):对结果会产生巨大的影响,通常小一些
  (2)如何选择:从小的时候,不行再小
  (3)批处理数量:32,64,128均可以,不少时候还得考虑内存和效率

  

  损失函数就是用来表现预测与实际数据的差距程度,loss表示用来表现预测与实际数据的差距,咱们的目标就是让loss的值越接近0越好。

相关文章
相关标签/搜索