吴恩达深度学习笔记(6)
正交化
为了提高算法准确率,我们想到的方法
- 收集更多的训练数据
- 增强样本多样性
- 使用梯度下降将算法使算法训练时间更长
- 换一种优化算法
- 更复杂或者更简单的神经网络
- 利用dropout 或者L2正则化
- 改变网络框架
- 更换激活函数
- 改变隐藏单元个数
为了使有监督机制的学习系统良好的运行,通常需要保证:
- 通常确保至少训练集运行良好,因此需要对训练集的运行情况进行一些可行性评估。
- 如果训练集表现良好,希望开发集运行良好
- 希望测试集运行良好
- 在代价函数的测试集中运行良好
单一的量化评估指标
一个合理的评估分类器好坏的方法,就是去看它的精确率和召回率,需要同时关注两个指标,在其中做权衡。如果尝试很多不同的算法,就会有很多超参数,需要从多个分类器中选择,因此找一个新的指标兼顾精准率和召回率。
满足和优化指标:
设置训练集、开发集、测试集的指导原则
开发集和测试集同分布,且随机选取
模型数据和未来数据要具有相似性;
训练集、开发集、测试集的比例不是一定的,数据量足够大的时候,测试集只要能提供足够的置信度来评估性能的数据量就行。设置开发集能帮我们评估不同分类器并作出选择,测试集可以对最终的分类器评估。
可能你并不需要对最终系统整体性能的评估具有很高的置信度
更改开发、测试集和指标
评估指标无法正确对算法的优劣进行排序,需要修改评估指标或者修改开发集或者测试集
如上两种算法,虽然A的错误率低,但是它存在一些无法容忍的错误,此时改良评估指标的方式,是加入一个权重项,赋予无法容忍的错误更大的权重。如果评估指标无法正确评估算法的排名,则需要重新定义一个新的评估指标。
人类水平表现、可避免偏差
人类能够做到的水平和贝叶斯误差(最优分类器)相差不远。
如果算法的表现和人类的表现之间存在巨大误差时:
消除偏差:减少训练集误差和人类水平误差之间的差距,来提高模型性能。
消除方差:用正则化方法减少开发集误差和测试集误差之间的差距,来提高模型性能。
对人类水平误差有一个大概的估计,可以让我们去估计贝叶斯误差,这样可以让我们更快的做出决定:减少偏差还是减少
参考:吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(3-1)-- 机器学习策略(1)_吴恩达机器学习不同模型的训练三板斧-CSDN博客