IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度模型优化与正则化 -> 正文阅读

[人工智能]深度模型优化与正则化

  • 优化问题

    • 神经网络模型是一个非凸函数,再加上在深度网络中的梯度消失问题,很难进行优化;另外,深层神经网络模型一般参数比较多,训练数据也比较大,会导致训练的效率比较低
  • 泛化问题(正则化)

    • 因为神经网络的拟合能力强,反而容易在训练集上产生过拟合。因此,在训练深层神经网络时,同时也需要通过一定的正则化方法来改进网络的泛化能力
  • 网络优化

    • 目标:最小化取自生成分布数据的预测误差期望
    • 经验风险最小化:用训练集上的经验分布替代真实分布
    • 难点
      • 网络结构多样性:很难找到一种通用的、高效的、稳定的优化方法,超参数一般也很多
      • 非凸优化:存在很多局部最优点
    • 在高维空间中,非凸优化的难点并不在于如何逃离局部最优点,而是如何逃离鞍点
    • 改善方法
      • 网络多样性:寻找高效稳定的优化方法
        • 小批量梯度下降
          • 每次更新都使用整个训练集数据,梯度方差小,需要较多计算资源
        • 自适应学习率、梯度优化
          • 学习率衰减:分段常数衰减,逆时衰减,指数衰减,自然指数衰减,余弦衰减
            在这里插入图片描述
          • 当批量大小比较大时,需要比较大的学习率。但开始训练的参数是随机初始化的,梯度往往也比较大,加上比较大的初始学习率,会使得训练不稳定
            • 学习率预热:为提高训练稳定性,可以在最初几轮迭代时采用较小的学习率,等梯度下降到一定程度后再恢复到初始学习率
            • 逐渐预热
            • 周期性学习率调整:为了逃离局部最小值或鞍点,可在训练过程中周期性地增大学习率。短期内有损收敛稳定性,长期来看有助于找到更好的局部最优解
              • 循环学习率:让学习率在一个区间内周期性地增大和缩小。通常可以使用线性缩放来调整学习率,称为三角循环学习率
          • 学习率衰减的局限性
            • 非自适应,不能够根据当前梯度情况做出调整
            • 每个参数的维度上收敛速度都不相同,应该根据不同参数的收敛情况分别设置学习率
          • AdaGrad算法:独立地适应所有模型参数的学习率,缩放每个参数的学习率反比于其所有梯度历史平方值总和的平方根。
            • 局限性
              • 在经过一定次数的迭代依然没有找到最优点时,由于这时的学习率已经非常小,很难再继续找到最优点
          • RMSprop算法:将Gt的计算由累积方式变成了指数衰减移动平均
            • 可以在有些情况下避免AdaGrad算法中学习率不断单调下降以至于过早衰减的缺点
          • Adam算法可以看作动量法和RMSprop 算法的结合,不但使用动量作为参数更新方向,而且可以自适应调整学习率.
        • 参数初始化,数据预处理
          • 初始化为0:对称权重问题
          • 初始化太小:梯度消失,使得sigmoid型激活函数丢失非线性的能力
          • 初始化太大:梯度爆炸,使得sigmoid型激活函数变得饱和
          • 方式
            • 预训练初始化:一个已经在大规模数据上训练过的模型可以提供一个好的参数初始值,预训练任务可以为监督学习或无监督学习任务.由于无监督学习任务更容易获取大规模的训练数据,因此被广泛采用
            • 固定值初始化:对于一些特殊的参数,我们可以根据经验用一个特殊的固定值来进行初始化.比如偏置( Bias )通常用 0 来初始化,但是有时可以设置某些经验值以提高优化效率
            • 随机初始化:为了打破对称权重现象,比较好的方式是对每个参数都随机初始化( Random Initialization ),使得不同神经元之间的区分性更好
              • 基于固定方差的参数初始化
                • 高斯分布初始化
                  • 从一个固定均值和方差的高斯分布进行随机初始化
                • 均匀分布初始化
                  • 在一个区间[?r, r]内采用均匀分布来初始化参数
              • 基于方差缩放的参数初始化
                • 假设所有激活函数都是线性,权重太大梯度爆炸,权重太小梯度消失
                • 为了阻止梯度爆炸或消失
                  • 激活值的均值应为0
                  • 每一层激活值的方差应保持一致
              • 正交初始化方法
                • 用均值为 0 、方差为 1 的高斯分布初始化一个矩阵
                • 将这个矩阵用奇异值分解得到两个正交矩阵,并使用其中之一作为权重矩阵
        • 逐层归一化
          • 目的
            • 解决内部协变量偏移问题
            • 解决梯度消失、梯度爆炸
            • 更平滑的优化地形
          • 方法
            • 批量归一化
              • 对一个中间层的单个神经元进行归一化操作
              • 不能处理神经元净输入的分布在神经网络中是动态变化(RNN)
              • 小批量样本的数量不能太小
            • 层归一化
              • 对一个中间层的所有神经元进行归一化,某一层有nl个神经元
              • 当样本数量比较小时,可选择层归一化
            • 权重归一化
        • 超参数优化
          • 神经网络中的超参数
            • 层数、每层神经元个数、激活函数、学习率(各优化算法中包含的参数)、正则化系数、mini-batch 大小
          • 优化难点
            • 超参数优化是一个组合优化问题:无法像用GD来优化
            • 评估一组超参数配置的时间代价非常高
          • 优化方法
            • 网格搜索
              • 一种通过尝试所有超参数的组合来寻址合适一组超参数配置的方法
              • 缺点:超参数对模型性能影响程度不一样。采用网格搜索会在不重要的超参数上进行不必要的尝试
            • 随机搜索
              • 对超参数进行随机组合,然后选取一个性能最好的配置
            • 贝叶斯优化
              • 一种自适应的超参数优化方法,根据当前已经试验的超参数组合,来预
                测下一个可能带来最大收益的组合
              • 常用方法
                • 时序模型优化(SMBO )
              • 缺点
                • 每组超参数配置的评估代价比较高
            • 动态资源分配
              • 将有限的资源分配给更有可能带来收益的超参数组合.一种有效方法是逐次减半方法,将超参数优化看作一种非随机的最优臂问题.假设要尝试𝑁 组超参数配置,总共可利用的资源预算(摇臂的次数)为𝐵,我们可以通过𝑇 = log2(𝑁)? 1轮逐次减半的方法来选取最优的配置
            • 神经架构搜索
      • 非凸优化问题
        • 自适应学习率,梯度优化
  • 批量梯度下降,随机梯度下降和小批量梯度下降比较

    • 批量梯度下降:利于寻找全局最优解,梯度方差小;但样本数目很多时,训练过程会很慢
    • 随机梯度下降:训练速度快;准确度下降,并不是全局最优,梯度方差大
    • 小批量梯度下降:同时兼顾两种方法的优点
    • 批量大小不影响随机梯度的期望,但会影响随机梯度的方差,批量越大,随机梯度的方差越小,训练越稳定,因此可以设置较大的学习率;批量较小时,需要设置较小的学习率,否则模型会不收敛
  • 在随机(小批量)梯度下降法中,如果每次选取样本数量比较小,损失会呈现振荡的方式下降.也就是说,随机梯度下降方法中每次迭代的梯度估计和整个训练集上的最优梯度并不一致,具有一定的随机性

    • 动量法
      • 有效地缓解梯度估计随机性的方式是通过使用最近一段时间内的平均梯度来代替当前时刻的随机梯度来作为参数更新的方向,从而提高优化速度
      • 一般而言,在迭代初期,梯度方向都比较一致,动量法会起到加速作用,可以更快地到达最优点。在迭代后期,梯度方向会不一致,在收敛值附近震荡,动量法会起到减速作用,增加稳定性。
  • 各优化算法比较

    • RMSProp和Adam更好
    • 目前最流行并且使用很高的优化算法包括SGD、具动量的SGD、RMSProp、具动量的RMSProp和Adam
  • 梯度截断

    • 除了梯度消失之外,梯度爆炸是影响学习效率的主要因素
    • 为了避免这种情况,当梯度的模大于一定阈值时,就对梯度进行截断,称为梯度截断
      • 按值截断
      • 按模截断
  • 参数初始化

    • Xavier初始化
      • 在计算出参数的理想方差后,可以通过高斯分布或均匀分布来随机初始化参数
      • 虽然在 Xavier 初始化中我们假设激活函数为恒等函数,但是 Xavier 初始化也适用于 Logistic 函数和 Tanh 函数(处于激活函数的线性区间)
      • Logistic 函数在线性区间的斜率约为 0.25
    • He初始化
      • 当使用ReLU激活函数时,通常有一半的神经元输出为0,因此,其分布的方差也近似为使用Logistic作为激活函数时的一半
        在这里插入图片描述
  • 数据预处理

    • 尺度不同的输入特征会增加训练难度,梯度下降的效率也会受到影响,尺度不同会造成在大多数位置上的梯度方向,并不是最优的搜索方向.当使用梯度下降法寻求最优解时,会导致需要很多次迭代才能收敛.
    • 数据归一化
      • 简单缩放
        • 通过对数据的每一个维度的值进行重新调节(这些维度可能是相互独立的),使得最终的数据向量落在 [0,1]或[ ? 1,1] 的区间内(根据数据情况而定)
      • 逐样本均值消减(也称为移除直流分量)
        • 例如:对于图像,这种归一化可以移除图像的平均亮度值。很多情况下我们对图像的照度并不感兴趣,而更多地关注其内容,这时对每个数据点移除像素的均值是有意义的。注意:虽然该方法广泛地应用于图像,但在处理彩色图像时需要格外小心,具体来说,是因为不同色彩通道中的像素并不都存在平稳特性。
      • 特征标准化 最常见的方法并被广泛地使用
        • 例如:处理音频数据时,常用 Mel 倒频系数 MFCCs 来表征数据。然而MFCC特征的第一个分量(表示直流分量)数值太大,常常会掩盖其他分量。这种情况下,为了平衡各个分量的影响,通常对特征的每个分量独立地使用标准化处理。
    • 白化
      • 降低输入的冗余性,降低特征之间的相关性,使得所有的特征具有相同的方差
      • PCA白化
        • 先PCA进行基转换 ,降低数据的相关性,再对每个输入特征进行缩放(除以各自的特征值的开方),以获得单位方差.此时的协方差矩阵为单位矩阵.
      • ZCA白化
        • ZCA白化只是在 PCA白化 的基础上做了一个 逆映射操作 ,使数据转换为原始基下,使得白化之后的数据更加的接近原始数据.
        • 自然灰度图像
          • 均值消减->PCS/ZCA白化
        • 彩色图像
          • 简单缩放->PCA/ZCA白化
        • 音频 (MFCC/频谱图)
          • 特征标准化->PCA/ZCA 白化
        • MNIST 手写数字
          • 简单缩放/逐样本均值消减(->PCA/ZCA 白化)
  • 过拟合和正则化

    • 正则化(Regularization)是一类通过限制模型复杂度,从而避免过拟合,提高泛化能力的方法,比如引入约束、数据增强、提前停止、丢弃法等
    • ?_1和?_2正则化
      • 通过约束参数的 ? 1 和 ? 2范数来减小模型在训练数据集上的过拟合现象
    • 提前停止
      • 使用一个验证集来测试每一次迭代的参数在验证集上是否最优。如果在验证集上的错误率不再下降,就停止迭代
    • Dropout
      • Dropout简化了网络,防止过拟合
      • Dropout可看作是一种集成学习
    • 数据增强
      • 通过算法对图像进行转变,引入噪声等方法来增加数据的多样性以及训练数据量。
      • 方法
        • 旋转(Rotation):将图像按顺时针或逆时针方向随机旋转一定角度
        • 翻转(Flip):将图像沿水平或垂直方法随机翻转一定角度
        • 缩放(Zoom In/Out):将图像放大或缩小一定比例
        • 平移(Shift):将图像沿水平或垂直方法平移一定步长
        • 加噪声(Noise):加入随机噪声
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:51:20  更:2021-10-01 16:51:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 12:48:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码