第3章 机器学习算法概述

本章介绍常用的机器学习算法,侧重介绍这些算法所用到的共性底层运算,对这些运算的优化是本书关注的重点,而对机器学习算法本身的原理和训练方法的介绍只涉及必要的知识。本章讨论的内容中会涉及神经网络基本原理和底层运算结构,由于它在机器学习中的地位不断上升,因此后续章节还会进一步讨论神经网络所需的运算结构优化。

机器学习算法的目标大致可以归为“分类”“回归”“决策”。其中“分类”是指机器学习算法根据特定目标的特征数据对其类别进行判定,比如根据最近一周的湿度和气压来判断明天是否下雨。分类算法的最终输出往往是离散的类别编号。“回归”一般应用于对连续的输入数据得到连续的输出值,比如根据最近一周的湿度和气压预测明天的温度数据。“决策”一般应用于控制或者博弈,比如无人车根据过去三天及当前天气信息决定移动路线和策略,以最小代价到达目的地。这些算法有着不同的应用背景和算法结构,但它们依赖的底层运算是相似的,包括矩阵乘法、卷积、排序比较等。

“机器学习”这一名词代表两个不同的概念——“机器学习训练”和“机器学习推理”。其中机器学习训练是指给定一系列输入和输出数据样本,调整机器学习算法的参数,使得它对每个输入数据样本能够给出和输出数据样本匹配的结果,而推理过程是指将数据输入到参数固定了的机器学习算法,获取其输出数据的过程。在实际应用中,往往将推理算法放入嵌入式系统实现,而训练过程由于需要海量的训练数据存储以及长时间的参数调整运算,通常难以在嵌入式系统中实现。本章会介绍部分机器学习的训练算法,它们运行在PC上,而不是嵌入式系统中。