16.三个学习原则和课程总结
来源:互联网 发布:淘宝店铺收藏地址 编辑:程序博客网 时间:2024/05/05 08:02
一、Occam's Razor奥卡姆剃刀
它的哲学意义蛮有名的,比喻剃掉过分的解释。在机器学习里面的意思就是:对训练数据最简单的解释就是最好的。那么问题来了,什么叫做简单的模型和解释;以及为什么确定简单的就是最好的?
曾今定义过simple hypothesis:看起来很简单,例如一个大大的圆而不是弯弯曲曲的曲线;只需要少数的参数,圆心和半径就能确定这个hypothesis长什么样子。也曾今定义过simple model(也就是Hypothesis Set):有效的hypothesis数量不是很多,成长函数长的很慢。
那为什么简单是好的呢?直觉的解释如下:想象有一个简单的model,同时给你一堆随机产生的没什么规律的训练数据。这时候你的model只有很小的机会能够找到E_in是0,杂乱的训练数据导致大部分的时候都没办法分开。那反过来说,如果今天有一组训练数据用你的simple model可以分开,这表明了你的数据是有显著性的,是有规律的数据。而用复杂的模型,则是达不到这样的效果的。
所以根据这个锦囊妙计出发,先试线性的模型;选择模型之前永远要想一想是否尽可能地用了最简单的模型。
二、Sampling Bias
抽样有偏差的时候,学习算法产生的结果也会有偏差,这样的情形叫做Sampling bias。VC理论里的一个假设就是:训练数据与测试数据来自于同一个分布。不然的话,学习可能没办法做的很好。那怎么办呢?
实用的建议:了解你的测试环境,让你的训练环境跟测试环境尽可能地接近。举例来说,如果测试环境是last user records,也就是时间轴上靠后的使用者资料,那么训练的时候应该要想办法对时间轴上靠后的数据的权重加强一下。或者,做validation的时候也选择late user records靠后的用户资料。
那回头想一想,收集用户资料来预测是否对新顾客发放信用卡的案列。银行有的资料只是发放了信用卡后用户有没有乱花钱,却没有资料诸如之前没有发放信用卡但是如果给他的话会不会乱花钱,也就是说银行有的资料已经是经过筛选过的数据。用来预测新的顾客是否该发放信用卡的两个分布是不太一样的,所以是需要做一些改变的。
三、Data Snooping
第三个锦囊妙计就是不要偷看数据。例如之前我们通过观察数据发现圆圈可能是一个好的hypothesis,这其实忽略了人脑的VC dimension。当然实际情况下,偷看资料可能经常发生,不只有使用眼睛的方式。
学习中使用数据的任何过程,都是间接地让你偷看到数据。偷看到数据的表现以后,在下决策去做任何的一件事都要想到,这个数据已经因为你的决策选择过程而多出了很多的model complexity而污染。
所以,在实际操作中,要谨慎地处理Data Snooping这件事情。要做到完全不偷看数据很难,一个折中的方式是做validation。另外,在实际操作中如果要做什么决定的时候尽量避免用数据来做决定,要先把domain knowledge变成feature放进去而不是看完数据再放专业知识进去。然后,要时刻存着怀疑之心,时刻要有一个感觉经过多少过程得到这些结果,结果到底可能被污染的多严重。
四、Power of Three
课程的最后来总结一下,在这个课程里学习了什么。我们介绍的很多东西好像都跟三有关。
三个相关的领域:
- Data Mining:从大量的数据里找出一些有兴趣的特性。它跟ML是高度相关的。
- Artificial Intelligence:想让机器做一些有智慧的事情。ML是实现AI的一种方法。
- Statistics:从数据里做一些推论的动作。是ML的工具。
三个理论保证:
- Hoeffding不等式:针对单个hypothesis的抽样
- Multi-Bin Hoeffding:针对M个hypothesis
- VC Bound:针对整个hypothesis set。
三个模型:
- PLA/Pocket:二元分类
- Linear regression:线性回归,公式解
- Logistic regression:分类概率
三个重要工具:
- Feature Transform:通过映射到高维空间,将E_in变小。
- Regularization:反其道而行,想让VC Dimension变小一点,但是可能E_in会变大一些。
- Validation:留下干净的数据来做模型的选择。
三个锦囊妙计:
- Occam's Razer:simple is good。
- Sampling Bias:training matches testing。
- Data Snooping:honesty is best policy。
未来的学习方向:将在后续的机器学习技法课程中讲解。一个是更多不一样的转换方式,不止有多项式的转换;一个是更多的正则化的方式;再来就是不是那么多的Label,譬如说要做无监督的学习应该要如何来做等等。
- 16.三个学习原则和课程总结
- 慕课网秒杀高并发前三个课程总结
- OO设计原则总结的三个问题
- c++课程学习总结
- ACM课程学习总结
- 课程学习简要总结
- css课程学习总结
- 朱老师嵌入式课程学习总结和感言
- C++课程学习简单总结
- 机器学习课程知识总结
- Linux内核课程学习总结
- 自然语言处理课程学习总结
- 网络程序设计课程项目学习总结
- 网络程序设计课程项目学习总结
- 课程学习归纳总结(0220)
- 课程学习归纳总结(0221)
- 课程学习归纳总结(0222)
- 课程学习归纳总结(0223)
- Quartz Cron 生成工具
- Docker:一点思考
- Intent 数据传递
- 证书签发工具程序编译遇到的问题及处理
- 修改窗口过程函数:按下回车后 焦点转移到下一个编辑框
- 16.三个学习原则和课程总结
- 隐写术:看黑客如何秘密隐藏恶意软件
- eclipse 不自动弹出提示(alt+/快捷键失效) 快捷键
- ring buffer的学习
- Servlet Url Mapping
- 20个漂亮的HTML5网站设计
- linux下如何进入单人维护模式,忘记密码的解决方法
- 我是社保局工作的,给大家介绍一下准确的“一老一小”保险知识[转载]
- CListView使用大全