过拟合的实质就是对training date中的数据的自我特征做了高权重保留,导致对testing data验证中的结果不理想,如下示意图所示:
常见的解决方案
choosing proper loss
在选择Softmax作为output layer的时候选择cross entropy作为loss function,选择square时的评价函数平缓,无法评价输出结果利弊。
mini-batch
过小的batch ,一次epoch运行多次,可以减少局部特征的干扰
new activation function
不同深度可以得到不同的结果,过深的layers会导致overfitting,多试试。
adaptice learnign rate
最简单的方法是随着epochs减少learnign rates,原因是在最开始,我们预期离dest较远,随着epochs,离dest越近,所以适当减低leatring rate。
momentum
根据动能和势能的转换关系得到,
一般,神经网络在更新权值时,采用如下公式:
w = w - learning_rate * dw
引入momentum后,采用如下公式:
v = mu * v - learning_rate * dw
w = w + v
其中,v初始化为0,mu是设定的一个超变量,最常见的设定值是0.9。可以这样理解上式:如果上次的momentum()与这次的
负梯度方向是相同的,那这次下降的幅度就会加大,从而加速收敛。tensorflow中已经提供了Adam优化函数了。
early stop
检测training & tesitng 的loss 曲线
dropout
在maxout中效果佳,dropout rate随着epoch降低。
weight decay
traning date在input前就可以做些权重比值,对背景干扰赋予低系数。