1 定义
机器学习(machine learning)研究如何使计算机系统从数据或经验中学习,并改善其完成特定任务的表现。与主要用于描述或检验变量关系的相关、多元线性回归等统计方法相比,机器学习通常更关注模型能否对尚未见过的数据进行有效预测。例如,可以利用已经测量的驾驶员行为、眼动或其他生理信号,建立模型判断驾驶员是否处于疲劳状态。
2 类型
根据训练数据是否包含已知结果,机器学习可以分为不同的学习方式:
- 监督学习(supervised learning)利用带有已知结果的数据学习输入与结果之间的关系;需要预测分类变量时属于分类(classification),需要预测连续数值时属于回归(regression)。
- 无监督学习(unsupervised learning)则不预先提供需要预测的结果,而是从数据本身寻找结构,例如通过聚类(clustering)将相似样本归为若干组,或者通过降维(dimensionality reduction)用少量变量概括高维数据。
- 其他例如半监督、自监督等学习方式。
机器学习方法还可以根据是否主要依赖研究者预先提取的特征(features),大致区分为以下两类:
- 经典的机器学习方法,通常需要研究者先从原始数据中选择或计算能够用于建模的特征(例如,从原始眼动轨迹中计算平均注视时长和扫视次数,从脑电信号中提取α波的功率谱密度等),再进行分类、回归、聚类等分析。
- 神经网络与深度学习则能够从较为原始的数据中自动学习数据表示,减少对人工设计特征的依赖。当前常用的基础模型、大模型都属于这一类别。
3 训练流程与模型评价
机器学习建模的重点是预测尚未见过的数据,且模型的建立往往不只是估计一组系数,许多模型没有可以直接计算的解析解,需要通过迭代算法训练。模型越灵活,越可能把当前数据中的偶然噪声也当成规律。因此,开展机器学习建模时,需要区分用于拟合模型的训练数据(训练集)、用于选择模型的验证数据(验证集),以及用于评价模型能否推广到新数据的测试数据(测试集),具体地:
- 训练集(training set)用于拟合模型,例如估计模型参数、确定决策树的切分方式等。
- 验证集(validation set)用于比较和选择不同的算法、特征组合或超参数设置。
- 测试集(test set)用于评价最终确定的模型,估计其对新数据的预测效果。
单独划分验证集容易受某一次随机拆分影响,也会减少能够用于训练模型的数据。数据量较少时,可以进行交叉验证(cross validation),先只划分出测试集,用剩余数据开发模型。例如,折交叉验证会把剩余数据分成份,每次用其中份作为训练集拟合候选模型,用剩余一份作为验证集评价预测表现;轮换次后,根据各次评价结果的平均值比较候选模型。选定算法和参数以后,再将用于模型开发的全部数据重新拟合最终模型,最后在测试集上进行总结性评估。
在验证集或测试集上,可以评估模型的不同方面,大致可以分为4类:
- 模型给出的类别是否正确?例如,对于疲劳/不疲劳、阳性/阴性这样的二分类任务,可以得到类似信号检测理论、假设检验中的“决策x实际情况”的2×2表格(此处称为混淆矩阵,confusion matrix),包括正确识别、正确排除、漏报、误报4种情况。据此可以进一步计算准确率(accuracy,正确预测的比例)、精准率(precision,预测为阳性的样本中实际为阳性的比例)、召回率(recall,实际为阳性的样本中被正确识别的比例)、特异度(specificity,实际为阴性的样本中被正确排除的比例),以及F1分数、平衡准确率等综合指标。
- 模型能否区分两类样本?许多分类模型先输出连续的分类分数,再根据阈值产生类别。改变阈值会改变误报和漏报,因此可以考察模型在一系列阈值下的整体表现,例如ROC-AUC(area under the receiver operating characteristic curve,ROC曲线下面积)、PR-AUC(area under the precision-recall curve,精准率-召回率曲线下面积)等。
- 模型给出的概率是否可信?如果模型输出疲劳的概率,而且该概率将被直接解释或用于决策,还需要采用对数损失、Brier分数、校准曲线等评价概率预测。
- 连续值预测误差有多大?如果模型预测疲劳程度,可以使用平均绝对误差(mean absolute error,MAE)、均方根误差(root mean squared error,RMSE)、等指标。