文章目录
P9 Tips for Deep Learning
神经网络的表现(只有在training data上表现好,testing data上表现不好才叫overfitting,在training data上表现好再考虑下一步testing data,分别有不同的处理办法)
For training data
1. New activation function(新的激活函数)
Vanishing Gradient Problem(梯度消失)
产生原因:(前面变化慢,后面变化快,前面还是随机的时候后面已经收敛了)
利用sigmod激活函数举例:(每通过一次sigmod,衰减就会变小,对后面几乎无影响了)
解决办法:改用新的激活函数ReLU
终极解决办法:让network自动学习激活函数:Maxout
2.Adaptive Learning Rate(自适应学习率)
Adagrad
RMSProp(给一个概率α,倾向于相信以前的运动轨迹还是现在的)
Adam(RMSProp + Momentum )
Momentum
For testing data(前提是你已经在training data已经得到了很好的结果了)
1. Early Stopping
2. Regularization
L2 regularization(成比例下降)
L1 regularization: (减去一个固定值)
3. Dropout
如何做Dropout?(训练时每一个Neuron以概率p不用,测试时乘以(1 - p)%)
在train的时候,每一次update参数之前,对network里面的每个neural(包括input),做sampling(抽样)。 每个neural会有p%会被丢掉,跟着的weight也会被丢掉。
你在training 时,performance会变的有一点差(某些neural不见了),加上dropout,你会看到在testing set会变得有点差,但是dropout真正做的事就是让你testing 越做越好
为什么Dropout会有用
testing时为什么要乘以(1-p)%
还是在解释为什么要乘以(1-p)%(Dropout is a kind of ensemble,平均起来?这样做近似等于训练了 2 M 2 ^ M 2M个Neuron,把所有都考虑了)
P10 Backpropagation
不清楚也没关系,只用知道这是有效计算梯度的方式