博客
关于我
2-2 Coursera吴恩达《改善深度神经网络》第二周课程笔记-优化算法
阅读量:795 次
发布时间:2019-03-25

本文共 2663 字,大约阅读时间需要 8 分钟。

深度学习中的优化算法

在深度学习领域,优化算法是训练神经网络速度和效果的关键。这些算法帮助我们在大规模数据集上快速找到最优模型参数。本文将详细介绍几种常用的优化方法及其实现原理。


《2.1 Mini-batch 梯度下降法》

Mini-batch 梯度下降法是一种批量优化方法,将大的训练集分割为小块(mini-batch),每次仅对一个小块进行梯度下降操作。与传统的批量梯度下降法相比,它能够显著提高训练速度。

核心原理

  • 批处理(Batch Processing)

    通过将训练集划分为多个小块(mini-batch),每次仅对一个小块进行计算。向量化运算使得批处理效率大幅提升,避免了逐个样本处理的低效。

  • 梯度下降法改进

    使算法避免等待整个训练集完成一次迭代,从而加速收敛速度。特别是当训练集规模较大时,mini-batch算法表现尤为突出。

  • 批量大小选择

    选择合适的批量大小(如64, 128, 256等)平衡计算速度与模型性能之间的关系。


  • 《2.2 理解 Mini-batch 梯度下降法》

    本节主要深入理解 Mini-batch 梯度下降法的运行机制和优化效果。

    运算流程

  • 输入准备

    将训练集分为多个 mini-batch,每个 mini-batch remembered as ( X^t ) 和 ( Y^t )。

  • 正向传播

    对当前 mini-batch 进行前向传播,得到预测值 ( \hat{Y}^{(t)} )。

  • 计算损失

    通过成本函数 ( J^{(t)} ) 量化预测值与真实标签之间的差异。若采用正则化,需加上 ( J^{(t)} ) 的项。

  • 反向传播

    计算梯度 ( \nabla W^{(t)} ) 并更新权重参数 ( W )。

  • 权重更新

    使用反向传播结果调整权重,完成一轮训练。


  • 《2.3 指数加权平均》

    指数加权平均是一种有效的优化工具,广泛应用于梯度下降法和动量梯度下降法等算法中。

    核心原理

  • 加权公式

    指数加权平均利用 ( \beta ) 参数,计算不同时间步的梯度平均值。( \beta ) 越大,平均值的时窗越大,平滑程度越高。

  • 平滑效果

    通过平滑连接不同时间步的梯度变化,减少算法在局部最优点附近的振荡,提升收敛稳定性。

  • 参数调优

    ( \beta ) 通常选定在 0.9 左右,既能保证平滑效果,又不会过度延迟响应变化。


  • 《2.4 指数加权平均的偏差修正》

    为了更准确地反映当前梯度状态,偏差修正方法通过调整初始值,减少早期估计的偏差。这种方法在实际应用中可以显著提升预测效果。

    方法实现

  • 修正公式

    通过计算初始值的修正项 ( r_t ),根据公式 ( v_t = r_t + \beta v_{t-1} + (1-\beta) s_{t-1} ) ,得到修正后的平滑值。

  • 优势分析

    • �어나uned 层面的管理精度。
    • 减少初始阶段的预测误差。

  • 《2.5 Adams 正则化算法》

    Adam 算法是基于动量梯度下降和根均方误差的结合,通过参数 ( \beta_1 ) 和 ( \beta_2 ) 进行二阶中心化,显著提高了学习的稳定性和速度。

    核心步骤

  • 初始化

    为每个参数维度初始化初始值 ( m_w ) 和 ( v_w )。

  • 计算动量

    使用指数加权平均计算动量 ( \hat{v}_t ) 和误差平方和 ( \hat{s}_t )。

  • 更新参数

    根据 Adam 公式更新权重 ( W ) 和偏置项 ( b ): [ W := W - \alpha \frac{\hat{v}_t}{1-\beta_2} - \sqrt{\hat{s}_t/\alpha}
    b := b - \beta_1 \hat{m}_t ]

  • 超参数调优

    通常 ( \beta_1=0.9 ) ,( \beta_2=0.999 ),( \epsilon ) 为避免数值稳定性问题的小量。


  • 《2.6 动量梯度下降法》

    动量梯度下降法通过计算梯度的加权平均值,减少了参数更新中方向摆动的问题,使算法收敛更快。

    原理解析

  • 动量引入

    通过动量项 ( dW^{(t)} ) 来平滑参数更新过程,减少方向上的振荡。

  • 加速度效应

    动量项类似于力的加速度,逐步引导参数向最优方向移动,而不是突然跳跃。

  • 权重更新

    每次迭代使用 ( W(t) = W(t-1) + (-\alpha) \hat{v}_t ) 进行参数调整。


  • 《2.7 RMSProp 算法》

    RMSProp 是基于均方根误差的优化算法,针对不同方向的参数梯度进行适应性缩放,使更新步长更优化。

    核心操作

  • 计算误差平方和

    通过计算每个参数方向的梯度误差平方和 ( S_t )。

  • 微分缩放

    按照误差平方和的大小动态调整更新步长,避免不同方向梯度摆动过大。

  • 参数更新

    使用缩放后的梯度更新参数: [ W := W - \frac{\alpha}{\sqrt{S_t}} ] 其中 ( S_t ) 是梯度误差的平方和。


  • 《2.8 Adam 优化算法》

    Adam 算法结合了动量梯度下降和 RMSProp,通过维度聚合的方式实现更高效的参数更新。

    优势总结

    • 动量效果:减少方向摆动,降低收敛时间。
    • 根均方误差:针对不同梯度方向的平滑,提高更新稳定性。
    • 结合优化:融合了两种优秀算法的特性,适应复杂任务。

    《2.9 学习率衰减》

    学习率衰减通过随着训练步骤的增加而逐渐减小,平衡了学习的速度和稳定性,避免过早收敛或过大矩阵计算。

    实现方法

  • 衰减模式

    通常采用 ( \alpha = \alpha_0 / \sqrt{t} ) 或加热衰减 ( \alpha = \alpha_0 (1 - t/T) ) 。

  • 学习速度调节

    逐步减小学习率,避免在训练早期过快收敛,或在后期步伐过大导致训练发散。


  • 《2.10 局部最优问题》

    在深度学习中,局部最优与全局最优的存在关系较为复杂。梯度为空(zero gradient)的点往往是鞍点而非局部最优。

    对训练过程的影响

    • 收敛速度减缓:长时间停留在平稳区域。
    • 优化算法的改进:动量梯度下降等方法能够有效脱离鞍点,快速移动向最优区域。

    总结

    本课程系统介绍了多种深度学习中的优化算法及其实现方法,涵盖 mini-batch 梯度下降、指数加权平均、动量梯度下降、 RMSProp、 Adam 以及学习率衰减等技术。这些算法通过批量处理和平滑更新策略显著提升了训练效率和模型性能。在实际应用中,应综合考虑任务需求和数据规模,灵活配置超参数以获得最佳效果。

    转载地址:http://ftauk.baihongyu.com/

    你可能感兴趣的文章
    mysql 为某个字段的值加前缀、去掉前缀
    查看>>
    mysql 主从
    查看>>
    mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
    查看>>
    mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
    查看>>
    mysql 主从关系切换
    查看>>
    MYSQL 主从同步文档的大坑
    查看>>
    mysql 主键重复则覆盖_数据库主键不能重复
    查看>>
    Mysql 事务知识点与优化建议
    查看>>
    Mysql 优化 or
    查看>>
    mysql 优化器 key_mysql – 选择*和查询优化器
    查看>>
    MySQL 优化:Explain 执行计划详解
    查看>>
    Mysql 会导致锁表的语法
    查看>>
    mysql 使用sql文件恢复数据库
    查看>>
    mysql 修改默认字符集为utf8
    查看>>
    Mysql 共享锁
    查看>>
    MySQL 内核深度优化
    查看>>
    mysql 内连接、自然连接、外连接的区别
    查看>>
    mysql 写入慢优化
    查看>>
    mysql 分组统计SQL语句
    查看>>
    Mysql 分页
    查看>>