0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是深度学习中优化算法

jf_78858299 来源:人工智能大讲堂 作者:人工智能大讲堂 2023-02-13 15:31 次阅读

先大致讲一下什么是深度学习中优化算法吧,我们可以把模型比作函数,一种很复杂的函数:h(f(g(k(x)))),函数有参数,这些参数是未知的,深度学习中的“学习”就是通过训练数据求解这些未知的参数。

由于这个函数太复杂了,没办法进行直接求解,所以只能换个思路:衡量模型的输出与真实标签之间的差距,如果差距过大,则调整模型参数,然后重新计算差距,如此反复迭代,直至差距在接受范围内。

深度学习中通过目标函数或者损失函数衡量当前参数的好坏,而调整模型参数的就是优化算法。

所谓优化, 就是利用关于最优解的信息,不断逼近最优解, 目前深度学习中最常用的是梯度下降法, 梯度方向就是最优解的信息,因为梯度方向指向最优解方向, 沿着梯度方向前进即可靠近最优解。

到这里,你是不是觉得优化算法很简单?其实,不然。让我们进一步分析。

难点一:梯度(困难指数两颗星)

所谓梯度下降法,当然要计算梯度,前面那个复合函数再加上损失函数,最终要优化的函数是这个样子:L(h(f(g(k(x)))),y),L是损失函数,y是标签值。

复合函数通过链式法则进行求导,例如f(g(x)),

图片

图片

这就要求g(x)和f(x)都得可导,对于神经网络而言,卷积层和全连接层都可以看作是矩阵与向量乘法,是可导的,剩下的就是激活函数和损失函数,好在目前常用的MSE,交叉熵损失函数,Sigmoid,Relu激活函数都是可导的。

所以,梯度的问题不大。

