zoukankan      html  css  js  c++  java
  • 大三寒假学习进度(7)

    7. 神经网络参数优化器

    神经网络是基于连接的人工智能,当网络结构固定后,不同参数的选取对模型的表达力影响很大,更新模型参数的过程,仿佛在叫一个孩子理解世界,达到学龄的孩子,脑神经元的结构,规模是相似的,他们都具备了学习的潜力,但是不同的引导方法,会让孩子具备不同的能力,达到不同的高度。

    优化器就是引导神经网络更新参数的工具。

    1. 几个符号的含义

    待优化的参数w ,损失函数loss,学习率lr,每次迭代的一个batch(每个batch通常包括2n组数据 ),t表示当前batch迭代的总次数。


    1. 更新参数分为四步完成
    1. 计算t时刻损失函数关于当前参数的梯度

      • 让loss对当前的每个w求偏导数
    2. 计算t时刻一阶动量mt和二阶动量Vt

      • 一阶动量:与梯度相关的函数

      • 二阶动量:与梯度平方相关的函数

      • 不同的优化器实质上只是定义了不同的一阶动量和二阶动量公式

    3. 计算t时刻下降梯度:

      • 学习率乘以一阶动量除以二阶动量开根号
    4. 计算t+1时刻参数:

      • 当前参数减去当前下降梯度
    • 五种常用的神经网络参数优化器
    1. SGD

      • 一阶动量定义为梯度,二阶动量恒等于一
    2. SGDM(在SGD基础上增加一阶动量)

      • mt 表示各时刻梯度方向的指数滑动平均值
    3. Adagrad(在·SGD基础上增加二阶动量)

      • 二阶动量是从开始到现在 ,梯度平方的累计和
    4. RMSProp(在SGD基础上增加二阶动量)

      • 二阶动量是各时刻梯度平方的指数滑动平均
    5. Adam(同时引入了SGDM的一阶动量和RMSProp的二阶动量)

  • 相关阅读:
    [LeetCode]3Sum Closest
    [LeetCode]3Sum
    [LeetCode]Roman to Integer
    [LeetCode]Integer to Roman
    [LeetCode]Container With Most Water
    [LeetCode]Palindrome Number
    [LeetCode]String to Integer (atoi)
    [LeetCode]Reverse Integer
    Elasticserch与Elasticsearch_dsl用法
    es 查询更新操作
  • 原文地址:https://www.cnblogs.com/--lzx1--/p/14318162.html
Copyright © 2011-2022 走看看