在链式结构中,主要考虑的是网络的深度和每一层的宽度。通常来说更深的网络对每一层能够使用更少的单元数以及参数,并且泛化效果更好,但是它也更能难以训练
在很多情况下,使用更深的模型能够减少表示期望函数所需的单元数量,并且可以减少泛化误差。增加网络的深度往往能够得到比增加宽度更加好的泛化能力。(当然深度与宽度同等重要)
正则化策略中,有些是向机器学习模型中添加限制参数值的额外约束,有些是向目标函数添加额外项来对参数值进行软约束。包括参数范数惩罚、提前终止、Dropout等等。
参数范数惩罚:对目标函数JJ添加一个参数范数惩罚Ω(θ),限制模型的学习能力。α=0表示没有正则化,α越大对应正则化惩罚越大。在神经网络中,参数包括每层线性变换的权重和偏置,我们通常只对权重做惩罚而不对偏置做正则惩罚;
L2L2参数正则化(也称为岭回归、Tikhonov正则)通常被称为权重衰减(weight decay),是通过向目标函数添加一个正则项Ω(θ)=12||ω||22Ω(θ)=12||ω||22 使权重更加接近原点。
将噪声加入到输入。在一般情况下,注入噪声远比简单地收缩参数强大,特别是噪声被添加到隐藏单元时会更加强大(如Dropout)。对于某些模型而
言,向输入添加方差极小的噪声等价于对权重施加范数惩罚。
Dropout可以被认为是集成大量深层神经网络的实用Bagging方法。但是Bagging方法涉及训练多个模型,并且在每个测试样本上评估多个模型。当每
个模型都是一个大型神经网络时,Bagging方法会耗费很多的时间和内存。而Dropout则提供了一种廉价的Bagging集成近似,能够训练和评估指数级
数量的神经网络。
1、确定目标(输入的特征通常无法包含输出的全部信息)
值得注意的是对于大多数应用而言,不可能实现绝对零误差。 即使你有无限的训练数据,并且恢复
了真正的概率分布,贝叶斯误差仍定义了能达到的最小错误率。 这是因为输入特征可能无法包含输
出变量的完整信息,或是因为系统可能本质上是随机的。 当然我们还会受限于有限的训练数据。
2、确定合理的性能期望
1)需要代价函数,也需要整体有效性的评估
除了需要考虑性能度量之外,还可能需要考虑的是度量一个含有机器学习组件的完整应用的有效性。例如我们希望度量某种形式的总代价,其中拦截正常邮件比允许垃圾邮件通过的代价更高,而不是度量垃圾邮件分类的错误率。
2)高级度量
如罕见疾病设计医疗测试时,假设每一百万人中只有一人患病。仅以精度预测不得病的为99%并没有意义,我们需要同时使用精度和召回率,画PR曲线来衡量。精度只能是模型报告的检测是正确的比率,而召回率则是真实事件被检测到的比率。
3、模型选择
4、数据收集
训练集初步模型效果不佳时,先调参,若效果改善且符合预期,测试集衡量,若效果不佳,考虑增加数据,若增加数据有难度,正则化及参数调整观察。
(若群二维码过期,可先加个人微信再拉进群)