1. 损失函数
分类任务
0-1损失
交叉熵损失(entropy loss)
softmax loss
KL散度
Hinge loss(SVM中)
Exponential loss与Logistic loss
回归任务
L1 loss
L2 loss
L1 loss与L2 loss的改进
原始的L1 loss和L2 loss都有缺陷,比如L1 loss的最大问题是梯度不平滑,而L2 loss的最大问题是容易梯度爆炸,所以研究者们对其提出了很多的改进。
perceptual loss
2. 激活函数(用以防止梯度问题)
转载链接
如何防止梯度消失?
- sigmoid容易发生,更换激活函数为 ReLU即可。
- 权重初始化用高斯初始化
如何防止梯度爆炸?
- 设置梯度剪切阈值,如果超过了该阈值,直接将梯度置为该值。
- 使用ReLU,maxout等替代sigmoid
区别:
- sigmoid函数值在[0,1],ReLU函数值在[0,+无穷],所以sigmoid函数可以描述概率,ReLU适合用来描述实数;
- sigmoid函数的梯度随着x的增大或减小和消失,而ReLU不会。
- Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生
BN(Batch Normalization)层的作用
- 加速收敛
- 控制过拟合,可以少用或不用Dropout和正则
- 降低网络对初始化权重敏感
- 允许使用较大的学习率
在每一层输入的时候,加个BN预处理操作。BN应作用在非线性映射前,即对x=Wu+b做规范化。在BN中,是通过将activation规范为均值和方差一致的手段使得原本会减小的activation的scale变大。可以说是一种更有效的local response normalization方法
3. 深度学习的初始权重化
初始化参考
4. 神经网络常见优化器
5. 生成模型和判别模型
从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi。
- 生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布。能够学习到数据生成的机制。
优点:(1)收敛速度块,特别是样本数量足够多时。
(2)能够应付存在隐变量的情况
缺点:(1)联合分布能够提供更多信息,也需要更多的数据样本
包括模型:
(1)朴素贝叶斯:使用极大似然估计(使用样本中的数据分布来拟合数据的实际分布概率)得到先验概率。
(2)混合高斯模型
(3)隐马尔可夫模型 (HMM) - 判别模型:学习得到条件概率分布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模型
数据要求:生成模型需要的数据量比较大,能够较好地估计概率密度;而判别模型对数据样本量的要求没有那么多。
















