深度学习二:几率和反向传播的变种

几率

高斯分布

高斯分布(Gaussian Distribution)

又叫正态分布(Normal Distribution), 记做\(N(μ,σ^2)\),几率密度和为 1。面试

\[P(x)=\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{1}{2\sigma^2}(x-\mu)^2}​ \]

  • \(\mu\) = mean, 数学指望 /mu/。\(\mu\) 是正态分布的位置参数,描述正态分布的集中趋势位置。几率规律为取与 \(\mu\) 邻近的值的几率大,而取离μ越远的值的几率越小。正态分布以 \(X=\mu\) 为对称轴,左右彻底对称。正态分布的指望、均数、中位数、众数相同,均等于 \(\mu\)
  • \(\sigma\) = standard deviation 标准误差 /sigma/。\(\sigma\) 描述正态分布资料数据分布的离散程度,\(\sigma\) 越大,数据分布越分散,\(\sigma\) 越小,数据分布越集中。也称为是正态分布的形状参数,\(\sigma\) 越大,曲线越扁平,\(\sigma\) 越小,曲线越瘦高。
  • \(\sigma^2\) = variance 方差
  • \(\mu\) = 0,\(\sigma\) = 1 的时候,高斯分布是标准正态分布。

多元高斯

独立多元高斯分布

多元高斯分布(Multivariate Gaussian),假设 n 个变量 \(x=[x_1,x_2,⋯,x_n]^T\) 互不相关, 且服从正态分布,各个变量的均值 \(E(x)=[μ_1,μ_2,⋯,μ_n]^T\) ,标准误差为 \(σ(x)=[σ_1,σ_2,⋯,σ_n]^T\) ,根据联合几率密度公式:算法

\[f(x)=p(x_1,x_2....x_n)=p(x_1)p(x_2)....p(x_n)=\frac{1}{\sqrt{2\pi}^n\sigma_1\sigma_2...\sigma_n}e^{-\frac{(x_1-\mu_1)^2}{2\sigma_1^2}-\frac{(x_2-\mu_2)^2}{2\sigma_2^2}...-\frac{(x_n-\mu_n)^2}{2\sigma_n^2}} \]

化简为:网络

\[P_{\mu,\sigma}|(x) = \prod_iP_{\mu_i,\sigma_i}(x_i) \]

如,令\(z^2 = \frac{(x_1-\mu_1)^2}{\sigma_1^2}+\frac{(x_2-\mu_2)^2}{\sigma_2^2}...+\frac{(x_n-\mu_n)^2}{\sigma_n^2}\) , \(\sigma_z = \sigma_1\sigma_2...\sigma_n\), 则函数

\[f(z) = \frac{1}{\sqrt{2\pi}^n\sigma_z}e^-\frac{z^2}{2} \]

最大似然估计

Maximum Likelihood Estimation 简称 MLE,又叫极大似然估计,是根据数据采样来估计几率分布的经典方法,事实上,几率模型的训练过程就是参数估计(parameter estimation)过程。post

首先,咱们声明一个假设 \(h \in H\) ,令 \(D_c\) 表示训练集 D 中第 c 类样本组成的集合,那么 \(P(D_c|h)\) 是在假设 h 的状况下,数据 \(D_c\) 产生的几率。则假设 h 对数据集 \(D_c\) 的似然是学习

\[P(D_c|h) = \prod_{x \in D_c}P(x|h) \]

对 h 进行最大似然估计,就是寻找能最大化似然\(P(D_c|h)\)的假设h。spa

在上式中,用到了连乘操做,咱们都知道连乘操做中,一旦数据过大会形成下溢,因此咱们一般使用对数似然(Log-Likelihood)公式来替代上面的连乘公式:3d

\[LL(h) = log P(D_c|h) = \sum_{x \in D_c}logP(x|h) \]

那么最大似然估计的目的就能够写为公式:orm

\[h_c = argmax_{h_c}LL(h_c) \]

既然咱们已经了解了最大似然估计,知道它能够用来求参数值,那么咱们如今能够来求高斯分布的参数 \(\mu_c\)\(\sigma_c^2\)的最大似然估计blog

\[\mu_c = \frac{1}{|D_c|}\sum_{x \in D_c}x \]

\[\sigma_c^2 = \frac{1}{|D_c|}\sum_{x \in D_c}(x - \mu_c)(x - \mu)^T \]

即,经过最大似然估计求得的正态分布均值就是样本均值,方差就是 \((x - \mu_c)(x - \mu)^T\) 的均值。

最小二乘法的推导

交叉熵的推导

贝叶斯法则

