1. 损失函数

分类任务

0-1损失

交叉熵损失(entropy loss)

softmax loss

KL散度

Hinge loss(SVM中)

Exponential loss与Logistic loss

回归任务

L1 loss

L2 loss

【重要】L1与L2损失函数和正则化的区别L1与L2

L1 loss与L2 loss的改进

原始的L1 loss和L2 loss都有缺陷,比如L1 loss的最大问题是梯度不平滑,而L2 loss的最大问题是容易梯度爆炸,所以研究者们对其提出了很多的改进。

perceptual loss

2. 激活函数(用以防止梯度问题)

转载链接

如何防止梯度消失?

  1. sigmoid容易发生,更换激活函数为 ReLU即可。
  2. 权重初始化用高斯初始化

如何防止梯度爆炸?

  1. 设置梯度剪切阈值,如果超过了该阈值,直接将梯度置为该值。
  2. 使用ReLU,maxout等替代sigmoid

区别:

  1. sigmoid函数值在[0,1],ReLU函数值在[0,+无穷],所以sigmoid函数可以描述概率,ReLU适合用来描述实数;
  2. sigmoid函数的梯度随着x的增大或减小和消失,而ReLU不会。
  3. Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生

BN(Batch Normalization)层的作用

  1. 加速收敛
  2. 控制过拟合,可以少用或不用Dropout和正则
  3. 降低网络对初始化权重敏感
  4. 允许使用较大的学习率

在每一层输入的时候,加个BN预处理操作。BN应作用在非线性映射前,即对x=Wu+b做规范化。在BN中,是通过将activation规范为均值和方差一致的手段使得原本会减小的activation的scale变大。可以说是一种更有效的local response normalization方法

3. 深度学习的初始权重化

初始化参考

4. 神经网络常见优化器

优化器分类

5. 生成模型和判别模型

转载

从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi。

  1. 生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布。能够学习到数据生成的机制。
    优点:(1)收敛速度块,特别是样本数量足够多时。
    (2)能够应付存在隐变量的情况
    缺点:(1)联合分布能够提供更多信息,也需要更多的数据样本
    包括模型:
    (1)朴素贝叶斯:使用极大似然估计(使用样本中的数据分布来拟合数据的实际分布概率)得到先验概率。
    (2)混合高斯模型
    (3)隐马尔可夫模型 (HMM)
  2. 判别模型:学习得到条件概率分布P(y|x),即在特征x出现的情况下标记y出现的概率。
    优点:(1)节省计算资源
    (2)准确率较高
    (3)直接学习条件概率分布,而不用求解类别条件概率,所以允许我们进行输入的抽象(比如降维,构造等),从而简化学习问题。
    包括模型:
    (1)感知机 (线性分类模型)
    (2)k近邻法
    (3)决策树
    (4)逻辑斯蒂回归模型
    (5)最大熵模型
    (6)支持向量机 (SVM)
    (7)boosting方法 (AdaBoost等)
    (8)条件随机场 (conditional random field, CRF)
    (9)CNN模型

数据要求:生成模型需要的数据量比较大,能够较好地估计概率密度;而判别模型对数据样本量的要求没有那么多。