1.1 什么是机器学习
著名学者赫伯特·西蒙教授(Herbert Simon)曾对“学习”下了一个定义:“如果一个系统能够通过执行某个过程来改进其性能,那么这个过程就是学习。”从西蒙教授的定义中可以看出,学习的核心目的是改善。对于计算机系统而言,它通过运用数据及某种特定的方法(例如统计的方法或推理的方法)来提升机器系统的性能,就是机器学习。
有关机器学习的定义,卡内基梅隆大学的汤姆·米切尔(Tom Mitchell)教授给出的解释是:“对于某类任务(Task,简称T)和某项性能度量准则(Performance,简称P),如果一个计算机程序在T上,以P作为性能的度量,随着很多经验(Experience,简称E)不断自我完善,则说明该计算机程序在从E中学习了。”
图1.1 机器学习可以看作一个函数
如果觉得米切尔教授的定义比较抽象,可以参考台湾大学李宏毅博士的说法:机器学习在形式上,近似于在数据对象中通过统计或推理的方法寻找一个适用特定输入和预期输出功能的函数。如图1.1所示。
所谓机器学习,在形式上,可以看作一个函数,通过对特定的输入进行处理,得到一个预期的结果。例如,f(一段音频)=“你好”、f(含有猫的图片)=“cat”等。但是如何才能让计算机在接收一串语音后知道这句话是“你好”而不是其他的内容呢?这就需要构建一个评估体系来判断计算机通过学习是否能够输出理想的结果,如此便可以通过训练数据(training data)来“培养”机器学习算法的能力,如图1.2所示。
图1.2 机器学习的过程
从图1.2可以看出,f2对图像的识别是错误的,学习效果并不理想,经过训练数据的“培养”,将输出结果不理想的f2改善为输出结果较为理想的f1,判定的准确度提高了,这种改善的过程便可以被称为学习!如果这个学习过程是由机器完成的,那就是“机器学习”了。