Bayes' Law,又称贝叶斯定理(Bayes' theorem)或者贝叶斯规则(Bayes' rule)

公式:事件A发生的状况下事件B发生的几率:

\[P(A|B) = \frac{P(B|A)P(A)}{P(B)} \]

一般用于已经观察到一个结果后,评估潜在的缘由的可能性,能够将上述公式写成:

\[P(Cause|Effect) = \frac{P(Effect|Cause)P(Cause)}{P(Effect)} \]

贝叶斯推论 Bayes'Inference

  • \(P(D|h)\) :全部假设中数据D在假设h下生成的几率($h \in H $),其实就是咱们上面提到的似然函数
  • \(P(h|D)\) :在数据D被观察到的状况下,假设h是正确的几率,后验几率(posterior)
  • \(P(h)\):先验几率(prior)
  • 贝叶斯定理(Bayes' theorem):
    • \(P(h|D)P(D) = P(D|h)P(h)\)
    • \(P(h|D) = \frac{P(D|h)P(h)}{P(D)}\)

也就是说贝叶斯推论是将后验几率推导为两个先验几率和似然函数的结果。

反向传播的变种

Softmax

这里说的变种,主要是针对损失函数的变种,除了均方偏差和交叉熵,咱们还能够利用 Softmax 偏差(Softmax Error)。

Softmax一般用在处理多分类问题,经常使用于输出层,将输出转换成几率,输出总和为1。公式为:

\[P_i = \frac{e^{z_i}}{\sum_{j=1}^N e^{z_j}} \]

偏差为:

\[E = -log P_i = -(z_i - log \sum_j e^{z_j}) \]

其中 N 是输出层神经元的个数,P_i 是第 i 个神经元的输出。从公式中能够看出,Softmax函数的分子是输入信号 \(z_i\) 的指数函数,分母是全部输入信号的指数函数的和。

共轭梯度

Conjugate gradients,是一种给迭代算法,在迭代中最终求得结果。

天然梯度

Natural gradients

权重衰减

Weight Decay,又叫L2正则化,主要用来抑制过拟合。众所周知,许多的过拟合现象是因为权重参数取值过大引发的。而权重衰退法经过对大的权重进行惩罚和抑制过拟合。假设损失函数利用平方损失函数(MSE),则引入 L2 正则化后的偏差公式为:

\[E = \frac{1}{2} \sum_i(z_i-t_i)^2 + \frac{\lambda}{2} \sum_j w_j^2 \]

  • \(\lambda\) :控制正则化强度的超参数,/lambda/。该值越大,对大的权重惩罚的就越重。
  • \(\frac{\lambda}{2}\):是为了求导以后消去移下来的 2.
  • \(w^2_j\): 平方范数,square norm。 \(w^Tw\)
  • 咱们更新权重的公式也相应改变为 \(w\leftarrow w - \eta \frac{\delta E}{\delta w} - \eta \lambda w\).
  • 由公式能够看出,若是一个权重越大,则至关于偏差越大,在调整权重的时候也会调整的幅度更大。这样至关于咱们鼓励整个神经网络都将权重保持在较小的值上,也就达到了抑制过拟合的做用。

动量

Momentum,这是一个从物理学中引伸出的概念。Momentum 的出现主要是为了解决随机梯度降低法(SGD)的缺点。

SGD的缺点:若是函数的形状非均向,梯度的方向没有指向最小值的方向,那么像SGD这种一直沿着梯度方向前进的算法就变得不那么高效,以下图,这是方程 \(f(x,y)=\frac{1}{20}x^2+y^2\) 的图像:

该方程的等高线是沿x轴方向延申的椭圆状。

该方程的梯度以下,y 轴方向上梯度大,x 轴方向上梯度小,从图中能够看出,虽然 \(f(x, y)\) 的最小值在 \((0, 0)\) 上,可是不少位置上的梯度方向没有指向 \((0,0)\) 点:

咱们应用一下SGD,能够看到路径如图所示,沿着“之”字型移动,效率很是的低。:

为了不 SGD 的这个缺点,咱们考虑利用动量方法来替代,Momentum适合用来处理高曲率、小但一致的梯度,或者带噪声的梯度,公式以下。

\[v \leftarrow \alpha v - \eta \frac{\delta E}{\delta w} \]

\[w\leftarrow w + v \]

  • \(w\):要更新的权重参数
  • \(\frac{\delta E}{\delta w}\):损失函数关于 \(w\) 的梯度
  • \(\eta\):学习率
  • \(v\):对应物理学中的速度
  • \(\alpha\):承担使物体逐渐减速的任务,例如设定为 0.9。对应物理学中的地面摩擦或者空气阻力。

第一个公式表示了物体在梯度方向上的受力,在这个力的做用下,物体的速度增长这一个物理法则。若是咱们的梯度函数的刨面形状像一个水槽,权重更新的路径就会像一个小球在碗中运动同样。

出现这样的运动轨迹的缘由:动量的更新过程其实就是在减弱横向振动,并放大了向下运动。当连续的梯度指向相同的方向时,步长最大。即若是动量算法老是观察到梯度g,那么它会在方向-g上不停加速,直到达到最终速度,其中步长大小为(由\(v \leftarrow \alpha v - \eta \frac{\delta E}{\delta w}\)得来)

\[\frac{\eta \frac{\delta E}{\delta w}}{1-\alpha} \]

若是 \(\alpha\) = 0.9,\(1-\alpha\) = 0.1,带入上述公式,即动量中最大速度是SGD中的10倍,这个提高是显而易见的。

注:在实际应用中,\(\alpha\) 初始值通常设置的比较小如0.5,0.9,0.99,而后逐渐增大,可是 \(\alpha\) 的调整没有 \(\eta\) 的调整重要。

常见面试题

  • L1和L2正则化的区别
  • 如何防止过拟合/过拟合的解决办法
  • 方差误差的分解公式
  • 用过哪些 Optimizer,效果如何
相关文章
相关标签/搜索