本次课程的目录:
激活函数
使用sighmoid函数容易造成梯度消失的原因是:
DNN中,越靠近输出层的权重的梯度越大,因此,能更快地学习到位;而越靠近输入的权重梯度越小,几乎都是随机的。
sigmoid函数所表示的映射关系,决定了w造成的变化在逐层传递的过程中会逐级减弱。
ReLU
relu会使得计算过程中一部分神经元的输出变为0(相当于剔除),而另一部分神经元则变成线性神经元。这样,总体的网络还是非线性的。
Relu的变体:
Maxout
学习激活函数。(Relu是maxout的一个特例)
此种训练方法可以学习到所有的piecewise linear convex function。
基本过程:把神经元分组组成新的neuron,取个neuron里最大的值作为该neuron的输出,之后再乘上weight,输入到下一层神经元中。
只要maxout的weights设置得合适,就可以得到和relu效果相同的a和x的关系函数。
adaptive learning rate(优化器)
adagrad
RMSProp
局部最优问题->momentum
每次更新的位移都加上momentum参量,这样可以提高跳出局部最优解的几率。momentum一般是上次的位移。
Adam
Early stopping
在验证集loss最低的地方停止。
Regularization
正则化和人脑删除大脑无用连接的机制是类似的。
L2
0<(1-ηλ)<1,因此对于没有用的参数,后面梯度项不起作用,逐渐趋近于0;有用的参数前后两项取得平衡。
L1(lasso回归)
L1正则化是通过减法使得w接近于0。L2对较大参数的惩罚更强,通过L2训练的参数大部分会聚集在接近0但不为0的地方。
L1训练得到的参数的差距会很大。
Dropout
每次更新参数前,每个神经元都有p%的概率被剔除。
在训练时使用dropout,在测试时不能使用dropout!!且要将网络的权重乘以1-p%。
dropout操作在训练过程中让网络thinner,同时,等同于下列模型:
上述两种结果只有在线性网络下可以划等号,其他时候都是约等于。