学习机器学习一段时间,觉得有点混乱,因此整理一下笔记,方便以后查看。
本节主要是机器学习的概述,概念性的东西不做介绍,主要是学习机器学习要从哪方面入手,以及有什么类别的机器学习,什么情况下要选择什么样的机器学习方法等。
首先贴一张李宏毅教授的课件截图:
基本上按照这个分类是比较好理解的,从场景来分的,主要是:
1、监督学习 - 需要有label的数据
2、半监督学习- 部分label,部分非label的数据
3、无监督学习 - 全部是非label的数据
4、迁移学习 -将学习好的模型,迁移到新的模型下帮准训练,是一种范化能力,这篇文章介绍的非常详细:http://www.sohu.com/a/130511730_465975
5、强化学习 - 相对比较新的领域,主要是同过反馈机制来更新优化
以上的分类是从场景来分的,我理解大多数情况是取决于training data的情况,如有大量的label data,则选择监督学习是比较好且高效的,而label data不足时,则要选做其他的学习方法。
除此以外,就是根据task的分类,即针对解决什么样问题的分类,粗略可分为三类:
1、regression,回归问题,主要是对未来的预测,典型的列子如房价,股价,气温等
2、 classification,分类问题,主要是对事物的判断,如垃圾邮件的二分类,物体识别的多分类等
3、structured learning,结构化学习,用李宏毅老师的话说,这就是广袤的暗黑大陆,也是真是世界的反映
这三个分类可以理解为是对现实世界的具体事物和问题的解决,日常遇到的问题无非是未来是神码样的预测,是好是坏的分类等,所以这些是针对真实存在问题的解决方案。
按照机器学习的方法分类,这是实际的具体可操作的方法:
1、Linear model- 线性模型
2、非线性模型,包含现在各种主流的方法,如:SVM , 决策树,KNN等
接下来主要学习的内容就是各种机器学习的方法实现及应用场景。
首先会从一个简单的模型开始,概括起来简单的机器学习三个步骤:
1、define set of function
2、goodness of function
3、pick the best function
这是机器学习的三个主要步骤,接下来会主要在理论层面学习,然后是实际的代码实践,中间也会补充必要的数学知识。