梯度消亡
*解释:神经网络靠输入段的网络层的系数逐渐不再随着训练而变化,或者变化非常缓慢,随着网络层数的增加,这个现象越发明显。
梯度消亡前提
- 使用梯度的训练方法(例如梯度下降)
- 使用的激活函数具有输出值范围大大小于输入值的范围,例如logistic函数,tanh函数
梯度消亡解决方案
- 激活函数ReLu:f(x)=max(0,x),输入大于0梯度为1,否这为0
- 激活函数 LeakyReLu:f(x)=max(ax,x),输入大于0,梯度为1,否则为a
- 不使用梯度的训练方法
1)基于遗传,进化算法
2)粒子群优化算法(PSO)
过拟合
- 训练的神经网络在训练集上精度很高,但在测试集上表现较差,说明出现了过拟合
过拟合的解决方案
-
DropOut
1)删除隐藏层部分节点来降低神经网络的复杂性,在使用的时候还用原来的神经网络,但是要乘以1-dropout rate -
L2 正则化
1)对损失函数f(ceta)中的每一个系数cetaj,都对损失函数加上1/2lanmudacetaj**2,其中lamda是正则化强度。
2)在训练的每一次更新系数的时候都额外家加上这一步:cetaj=cetaj-lanmda*cetaj
目的:正则化目的是使系数的绝对值减小,对绝对值越大的系数,减小的程度越强。
3)正则化是的大多数系数的值都不为0,但是绝对值都比较小 -
L1 正则化
1)对损失函数f(ceta)中的每一个系数cetaj,都对损失函数加上lanmuda*|cetaj|,其中lanmuda是正则化强度
2)在训练的每一次更新系数的时候都额外家加上这一步:cetaj=cetaj-lanmuda(cetaj>0);cetaj=cetaj+lamuda(cetaj<=0)
3)L1正则化的目的是使得许多系数的绝对值接近0,其他那些系数不接近0 的系数对应的特征就是对输出有影响的特征。所以L1甚至可以用于作为特征选择的工具 -
MaxNorm(最大范数约束)
1)由于最大范数的约束,可以法那个值由于训练步长较大产生过拟合
‵ DropOut,MaxNorm主要用在深度神经网络,普通网络也可以用,L1,L2发展比较久远
神经元的初始化
- bias(偏置系数):初始化为0(个人认为是为截距)
- 普通系数:初始化为cetaj=np.random.randn(n)*sqrt(2.0/n)