概率分布

正态分布

基础 - 图2

高维正态分布

基础 - 图3

损失函数

平方损失函数

交叉熵损失函数Cross-Entropy Loss

基础 - 图4
其中基础 - 图5可以看作是真实类别基础 - 图6的似然函数。因此交叉熵损失函数也就是负对数似然函数。

Hinge损失函数

对于二分类问题,假设基础 - 图7的取值为基础 - 图8,基础 - 图9
基础 - 图10

FocalLoss

基础 - 图11
基础 - 图12取2时效果好
基础 - 图13取0.25

SmoothL1

考察如下几种损失函数,其中 基础 - 图14 为预测框与 groud truth 之间 elementwise 的差异:
基础 - 图15
基础 - 图16
基础 - 图17
损失函数对 基础 - 图18 的导数分别为:
基础 - 图19
基础 - 图20
基础 - 图21
观察 (4),当 基础 - 图22 增大时 基础 - 图23 损失对 基础 - 图24 的导数也增大。这就导致训练初期,预测值与 groud truth 差异过于大时,损失函数对预测值的梯度十分大,训练不稳定。
根据方程 (5),基础 - 图25基础 - 图26 的导数为常数。这就导致训练后期,预测值与 ground truth 差异很小时, 基础 - 图27 损失对预测值的导数的绝对值仍然为 1,而 learning rate 如果不变,损失函数将在稳定值附近波动,难以继续收敛以达到更高精度。
最后观察 (6), 基础 - 图28基础 - 图29 较小时,对 基础 - 图30 的梯度也会变小,而在 基础 - 图31 很大时,对 基础 - 图32 的梯度的绝对值达到上限 1,也不会太大以至于破坏网络参数。 基础 - 图33 完美地避开了 基础 - 图34基础 - 图35 损失的缺陷。其函数图像如下:
image.png

Logistic回归

常用的处理二分类问题的线性模型。
在Logistic回归中,使用Logistic函数来作为激活函数。标签基础 - 图37的后验概率为:
基础 - 图38
标签基础 - 图39的后验概率为:
基础 - 图40
将公示基础 - 图41变换后得到:
基础 - 图42
其中基础 - 图43为样本基础 - 图44为正反例后验概率的比值,成为几率(Odds)

参数学习

给定基础 - 图45个训练样本,Logistic回归模型对每个样本基础 - 图46进行预测,输出其标签为1的后验概率,记为基础 - 图47,
基础 - 图48
由于基础 - 图49,样本基础 - 图50的真实条件概率可以表示为:
基础 - 图51
基础 - 图52
使用交叉熵损失函数,其风险函数为
基础 - 图53

Softmax回归

基础 - 图54
决策函数可以表示为:
基础 - 图55

参数学习

Softmax回归模型的风险函数为:
基础 - 图56

激活函数

image.png

Sigmoid型函数

Logistic函数

基础 - 图58
导数:
基础 - 图59

Tanh函数

Tanh函数可以看作是放大并平移的Logistic函数,其值域是基础 - 图60
基础 - 图61
image.png

Hard-Logistic和Hard-Tanh

Logistic函数和Tanh函数都是Sigmoid型函数,具有饱和性,但是计算开销较大。因为这两个函数都是在中间(0附近)近似线性,两端饱和。因此,这两个函数可以通过分段函数来近似。
以Logistic函数基础 - 图63为例,其导数为基础 - 图64。Logistic函数在0附近的一阶泰勒展开为:
基础 - 图65
用分段函数来近似Logistic函数,得到:
基础 - 图66
image.png

ReLU函数

  • 优点
    • Sigmoid型函数会导致一个非稀疏的神经网络,而ReLU具有很好的稀疏性,大约50%的神经元会处于激活状态。
    • 相比于Sigmoid的两端饱和,ReLU函数为左饱和函数,且在基础 - 图68时导数为基础 - 图69,一定程度缓解了梯度消失的问题。
  • 缺点
    • 非零中心化的,会给后一层网络引入位置偏移,影响梯度下降的效率。
    • ReLU神经元训练时容易“死亡”。在训练时,如果参数在一次不恰当的更新后,第一个隐藏层中的某个ReLU神经元在所有训练数据上都不能被激活,那么这个神经元自身参数的梯度永远是0,在以后的训练过程中永远不能被激活

      Leaky ReLU

      基础 - 图70
      其中基础 - 图71是一个很小的常数,例如基础 - 图72。当基础 - 图73小于基础 - 图74时,带泄露的基础 - 图75也可以写为:
      基础 - 图76

      PReLU

      带参数的ReLU(Parametric ReLU,PReLU)引入一个可学习的参数,不同神经元可以有不同的参数。对于第i个神经元,其PReLU的定义为:
      基础 - 图77

      ELU

      指数线性单元(Exponential Linear Unit,ELU),是一个近似的零中心化的非线性函数

      Softplus

      可以看作Rectifier函数的平滑版本,导数刚好是Logistic函数,Softplus虽然也具有单侧抑制、宽兴奋边界的特性,却没有稀疏激活性:
      基础 - 图78
      image.png

      Swish

      Swish函数是一种自门控(Self-Gated)激活函数,定义为:
      基础 - 图80
      其中基础 - 图81为Logistic函数,基础 - 图82为可学习的参数或一个固定超参数
      image.png
      Swish函数可 以看作是线性函数和ReLU函数之间的非线性插值函数,其程度由参数β控制。

      GELU

      Maxout

