1. DNN:
在训练集上性能不行:
1.梯度消失问题:有些activation function会导致这个问题,例如:后面提出了Rectified Linear Unit:ReLU,形状为_/;learnable activation function:Maxout
2.可能调整学习率来达到更好,例如Adam
在验证集上性能不行:
1.early stopping:不用等到在训练集上loss最小,可能会出现过拟合
2.regularization:找到新的loss function==原来loss function + 正则项(L1,L2等)
即是找到一组参数(通常只考虑weight,不考虑bias)不仅能够最小化原来loss function,同时也能接近零
例如使用L2,L1 regularization时,梯度推到如下
L2是乘上一个decay权重--》导致所有wweight都会很均匀,而L1是直接剪去一个值--〉可能有些weight很大,有些很小
3.dropout:
训练的时候:在更新参数之前,每个neuron都会有P%的几率被dropout,从而使用新的网络进行训练
测试的时候:不做dropout,如果在训练时dropout rate是p%,则所有weights乘上(1-p)%
2.CNN
3.RNN
隐藏层的输出是存储的,然后作为下一次输入。
RNN的各种形式:
最常见的形式:Long Short-term Memory-LSTM
基于RNN的网络不总是很容易去学习,因为 the error surface is either very flat or very steep.导致梯度变化太大或者太小
但是LSTM能够处理梯度消失问题:1.memory和input是相加的,2.影响会一直存在,除非gorget gate是关闭的,即是forget gate打开就不会产生梯度消失问题
Gated Recurrent Unit(GRU):simpler than LSTM,大致是把forget和input gate联系起来,有input的时候就刷掉memory
4.Explainable ML
4.1local Explanation:Explain the Decision
basic idea:找出那个成分是做出决策时候具有重要性
4.2global explanation:explain the whole model
basic idea:解释整个model到底产生了什么