关于Adam优化算法

本文介绍了深度学习中常用的优化算法,特别是Adam算法。详细阐述了Adam算法的思路,包括一阶矩和二阶矩估计、指数加权平均、参数更新规则以及初始化偏差修正,解释了Adam如何有效地进行参数优化。
摘要由CSDN通过智能技术生成

1.基础知识

矩估计:
一般有:原点矩和中心矩。
随机变量X的n阶原点矩 a n a_{n} an定义为 a n = E ( X n ) a_{n}=E\left(X^{n}\right) an=E(Xn)
根据定义,我们可知:
    一阶原点矩为 E ( x ) E(\mathrm{x}) E(x)
    二阶原点矩为 E ( x 2 ) E\left(\mathrm{x}^{2}\right) E(x2)
因为样本与总体的原点矩是近似的,所以可以通过让它们相等来用样本矩估计总体矩。

设总体分布为 f ( x ; θ 1 , ⋯   , θ k ) f\left(x ; \theta_{1}, \cdots, \theta_{k}\right) f(x;θ1,,θk),则它的矩(原点矩和中心矩都可以,此处以原点矩为例)
对连续型随机变量:
E ( x n ) = ∫ − ∞ ∞ x n f ( x ; θ 1 , ⋯   , θ k ) d x E(\mathrm{x}^{n})=\int_{-\infty}^{\infty} x^{n} f\left(x ; \theta_{1}, \cdots, \theta_{k}\right) d_{x} E(xn)=xnf(x;θ1,,θk)dx
对离散型随机变量:
E ( x n ) = ∑ i = 1 n x i f ( x i ; θ 1 , ⋯   , θ k ) E(\mathrm{x}^{n})=\sum_{i=1}^{n} x_{i} f\left(x_{i} ; \theta_{1}, \cdots, \theta_{k}\right) E(xn)=i=1nxif(xi;θ1,,θk)

一阶梯度法与二阶梯度法:
对一个函数 ∥ f ( x ) ∥ 2 2 \|f(x)\|_{2}^{2} f(x)22,要求解它的最小或最大值,一般直接求导很难求解,一般可以通过迭代的方式计算,那么迭代的增量 Δ X \Delta X ΔX如何设置,这里将目标函数在x附近进行泰勒展开:

∥ f ( x + Δ x ) ∥ 2 2 ≈ ∥ f ( x ) ∥ 2 2 + J ( x ) Δ x + 1 2 Δ x T H Δ x \|f(x+\Delta x)\|_{2}^{2} \approx\|f(x)\|_{2}^{2}+J(x) \Delta x+\frac{1}{2} \Delta x^{T} H \Delta x f(x+Δx)22f(x)22+J(x)Δx+21ΔxTHΔx

这里J是目标函数关于x的导数(雅克比矩阵),而H则是二阶导数(海塞[hessian]矩阵)。我们可以选择保留泰勒展开的一阶二阶项,对应的求解方法则为一阶梯度或二阶梯度法。
1)如果保留一阶梯度,那么增量的解就为:
Δ x = − J ( x ) T \Delta x=-J(x)^{T} Δx=J(x)T
通常 Δ x \Delta x Δx前面会加一个步长λ:
Δ x = − λ J T ( x ) \Delta x=-\lambda J^{T}(x) Δx=λJT(x)
2)如果保留两阶梯度,那么增量的解就为:
Δ x = − H − 1 J T \Delta x=-H^{-1} J^{T} Δx=H1JT

雅各比矩阵:
设y=f(x),x和y都是一个向量,则对应的雅可比矩阵为
J = [ d y 1 d x 1 d y 1 d x 2 … d y 1 d x n d y 2 d x 1 d y 2 d x 2 ⋯ d y 2 d x n ⋯ ⋯ ⋯ ⋯ d y m d x 1 d y m d x 2 ⋯ d y m d x n ] J=\left[\begin{array}{llll}{\frac{d y_{1}}{d x_{1}}} & {\frac{d y_{1}}{d x_{2}}} & {\dots} & {\frac{d y_{1}}{d x_{n}}} \\ {\frac{d y_{2}}{d x_{1}}} & {\frac{d y_{2}}{d x_{2}}} & {\cdots} & {\frac{d y_{2}}{d x_{n}}} \\ {\cdots} & {\cdots} & {\cdots} & {\cdots} \\ {\frac{d y_{m}}{d x_{1}}} & {\frac{d y_{m}}{d x_{2}}} & {\cdots} & {\frac{d y_{m}}{d x_{n}}}\end{array}\right] J=dx1dy1

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值