反向传播算法

不失一般性,对第基础 - 图84层中的参数基础 - 图85基础 - 图86计算偏导数。根据链式法则,
基础 - 图87
其中基础 - 图88成为误差项。我们只需要计算三个偏导数,分别为基础 - 图89基础 - 图90基础 - 图91
image.png
image.png
image.png

卷积

卷积层的神经元数量:基础 - 图95,一般常用的卷积有三类:

  1. 窄卷积:步长基础 - 图96
  2. 宽卷积:步长基础 - 图97,两端补零基础 - 图98,卷积后输出长度基础 - 图99
  3. 等宽卷积:基础 - 图100,两端补零基础 - 图101,卷积后输出长度基础 - 图102

    卷积

    给定一个图像基础 - 图103和一个滤波器基础 - 图104,其卷积为:
    基础 - 图105

    互相关

    基础 - 图106
    互相关和卷积的区别仅仅在于卷积核是否进行翻转.因此互相关也可以称为不翻转卷积,表示为:
    基础 - 图107

    导数

    假设基础 - 图108,其中基础 - 图109,基础 - 图110
    基础 - 图111
    可以看出基础 - 图112关于基础 - 图113的偏导数为基础 - 图114基础 - 图115的卷积
    基础 - 图116

    残差网络

    基础 - 图117
    根据通用近似定理,一个由神经网络构成的非线性单元有足够的能力来近似逼近原始目标函数或残差函数,但实际中后者更容易学习.因此, 原来的优化问题可以转换为:让非线性单元基础 - 图118去近似残差函数基础 - 图119,并用基础 - 图120去逼近基础 - 图121
    image.png

CTC

todo

循环神经网络

参数学习

基础 - 图123是长度为基础 - 图124的标签序列,即在每个时刻基础 - 图125,都有一个监督信息基础 - 图126,我们定义时刻基础 - 图127的损失函数为
基础 - 图128
整个序列的损失函数为
基础 - 图129
整个序列的损失函数基础 - 图130关于参数基础 - 图131的梯度为
基础 - 图132

随时间的反向传播

计算基础 - 图133

因为参数基础 - 图134和隐藏层在每个时刻基础 - 图135的净输入基础 - 图136有关,因此第基础 - 图137时刻的损失函数基础 - 图138关于参数基础 - 图139的梯度为:
基础 - 图140
其中基础 - 图141表示”直接”偏导数,即公式基础 - 图142中保持基础 - 图143不变,对基础 - 图144进行求偏导,得到
image.png
image.png
image.png
image.png

优化算法

学习率调整

学习率衰减

  • 逆时衰减(Inverse Time Decay)基础 - 图149
  • 指数衰减(Exponential Decay)基础 - 图150,其中基础 - 图151为衰减率
  • 自然指数衰减(Natural Exponential Decay)基础 - 图152
  • 余弦衰减(Cosine Decay)基础 - 图153

    学习率预热

    为了提高训练稳定性,在最初几轮迭代时,采用比较小的学习率。
    假设预热的迭代次数为基础 - 图154,初始学习率为基础 - 图155,在预热过程中,每次更新的学习率为
    基础 - 图156

    周期性学习率调整

    为了使得梯度下降法能够逃离鞍点或尖锐最小值,一种经验性的方式是在训练过程中周期性地增大学习率

    AdaGrad算法

    基础 - 图157
    其中基础 - 图158,基础 - 图159是第基础 - 图160次迭代时的梯度。

    RMSProp

    基础 - 图161
    其中基础 - 图162为衰减率,一般取值基础 - 图163
    基础 - 图164
    其中基础 - 图165为初始学习率,例如基础 - 图166

    梯度修正

    Momentum

    基础 - 图167
    其中基础 - 图168为动量因子,通常设为基础 - 图169基础 - 图170为学习率。

    Nesterov

    在动量法中,实际的参数更新方向基础 - 图171为上一步的参数更新方向基础 - 图172和当前梯度的反方向基础 - 图173的叠加:
    基础 - 图174
    其中梯度基础 - 图175为点基础 - 图176上的梯度,因此在第二步更新中有些不太合理.更合理的更新方向应该为基础 - 图177上的梯度。
    更合理的梯度更新方向为
    基础 - 图178
    其中基础 - 图179表示损失函数在点基础 - 图180上的偏导数。

    Adam

    可以看作是动量法和RMSProp算法的结合,不但使用动量作为参数更新方向,而且可以自适应调整学习率。
    基础 - 图181
    基础 - 图182
    其中基础 - 图183基础 - 图184分别为两个移动平均的衰减率,通常取值为基础 - 图185
    假设基础 - 图186,那么在迭代初期基础 - 图187基础 - 图188的值会比真实的均值和方差要小。因此需要做修正:
    基础 - 图189
    基础 - 图190
    Adam算法的参数更新差值为:
    基础 - 图191

    参数初始化