目录
1 机器学习(Maching Learning)
1.1 机器学习
人工智能的先驱之一阿瑟·萨缪尔曾说过:机器学习就是通过编程赋予计算机学习的能力,并且这种能力不是通过显著式编程获得的。
1.2 显著式编程
那么,什么又是显著式编程呢?
举个例子,我们需要计算机识别菊花和玫瑰花,我们通过编程告诉计算机菊花是黄色,玫瑰花是红色。因此,计算机识别出黄色就判定为菊花,识别到红色就判定为玫瑰花,这就是显著式编程。
机器学习并不采用显著式编程,而是采用与其对立的非显著式编程。
1.3 非显著式编程
非显著式编程和显著式编程又有什么区别呢?
同样的例子,我们需要计算机识别菊花和玫瑰花,现在我们拥有大量的菊花和玫瑰花的图片,我们并不需要去告诉计算机,菊花是什么样的,玫瑰花又是什么样的,即我们事先并不约束计算机必须总结什么样的规律,而是通过编程让计算机根据大量的图片数据,总结二者的特征区别,并让计算机选出最能区分菊花和玫瑰花的规律特征,来进行菊花和玫瑰花的识别。即通过计算机自主学习,达到识别的目的,这就是机器学习。
1.4 逻辑定义
另外还有一个逻辑性更强的机器学习定义:
一个计算机程序被称为可以学习,是指它能够针对某个任务T和某个性能指标P,从经验E中学习。这种学习的特点是,它在某个任务T上的被性能指标P所衡量的性能,会随着经验E的增加而提高。
那么,怎么理解这个定义呢?
在菊花和玫瑰花的例子中,T、P、E分别是什么呢?如下表所示,
任务 T | 识别菊花和玫瑰花 |
经验 E | 大量菊花和玫瑰花的图片数据 |
性能指标 P | P可以是识别率、召回率等评价指标 |
根据以上定义,针对菊花和玫瑰花的识别,我们需要构造一个算法程序,这个算法程序的特点是,当已有的菊花和玫瑰花的图片数据越来越多时,即经验E越来越丰富的时候,性能指标P(识别率等指标)也会随之增大,这种算法就称为可以被学习的,即机器学习。
在这个定义中,性能指标E和经验E是人为定义的,并不局限某种固定规律。并且我们可以发现,性能指标P和经验E,二者具有一定的关系,我们需要提高性能指标,并尽可能使P达到最大值,这就需要找到最佳的经验E。在某种程度上,这个过程就类似于最优化求解问题。