改善深层神经网络:
1、训练、验证、测试集
对于一个需要解决的问题的样本数据,在建立模型的过程中,将问题的data划分为:
(1)训练集(train set):用训练集对算法或模型进行训练过程。
(2)验证集(development set):利用验证集或者又称为简单交叉验证集进行交叉验证,选择出最好的模型。
(3)测试集(test set):最后利用测试集对模型进行测试,获取模型运行的无偏估计。
小数据时代:
100、1000、10000的数据量大小,可以将data划分为:
- 无验证集的情况:70% / 30%;
2、有验证集的情况:60% / 20% / 20%;
大数据时代:
- 100万数据量:98% / 1% / 1%;
2、超百万数据量:99.5% / 0.25% / 0.25%(或者99.5% / 0.4% / 0.1%);
注意:
(1)建议验证集要和训练集来自于同一个分布,可以使得机器学习算法变得更快。
(2)如果不需要用无偏估计来评估模型的性能,则可以不需要测试集。
2、机器学习的基本方法:
(1)是否存在High bias ?
1>增加网络结构,如增加隐藏层数目;
2>训练更长时间;
3>寻找合适的网络架构,使用更大的NN结构;
(2)是否存在High variance?
1>获取更多的数据;
2>正则化;
3>寻找合适的网络结构;
3、正则化:
利用正则化来解决High variance的问题,正则化是在Cost function中加入一项正则化项,降低惩罚模型的复杂度。
(1)Logistic regression:
加入正则化项的代价函数:
(2)Neural network:
加入正则化项的代价函数: