sp3.1 Structuring Machine Learning Projects

分析与改进项目瓶颈:很多时候可能不知道下一步怎么改善系统,错误的方法浪费大量时间
有这么多策略 怎么试
 
思维清晰知道要调整哪个参数
这些参数就像按钮一样啊
正交法:让各种功能按钮能够分开 比如开车时候速度和方向
一个按钮结合了其他按钮的功能,很难调好。正交就是使得每个按钮调整一个功能
一个维度调一个功能,但是要是几个功能混到一起一个按按钮来调节就很难
 
 
调整按钮 确保4点:
1 至少训练集上表现好,如果不好用更大网络或者优化算法
2 验证集表现好 ,正则化 更大训练集
3测试集表现好 回头用更大的验证集 验证集可能有问题
4实际运用 可能数据有问题 或者 代价函数不对
 
 
单一数字评价指标:查准率查全率 F1score
查准率就是 TP 占 整个正样本个数(TP+FN)
查全率就是 TP 占 整个判断对的(TP+TN)
 
 
也要简单直接算算平均值有时候
 
满足和优化指标: 比如还有运行时间可以考虑 可以再规定一个满足指标 时间内就行
如果有很多指标 选一个做优化指标 其余的做满足指标(重要度小)
 
 
这几个集的指导原则:
训练集:用来学习的样本集,用于分类器参数的拟合。
 
验证集:development set 用来调整分类器超参数的样本集,如在神经网络中选择隐藏层神经元的数量。开发集也叫交叉验证集hold out cross validating set:是在使用训练集训练出模型后,对训练出的模型的单独的参数进行调整的数据集合。用开发集来单独分别调试超参数参数
 
测试集:仅用于对已经训练好的分类器进行性能评估的样本集。整体的参数
 
设立开发集 dev sets 测试集 要同一分布,相当于也设个优化指标
假设现在分类猫 这些猫的图片来自这么多地区
按顺序分不好 分布不同 这样训练出来好比在实用的时候 把靶心换了个位置
 
 
 
选择能反应未来的集合 而不是最终靶子又换了
 
 
这些集合设置多大呢:
 
 
 
When to change dev/test sets and metrics
什么时候需要更改评价指标
要是瞄准错了目标位置,怎么找新的位置
比如两个算法一个错误率5% 一个3% 但是3%会推送色情图片 明显公司会选5%的算法
评估指标无法更好的判断了 此时可能要找新的评估指标或者开发集测试集
误差指标:修改原本的代价函数你画,比如加个更大权重对色情图片
 
如果在测试时候表现很好,但是用户用的时候表现不好 也要更改评价指标
 
 
Why human-level performance?比较机器学习和人的表现 以人为标杆
很多时候机器学习到达人类准确度速度很快 但是过后就会进展很慢 (贝叶斯最优误差)
贝叶斯最优误差 理论上最佳的X -》Y的映射
准确率不可能100% 可能人类在识别图像语音自然数据方面已经很优秀了距离贝叶斯最优的
当机器学习超过人类后 改善空间就小了 当机器学习没超过人时可以考虑下面的方法
 
可避免偏差:对于第一个例子对比人类的误差很小可以发现方法有问题 bias太大 需要改进
但对于第二个例子来说,人和训练出来的差不多,说明是样本本身问题,这时候bias偏差几乎降低不了了(考虑到人已经接近贝叶斯最优误差了),可以尝试再降低点方差
把人和机器学习之间的差 成为可避免偏差(还有改善空间)
那个差值大优先优化哪个
 
 
 
human-level performance 把人的表现作为贝叶斯误差的替代或估计值
比如医生这个例子:哪个作为人类水平表现
以人类表现最佳的那个 就是一队有经验的医生的综合判断
当然也可以以第二个 基本上就可以用了 如果按照贝叶斯的话 还是最佳的那个
·
 
 
 
超过人类最佳表现:一般超过人类最佳表现 可能再优化的方向或工具就要自己摸索了现在超越人类的主要以下四个方面(结构化数据)大多不是自然感知方面 但现在也有超过了
 
 
整体指导方针:

 

posted @ 2018-11-15 18:10  Hello蛋筒  阅读(105)  评论(0)    收藏  举报