什么是机器学习?
第一个机器学习的定义来自于Arthur Samuel,他定义机器学习为:在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个研究领域。
我个人来讲更倾向于第二种定义方式,我觉得第二种定义方式更容易去理解,是由CMU的Tom MItchell提出:对于某类任务T和性能度量P,如果计算机程序在T上以P衡量的性能随着经验E而自我完善,那么就称这个计算机程序从经验E学习。
简单的解释一下任务T、性能度量P和经验E。前段时间热度非常高的AlphaGo Zero想必大家都有所了解,它通过与自身的棋局对弈来进行学习,之后在对战中战胜诸多高手。实际上在这个学习的过程中,经验E就是AlphaGo Zero成千上万次的自我练习,任务T就是下棋,而性能度量值P,就是它在与其他人对战时获胜的概率。接下来详细解释涉及到的概念
任务T
通常机器学习任务定义为机器学习系统应该如何处理样本。样本是指我们从某些希望机器学习系统处理的对象或事件中收集到的已经量化的特征的集合。我们通常会将样本表示成一个向量
举个例子。影响房价的因素有面积,位置等,在本例中的每个样本是指每一套房子的面积、位置和房价,而在这其中两个影响因素面积和位置都是该房子具有的特征。后面还会继续细说这个问题。(关于基本术语的解释,在此强推周志华老师的《机器学习》,P2-P3解释的很详细且通俗易懂)
机器学习可以解决很多类型的任务,比如分类、回归、机器翻译和缺失值填补等,在此不多赘述,如果感兴趣可以通过其他资料了解。
性能度量P
为了评估机器学习算法的能力,我们必须设计其性能的定量度量,通常性能度量P是特定于系统执行的任务T而言的。对于分类等任务,我们通常度量模型的准确率。准确率是指该模型输出正确结果的样本比率。我们也可以通过错误率得到相同的信息。错误率是指该模型输出错误结果的样本比率。
关于具体的评估方法,后续还有文章对其进行详细讲解。
经验E
根据学习过程中的不同经验,机器学习算法可以大致分类为监督学习算法和无监督学习算法。
监督学习
监督学习算法训练含有很多特征的数据集,不过数据集中的样本都有一个标签。例如,kaggle上著名的问题“猫狗大战”,在数据集中注明了每个图像分别是猫还是狗,监督学习算法通过研究测试集,学习如何根据训练集中提取来的特征来将测试集的图片分为猫和狗两类。
简单说监督学习的基本思想就是,数据集中的每个样本都有相应的“正确答案”,再根据这些样本对其他样本进行预测。
无监督学习
无监督学习算法训练含有很多特征的数据集,然后学习出这个数据集上有用的结构性质。聚类算法是典型的无监督学习算法。不同于监督学习,无监督学习中没有任何的标签。我们预先不知道样本应该属于哪一类,通过学习数据集的特征,我们自行将数据集分成若干类,将每个样本归到某一类中。
写在后面
本文是对机器学习的定义做了一个最基本的解释,算是为我后续的总结开了一个头吧。鉴于本人水平有限,所接触的都是通过自学,入门时间短,甚至说还没能入门。。。文中如有出现错误,欢迎大家指正!