- 解决高偏差和高方差的新方法
- 之前,我们需要通过选取多项式次数以及正则化参数λ,来平衡高方差和高偏差
- 只要训练集不是特别大,那么一个大型的神经网络总能很好的适应训练集,即它的Jtrain很低
- 由此可以得出,若要减小Jtrain,可以增大神经网络,即增加隐藏层的层数或增加单层隐藏层中的神经元
- 而若要降低Jcv,可以增大训练集。最终,只有Jtrain和Jcv均很小,此模型才算解决了高方差和高偏差
- 此方法的局限性:首先,更大的神经网络,意味着更昂贵的计算成本。其次,有时训练数据只有这么多,无法增加
- 一个大型的神经网络如果进行适当的正则化后,不会增大Jcv
- 因此只要正则化得当,大型的神经网络不会有过拟合的风险,且它通常比小型的神经网络要好或一样好,但是它会增加计算成本以及增加计算的时间
- 通常我们不会对参数b进行正则化,因为无论是否正则化b都对结果没什么影响
- 上图为,在tensorflow中实现正则化的代码与不实现正则化的代码进行了对比
- 机器学习开发的迭代
- 首先,决定模型的整体架构:如数据、超参数等
- 然后,训练模型
- 再后,查看诊断:如方差、偏差、错误分析等
- 再后,根据诊断决定是否扩大神经网络、更改λ参数、添加更多数据、添加额外特征或减少特征
- 再后,使用新架构继续执行循环,直到获得一个性能良好的模型
- 垃圾邮件分类器
- 统计字典中前10000个单词,在邮件中出现的个数或是否出现过,作为输入特征
- 如何减小垃圾邮件分类器的误差:
- 通过“蜜罐”项目来获取大量垃圾邮件样本
- 通过邮件路由来追踪邮件路径,判断是否为垃圾邮件发送者发送
- 通过选择更复杂的特征来作为输入特征
- 通过算法来检测拼写错误