难点二:凸优化和非凸优化( 困难指数五颗星

深度学习由于多个隐藏层的叠加所形成的复合函数,外加损失函数,最终的函数往往不是凸函数。

所谓凸函数,就是只有全局最优解,通过梯度下降最终都能找到这个最优解,对于机器学习中的线性回归的损失函数:最小二乘而言,它是一个凸函数,也就是说能找到使损失函数达到最小值的全局最优解。

在非凸函数中,存在大量的局部最优解,局部极值随着特征维度的增加呈指数增长,优化算法很大概率找不到全局最优解,这也是优化算法最苦恼的地方。

如果只有局部最优解,那情况还不算最糟糕,毕竟局部最优解意味着从所有维度看都是最小值或者最大值,更糟糕的是鞍点,这种情况虽然一阶导数都为零,但二阶导数不同向,也就是说从某些维度看是极小值,而从某些维度看却是极大值。

而且,不幸的是,随着特征向量维度的增加,鞍点的数量也是随着指数级增加的。

那如何逃离鞍点?

这里再次注意:这里我们所说的梯度下降指的是:使用全部样本的损失的平均值来更新参数,这就意味着梯度的精度非常高,会精确地逼近鞍点,但我们不希望这样,我们希望能够跳出鞍点,幸好,随机梯度下降SGD或者其变体(比如Momentun、Adam、mini-batch)的出现很大程度上解决了该问题。

例如,mini-batch是指每次参数更新只是用一小批样本,这是一种有噪声的梯度估计,哪怕我们位于梯度为0的点,也经常在某个mini-batch下的估计把它估计偏了,导致往前或者往后挪了一步摔下马鞍,也就是mini-batch的梯度下降法使得模型很容易逃离特征空间中的鞍点。

既然,局部极值点也可接受,且又能有方法逃离鞍点,到这里你觉得问题就结束了吗?还没有,其实,神经网络中最让人望而生畏的不是局部最优点和鞍点,而是平坦地区,这些地区一经进入很难逃离。

图片

总结来说,人们认为的深度神经网络“容易收敛到局部最优”,很可能是一种想象,实际情况是,我们可能从来没有找到过“局部最优”,更别说全局最优了。

所以,与其担忧陷入局部最优点怎么跳出来,更不如去考虑数据集要怎么做才能让网络更好学习,以及网络该怎么设计才能更好的捕获pattern,网络该怎么训练才能学到我们想让它学习的知识。

最后,也要为优化算法鸣个不平。其实这并不是优化算法的问题。是损失函数和网络结构的错,是他们的复杂性导致优化问题是一个非凸优化问题,优化算是是来解决问题的,而不是制造问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 优化算法
    +关注

    关注

    0

    文章

    35

    浏览量

    9612
  • 函数
    +关注

    关注

    3

    文章

    3880

    浏览量

    61310
  • 深度学习
    +关注

    关注

    73

    文章

    5239

    浏览量

    119910
收藏 人收藏

    评论

    相关推荐

    Nanopi深度学习之路(1)深度学习框架分析

    学习,也就是现在最流行的深度学习领域,关注论坛的朋友应该看到了,开发板试用活动中有【NanoPi K1 Plus试用】的申请,介绍NanopiK1plus的高大上优点之一就是“可运行
    发表于 06-04 22:32

    什么是深度学习?使用FPGA进行深度学习的好处?

    什么是深度学习为了解释深度学习,有必要了解神经网络。神经网络是一种模拟人脑的神经元和神经网络的计算模型。作为具体示例,让我们考虑一个输入图像并识别图像
    发表于 02-17 16:56

    深度学习中多种优化算法

    深度学习中,有很多种优化算法,这些算法需要在极高维度(通常参数有数百万个以上)也即数百万维的空间进行梯度下降,从最开始的初始点开始,寻找最
    的头像 发表于 08-28 09:52 2312次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>中多种<b class='flag-5'>优化</b><b class='flag-5'>算法</b>

    深度模型中的优化学习课件下载

    深度模型中的优化学习课件下载
    发表于 04-07 16:21 3次下载
    <b class='flag-5'>深度</b>模型中的<b class='flag-5'>优化</b>与<b class='flag-5'>学习</b>课件下载

    移植深度学习算法模型到海思AI芯片

    本文大致介绍将深度学习算法模型移植到海思AI芯片的总体流程和一些需要注意的细节。海思芯片移植深度学习算法
    发表于 01-26 19:42 11次下载
    移植<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>算法</b>模型到海思AI芯片

    机器学习深度学习算法流程

    但是无可否认的是深度学习实在太好用啦!极大地简化了传统机器学习的整体算法分析和学习流程,更重要的是在一些通用的领域任务刷新了传统机器
    的头像 发表于 04-26 15:07 4157次阅读

    深度学习算法进行优化的处理器——NPU

    NPU(Neural-network Processing Unit,嵌入式神经网络处理器)是针对深度学习*算法进行优化的处理器。它能像人类神经网络一样快速、高效地处理大量数据,因此它
    发表于 10-17 10:53 1907次阅读

    PyTorch教程12.1之优化深度学习

    电子发烧友网站提供《PyTorch教程12.1之优化深度学习.pdf》资料免费下载
    发表于 06-05 15:08 0次下载
    PyTorch教程12.1之<b class='flag-5'>优化</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>

    PyTorch教程-12.1. 优化深度学习

    12.1. 优化深度学习¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab Colab [jax
    的头像 发表于 06-05 15:44 356次阅读
    PyTorch教程-12.1. <b class='flag-5'>优化</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>

    从浅层到深层神经网络:概览深度学习优化算法

    优化算法一直以来是机器学习能根据数据学到知识的核心技术。而好的优化算法可以大大提高学习速度,加快
    的头像 发表于 06-15 11:20 433次阅读
    从浅层到深层神经网络:概览<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>优化</b><b class='flag-5'>算法</b>

    深度学习算法简介 深度学习算法是什么 深度学习算法有哪些

    深度学习算法简介 深度学习算法是什么?深度
    的头像 发表于 08-17 16:02 6821次阅读

    深度学习算法工程师是做什么

    深度学习算法工程师是做什么 深度学习算法工程师是一种高级技术人才,是数据科学中创新的推动者,也是
    的头像 发表于 08-17 16:03 811次阅读

    什么是深度学习算法深度学习算法的应用

    什么是深度学习算法深度学习算法的应用 深度
    的头像 发表于 08-17 16:03 1483次阅读

    深度学习算法库框架学习

    深度学习算法库框架学习 深度学习是一种非常强大的机器学习
    的头像 发表于 08-17 16:11 440次阅读

    深度学习框架和深度学习算法教程

    深度学习框架和深度学习算法教程 深度学习是机器
    的头像 发表于 08-17 16:11 721次阅读