机器学习初识
Posted So istes immer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习初识相关的知识,希望对你有一定的参考价值。
1.什么是机器学习
Arthur Samuel的定义:Machine Learning is fields of study that gives computers the ability to learn without being explicitly programmed(非显著式编程).
非显著式编程:让计算机自己总结规律的编程方法。
举例:假设我们要通过编写程序来区分一张图片是菊花还是玫瑰。
如果我们去事先制定判别规则,如:红的是玫瑰,黄的是菊花,再去判断。这种就是显著式编程。
如果我们仅仅提供一堆玫瑰和菊花的图片,通过程序让计算机自己去总结玫瑰和菊花的区别,从而制定判别标准,这种就是非显著式编程。
非显著式编程的优势在于我们不需要去规划一个操作的具体每一步要怎么做,只需要规定行为和收益函数,让计算机自己去找最大化收益函数的行为。
Tom Mitshell在他的书《Machine Learning》中这样定义:A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
(一个计算机程序能针对某个任务T和某个性能指标P,从经验E中学习。随着经验E的增加,性能指标P也会增加)
在上面的例子中,任务T为:编写计算机程序识别菊花和玫瑰,经验E为:一大堆菊花和玫瑰的图片,性能指标P为:识别率。识别率会随着样本的增加而增加,而显著式编程的识别率是定死的。
2.机器学习的分类
①监督学习(Supervised Learning)
例如:人脸识别、垃圾邮件识别
特点:我们需要人工采集训练样本,并且打标签(Labeling for training data) ,也就是告诉计算机训练样本是什么,从而获得经验E
(1)根据数据标签存在与否进行分类
①传统的监督学习(Traditional Supervised Learning):每一个训练数据都有对应的标签
②非监督学习(Unsupervised Learning):所有训练数据都没有对应的标签
对应算法包括:聚类(Clustering)、EM算法(Expectation-Maximization algorithm)、主成分分析(Principle Component Analysis)
不打标签我们也可以进行分类,看下面的例子
③半监督学习(Semi-Supervised Learning):一部分训练数据标注,一部分不标
它之所以会出现,是因为网络上的数据越来越多,标注数据的成本也越来越高,所以我们试图用一部分标注数据和一部分未标的数据设计出更好的机器学习算法
(2)基于标签的固有属性进行分类
分类问题:判断两个人脸是不是同一个人的(我们可以打标签为0和1)
回归问题:预测股票价格、预测温度、预测人的年龄等等
事实上,分类和回归问题的界限是非常模糊的,因为离散和连续的定义也是可以相互转换的
②强化学习(Reinforcement Learning)
例如:教计算机下棋、无人驾驶(教汽车从一个地方开到另一个地方)
特点:计算机产生一些行为,程序去定义这些行为的收益函数(reward function),对行为进行奖惩。计算机通过与环境的互动逐渐强化自己的行为模式。
以上是关于机器学习初识的主要内容,如果未能解决你的问题,请参考以下文章