深度学习(机器学习)优化算法

一、损失函数:机器学习主要工作是模型评估,而损失函数定义了模型的评估指标!!

常见的损失函数有

  • mean_squared_error
  • mean_absolute_error
  • mean_absolute_percentage_error
  • mean_squared_logarithmic_error
  • squared_hinge
  • hinge
  • categorical_hinge
  • logcosh
  • categorical_crossentropy
  • sparse_categorical_crossentropy
  • binary_crossentropy(二元交叉熵)
  • kullback_leibler_divergence
  • poisson
  • cosine_proximity

二、机器学习经典优化算法

(1)直接法:直接给出问题的的最优解

  • 优化问题为凸函数;
  • 有闭解;

(2)间接法:迭代的修正最优解的估计

  • 一阶法:对优化函数进行一阶泰勒展开(梯度下降法
  • 二阶法:对优化函数进行二阶泰勒展开(牛顿法)

三、梯度检验:计算目标函数的梯度,写出计算梯度的代码后,需要验证自己的代码是否正确!!

四、随机梯度下降算法

(1)综述

  • 经典的梯度下降算法:对参数进行更新时,需要遍历所有的训练数据,计算量大、耗费时间长;
  • 随机梯度下降算法:用单个训练数据就可以对模型参数进行一次更新;

(2)常见的梯度下降算法

  • 批量梯度下降法BGD(Batch Gradient Descent):
    针对的是整个数据集,通过对所有的样本的计算来求解梯度的方向。
    优点:全局最优解;易于并行实现;
    缺点:当样本数据很多时,计算量开销大,计算速度慢
  • 小批量梯度下降法MBGD(mini-batch Gradient Descent)
    把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性
    优点:减少了计算的开销量,降低了随机性
  • 随机梯度下降法SGD(stochastic gradient descent)
    每个数据都计算算一下损失函数,然后求梯度更新参数。
    优点:计算速度快
    缺点:收敛性能不好

五、随机梯度下降算法的加速

(1)背景 有些训练效果差的的原因,并不是模型的问题,而是随机梯度下降算法在优化问题中失效了!!

(2)主要原因

  • 大多数优化问题主要是,陷入局部最优解,而随机梯度下降算法主要问题是山谷和鞍点;
  • 山谷:在山谷中来回反弹震荡,不能按照正确的方向迅速下降,导致收敛不稳定和收敛速度慢;
  • 鞍点:在鞍点处,随机梯度进入一片平坦之地(坡度不明显)导致走错方向,提前停下来;

(3)解决方法

  • 引入动量:惯性保持
  • AdaGarda:环境感知
  • Adam:惯性保持+环境感知

六、L1正则化与稀疏性

所谓的稀疏性,就是模型的很多参数为0,相当于对模型进行了一次特征选择,只留下一些比较重要的特征,提高模型的泛化能力、降低过拟合风险!

  • L1的解空间为多边形,L2的解空间为圆形;
  • L1对模型参数w引入了拉普拉斯先验,L2正则化引入高斯先验,而拉普拉斯先验使参数为0的可能性更大;
发布了17 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/z15692341130/article/details/104440696