误差从哪里来?
误差主要来自两个方面一个是bias,另一个是variance:
(1)Bias是通过多次训练得到的最优值的平均值与真正的最优值的距离,可以反应是否瞄准了靶心,如图1中第1、2幅图的bias比第3、4幅图小;
(2)Variance是通过多次训练得到的最优值的方差,可以反应射击点的分散程度,如图1中第2、4幅图的variance大,第1、3幅图的variance小。
图 1
Bais和Variance都是越小越好,通常情况下,模型越简单,variance越小,bias越大,模型越复杂,variance越大,bias越小。这是因为复杂的模型其variance大,进而function space较大,因此可能包含了target值,导致bias教小;而简单的模型可能偏离target较远,即使它比较集中,但都偏了,所以bias较大。
图 2
如variance大,证明模型过拟合;bias大,证明模型欠拟合;要综合考虑模型的variance和bias选择模型。
图 3
如何根据训练结果判断模型的bias大还是variance大?
训练集的error大:bias大;
训练集的error小,测试集的error大:variance大。
当模型bias大的时候可以通过修改模型来降低bias;当模型variance大的时候可以通过增加训练数据量和增加正则项的方法来降低bias。
图 4
模型的选择不能根据测试集去选择,因为测试集的数据有限,也存在偏差,如果选择在测试集中误差最小的模型,在其他测试集中的结果往往不尽人意。为解决这个问题,可以将训练集分为training set和validation set,用training date去训练模型,用validation data去选择模型,如图5。
图 5
在不知道怎么划分training set和validation set时,可以采用K折交叉验证,即划分多组training set和validation set,然后分别计算不同分组下所得模型的误差,取平均值,选择平均误差最低的模型,如图6。
图 6
梯度下降
Learning Rate是影响梯度下降效果的关键参考,在实际工作中应多试几个learning rate,并画图(如图7),根据试验结果选择合适的learning rate。
图 7
为了解决Learning rate不好给的问题,可以采用adagrad方法,learning rate随着参数的更新,不断变化,每次都除以前面所有参数微分值平方和的平均值,如图8、图9。
图 8
图 9