• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
贞子小白白
博客园    首页    新随笔    联系   管理    订阅  订阅

【深度学习】|01复旦大学邱锡鹏《神经网络与深度学习》学习小笔记(四)优化正则

优化与正则

  网络优化难点,改善方法

一、优化与正则

优化:经验风险最小

正则化:降低模型复杂度


 

(1)网络优化

a.网络优化难点:

  结构差异大
    没有通用的优化算法
    超参数多

  非凸优化问题
    参数初始化
    逃离局部最优(鞍点)

  梯度消失(爆炸)问题

b.神经网络优化的改善方法:

更有效的优化算法来提高优化方法的效率和稳定性
  动态学习率调整
  梯度估计修正
更好的参数初始化方法、数据预处理方法来提高优化效率
修改网络结构来得到更好的优化地形
  优化地形( Optimization Landscape )指在高维空间中损失函数的曲面形状
  好的优化地形通常比较平滑
  使用 ReLU 激活函数、残差连接、逐层归一化等
使用更好的超参数优化方法

c.Batchsize和learning rate

批量越大,随机梯度的方差越小,引入的噪声也越小,训练也越稳定,因此可以设置较大的学习率.
而批量较小时,需要设置较小的学习率,否则模型会不收敛.

d.优化算法 wt = wt-lr*m/sqirt(V)

自己整理的一些资料:
链接

更多:知乎

帮助记忆一部分:

元素:梯度,一阶动量m,二阶动量V

SGD(一阶动量)

SGDM(加在一阶动量上的momentum)

  m_w = beta*m_w+(1-beta)*grads[0]

Adagrad(一阶gradient,累加的二阶动量)

RMSprop(一阶gradient,momentum的二阶动量)

AdaDelta在RMSprop的基础上多维护了一个学习率

adam(给Adagrad的两个都加momentum)

e.梯度截断

梯度截断是一种比较简单的启发式方法,把梯度的模限定在一个区间,当梯度的模小于或大于这个区间时就进行截断。

f.参数初始化

  1.预训练初始化
  2.随机初始化

    Gaussian初始化方法是最简单的初始化方法,参数从一个固定均值(比如0)和固定方差(比如0.01)的Gaussian分布进行随机初始化。

    均匀分布初始化:参数可以在区间[−r,r]内采用均匀分布进行初始化。

    基于方差缩放的参数初始化

    正交初始化
      1 )用均值为 0 、方差为 1 的高斯分布初始化一个矩阵;
      2 )将这个矩阵用奇异值分解得到两个正交矩阵,并使用其中之一作为权重矩阵。

  3.固定值初始化
    偏置( Bias )通常用 0 来初始化

g.归一化方法
  批量归一化(Batch Normalization,BN)
  层归一化(Layer Normalization)
  权重归一化(Weight Normalization)
  局部响应归一化(Local Response Normalization,LRN)

h.超参数优化

  网格搜索: 𝑚_1  × 𝑚_2 ×···× 𝑚_𝐾 个取值组合

  随机搜索: 随机搜索

  贝叶斯优化
  动态资源分配
  神经架构搜索

i.Dropout :就是集成学习,bagging的一种策略

   对于一个神经层𝑦 = 𝑓(𝑊𝑥+𝑏),引入一个丢弃函数𝑑(·)使得𝑦 = 𝑓(𝑊𝑑(𝑥)+𝑏)。

    

   其中𝑚 ∈ 〖{0,1}〗^𝑑  是丢弃掩码(dropout mask),通过以概率为p的贝努力分布随机生成

 NLP方向暂时就整理到这里吧^.^后续会把Self-Attention,Transformer,BERT放在一起整理

 

posted @ 2021-04-15 21:53  贞子小白白  阅读(173)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3