赞
踩
在1959年, Arthur Samuel 给机器学习定义如下:
“Field of study that gives computers the ability to learn without being explicitly programmed.”
Arthur Samuel 是美国计算机游戏(computer gaming)和人工智能(artificial intelligence)领域的先驱,他这段话的意思是说“机器学习是这样的一个研究领域,在没有显式编码的情况下赋予计算机学习的能力。”他自行开发的西洋棋游戏是世界上第一个自学习(self-learning)的程序,通过让这个程序自己和自己下棋,它很快就习得在哪些情况下赢的机会比较大,在那些情况下输的机会比较大,从而提高了自己的“棋艺”,随着下棋的次数越来越大,最后他惊奇地发现这个计算机程序的棋艺已经远远超过了他自己的棋艺。这应该是最早的机器学习的例子吧。
在1997年,Tom M. Mitchell 在他的著作 Machine Learning 中给出了一个被广泛引用和更加正式的定义:
“A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E. ”
这就是说一个计算机程序被称之为从与某类任务T和性能度量P有关的经验E中学习,如果在任务T中它的以P为度量的性能因为经验E得到了提升。根据这一定义,一个机器学习问题必须具备三个要素:任务(Tasks)、性能度量(Performance Measure)、训练经验(Training Experience)。因此,对于上述提到的西洋棋游戏,我们可以看出具有这三个要素:
根据定义,我们说西洋棋游戏程序从经验中学习了,因为他在不断地与自己的比赛练习中提高了胜率,也就是提高了性能。
在我看来,机器学习也意味着一个程序能够自动地完成任务,而不需要我们具体编码。想象如果每个任务都要具体显式地编码告诉计算机应该怎么做,对于一个复杂的任务这几乎是难以做到的,像数字或者手写字体识别、控制飞机飞行这样的一些问题,我们甚至无法列举出各种情况,更不用说要针对各种情况编码告诉计算机如何处理了。所以最好的方法就是让计算机自己学习,从我们提供的经验或反馈中获取知识,然后运用这些知识对未知的事物进行判断和预测,而我们所要做的就只是提供所需要的训练数据或者反馈数据,设计一个好的学习算法,然后计算机就能自动地完成任务了。
训练数据中的每一个输入都有对应的确定的输出,就像给每个问题提供一个标准答案一样,我们告诉计算机每个输入所对应的标准的输出,期望计算机能够学习到输入输出之间的联系,并对新的输入能够给出一个正确的输出。对于监督学习主要有两类问题:回归(Regression)和分类(Classification)。
在这一类学习算法中,我们只给定输入数据,但是没有指定对应的输出,就像对于每个没有标准答案一样,我们没有告诉计算机每个输入对应的输出。这类算法的目标是找到数据中的一些有趣的结构、模式等,因此有时也被称之为知识发现(Knowledge Discover)。
半监督学习算法将有对应输出和无对应输出的训练数据结合起来进行学习的一类算法。在很多实际应用中,一般只有少量的有对应输出的训练数据,但却有大量的无对应输出的训练数据,因此这类算法在这些应用上很有用。
这主要用在不需要进行一次决策的情形中。比如用监督学习预测肿瘤是否为恶性时,你需要通过一次决策来得出一个结论,非此即彼。在强化学习问题中,我们通常需要做出一系列的决策,可能一两次的决策错误不会影响总体的效果。例如,在使飞机自动飞行的过程中,做出一两次不利于飞机飞行的决策可能并不会导致飞机摔下来,事实上,只需要做出一系列不错的决策就可以保证飞机不摔下来。强化学习背后的一个基本概念是回报函数,比如动物杂技表演团在训练狗的时候,如果狗做了训练者叫它做的事,它会得到一些奖励,否则就会得到惩罚。久而久之,狗就学会了多做一些正确的事来获取更多的奖励和更少的惩罚。强化学习使得计算机程序更倾向于做出正确的决策,因为可以获得更多的“奖励”。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。