Viking's Website

What is Machine Learning

Andrew Ng说机器学习

Andrew Ng在《斯坦福大学公开课 :机器学习课程 》开头,提到了 Arthur Samuel 和 Tom Mitchell 两位机器学习领域前辈关于机器学习的定义。

Arthur Samuel定义的机器学习(1959)

作为机器学习领域的先驱,Arthur Samuel在 IBM Journal of Research and Development期刊上发表了一篇名为《Some Studies in Machine Learning Using the Game of Checkers》的论文中,将机器学习非正式定义为:

”在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个研究领域。”

在机器学习的历史上,Arthur Samuel做了一些非常酷的事情。他曾经做了一个西洋棋程序,让计算机自己跟自己下棋,下棋速度非常快,因此Arthur Samuel让他的程序自己和自己下了成千上万盘棋,逐渐的,程序开始慢慢意识到怎样的局势能导致胜利,怎样的局势能导致失败,因此它反复的自己学习“如果让竞争对手的棋子占据了这些地方,那么我输的概率可能更大”或者“如果我的棋子占据了这些地方,那么我赢的概率可能更大”所以渐渐的,Arthur Samuel的程序掌握了哪些局面可能会输,哪些局面可能会赢,因此奇迹出现了,他的程序的棋艺甚至远远超过了他自己。ArthurSamuel让他的程序比他自己更会下棋,但是他并没有明确的教给程序具体应该怎么下,而是让它自学成材。

Mitchell 定义的机器学习 (1998)

Tom Mitchell在他的《Machine Learning(中文版:计算机科学丛书:机器学习 )》一书的序言开场白中给出了一个定义:

“机器学习这门学科所关注的问题是:计算机程序如何随着经验积累自动提高性能。”

我喜欢这个简单明了的定义,它是我们在帖子最后得出的程序员定义的基础。注意计算机程序这一提法和提到的“自动提高”一词。写程序以改善它们自身,这是挑衅!

他在引言中多次重复提到一个简短的形式体系:

“对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习。”

不要让术语的定义把你吓跑,这是一个非常有用的形式体系。我们把这一形式体系作为一个模版,把经验E、任务T和性能度量P列在一张表的顶部,并且列出带有更少歧义的复杂问题。它可以作为一个设计工具来帮助我们清楚的思考收集什么样的数据(E),需要做出什么样的决策(T),以及如何评价结果(P)。这就是我们把它作为一个标准定义的原因。请把它记在心里。

转载自:什么是机器学习?