机器学习中的两个需要克服的问题就是过拟合和欠拟合,所以在调优过程中,针对这两方面分别有以下调优的小方法(当然要选择合适的代价函数和正则项啦):
1、针对过拟合(传统机器学习)
1、获取更多训练样本,这样可以覆盖更多场景
2、尝试少些特征,这样模拟函数会简单一些
3、尝试增大正则项前面的系数λ,这样函数参数会变小一些,模拟函数会更倾向于简单
2、针对欠拟合(传统机器学习)
1、尝试更多特征,让模拟函数复杂一些
2、尝试增加多项式特征,也是为了让模拟函数复杂一些
3、尝试减小 λ,这样函数参数会变大一些,模拟函数会更倾向于复杂。
3、最后我们来看看在神经网络中,如何判断和解决过拟合欠拟合问题。
当设计神经网络算法时,首先要选择层次。最常用的神经网络是三层,也就是一个隐藏层,当神经网络层次很少,然后每一层的节点很少的时候,对应的参数就很少,模型就更简单,计算就更简单,但是也更容易出现欠拟合;
当神经网络层次很多,或者每一层的节点很多的时候,对应的参数就很多,模型就会很复杂,计算开销也会很大,也就更容易出现过拟合。一个很有效的避免过拟合的方法就是使用正则化项。前面我们也提到了增大正则化参数 λ 对避免过拟合的好处。
实际应用中可以把数据集拆分成训练集、交叉训练集和测试集,然后用交叉验证的方法来尝试多种层次和节点个数,对比他们的效果,最终选定一个最佳的神经网络结构。
当然在深度学习中,由于层数比较深,参数比较多,最容易出现的问题还是过拟合,针对过拟合问题,在参数的优化过程中会有一些方法去优化,在我的上一篇博文中有介绍,详细细节请打开这里:简单总结一下就是: