【每周一文】A Few Usefull Things to know about Machine Learning
2016-02-16 23:45
375 查看
概述
机器学习被普遍认为任何一个IT民工必备的工具之一,和学习任何语言工具一样,简单的体验一下或许非常简单。但这并不代表你能真正驾驭它,如果想深入不是一年两年能搞得定事情,本文作者总结了对于刚入门机器学习者需要注意一些事项。什么是学习
机器学习包括无监督、半监督、监督、强化学习等,但是对于很多初入门的MLer可能就是监督学习,即给定训练样本和标签,学习出某个模型进行新样本预测。学习=表示+评估+优化
表示:表示的过程也是模型选择过程,也是假设空间确定过程,也是特征选择过程。也是从给定训练数据中找到一个合适形式表示数据,从而能够进行泛化。也有人认为学习过程也是一种记忆和推理过程,根据已有事实进行新样本推理。
评估:模型的泛化能力,好的模型不仅仅能够对训练样本能够有效预测,还能够对未知样本进行有效预测。评估过程提供一个评价函数对模型进行量化。
优化:寻找最优表示的过程,确定表示参数的过程。不同的优化算法从假设空间遍历的过程都是不同的。
机器学习那些事
泛化很重要
由于我们不可能获取到全部训练样本,即使能也可能存储不下全部样本,这样必须有效提供模型泛化能力。一个好的模型不仅仅是在训练数据上表现出好的效果,而是对于不可见样本也能表现出好的效果。因此训练时常将训练数据划分为测试集合和训练集合,通过训练集合进行模型学习,测试集合进行模型效果验证。对于模型参数的选择可以通过交叉验证(CV)进行选择。
仅仅有数据是不够的
由于机器学习目标是泛化,一切不以泛化为目的的模型选择都是胡搞。因此需要对数据进行合理假设和推理演绎。好在在统计领域有大量工具能够发现数据一些本质,如何有效分析数据能够找到数据合理假设是关键。
过拟合问题
机器学习非常大两个问题过拟合和欠拟合,过拟合一个常见表现为对于训练数据有非常好效果,对于测试数据效果一般或者非常差。过拟合问题常常被表示为偏差和方差问题,任何机器学习书籍都会介绍这个分解过程。
关键是如何发现并解决过拟合问题。
维度灾难
很多模型在低维空间能够有效表示数据,但是高维空间效果非常差,因此模型对于维度的支持能力也是MLer需要考虑的。理论保证不总是可信
理论保证不总是可信的,理论边界都是一个极限过程,在实际中这种极限不总是可达的,关键是一般情况下的适用能力。特征工程是关键
特征工程有时候能够使得模型发挥最大作用,然而发现特征过程一般都是痛苦的,而且是领域相关的。深度学习出现能够有效减少特征工程消耗时间,然而一个好的特征仍然非常重要
更多的数据胜过更聪明算法
数据比模型重要,越多数据越能揭露数据本质。因此遇到模型效果不好时,先考虑如何扩充训练数据。在训练数据固定时,才去寻找更好的表示学习多个模型而不是一个
由于训练数据并不总是独立同分布(IID)任何一份训练数据都有可能是偏置的,因此模型集成是一个非常重要的手段。常见的集成方法包括bagging和boosting简单并不意味着精确
简单是为了提高泛化能力,如何同时提高泛化和精确才是深入考虑的。可表示并不意味可学习
相关并不意味因果
总结
一个好的机器学习模型能够解决实际应用,而不是机器学习多高级,能够解决问题的算法都是好模型。“天下没有白吃午餐”:任何模型都不是通吃的,在应用中寻找最合适的算法而不是最好的算法。
参考
论文译文相关文章推荐
- jquery on()方法和bind()方法的区别
- HTML标签(按功能排序)
- leetcode279-Perfect Squares
- JavaScript高级程序设计学习笔记 02
- Codeforces Round #256 (Div. 2) C. Painting Fence (DFS)
- CSS 巧用 :before和:after
- BootStrap学习
- (一)创建新的react native 应用程序
- Consumer Prefetch
- prufer数列学习笔记
- 关于fastclick.js
- canvas+video实现跨域视频截图
- DevExpress自学笔记—整体修改窗体及控件的皮肤样式3
- HTML文件的基本结构
- HTML+AngularJS+Groovy如何实现登录功能
- JSON的key值为数字时如何使用
- BZOJ 1031 JSOI 2007 字符串加密 Cipher 后缀数组
- 三个js循环的关键字示例(for与while)
- jQuery方法返回jQuery对象还是DOM对象
- cors跨域资源共享】同源策略和jsonp