优化理论及应用精解【24】
文章目录
- 优化
- RMSProp(Root Mean Square Propagation)
- 定义
- 性质
- 公式
- 数学原理与推导
- 例子和例题
- 例子
- 例题
- Adam
- Adam的定义
- Adam的性质
- Adam的公式
- Adam的数学原理与推导
- Adam的例子和例题
- 例子
- 例题
- 矩估计
- 定义
- 性质
- 公式
- 数学原理
- 定理和推导
- 例子和例题
- 例子
- 例题
- 参考文献
优化
RMSProp(Root Mean Square Propagation)
是一种自适应学习率的优化算法,主要用于深度学习中的参数更新。以下是对其定义、性质、公式、数学原理、推导以及例子的详细解释:
定义
RMSProp是一种优化算法,旨在解决Adagrad算法在深度学习训练过程中学习率逐渐减小直至无法进一步学习的问题。它通过引入一个衰减系数来解决这个问题,使得历史信息能够指数级衰减,从而避免了学习率持续下降的问题。RMSProp的核心思想是对每个参数使用不同的学习率,这些学习率是根据参数的最近梯度大小自适应调整的。
性质
- 自适应学习率:RMSProp通过考虑最近的梯度大小来自适应地调整每个参数的学习率,避免了全局学习率带来的一些问题。
- 解决Adagrad的缺陷:通过引入衰减因子,RMSProp解决了Adagrad学习率持续下降直至消失的问题。
- 超参数依赖:RMSProp的效果在很大程度上依赖于衰减因子等超参数的选择。
- 适用场景:RMSProp特别适合处理非凸优化和深度学习中的大规模问题,但并不保证在所有问题上都是最优的。
公式
RMSProp的更新公式如下:
- 计算梯度平方的移动平均:
E [ g 2 ] t = β E [ g 2 ] t − 1 + ( 1 − β ) g t 2 E[g^2]_t = \beta E[g^2]_{t-1} + (1 - \beta) g_t^2 E[g2]t=βE[g2]t−1+(1−β)gt2
其中, E [ g 2 ] t E[g^2]_t E[g2]t是第t次迭代的梯度平方的移动平均, β \beta β是衰减率(通常取值在0到1之间,如0.9), g t g_t gt是第t次迭代的梯度。
- 更新参数:
θ t = θ t − 1 − α E [ g 2 ] t + ϵ g t \theta_t = \theta_{t-1} - \frac{\alpha}{\sqrt{E[g^2]_t + \epsilon}} g_t θt=θt−1−E[g2]t+ϵαgt
其中, θ t \theta_t θt是第t次迭代的参数, α \alpha α是学习率, ϵ \epsilon ϵ是一个小常数(如 1 0 − 8 10^{-8} 10−8),用于防止除零错误。
数学原理与推导
RMSProp的数学原理基于梯度平方的指数加权移动平均来调整学习率。具体来说,它会对每个参数的历史梯度进行平方并加权平均,从而确定一个适应的学习率。这样,在存在陡峭方向时更新较小,而在平坦方向时更新较大,能够更有效地更新参数。
推导过程大致如下:
- 计算当前梯度的平方。
- 使用衰减系数更新梯度平方的移动平均。
- 根据移动平均和当前梯度计算新的参数值。
例子和例题
例子
假设我们有一个简单的线性回归问题,要拟合的线性模型为 h ( θ ) = θ 0 + θ 1 x h(\theta) = \theta_0 + \theta_1 x h(θ)=θ0+θ1x。假设初始参数为 θ 0 = 0 \theta_0 = 0 θ0=0, θ 1 = 0 \theta_1 = 0 θ1=0,学习率 α = 0.01 \alpha = 0.01 α=0.01,衰减率 β = 0.9 \beta = 0.9 β=0.9,并且初始化梯度平方的移动平均 E [ g 2 ] 0 = 0 E[g^2]_0 = 0 E[g2]0=0。
对于第一个样本 ( x 1 , y 1 ) = ( 1 , 2 ) (x_1, y_1) = (1, 2) (x1,y1)=(1,2),模型预测值为0,计算损失函数对参数的梯度:
- ∂ J ∂ θ 0 = h ( θ ) − y 1 = 0 − 2 = − 2 \frac{\partial J}{\partial \theta_0} = h(\theta) - y_1 = 0 - 2 = -2 ∂θ0∂J=h(θ)−y1=0−2=−2
- ∂ J ∂ θ 1 = ( h ( θ ) − y 1 ) x 1 = − 2 ⋅ 1 = − 2 \frac{\partial J}{\partial \theta_1} = (h(\theta) - y_1) x_1 = -2 \cdot 1 = -2 ∂θ1∂J=(h(θ)−y1)x1=−2⋅1=−2
然后更新梯度平方的移动平均和参数:
- E [ g 2 ] 1 = β E [ g 2 ] 0 + ( 1 − β ) g 1 2 = 0.9 × 0 + 0.1 × ( − 2 ) 2 = 0.4 E[g^2]_1 = \beta E[g^2]_0 + (1 - \beta) g_1^2 = 0.9 \times 0 + 0.1 \times (-2)^2 = 0.4 E[g2]1=βE[g2]0+(1−β)g12=0.9×0+0.1×(−2)2=0.4
- θ 0 = θ 0 − α E [ g 2 ] 1 + ϵ g 1 ≈ 0.01 \theta_0 = \theta_0 - \frac{\alpha}{\sqrt{E[g^2]_1 + \epsilon}} g_1 \approx 0.01 θ0=θ0−E[g2]1+ϵαg1≈0.01
- θ 1 = θ 1 − α E [ g 2 ] 1 + ϵ g 1 ≈ 0.01 \theta_1 = \theta_1 - \frac{\alpha}{\sqrt{E[g^2]_1 + \epsilon}} g_1 \approx 0.01 θ1=θ1−E[g2]1+ϵαg1≈0.01
例题
问题:使用RMSProp算法最小化一个简单的二次函数 y = a x 2 + b x + c y = ax^2 + bx + c y=ax2+bx+c。
步骤:
- 初始化参数 θ \theta θ(包含a, b, c)、学习率 α \alpha α、衰减率 β \beta β和梯度平方的移动平均 E [ g 2 ] E[g^2] E[g2]。
- 对于每个训练样本,计算预测值、损失函数和梯度。
- 更新梯度平方的移动平均。
- 使用RMSProp更新规则更新参数。
- 重复步骤2-4直到收敛。
通过这个过程,RMSProp算法能够根据历史梯度的平方根自适应地调整学习率,从而有效地最小化损失函数。
Adam
Adam的定义
Adam(Adaptive Moment Estimation)是一种结合了动量(Momentum)和自适应学习率调整的优化算法,它能够在深度学习模型的训练中更快地收敛并且对超参数的选择相对不那么敏感。Adam算法结合了RMSProp和动量优化的优点,具体来说,它维护了两个动态调整的学习率:一个是基于梯度一阶矩估计的动量项,另一个是基于梯度二阶矩估计(类似于RMSProp)的自适应学习率。
Adam的性质
- 自适应学习率:Adam算法通过计算梯度的一阶矩估计和二阶矩估计,为每个参数动态调整学习率。
- 动量项:Adam引入了动量项,有助于加速收敛并减少震荡。
- 偏差校正:为了纠正初始化时的偏差,Adam算法对一阶矩估计和二阶矩估计进行了偏差校正。
- 广泛适用性:Adam算法适用于各种类型和规模的深度学习模型,是深度学习中最常用的优化算法之一。
Adam的公式
Adam算法的具体公式如下:
- 一阶矩估计(动量项)的更新:
m t = β 1 m t − 1 + ( 1 − β 1 ) g t m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t mt=β1mt−1+(1−β1)gt
其中, m t m_t mt表示第t次迭代时的一阶矩估计, β 1 \beta_1 β1是一阶矩估计的指数衰减率(通常接近1,如0.9), g t g_t gt是第t次迭代的梯度。
- 二阶矩估计(类似于RMSProp)的更新:
v t = β 2 v t − 1 + ( 1 − β 2 ) g t 2 v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2 vt=β2vt−1+(1−β2)gt2
其中, v t v_t vt表示第t次迭代时的二阶矩估计, β 2 \beta_2 β2是二阶矩估计的指数衰减率(通常接近1,如0.999), g t 2 g_t^2 gt2是第t次迭代的梯度平方。
- 偏差校正:
m ^ t = m t 1 − β 1 t \hat{m}_t = \frac{m_t}{1 - \beta_1^t} m^t=1−β1tmt
v ^ t = v t 1 − β 2 t \hat{v}_t = \frac{v_t}{1 - \beta_2^t} v^t=1−β2tvt
其中, m ^ t \hat{m}_t m^t和 v ^ t \hat{v}_t v^t分别是偏差校正后的一阶矩估计和二阶矩估计。
- 参数更新:
θ t + 1 = θ t − η v ^ t + ϵ m ^ t \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t θt+1=θt−v^t+ϵηm^t
其中, θ t + 1 \theta_{t+1} θt+1表示更新后的参数, η \eta η是学习率, ϵ \epsilon ϵ是一个很小的数(通常设置为 1 0 − 8 10^{-8} 10−8),用于防止除零错误。
Adam的数学原理与推导
Adam算法的数学原理基于梯度的一阶矩估计和二阶矩估计来动态调整学习率。一阶矩估计类似于动量法,有助于加速收敛并减少震荡;二阶矩估计类似于RMSProp算法,能够自适应地调整学习率。通过计算这两个矩估计并进行偏差校正,Adam算法能够在训练过程中为每个参数动态地调整学习率,从而实现快速收敛和稳定训练。
具体的推导过程可以从梯度下降法开始,逐步引入动量项和自适应学习率的概念,最终推导出Adam算法的更新公式。这个过程涉及到对梯度的一阶矩和二阶矩的估计、偏差校正以及参数更新的计算。
Adam的例子和例题
例子
假设我们有一个简单的二次函数 f ( x ) = x 2 f(x) = x^2 f(x)=x2,我们要使用Adam算法来最小化这个函数。首先,我们初始化参数 x = 0 x=0 x=0,一阶矩估计 m 0 = 0 m_0=0 m0=0,二阶矩估计 v 0 = 0 v_0=0 v0=0,学习率 η = 0.1 \eta=0.1 η=0.1,衰减率 β 1 = 0.9 \beta_1=0.9 β1=0.9, β 2 = 0.999 \beta_2=0.999 β2=0.999,以及一个很小的数 ϵ = 1 0 − 8 \epsilon=10^{-8} ϵ=10−8。
然后,我们开始迭代更新参数。在每次迭代中,我们首先计算梯度 g t = 2 x t g_t = 2x_t gt=2xt,然后更新一阶矩估计和二阶矩估计,接着进行偏差校正,最后根据校正后的矩估计更新参数。重复这个过程直到收敛或达到预定的迭代次数。
例题
问题:使用Adam算法来优化一个线性回归模型的参数,目标是最小化均方误差损失函数。
步骤:
- 初始化:初始化模型参数(权重和偏置)、一阶矩估计和二阶矩估计为零,设置学习率、衰减率以及一个很小的数 ϵ \epsilon ϵ。
- 前向传播:计算模型预测值。
- 计算损失:根据预测值和真实值计算均方误差损失函数。
- 反向传播:计算损失函数对模型参数的梯度。
- 更新一阶矩估计和二阶矩估计:使用Adam算法的公式更新一阶矩估计和二阶矩估计。
- 偏差校正:对一阶矩估计和二阶矩估计进行偏差校正。
- 更新参数:使用校正后的矩估计和学习率更新模型参数。
- 重复:重复步骤2到7直到收敛或达到预定的迭代次数。
通过以上步骤,我们可以使用Adam算法来优化线性回归模型的参数,从而实现更高效的模型训练。
矩估计
是一种统计学方法,用于通过样本矩来估计总体参数。以下是对矩估计的定义、性质、公式、数学原理、定理和推导以及例子和例题的详细解释:
定义
矩估计(Moment Estimation)是一种参数估计方法,其基本思想是利用样本矩来估计总体矩,进而估计总体参数。矩估计法由英国统计学家皮尔逊(K. Pearson)在20世纪初提出,是最古老的估计方法之一。
性质
- 简单易用:矩估计法的计算相对简单,只需要通过样本矩和理论矩的对应关系即可进行参数估计。
- 无偏性:在一些特定条件下,矩估计可以保证参数估计的无偏性,即当样本容量趋向于无穷大时,矩估计得到的参数估计值会无偏地逼近真实参数值。
- 弱分布假设:矩估计方法对数据的分布假设要求相对较弱,只需要满足一阶和二阶矩存在即可。这使得矩估计在实际问题中的应用范围相对广泛。
- 渐进有效性:在大样本情况下,矩估计可以提供较为准确的参数估计,其标准误差趋于最小。
公式
矩估计的核心公式是利用样本矩代替总体矩来估计总体参数。例如,用样本一阶原点矩(即样本均值)来估计总体的期望,用样本二阶中心矩(即样本方差)来估计总体的方差。具体公式如下:
- 样本均值:
X ˉ = 1 n ∑ i = 1 n X i \bar{X} = \frac{1}{n}\sum_{i=1}^{n}X_i Xˉ=n1i=1∑nXi
其中, X ˉ \bar{X} Xˉ是样本均值, X i X_i Xi是第i个样本值,n是样本容量。
- 样本方差:
S 2 = 1 n − 1 ∑ i = 1 n ( X i − X ˉ ) 2 S^2 = \frac{1}{n-1}\sum_{i=1}^{n}(X_i - \bar{X})^2 S2=n−11i=1∑n(Xi−Xˉ)2
其中, S 2 S^2 S2是样本方差。
数学原理
矩估计的数学原理基于大数定律,即当样本量足够大时,样本矩依概率收敛于相应的总体矩。这意味着在大样本情况下,样本矩能够很好地反映总体矩,从而使得矩估计具有较好的一致性和有效性。
定理和推导
矩估计的推导过程通常涉及以下几个步骤:
- 推导总体矩的方程:首先,根据总体分布推导出涉及未知参数的总体矩的方程。
- 计算样本矩:然后,从样本中计算出相应的样本矩。
- 解方程估计参数:接着,用样本矩代替总体矩,解出方程中的未知参数,从而得到参数的矩估计值。
一个常见的定理是,当样本量足够大时,矩估计具有相合性,即估计值会收敛到真实参数值。
例子和例题
例子
假设我们有一个总体,其均值和方差未知。为了估计这些参数,我们从总体中抽取一个样本,并计算样本均值和样本方差。然后,我们可以用样本均值作为总体均值的估计,用样本方差作为总体方差的估计。
例题
问题:假设从一个总体中抽取一个样本,样本数据为{1, 2, 3, 4, 5}。请使用矩估计法估计该总体的均值和方差。
解答:
- 计算样本均值:
X ˉ = 1 5 ( 1 + 2 + 3 + 4 + 5 ) = 3 \bar{X} = \frac{1}{5}(1 + 2 + 3 + 4 + 5) = 3 Xˉ=51(1+2+3+4+5)=3
因此,该总体均值的矩估计值为3。
- 计算样本方差:
S 2 = 1 5 − 1 [ ( 1 − 3 ) 2 + ( 2 − 3 ) 2 + ( 3 − 3 ) 2 + ( 4 − 3 ) 2 + ( 5 − 3 ) 2 ] = 1 4 [ 4 + 1 + 0 + 1 + 4 ] = 5 2 = 2.5 S^2 = \frac{1}{5-1}\left[(1-3)^2 + (2-3)^2 + (3-3)^2 + (4-3)^2 + (5-3)^2\right] = \frac{1}{4}[4 + 1 + 0 + 1 + 4] = \frac{5}{2} = 2.5 S2=5−11[(1−3)2+(2−3)2+(3−3)2+(4−3)2+(5−3)2]=41[4+1+0+1+4]=25=2.5
因此,该总体方差的矩估计值为2.5。
通过以上步骤,我们可以使用矩估计法来估计总体的均值和方差。需要注意的是,矩估计的结果可能受到样本大小、样本分布等因素的影响,因此在实际应用中需要谨慎处理。
参考文献
- 文心一言