改善神经网络要考虑的问题:
1.层数
2.每层隐藏神经元个数
3.学习率
4.激活函数
5.数据集划分
......
通常神经网络工程是逐步迭代逐步优化的过程:首先需要确定初步的参数,然后编码训练网络,根据网络的训练结果来进行参数调优,比如在第一次训练网络中发现,网络的准确率较高,且无法收敛到某一个范围,这时可能就是学习率太高的原因,可以降低学习率,继续进行下一轮的训练。
数据集划分:训练集、验证集、测试集。机器学习时代(数据量小,万级),这三者比例通常是70%、15%、15%(也有60%、20%、20%,不固定)。大数据时代(数据量大,百万级),这三者比例通常是98%、1%、1%(数据量更大验证级和测试级的比例可以更低),这是因为验证集需要做的是区分不同模型的优劣,而测试集需要对验证集选出的最优模型进行无偏评估(即评价该最优模型最终是怎样的水平)。当然有些时候也可以没有测试集,这是因为可能不需要对最优模型进行评估,仅选出最优模型即可,实际上是验证集也融合了测试集的作用。合理划分数据集能加快神经网络工程的迭代效率。
1.评估模型的重要依据——方差与偏差
假设:1.基本误差很小2.训练集和测试集来自同一分布。
方差体现在训练集和验证集的差别,比如训练集错误率很低1%,验证集错误率很高11%,则方差大。
偏差体现在训练集和验证集的整体准确率,比如训练集错误率30%,验证集错误率31%,则偏差大。
对于训练集准确率相对于验证集很高30%,验证集准确率很低1%,则属于方差大、偏差也大的情况。
而模型的训练结果可能出现如下两种不是理想的情况:1.数据过拟合:方差大。2.数据欠拟合:偏差大。因此可以根据这样的情况,判断出模型的问题所在,从而更好的对症下药进行调优。