一 训练-开发-测试集
在设置神经网络时,通常会面对这些问题。即使是深度学习的行家,一开始也不太会得到最优的参数和超参数,所以说深度学习是一个典型的迭代过程。创建高质量的训练,开发,测试集有助于提高循环效率。
过去的经验一般是6/2/2比例,随着数据的增加,验证集(验证不同的算法,确定模型)和测试集(正确评估分类器的性能)的比例随之减小。目前流行训练集在网页获取,验证和测试集由用户提供,注意验证和测试要来自同分布的数据,能加快速度。
二 偏差与方差
依次为欠拟合(样本差异过大,训练集表现一般,验证集与训练集无明显差异,称为高偏差),适当拟合,过拟合(样本差异过小,训练集表现良好,验证集表现一般,称为高方差)
解决方法
高偏差可以使用更加复杂的网络进行训练,或者找到新的模型框架。
高方差可以增加实验的数据,或者正则化。
三 正则化
L2正则化
当正则化参数lambda设置非常大时,权重矩阵w接近于0的值。消除了隐藏单元的影响。最终网络会变得简单。
Dropout正则化
随机消除某概率的神经元,构成新的更加简洁的神经网络,具体实现如下(反向随机失活):
在计算机视觉领域应用广泛,由于通常输入图片数据不足,采用dropout进行预防正则化,但是它的缺点是代价函数由于随即损失变得不明确。
其他正则化方法
1 对于图像数据,可以进行水平翻转,剪裁等处理增加数据防止过拟合。
2 early stopping
四 归一化输入
第一步 零均值化,第二步 归一化方差
进行梯度下降时归一化后的数据更容易。
五 梯度消失与梯度爆炸
通过调整w实现对以上问题的解决。
对于ReLU函数 w通常设为2/n n为样本数量。
tanh函数 如上图所示。