机器学习相关整理
机器学习(ML; Machine Learning)
在早期的工程领域,机器学习也经常称为模式识别(PR; Pattern Recognition),偏向特定场景的具体应用。这类应用被称为任务(Task),如光学字符识别(OCR; Optical Character Recognition)和语音识别(Speech Recognition)等。
亚瑟·萨缪尔发明了「机器学习」一词,并将其定义为「不显式编程地赋予计算机能力的研究领域」。
汤姆·米切尔提供了对「机器学习」的现代定义,即「对于某类任务
经验以数据的形式存在,通常表现为带标注(Annotation)的数据集,或者表现为与环境交互产生的各类信息。
传统算法解决某些问题,需要人为制定并不断更新、检测规则,是复杂而难以维护的,其决策逻辑只适用于单一领域或单一任务,且制定规则需要对人类专家的决策过程有深刻理解;而机器学习自动捕获特征,程序更短,更容易维护,而且更精确,还能在没有人工干预的情况下标记新的数据,自动更新检测规则。
机器学习的主要学派如下。
- 符号主义(Symbolism):又称逻辑主义、心理学派或计算机学派,认为所有的智能行为都可以被简化为逻辑系统的符号操作过程,符号主义方法的优点就是可解释性强,代表算法如决策树等;
- 贝叶斯学派(Bayesians):注重统计学和概率推理,代表算法如朴素贝叶斯等;
- 联结主义(Connectionism):又称仿生学派或生理学派,认为人类的认知过程是由大量简单神经元构成的神经网络的信息处理过程,专注于用神经科学模拟智能行为,联结主义方法的弊端是可解释性差,代表算法如神经网络等;
- 进化主义(Evolutionism):将自然选择视为真正有价值的学习,在遗传学和进化生物学的基础上得出结论,代表算法如遗传算法等;
- 类推学派(Analogizers):以数学最优化来推断相似性判断,代表算法如支持向量机等。
机器学习虽然有用,但并不意味着它有人类一般的智能,即人工智能。机器学习是为了实现人工智能这个更宏大目标的技术之一,是人工智能的重要分支,且受到统计学的深刻影响。
流水线(Pipeline)指机器学习算法的基础架构。流水线包括收集数据、将数据制备成训练数据文件、训练一个或多个模型,以及将模型导出至生产环境。
数据集(Dataset)
数据集是记录的集合,通常具有如下数学形式。
其中:
称为数据的特征, 则称为特征空间(Feature Space); 称为数据的标记, 则称为标记空间(Label Space),样本根据标记的有无可称作有标记的(Labeled)或无标记的(Unlabeled)。
通常对数据集做独立同分布(IID; Independent and Identically Distributed)假设,即数据集的样本彼此相互独立,并且训练集和测试集是满足相同概率分布的。
众包(Crowdsourcing)指将工作先分配给很多参与者再合成为最终结果的模式,是获取数据集资源的常见模式。
训练(Training)又称学习(Learning),指从数据中学得模型的过程,即调整映射函数
通常需要随机打乱训练集,scikit-learn中随机打乱训练集的代码如下。
1 | from sklearn.utils import shuffle |
测试(Testing)指将学得模型用于预测的过程,即验证测试样本
验证(Validation)即训练过程中的测试,通常用于指导超参数的调整。验证过程中使用的数据称为验证集(Validation Set)。
训练集用于构建模型,而验证集和测试集用于评估模型对前所未见的新数据的泛化能力。训练期间故意不使用的样本即维持数据(Holdout Data),验证集和测试集都属于维持数据。与纯粹基于训练集的损失相比,基于维持数据的损失有助于更好地估算未知数据集的损失。
稀疏数据集(Sparse Dataset)指数据集中存在大量特征值未知的数据,不利于进行机器学习;数据集包含太少的样本,也不利于进行机器学习。
数据集不一定包含目标在各种扰动下的信息,此时需要进行数据增强(DA; Data Augmentation)以提升模型预测能力。对于图像数据而言,数据增强一般包括图像的旋转、平移、颜色变换、裁剪、仿射变换(定义见数学拾遗的线性变换)等。数据增强又译作数据扩充。
对于大部分实际应用,原始输入通常需要经过预处理(Pre-Processing)的工序,以变换到新的空间而使得问题可以更容易被解决。有时,预处理的目的是为了加快计算速度。通常,预处理阶段是降维即遗弃信息的过程,因此如果信息对于问题的解决很重要时,系统整体的精度会下降。
先验信念(Prior Belief)指在开始采用相应数据进行训练前,对数据持有的假设。
特征(Feature)
反映事件或对象在某方面的表现或性质,是标记的证据。
通常也把一个样本称为一个特征向量(Feature Vector),特征的数量称为样本的维度(Dimension)。特征可根据其连续性或离散型分为连续特征(Continuous Feature)和离散特征(Discrete Feature)。其中,离散特征又称分类特征(Categorical)或属性(Attribute)。
分桶(Bucketing)又称分箱(Binning),是根据值区间将连续特征转换为离散特征的操作,转换后的离散特征单元称为桶(Bucket)或箱(Bin)。
嵌套(Embedding)则是以连续特征表示分类特征的操作,通常指将高维度向量映射到低纬度的空间。深度学习中,嵌套是可训练的。
特征工程(Feature Engineering)包含特征提取(Feature Extraction)和特征选择(Feature Selection),旨在构建良好的数据表征,即对于特定领域应用而言寻找最佳的数据表示。常见的手工特征(Hand-Crafted Feature)有尺度不变特征变换(SIFT; Scale-Invariant Feature Transform)、方向梯度直方图(HOG; Histogram of Oriented Gradient)等。由于手工特征是启发式的,其算法设计背后的出发点不同,将这些特征组合时有可能会产生冲突。特征选择可将组合特征的效能发挥出来,使原始数据在特征空间中的判别性最大化。
特征缩放(Feature Scaling)可回避由于量纲不同、自身变异或者数值相差较大所引起的误差,使数据的尺度尽量统一,手段包括标准化(Normalization)和归一化(Standardization)。
对于基于梯度下降的算法如神经网络等,未经特征缩放的数据需要梯度下降算法花费很多次迭代才能收敛;对于基于距离的算法如支持向量机等,未经特征缩放的数据可能因较大的尺度对结果的影响程度更大。
基于树的算法如决策树、线性判别分析、朴素贝叶斯等不需要进行特征缩放。
合成特征(Synthetic Feature)从一个或多个特征衍生而来,包括如下类型:对连续特征的分桶;将一个特征值与其本身或其他特征值相乘或相除。仅通过特征缩放创建的特征不属于合成特征。
标记(Label)
又译作标签,或称目标(Target),作为样本对应的归纳性描述,是特征的结论。
为样本提供标记的专家有时称为评分者(Rater)或标注者(Annotator)。根据训练集中样本标记的情况,机器学习可分为有监督学习、无监督学习和弱监督学习等类别。
预测(Prediction)又称推断(Inference),覆盖有监督学习领域的大多数任务。推断可分为如下两种类型:离线推断(Offline Inference)即生成一组预测并存储,然后根据需求检索这些预测;在线推断(Online Inference)与之相对,根据需求生成预测。
优化(Optimization)
几乎所有的机器学习算法最后都归结为最优化问题。
手动预先指定、用于定义模型结构或优化策略,而不在训练过程中更新的参数称为超参数(Hyperparameter),如学习率和批量大小等,调参(Tuning)即选择超参数的过程,是不断试错调整的优化手段,需要依靠丰富的经验。
损失函数(Loss Function)接受模型函数或模型函数的参数作为输入,输出模型预测不准确的程度,通常记为
通常会选择非负数作为损失,且数值越小表示损失越小,完美预测时的损失为零。然而在现实中很难找到「完美的」数据集,无论用何种手段观察特征与标记的潜在关系,都可能会出现少量的观测误差。
代价函数(Cost Function)指能衡量模型预测与真实情况差异的函数,记为
对于回归问题,最常用的损失函数是残差平方和的变形即下式。
其中,常数系数不会带来本质的差别,其作用是使求导后系数能够约去,下同。
为了度量模型在整个数据集上的质量,使用的代价函数即下式,又称二次代价(Quadratic Cost)。
收敛(Convergence)即训练过程中,经历一定次数的迭代,损失变化很小或基本没有变化的状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。
正则化(Regularization)指加入额外信息以解决过拟合问题的过程,会使权重值变小。使用正则化后损失函数如下式。
上式
引入正则化以限制模型能力,使其不过度最小化经验风险,称为结构风险最小化(SRM; Structure Risk Minimization)原则,即如下数学形式。
其中,
控制正则化的相对重要性,称为正则化率(Regularization Rate)。
其他的正则化形式如下。
正则化( -Regularization)[21]:对矩阵逐行计算 范数,促进最具鉴别性特征的选择; - 提前停止(Early Stopping):又称早停,即当模型在测试集上的性能不再提升时,就提前停止训练,可以视作时间维度上的正则化。
- Dropout[16]:在网络训练过程中,按照一定的概率将部分中间层的单元暂时从网络中丢弃,即将单元的输出值置零;
- DropConnect:将部分连接权重置零,相比Dropout,使用DropConnect时更不容易发生过拟合。
其中,
又称利普希茨常数(Lipschitz Constant), 并非固定不变的,而是根据具体的函数而言的。
可见,若函数满足利普希茨条件,每对点
满足利普希条件的函数未必处处可微。
双利普希茨连续(Bi-Lipschitz Continuity)定义如下。
- Lipschitz Continuous Gradient:
,又称 函数为 -光滑( -Smooth); - Lipschitz Continuous Hessian:
。
以此类推,可构建更高阶的利普希茨连续条件。
若函数是Lipschitz Continuous Gradient,则有下式。
梯度下降(Gradient Descent)
梯度下降的目标是将损失函数最小化。只要代价函数
学习率(Learning Rate)控制梯度下降的程度,其设置的要点如下:学习率太大,难以到达局部最小值,而是在其附近反复跳跃,无法收敛;学习率太小,收敛速度缓慢。
优化器(Optimizer)指梯度下降法的一种具体实现。
最原始的梯度下降算法每次迭代使用所有样本来进行梯度的更新,又称为批量梯度下降(BGD; Batch Gradient Descent),属于批量学习(Batch Learning)。遍历整个数据集将导致实际中的执行可能会非常慢,但由整个数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。
随机梯度下降(SGD; Stochastic Gradient Descent)又称朴素随机梯度下降(Vanilla SGD),每次迭代时使用一个样本来对参数进行更新,属于在线学习(Online Learning),速度大大加快但难以收敛,迭代次数也较多。
小批量梯度下降(MBGD; Mini-batch Gradient Descent)则是批量学习和在线学习的折衷,此处,批量(Batch)即一次参数更新中使用的样本集
梯度裁剪(Gradient Clipping)指应用梯度值前先设置上限,梯度裁剪有助于确保数值稳定性以防止梯度爆炸。
使用梯度下降的例子可见多元线性回归。
迭代阈值收缩算法(ISTA; Iterative Shrinkage-Thresholding Algorithm)
近端梯度下降(Proximal Gradient Descent)旨在解决损失函数包含正则化项的优化问题。由Lipschitz Continuous Gradient的性质,损失函数包含正则化项时,梯度下降法可表示为如下数学形式。
当使用
其中,
为软阈值操作函数,定义为 。
快速迭代阈值收缩算法(FISTA; Fast ISTA)结合迭代阈值收缩算法与涅斯捷罗夫梯度加速。
牛顿-拉弗森方法(Newton-Raphson Method)
见数学拾遗的牛顿-拉弗森方法。通常机器学习使用梯度下降而非牛顿-拉弗森方法,其最大的问题在于,在优化过程中需要进行矩阵转换,对于多特征情形开销过高。
奇异值阈值(SVT; Singular Value Thresholding)
奇异值阈值[2]用于解决核范数优化问题。假设有问题
凸优化(Convex Optimization)
凸优化即使用如梯度下降的数学方法寻找凸函数的最小值。机器学习方面的大量研究都是专注于如何通过公式将各种问题表示成凸优化问题,以及如何更高效地解决这些问题。凸优化的数学定义如下。
其中:
、 均为凸函数; 为仿射函数(定义见数学拾遗的线性变换)。
常见的凸优化问题如下。
- 线性规划(Linear Programming):
; - 二次规划(Quadratic Programming):
; - 半正定规划(Semi-Definite Programming):
。
仿射集合(Affine Set)
空间
若
仿射集合
线性方程组
对于线性组合
集合
凸集(Convex Set)
若经过集合
对于线性组合
集合
凸集有如下的保凸运算(Convexity-Preserving Operations)。
- 若
和 为凸集,则 也是凸集; - 若
是仿射函数(定义见数学拾遗的线性变换),若 是凸集,则 也是凸集,若 是凸集,则 也是凸集。
若对于任意
两个不相交的凸集可以用一个超平面将二者分开,这被称为超平面分离定理(Hyperplane Separation Theorem)。
凸函数(Convex Function)
凸函数指向下凸的函数,并非字面直观感受,国内外教材有相反的定义。若
严格凸函数(Strictly Convex Function)只有一个局部最小值,即上式严格满足
若
有「强凸性
若
函数是凸函数当且仅当其在与定义域内的任何直线上是凸的,即函数
- 假设
可微, 是凸函数的充要条件为其定义域 是凸集,且 使得 ,即 的一阶泰勒近似始终在 的下方; - 假设
在其定义域内二阶连续可微, 是凸函数的充要条件为 使得 ,即 处处都有非负曲率(若 使得 ,则 是严格凸函数)。
假设
上式要求
函数的
函数的上境图(Epigraph)定义为
凸函数有如下的保凸运算。
; ; 。
函数
其定义域如下。
直观而言,共轭函数
无论
若
交替方向乘子法(ADMM; Alternating Direction Method of Multipliers)
交替方向乘子法[1]用于求解如下形式的问题。
其中,
、 均为凸函数。
定义对应的增广拉格朗日函数如下。
记
假设
使用交替方向乘子法求解套索回归问题
评估(Evaluation)
评估关注的数值称为指标(Metrics),可能可以也可能不可以直接在机器学习系统中得到优化。
模型对训练集之外的新样本进行预测的能力称为模型的泛化(Generalization)能力,如果模型能对新样本做出准确预测,就说该模型能从训练集泛化到测试集。显然机器学习希望得到泛化误差最小的学习器,若模型泛化能力不高,可能有如下原因。
- 过拟合(Overfitting):过于紧密或精确匹配训练集,即在训练集中表现佳,而面对新样本的预测效果不理想,是机器学习面临的关键障碍;
- 欠拟合(Underfitting):模型未经期望的优化,没能很好地捕捉数据特征,在训练集和新样本上的表现都不理想。
需要对机器学习模型进行评估以判断学习器的优劣。通常将学习器的实际预测输出与样本真实标记之间的差异称为误差(Error)。模型对训练数据的预测误差称为经验误差(Empirical Error);模型对测试数据的预测误差称为泛化误差(Generalization Error)或测试误差(Test Error)。
误差可分解为如下三个部分。
- 偏差(Bias):又称预测偏差(Prediction Bias),度量了预测结果与真实结果的偏离程度,通常是预测结果均值与真实结果均值的相差程度,刻画了学习算法本身的拟合能力,代表了模型本身的精度,即模型的表达能力(Representability);
- 方差(Variance):度量了预测结果分布的分散程度,刻画了数据扰动所造成的影响,反映模型的泛化能力;
- 噪声(Noise):数据本身带有的不确定性。
为了取得好的泛化性能,需要使偏差和方差都尽可能小。训练不足时,学习器的拟合能力不强,此时偏差主导泛化误差;随训练程度加深,学习器的拟合能力逐渐增强,此时方差主导泛化误差。
容量(Capacity)或复杂度(Complexity)即模型拟合各种函数的能力,容量低的模型可能很难拟合数据集即欠拟合,而容量高的模型可能导致过拟合。衡量机器学习模型复杂度的手段有瓦普尼克-契尔沃年基斯维和拉德马赫复杂度等。
一些评估指标与正确预测无关但仍有价值,如训练和预测的耗时等。其他与正确预测无关的其他评估指标如下:鲁棒性(Robust)即模型处理缺失值和异常值的能力;可扩展性(Scalability)即处理大数据集的能力;可解释性(Interpretability)即预测标准的易理解程度。
奥卡姆剃刀(Ockham's Razor)
奥卡姆剃刀理论又称简约法则,威廉·奥卡姆的表述为「切勿浪费较多东西去做用较少的东西同样可以做好的事情」,即坚持「若无必要,勿增实体」的原则。考虑到模型表达能力和泛化能力的权衡,一般情况下在保证模型表达能力的前提下尽量选择简单的模型,以保证模型的适用性。
没有免费的午餐(NFL; No Free Lunch)
没有免费的午餐定理表明「没有一种机器学习算法是适用于所有情况的」,如果一个模型在某一条件、某一数据环境下具有某种优势,则在其他条件、其他数据环境下必然具有相应劣势。NFL定理不仅适用于机器学习算法选择,也适用于模型评估方法。
有监督学习(Supervised Learning)
又称有导师学习,训练集中所有样本的标记已知。回归和分类是两个最常见的有监督学习任务。
回归(Regression)
回归是连续的预测任务,探索变量间的函数关系即
分类(Classification)
分类是离散的预测任务,实现分类的算法称分类器(Classifier)。在分类问题中,输出目标是离散的标记,而通常判别函数(Discriminant Function)
在二分类(Binary Classification)问题,即「是/否问题」中,通常将其中一个类别称为正类(Positive Class),另一类别称为反类(Negative Class)。对于满足
多分类(Multi-Class Classification)是又称单标记分类(Single-Label Classification),可拆分转换为二分类问题,经典的拆分策略如下。
- 一对一(OvO; One vs. One):将
个类别两两配对,产生 个二分类任务,最终的分类结果通过投票产生; - 一对其余(OvR; One vs. Rest):将一个类作为正类,其余类作为反类,产生
个分类器,若只有一个分类器预测为正类,则就是最终分类结果,若有多个分类器预测为正类,则选择置信度最大的; - 多对多(MvM; Many vs. Many):每次将若干个类作为正类,若干个其他类作为反例,显然OvO和OvR是MvM的特例。
在多分类问题中,常使用独热编码(One-Hot Encoding)或称哑变量(Dummy Variable)作为数据的标记。假设所有类型的名称构成词表
1 | y = tf.one_hot(labels, depth=num_classes) |
选择性分类(Selective Classification)[5]为分类器提供拒绝操作。在选择性分类中,选择性分类器(Selective Classifier)被定义为如下的
- 欠采样(Undersampling):又称下采样(Downsampling),去除多数类样本使得正、反类样例数目接近;
- 过采样(Oversampling):又称上采样(Upsampling),增加少数类样本使得正、反类样例数目接近;
- 阈值移动(Threshold Moving):直接基于原始训练集进行学习,预测时将再缩放修正式嵌入决策过程中。
其中过采样的策略有如下几类。
- ROS(Random Oversampling):随机复制少数类样本,简单易操作但容易导致过拟合;
- SMOTE(Synthetic Minority Oversampling Technique):针对少数类中的每个样本,计算欧氏距离查找
个近邻,沿着与 个少数类近邻中的任一相连的线段来生成新样本; - 生成对抗网络。
混淆矩阵(Confusion Matrix)又称误差矩阵,记录预测类别和实际类别。
对于二分类任务,可根据学习器预测类别与样本真实类别的组合划分真阳性(TP; True Positive)
多标记学习(MLL; Multi-Label Learning)
多标记学习[22]任务中,样本与多个标记同时相关联。令
早期的多标记学习算法可依策略分为两类:
- 问题转换(PT; Problem Transformation):将多标记学习问题转换为其他现成学习范式;
- 算法适应(AA; Algorithm Adaptation):对常用的有监督学习算法进行改造,使之适用于多标记学习。
二元关系(BR; Binary Relevance)
二元关系法将多标记学习问题拆解为
分类器链(CC; Classifier Chains)
分类器链类似二元关系法,但每次训练将上个分类器的预测结果作为特征,以建模二元关系法忽略的标记依赖性。
- 贪婪分类器链(Greedy CC):按某种顺序逐个训练
个基分类器; - 概率分类器链(PCC; Probabilistic CC):贝叶斯最优的分类器链,将分类器链的概念视为二叉树中的路径,其叶节点与标记相关联,贪婪分类器链只关注固定顺序的单个路径,而概率分类器链则关注
个路径,该方法对数据集的标记数量有限制; - 蒙特卡洛分类器链(MCC; Monte-Carlo CC):使用蒙特卡洛采样的概率分类器链变体,取
次采样概率最大的标记组合,性能接近概率分类器链。
标记幂集(LP; Label Powerset)
标记幂集将
校准标记排序(Calibrated Label Ranking)
校准标记排序将多标记学习问题转换为标记排序问题,预测时投票排序各个学习器的输出,最终结果即排序后较大的标记。
随机k标记集(RAkEL; Random k-Labelsets)
随机
标记分布学习(LDL; Label Distribution Learning)
标记分布学习[7]是一种通用的学习框架,可包含多标记学习作为特例。多标记学习关注「哪些标记能够描述样本」的问题,而标记分布学习关注「每个标记以何种程度描述样本」的问题。标记分布(Label Distribution)为标记空间
- 非负性(Non-Negative):
; - 和为一(Sum-to-One):
。
标记分布学习任务中,样本与标记分布相关联。样本的标记分布中,某标记的描述度并非表示该样本属于某标记的概率,而是某标记能描述该样本的程度。简记样本
经典的标记分布学习算法以最大熵模型建模,并以KL散度为优化目标,使用改进迭代尺度或拟牛顿法进行优化。
标记分布学习的衍生任务有标记增强(LE; Label Enhancement)[20]、不完全标记分布学习(Incomplete LDL)[19]等。
多视图学习(Multi-View Learning)
对同一事物的不同途径或不同角度的不同描述称为视图(View),而多视图学习对由多个不同特征集表示的数据,即多个视图,进行机器学习。
协同训练(Co-Training)为每个视图训练单独地训练分类器,形成知识互补进而提升精度。
多视图学习的衍生任务有多视图聚类(MVC; Multi-View Clustering)[3]等。
结构化学习(Structured Learning)
结构化数据(Structured Data)指数据集的每个特征都有清晰的定义,通常可以通过表格的形式呈现;而非结构化数据(Unstructured Data)与之相对,如原始音频、图像、文本等数据。
结构化学习的输入和输出都是非结构化数据,如文本序列、语法解析树、预测框等。语音识别、翻译、文法解析、目标检测等都是结构化学习的应用场景。
反译学习(ABL; Abductive Learning)
反译学习[4]是将机器学习和逻辑推理整合在统一的框架中的学习范式。反绎(Abduce)根据知识库(KB; Knowledge Base)展开所有可能的情况组成候选集合,若预测结果与逻辑推理结果矛盾,则从候选集合中选择最合理的情况作为解释。
k近邻(k-NN; k-Nearest Neighbors)
懒惰学习(Lazy Learning)即训练阶段仅存储样本,无训练时间开销,测试阶段时再处理。
1 | from sklearn.neighbors import KNeighborsClassifier |
1 | from sklearn.neighbors import KNeighborsRegressor |
随
线性模型(Linear Model)
广义线性模型(Generalized Linear Model)定义如下。
其中,在统计学领域,单调可微函数
被称为联系函数(Link Function)。
非线性模型(Nonlinear Model)定义如下。
其中,
为 个非线性基函数组成的向量。
非线性模型通过逐次逼近的方法拟合数据,其特征因子对应的参数不止一个。
一元线性回归(Simple Linear Regression)
一元线性回归模型如下式。
最小二乘法(LSM; Least Squares Method)试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。最小二乘法基于均方误差最小化来求解模型,考虑只有一个特征的情况,即下式。
将
令上式为零,可得普通最小二乘法的参数估计公式如下式。
最小二乘回归(Least Squares Regression)即通过最小化均方误差训练线性回归模型。最小二乘法用途很广,不仅限于线性回归。
多元线性回归(Multivariate Linear Regression)
多元线性回归模型如下式。
严格地说,上式是输入特征的一个仿射变换(定义见数学拾遗的线性变换)。
为方便讨论,令
多元线性回归模型的参数估计为如下数学形式。
多元线性回归的参数估计公式的不适用情景如下:对
scikit-learn内置多元线性回归的实现。scikit-learn中使用解析解进行参数估计的代码如下。
1 | from sklearn.linear_model import LinearRegression |
使用随机梯度下降法进行参数优化的代码如下。
1 | from sklearn.linear_model import SGDRegressor |
定义向量coef_
,定义intercept_
。输出模型参数和拟合优度的代码如下。
1 | print(model.coef_) # 系数 |
scikit-learn为了与用户设置的参数区分开,总是将从训练数据中得出的参数值保存在以下划线结尾的属性中。
岭回归(Ridge Regression)
岭回归使用
其中,
为预先设置的超参数,用于控制系数收缩量,取值越大则收缩量越大。
其中,
alpha
即上式。
1 | from sklearn.linear_model import Ridge |
有时岭回归不作预测,而是用于筛选变量、研究自变量贡献。标准化岭回归系数稳定且绝对值很小的自变量、随岭参数的增加岭迹图曲线趋近于零的自变量是可剔除的,若有若干个回归系数不稳定,需根据去掉某变量后重新进行岭回归分析的效果来确定。
套索回归(Lasso Regression)
套索即最小绝对值收敛和选择算子(LASSO; Least Absolute Shrinkage and Selection Operator)。套索回归使用
套索回归因使用
其中:
alpha
控制系数稀疏度;max_iter
为运行迭代的最大次数。
1 | from sklearn.linear_model import Lasso |
欠拟合时,即模型在训练集和测试集的表现都差时,可尝试减小alpha
,即控制系数趋向于0的强度,同时需要增加max_iter
。
scikit-learn还提供了结合岭回归和套索回归二者的惩罚项的ElasticNet
。
局部加权线性回归(LWLR; Locally Weighted Linear Regression)
局部加权线性回归模型的参数估计为如下数学形式。
其中,
是数据点的权重,通常是预测点与该数据点的距离。
局部加权线性回归的参数估计公式如下。
其中,
是用于给每个数据点赋予权重的矩阵。
最大熵模型(MaxEnt; Maximum Entropy Model)
最大熵原理(Maximum Entropy Principle)认为,在所有可能的概率模型分布中,且在满足既定的约束条件的情况下,熵最大的模型即最大熵模型就是最优的模型。
定义
假设满足所有约束条件的模型集合如下。 > 其中:
定义在条件概率分布
则模型集合
最大熵模型的学习等价于约束最优化问题,按最优化的习惯,等价于在满足
上式对
令上式为零,在
由
上式中,
可知最大熵模型的学习归结为对
使用「对数似然」将乘积转化为求和,得到下式。
极大化
改进迭代尺度(IIS; Improved Iterative Scaling)
改进迭代尺度试图寻找新的参数向量
对于给定的经验分布
引入不等式
记此下界为
引入琴生不等式
记此下界为
拟牛顿法(Quasi-Newton Method)
见数学拾遗的拟牛顿法。
对数几率回归(Logistic Regression)
对数几率回归又称逻辑回归。虽然名称叫回归,但实际上是一种分类学习方法。
对数几率回归直接对分类可能性进行建模,无需事先假设数据分布,可避免假设分布不准确导致的问题。对数几率回归不是仅预测出类别,而是可得到近似概率预测。
将对数几率函数(即Sigmoid函数)代入广义线性模型,即令
其中:将
视为样本 作为正类的可能性,则 是其为反类的可能性,两者的比值称为几率(Odds);取几率的对数得到对数几率(Logit; Log Odds)。
通常使用最大似然估计来计算逻辑回归的参数,即令每个样本属于其真实标记的概率越大越好。对于逻辑回归,有似然函数如下。
其中:
; 。
可得对数几率回归的参数估计公式如下。
可知
使用对数几率回归模型的代码如下。
1 | from sklearn.linear_model import LogisticRegression |
线性判别分析(LDA; Linear Discriminant Analysis)
又称费雪线性判别(Fisher's Linear Discriminant),设法将样例投影至直线上,使得同类样例的投影点尽可能接近,而异类样例的投影点尽可能远离。在对新样本进行分类时,将其投影至该直线上,再根据投影点的位置来确定新样本的类别。
支持向量机(SVM; Support Vector Machine)
对于支持向量机,数据点
支持向量(Support Vector)即位于类别间决策边界的数据点,预测新样本需要测量其与每个支持向量之间的距离。两个异类支持向量到超平面的距离之和为
线性模型在低维空间中可能非常受限,添加更多的特征可使线性模型更加灵活。支持向量机使用的核技巧(Kernel Trick)可将数据映射至更高维空间。高斯核(Gaussian Kernel)又称径向基函数核(RBF Kernel; Radial Basis Function Kernel),是支持向量机常用的核函数,考虑所有阶数的所有可能的多项式,且阶数越高对应特征的重要性越小,其数学形式如下。
其中:超参数
决定点与点之间「靠近」是多大距离,值非常大时往往过拟合;与 呈倒数关系的超参数 又称高斯核的带宽(Width),且易知 。
硬间隔(Hard Margin)要求所有样本必须正确分类,而软间隔(Soft Margin)允许支持向量机在一些样本上出错。软间隔时支持向量机的参数估计即如下数学形式。
其中:正则化参数
表示对误分类数据点的惩罚程度,值过大时将趋于硬间隔标准,决策边界间隔将变小且泛化能力变差; 可以是铰链损失(Hinge Loss)即 ,或指数损失(Exponential Loss)即 ,或对率损失(Logistic Loss)即 。
常见的软间隔支持向量机使用铰链损失,使用序列最小优化(SMO; Sequential Minimal Optimization)算法进行求解。
决策树(Decision Tree)
决策树具有强判断依据,可视化后说服力高,即可解释性强。
决策树的根结点即整个数据集。决策树以属性条件作为分支结点,决策树生成时每个结点包含的样本集合根据属性条件被划分至子结点中,预测时属性条件判断结果作为该样本分类的路径走向。最终预测的类别作为决策树的叶结点。仅有一层划分的决策树称为决策树桩(Decision Stump)。
决策树生成的关键是选择最优划分属性,即使分支结点所含样本尽可能属同一类别的划分属性。如果树中某个叶结点包含数据点的分类情况都相同,则称这个叶结点是纯的(Pure)。选择最优划分属性的标准有信息增益、增益率和基尼指数。
决策树的生成是一个递归过程,有三种情形会导致递归返回:当前结点包含的样本全属于同一类别,无需划分;当前属性集为空,或所有样本在所有属性上取值相同,无法划分,结点的类别为所含样本最多的类别;当前结点包含样本集合为空,无法划分,结点的类别为其父节点所含样本最多的类别。
scikit-learn实现的决策树DecisionTreeClassifier
使用CART算法,即以基尼指数作为选择最优划分属性的标准,且只实现了预剪枝,没有实现后剪枝。
模型的feature_importances_
可查看特征重要性(Feature Importance),即每个特征对树的决策的重要程度,特征重要性的求和始终为1。如果某个特征的特征重要性很小,并不能说明该特征没有提供任何信息,只能说明该特征未被树选中,而可能是另一特征也包含了同样的信息。
信息增益(Information Gain)
信息增益的数学形式如下。
其中:
指属性 可能取值的总数;若以这些可能取值对样本集 进行划分,其中划入第 个分支结点的子集记为 ; 即信息熵为度量样本集合纯度最常用的指标, 为第 类样本所占的比例。
一般而言,信息增益越大,即信息熵减少得越多,则意味着使用属性
ID3算法的ID指迭代二分法(Iterative Dichotomiser),该算法以最大信息增益为准则来选择最优划分属性。
增益率(Gain Ratio)
信息增益对可取值数目较多的属性有所偏好,增益率的目的是需要减少这种偏好带来的不利影响,增益率的数学形式如下。
基尼指数(Gini Index)
基尼指数的数学形式如下。
其中
CART决策树以最小基尼指数为准则来选择最优划分属性。
朴素贝叶斯(NB; Naive Bayes)
又称朴素贝叶斯分类器(NBC; Naive Bayes Classifier)。其中「朴素」即假设每个属性取其各个值的可能性是独立的,与其他属性的取值不相关。根据这一假设重写贝叶斯公式,得到下式。
其中:
为可能的类别标记; 为属性数目。
朴素贝叶斯分类器的表达式即类别判定准则如下。
其中:
为训练集 中可能的类别数; 为第 个属性可能的取值数。
对于连续属性,条件概率可考虑概率密度函数,假定
scikit-learn实现了如下三种的朴素贝叶斯分类器,平滑化对应可选参数alpha
。
GaussianNB
:可应用于任意连续数据;BernoulliNB
:假定输入数据为二分类数据;MultinomialNB
:假定输入数据为计数数据,即每个特征代表对某个对象的整数计数。
GaussianNB
主要用于高维数据;而BernoulliNB
和MultinomialNB
常用于文本数据分类,广泛用于稀疏计数数据。
神经网络(NN; Neural Network)
神经网络起源于神经科学。生物学的神经元(Neuron)由负责输入的树突(Dendrite)、负责处理的细胞核(Cell Nucleus)、轴突(Axon)、负责输出的轴突末梢(Axon Terminal)、特异性接头突触(Synapse)等组成,神经元之间通过突触互联而传输信息。
树突接收到来自其他神经元(或视网膜等环境传感器)的信息
神经网络又称人工神经网络(ANN; Artificial Neural Network),以与生物学意义的神经网络区分。神经网络被定义为由具有适应性的简单单元即神经元组成的广泛并行互连的网络,其组织能够模拟生物神经系统对真实世界物体所作出的交互反应。
传统机器学习关注训练预测模型,以通过连续或离散的特征得到预测结果,不涉及特征学习,主要靠人工经验或特征转换方法提取特征,这类机器学习可视作浅层学习(Shallow Learning)。
为使模型具有更好的表现,通常需要将输入信息转换为有效的特征,即表示(Representation)。自动学习有效的特征的学习过程,称为表示学习(Representation Learning)。语义鸿沟(Semantic Gap)是表示学习的关键问题,即输入数据的底层特征与高层语义信息的不一致性和差异性。好的高层语义表示通常要从底层特征开始,经过多步非线性转换才能得到,而深层结构的优点是能够增加特征的重用性,从而指数级地增加表示能力。
深度学习(DL; Deep Learning)是机器学习的特定分支,主要以深层结构的神经网络为基础,对数据进行表示学习。深度学习需要解决的关键问题是贡献度分配问题(CAP; Credit Assignment Problem),即特征或其参数对最终输出结果的贡献或影响。
端到端学习(End-to-End Learning)即学习的过程中不进行分模块或分阶段训练,直接优化任务的总体目标,通常不需要明确给出不同模块或阶段的功能,中间过程不需要人为干预。目前大部分深度学习任务都属于端到端学习。
M-P神经元(McCulloch-Pitts Neuron)
M-P神经元是首个通过模仿神经元而形成的模型,由沃伦·麦克洛克和沃尔特·皮茨提出。M-P神经元是多输入单输出的,数学形式如下。
其中:
为激活函数中的阶跃函数,决定结果是否向下游输出; 的相反数又称阈值(Threshold),若神经元收到的加权输入和大于阈值,则神经元激活,即「兴奋」状态,向下一神经元发送信息。
激活函数应当为连续并可导(允许少数点上不可导)的非线性函数,且通常单调递增,若即使用恒等函数(Identity Function)
激活函数及其导函数应当尽可能简单,这样有利于提高网络计算效率。激活函数的导函数值域应当在合适的区间内,否则会影响训练的效率和稳定性。
可以将线性回归模型视为仅由单个神经元组成的神经网络,如对数几率回归模型即激活函数为
感知机(Perceptron)由两层神经元组成,分别称输入层(Input Layer)和输出层(Output Layer),且只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限。若两类模式线性可分,即存在一个线性超平面能将之分开,则感知机的学习过程一定会收敛,否则感知机学习过程将会发生振荡,不能求得合适解。感知机只能解决如与、或、非等的线性可分问题,而不能解决如异或等的非线性可分问题。
神经元层的每个输入都与上一层的每个输出相连,则称为全连接层(Fully-connected Layer)或稠密层(Dense Layer)。多层感知机(Multilayer Perceptron)又称多层前馈神经网络(Multi-layer Feedforward Neural Network),即三层及以上的、全连接的、无反馈回路的神经网络,能够解决非线性可分问题。输出层与输入层间的层被称为隐藏层(Hidden Layer)。一般情况下,计数神经网络的层数时,仅包括隐藏层和输出层,而不包括输入层。
通用近似定理(Universal Approximation Theorem)指出,只要给予足够数量的隐藏单元,前馈神经网络可近似任意给定的连续函数,神经网络因其强大能力而往往容易在训练集上过拟合。
反向传播(BP; Backpropagation)
反向传播指误差从输出神经元反向传播到输入神经元,用于计算梯度下降中的偏导数。反向传播算法的精要为如下数学形式。
其中:神经网络共
层; 表示第 层编号为 的神经元连接到第 层编号为 的神经元的权重; 表示第 层编号为 的神经元的输入。
反向传播的计算分为前向传递(Forward Pass)和反向传递(Backward Pass)两个阶段。反向传播算法先按前向传递计算并缓存每个神经元的输出值,然后再按反向传递遍历图的方式计算损失函数值相对于每个参数的偏导数。
误差从输出层反向传播时,在每一层都要应用该层激活函数的导数。如对数几率函数一类的饱和的激活函数,在饱和区的导数接近于0,则误差经过每一层传递都会不断衰减,当层数增加时,梯度会不断衰减,甚至消失,使得整个网络难以训练,即梯度消失问题(Vanishing Gradient Problem)或称梯度弥散问题。相反,梯度不断增加的情况称为梯度爆炸问题(Exploding Gradient Problem)。隐藏层的层数过多、采用不合适的激活函数等都可能产生梯度消失或爆炸问题。
使用梯度下降法训练神经网络必须随机初始化参数,若将所有参数初始化为0,无论训练迭代的次数如何,神经元将由于对称性而执行相同计算。神经元之所以能提取不同的特征,是因为它们的参数不同,所有参数初始化为0使得多个神经元将变得没有意义。
自动微分(AD; Automatic Differentiation)是利用链式法则对程序函数进行计算导数的方法。计算图(Computational Graph)是自动微分的基础,是以数学运算为结点的有向图,按编译时构建或运行时构建可分为静态计算图(Static Computational Graph)和动态计算图(Dynamic Computational Graph)。静态计算图在构建时可以进行优化,并行能力强,但灵活性比较差;动态计算图则不容易优化,当不同输入的网络结构不一致时,难以并行计算,但是灵活性比较高。
反向传播通过使用计算图而得以在深度学习框架中实现。
卷积神经网络(CNN; Convolutional Neural Network)
神经系统中神经元只接受其所支配的刺激区域内的信号,即感受野(Receptive Field)。卷积神经网络受感受野的启发而提出。
大卫·休伯尔和托斯坦·威泽尔提出,猫的视皮层上存在如下两种细胞:对感受野中特定朝向的线段做出反应的简单细胞(Simple Cell);对线段的移动也能做出反应的复杂细胞(Complex Cell)。
福岛邦彦受视皮层简单细胞和复杂细胞的感受野的启发,提出一种视觉信号逐层处理的多层神经网络,称为新知机(Neocognitron),又称神经认知模型,也是首个模仿感受野的模型。神经认知模型由对比度提取层、图形特征提取层和抗变形层交替排列组成,即包含卷积和下采样的操作。
卷积神经网络包含如下两种主要操作。
- 卷积(Convolution):以数学方法提取图像特征,因与图像处理中的滤波处理一样,使用的滑动窗口即卷积核(Convolution Kernel)又称滤波器(Filter),卷积操作所得结果称为特征图(Feature Map),卷积核完成一次卷积操作后,将结果矩阵中所有元素求和后经由激活函数处理并存储至特征图,滑动特定的步长(Stride)移动至下一位置重复操作;
- 池化(Pooling):又称汇聚,即下采样操作以减小特征图的尺寸,可使得特征表示对输入数据的位置变化具有稳健性,与卷积操作类似,池化也需要指定滑动窗口,常用池化操作有平均池化(Mean Pooling)和最大池化(Max Pooling),前者对窗口内数据求均值,而后者取最大值。
卷积神经网络是局部连结、参数共享的前馈神经网络,一般由多个卷积层(Convolution Layer)和池化层(Pooling Layer)线性堆叠,再通过平坦操作展开至全连接层以完成最后的高级推理工作。卷积神经网络可用于自动特征提取,相比手工特征,卷积神经网络提取的特征更加丰富,目标浅层特征和深层的语义特征都能提取。
以步长为1的一维卷积为例,零填充(Zero Padding)即在输入向量两端各填补
减少池化层、全连接层的作用,可使得网络趋向于全卷积网络(FCN; Fully Convolutional Network)。
循环神经网络(RNN; Recurrent Neural Network)
循环神经网络可以接受自身的信息,因而具有环路和短期记忆能力,且更符合生物神经网络结构。隐状态(Hidden State)即隐藏层的活性值。记
其中:
为状态-状态权重矩阵; 为状态-输入权重矩阵; 为偏置向量。
约旦循环神经网络(Jordan RNN)通过下式更新隐状态。
隐状态
循环神经网络可以视为在时间维度上权值共享的神经网络,一个完全连接的循环神经网络可以近似解决所有的可计算问题。由于梯度消失或梯度爆炸问题,循环神经网络只能学到短期依赖关系,而很难对长距离的依赖关系建模,即长程依赖问题(Long-Term Dependencies Problem)。
双向循环神经网络(Bi-RNN; Bidirectional RNN)由输入相同但传递方向不同的两层循环神经网络组成。记前向层和反向层的隐状态分别为
长短期记忆(LSTM; Long Short-Term Memory)
长短期记忆的设计解决了普通循环神经网络的长期依赖问题,长短期记忆模型通过输入门(Input Gate)
长短期记忆模型引入内部状态(Internal State)
其中,
是内部状态的候选值。
内部状态同时非线性地输出信息给隐藏层的外部状态,计算式如下。
门控循环单元(GRU; Gated Recurrent Unit)
长短期记忆设计中,输入门和遗忘门是互补关系,具有一定冗余性,而门控循环单元仅使用一个更新门(Update Gate)
其中,
是状态的候选值。
可见,当
玻尔兹曼机(Boltzmann Machine)
玻尔兹曼机的输入又称可见层(Visible Layer)。玻尔兹曼机类似霍普菲尔德网络,可见层和隐藏层的神经元间相互双向连接。
受限玻尔兹曼机(RBM; Restricted Boltzmann Machine)又称簧风琴(Harmonium),主要用于无监督的特征学习。相较于玻尔兹曼机,受限玻尔兹曼机限定模型为二分图,即可见层神经元间不连接且隐藏层神经元间不连接。为可见层
自编码器(Autoencoder)
自编码器是神经网络的一种,包含编码器和译码器,自编码器即二者连结构成的前馈神经网络。编码器的输出即编码,是自编码器的隐藏层,其维度通常远小于编码器输入;译码器将编码扩展为与编码器输入具有相同维度的输出。记编码器为
编码器和译码器的权重可以共享以减少参数,称为捆绑权重(Tied Weight),在一定程度上起到正则化的作用,但并非必要。
一些非传统的自编码器如下。
- 稀疏自编码器;
- 变分自编码器;
- 降噪自编码器(Denoising Autoencoder):为输入随机添加噪声,重建无噪声的输入;
- 堆叠自编码器(Stacked Autoencoder):即深层的自编码器。
稀疏自编码器(Sparse Autoencoder)
稀疏编码(Sparse Coding)即编码维度高于输入,且编码尽量稀疏。稀疏自编码器的目标函数如下。 > 其中:
向量的稀疏性定义为非零元素的比例,如果一个向量只有很少的几个非零元素,就说这个向量是稀疏的。最直接的稀疏性衡量函数是
变分自编码器(VAE; Variational Autoencoder)
变分自编码器[11]的编码向量
其中:原始编码向量
和方差向量 由变分自编码器的编码器输出,是与编码维度相同的两个向量;噪声向量 由标准正态分布产生,也与编码维度相同; 保证结果为正。
同时,变分自编码器在学习时需要最小化下式的值。
相较传统自编码器,变分自编码器加入噪声且学习编码的概率分布,能使两输入中间的插值得以出现于输出,且编码的维度对应潜在的特征,因此可以用于完成生成任务。
生成对抗网络(GAN; Generative Adversarial Network)
生成对抗网络是无监督学习的一种,包括生成器和判别器两个部分。生成器(Generator)用于生成样本数据,而判别器(Discriminator)用于判断样本是真实的还是生成的。
生成对抗网络通过让生成器和判别器以相互博弈的方式进行学习,生成器和判别器置身于对抗环境中,生成器尽可能造出样本迷惑判别器,而判别器则尽可能识别出来自生成器的样本。
图神经网络(GNN; Graph Neural Network)
图神经网络是以图为输入的新兴神经网络,通过学习图结点的关系来提取图中的特征。类似卷积神经网络,图神经网络包含如下两种主要操作。
- 聚合(Aggregation):根据结点及其近邻结点更新下一隐藏层;
- 读出(Readout):将隐藏层的信息转换为最终输出。
计算学习理论(Computational Learning Theory)
计算学习理论即关于机器学习的理论基础,其目的是分析学习任务的困难本质,为学习算法提供理论保证,并根据分析结果指导算法设计。
对于二分类问题,令
若
概念(Concept)
假设
对于固定的
定义「误差参数」
假设空间(Hypothesis Space)
概率近似正确(PAC; Probably Approximately Correct)
概率近似正确即以较大的概率学得误差满足预设上限的模型。
令失败概率
若存在学习算法
PAC可学习给出了抽象地刻画机器学习模型能力的框架。考虑学习算法的时间复杂度,若学习算法的运行时间也满足形如上式的多项式函数,则称概念类
满足PAC学习算法所需的最小的
泛化误差上界(Upper Bound on the Generalization Error)是样本复杂度的等价形式,简称为泛化界(Generalization Bound)。
对任意
当
目标概念
显然,
目标概念
PAC学习是「分布无关」的理论模型,对
复杂度(Complexity)
假设空间
瓦普尼克-契尔沃年基斯维(Vapnik-Chervonenkis Dimension)
又称VC维,用于衡量假设空间
增长函数(Growth Function)表示
对任意
若
纳塔拉詹维(Natarajan Dimension)
在多分类问题中,假设空间
对于给定集合
多分类问题假设空间
若多分类问题假设空间
拉德马赫复杂度(Rademacher Complexity)
拉德马赫复杂度在考虑数据分布的情况下刻画
假设有损失函数
对任意空间
其中:
; , 服从取值为-1或1的均匀分布,称为拉德马赫变量(Rademacher Variables); 表示函数 在数据集 上的取值。
经验拉德马赫复杂度反映了函数族
函数空间
对任意
稳定性(Stability)
稳定性刻画训练集扰动对算法结果的影响。
集成学习(Ensemble Learning)
集成学习的基本思想是将多个模型组合,从而实现一个预测效果更好的集成模型,可理解为通过多个高方差模型以降低平均方差。对于分类问题,以各个子模型投票的方式确定最终结果;对于回归问题,以计算各个子模型均值的方式确定最终结果。
Bagging(Bootstrap Aggregating)
Bagging的基本思想如下:每次使用有放回采样(即自助法)取出
随机森林(Random Forest)即利用多棵决策树对样本进行训练并预测,是基于Bagging的一种集成学习算法,可解决决策树容易过拟合的现象,但可解释性弱于决策树。
随机森林使用自助法进行采样,即有放回地抽样选取样本,意味着样本在不同树中可能有重复,且随机在属性中挑选不大于属性总数的属性,因此随机森林中不同的树所含样本和属性大多不一样。
利用scikit-learn构建随机森林模型,需要确定RandomForestClassifier
的n_estimators
参数,即树的棵数,以及max_features
参数,即每棵决策树需要考虑的特征个数。
Stacking
Stacking额外训练一个元模型(Meta Model),以子模型在原始训练集上的预测作为训练集,可以视作表示学习。为避免过拟合,训练过程中伴随交叉验证操作。
Boosting
Boosting的目标是学习一个加性模型(Additive Model),可以将弱学习器提升为强学习器,如下式。
假设模型面向分类任务,其中:
称为强分类器(Strong Classifier); 称为弱分类器(Week Classifier)或基分类器(Base Classifier); 是弱分类器的权重。
Boosting的基本思想如下:首先利用训练集得到一个基模型;基于准确率给予样本不同的权重,使得误差大的样本在下一轮训练中可以得到更大的关注;重复训练直到获得
AdaBoost(Adaptive Boosting)是Boosting的代表,其基本思想如下:为每个样本分配一个初始权重
AdaBoost需要计算弱分类器
样本权重
弱监督学习(Weakly Supervised Learning)
弱监督学习面向有缺陷的数据集,额外地使用一些技术进行改善。弱监督可以分为如下三类。
- 不完全监督(Incomplete Supervision):训练集只有一个很小的子集有标记,主动学习和半监督学习是解决不完全监督的手段;
- 不确切监督(Inexact Supervision):训练集只有粗粒度的标记;
- 不准确监督(Inaccurate Supervision):训练集的标记不总是真实的。
主动学习(Active Learning)
主动学习中,未标记数据通过人工专家等方法来进行标注,得到了新的标记信息后继续迭代模型。主动学习的关键在于选择出合适的标注候选集给人工进行标注,其中选择的方法称为查询策略(Query Strategy)。
半监督学习(SSL; Semi-Supervised Learning)
半监督学习的训练集同时包含标记样本和未作标记的样本,学习器不需要人工干预和外界交互,自动利用未作标记的样本来提升学习性能。常见的半监督学习算法如下。
- 自训练(Self-Training):自训练又称自举法(Bootstrapping),是半监督分类的一种简单策略,首先使用含标记样本训练出分类器,再对未作标记的样本训练,所产生的标记称为软标记(Soft Label)或伪标记(Pseudo Label),从得到标记的样本中,以置信度等标准挑选认为分类正确的样本来训练分类器;
- 三体训练(Tri-Training):三体训练将集成学习机制与半监督学习相结合,利用三个分类器以投票的方式产生伪标记;
- 协同森林(Co-Forest):协同森林是三体训练的推广,使用更多的分类器。
此外,可以应用多视图学习的协同训练,首先为每个视图学习一个分类器,然后使用每个分类器对未标记数据以置信度等标准来迭代地构建附加训练数据,若考虑「视图间是全相关的」这种极端情况,则协同训练算法将退化为自训练算法。
无监督学习(Unsupervised Learning)
又称无导师学习,训练集中所有样本的标记未知。
聚类(Clustering)
聚类指将数据按相似度划分为不同的分组,聚类的分组称为簇(Cluster)。
k均值(k-Means)
簇中心(Cluster Center)即聚类所得的簇中所有数据点的平均值,又称形心(Centroid)。一般情况下,以欧氏距离作为距离度量,而以曼哈顿距离作为距离度量的算法称为
其中,
是第 个簇 的均值向量。
在scikit-learn中,调用
1 | from sklearn.cluster import KMeans |
簇中心被保存于模型的cluster_centers_
属性中。
n_init
参数以指明
层次聚类(Hierarchical Clustering)
层次聚类基于贪婪算法,通过计算不同类别数据点的距离来创建有层次的嵌套聚类树,分为自底向上的凝聚聚类(Agglomerative Clustering)和自顶向下的分裂聚类(Divisive Clustering)。
凝聚聚类首先声明每个数据点是自己的簇,然后寻找两个最近的簇进行合并,不断重复直到满足需要的簇的数量或其他中止条件为止。
分裂聚类首先声明所有数据点都是同一个簇,然后寻找两个最远的数据点并归为两个不同簇,将其余数据点分配给最相似的簇中心,对得到的两个簇递归地执行分裂聚类,直到满足需要的簇的数量或其他中止条件为止。
scikit-learn中内置凝聚聚类的实现sklearn.cluster.AgglomerativeClustering
,没有predict
方法,因此需要调用fit_predict
方法代替。可使用参数n_clusters
指定簇的数量,不使用簇的数量的场合则可以使用distance_threshold
指定距离阈值。距离阈值越大,则簇的数量越少,每簇的样本数量就越多,反之亦然。
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
DBSCAN不需要先验地指出簇的数量,可以划分具有复杂形状的簇,还能够找出不属于任何簇的数据点,但相较于
scikit-learn中内置DBSCAN的实现sklearn.cluster.DBSCAN
,没有predict
方法,因此需要调用fit_predict
方法代替。
聚类集成(Clustering Ensemble)
聚类集成指集成多个聚类结果。
共协矩阵(CA Matrix; Co-Association Matrix)是聚类集成中最常见的信息矩阵。共协矩阵是
其中:
是 的二元矩阵; 是所有聚类结果的总簇数;有 个簇的聚类结果 中, 表示第 个样本属于第 个簇, 表示第 个样本不属于第 个簇。
上式中,
降维(Dimensionality Reduction)
降维指找到表示高维数据的一种新方法,使得用更少的特征就能概括其重要特性。降维的一个重要应用是将数据降为二维以便于数据可视化。
主成分分析(PCA; Principal Components Analysis)
主成分分析是正交化线性变换,将数据变换到新的坐标系统,以对数据集进行降维。对于数据集的每个数据点
视之为编码和解码的过程,假设编码和解码函数分别为
对于给定的
通过编码解码得到的重构如下式。
其中,
由 排列而成,且对 进行了中心化,即 。
取
scikit-learn中内置主成分分析的实现sklearn.decomposition.PCA
,其中:参数n_components
指定主成分的数量;可选参数whiten
控制是否启用白化(Whitening),即缩放主成分至相同的尺寸,变换后的结果与使用StandardScaler
相同。
非负矩阵分解(NMF; Non-Negative Matrix Factorization)
相较主成分分析,非负矩阵分解的分量和系数均为非负的。
scikit-learn中内置非负矩阵分解的实现sklearn.decomposition.NMF
,其中参数n_components
指定分量的数量。
t分布随机近邻嵌入(t-SNE; t-Distribution Stochastic Neighbour Embedding)
t-SNE[18]是最常用的流形学习降维算法。流形(Manifold)指一组点,且每个点都有其领域。流形学习(Manifold Learning)是一类用于可视化的算法,允许进行更复杂的映射,通常也给出更好的可视化。
scikit-learn中内置t-SNE的实现sklearn.manifold.TSNE
,没有transform
方法,因此需要调用fit_transform
方法代替。
迁移学习(TL; Transfer Learning)
迁移学习指将源领域(Source Domain)的知识,迁移到目标领域(Target Domain),使得目标领域能够取得更好的学习效果,其中,领域(Domain)指样本空间及其分布。通常当源领域数据量充足而目标领域数据量较少,或从头建立模型复杂且耗时的情境下,适合应用迁移学习。
迁移学习可分为如下两类。
- 归纳迁移学习(Inductive Transfer Learning):在源领域和任务上学习出一般的规律,再将规律迁移至目标领域和任务上;
- 转导迁移学习(Transductive Transfer Learning):迁移样本使得可以直接利用源领域和目标领域的样本进行学习,通常源领域有大量标注数据,而目标领域没有或只有少量标注数据,但有大量无标注数据。
领域适应(DA; Domain Adaptation)
领域适应(DA; Domain Adaptation)是转导迁移学习的一种情景,思路是将不同领域的数据特征映射到同一特征空间。
按目标领域样本的标记情况,领域适应可分为有监督领域适应(SDA; Supervised DA)、半监督领域适应(SSDA; Semi-Supervised DA)和无监督领域适应(UDA; Unsupervised DA)。无监督领域适应通常更具吸引力,因为它完全不需要标记的目标领域样本。但当目标领域样本稀缺时,有监督领域适应和半监督领域适应则更有优势。
令源领域特征空间为
领域适应可按实现手段分为如下类别。
- 基于差异(Discrepancy-Based):以某统计学分布偏移度量来对齐源领域和目标领域,其中最大均值差异(MMD; Maximum Mean Discrepancy)是领域适应中应用最广泛的损失函数,用于衡量源领域和目标领域的差异;
- 基于对抗(Adversarial-Based):混淆领域分类器以完成源领域和目标领域的对齐,如域对抗神经网络;
- 基于重构(Reconstruction-Based):以重构作为领域适应的辅助任务,如深度重构分类网络。
域对抗神经网络(DANN; Domain-Adversarial Neural Networks)
域对抗神经网络[6]是无监督领域适应的代表模型,其结构包括如下三个部分。
- 特征提取器(Feature Extractor)
:将数据映射到特定的特征空间,使标记预测器精度最大化的同时,最小化域分类器的精度; - 标记预测器(Label Predictor)
:对特征空间的源领域数据分类,尽可能得到正确的标记; - 域分类器(Domain Classifier)
:对特征空间的数据进行领域分类,尽可能分辨出数据的领域。
特征提取器和标记预测器构成了一个前馈神经网络。域分类器连接至特征提取器之后,中间通过一个梯度反转层(GRL; Gradient Reversal Layer)连结,梯度反转层将所求得的梯度乘以一个负值
对源领域的数据,网络不断最小化标记预测器的损失,即下式。
其中:
为源领域样本数; 为目标领域样本数。
深度重构分类网络(DRCN; Deep Reconstruction-Classification Networks)
深度重构分类网络[8]利用自编码器结构,将重构输入视为领域适应的辅助任务。结构除包含特征提取器
分类对比语义对齐(CCSA; Classification and Contrastive Semantic Alignment)
分类对比语义对齐[14]面向有监督领域适应。结构包含特征提取器
其中:
为任意的距离度量函数; 和 应属同一类别。
此外,还需要对类别不同且领域不同的样本进行表征的距离最大化,即相似度最小化,即下式。
其中:
为任意的相似度度量函数; 和 应属不同类别。
最终代价函数如下式。
多任务学习(Multi-Task Learning)
多任务学习即同时学习多个相关任务,利用多个任务之间的相关性来改进模型在每个任务上的性能和泛化能力。多任务学习可视为归纳迁移学习的一种。
少样本学习(FSL; Few-Shot Learning)
少样本学习旨在通过少量训练样本学习模型。其中,仅通过单个训练样本学习称为单样本学习(OSL; One-Shot Learning)。
零样本学习(ZSL; Zero-Shot Learning)
零样本学习指没有带标记样本的迁移学习任务,是迁移学习的一种极端形式。
元学习(Meta-Learning)
元学习即让模型「学会学习」,其核心思想是学习某种先验知识。
在线学习(Online Learning)
在线学习是面向数据不断到达的场景的机器学习范式,需要进行多轮以增量更新模型,而非重新处理整个数据集。在线学习的目标是最小化所有轮的累计损失。
与在线学习相对的是离线学习(Offline Learning),即数据集固定的场景。
强化学习(RL; Reinforcement Learning)
强化学习又称再励学习、评价学习或增强学习,其灵感来源于心理学的行为主义,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。
强化学习的交互对象如下。
- 行动者(Actor):又称智能体(Agent),感知外界环境的状态以作出不同的行动(Action)
,根据外界环境的奖励 调整策略; - 环境(Environment):行动者以外的所有事物,受行动者行动的影响而改变状态(State)
,并反馈给行动者相应的奖励 。
策略(Policy)
行动者与环境的交互过程可视作马尔可夫决策过程(MDP; Markov Decision Process),即在状态序列中引入行动作为额外的变量。下一个时刻的状态
当抵达环境的终止状态,行动者和环境的交互过程结束,一轮交互的过程称为一个回合(Episode)。每一个回合的所有状态
可得轨迹
上式中,
一个回合的轨迹
若环境中没有终止状态,即
强化学习的目标即调节策略的参数
策略通常可以分为确定性策略(Deterministic Policy)和随机性策略(Stochastic Policy),强化学习一般使用随机性策略。
若采用确定性策略
上置信界(UCB; Upper Confidence Bound)是
其中:
是行动 的平均奖励; 是采取行动 的次数; 是行动的总次数。
Q学习(Q Laerning)
为评估策略
蒙特卡罗方法(Monte Carlo Method)通过采样来计算Q函数,随机游走地探索环境,并计算得到的回报。假设进行
蒙特卡罗方法需要完整的轨迹才能得到回报,也不依赖马尔可夫性质。时序差分学习(Temporal Difference Learning)只需从状态
当时序差分学习中每次更新的动作数为最大步数时,就等价于蒙特卡罗方法。
通过下式寻找策略
对所有的状态
评估策略和更新策略使用相同的策略,称为同策略(On-Policy)方法或同轨策略方法;评估策略和更新策略使用不同的策略,称为异策略(Off-Policy)方法或离轨策略方法。
同策略的时序差分学习称为SARSA(State Action Reward State Action)方法;异策略的时序差分学习即Q学习。Q学习直接选择Q函数取最大值对应的行动作为下次行动,更新后的Q函数并不关于选取动作的策略。
大多数任务中,状态空间和行动空间是庞大的,传统的SARSA方法和Q学习不适合解决问题。深度Q网络(DQN; Deep Q Network)视Q函数为神经网络,并采取如下的改进措施。
- 冻结目标网络(Freezing Target Network):在一个时间段内固定目标网络的参数以稳定学习目标;
- 经验回放(Experience Replay):构建回放缓冲区(Replay Buffer)以去除数据相关性。
策略梯度(Policy Gradient)
策略梯度即使用梯度上升的方式更新策略的参数,将强化学习的问题转化为有监督学习的问题。
总回报
参数的更新公式即下式。
近端策略优化(PPO; Proximal Policy Optimization)
近端策略优化是策略梯度的变形。
演员-评委算法(Actor-Critic Algorithm)
演员-评委算法是时序差分学习和策略梯度的结合。演员(Actor)即策略,评委(Critic)即值函数。演员-评委算法的代价函数形式如下。
演员-评委算法需要估计两个网络,而优势演员-评委(A2C; Advantage Actor-Critic)算法只需一个网络,代价函数形式如下。
大语言模型(LLM; Large Language Model)
大语言模型通常指的是参数数量在数十亿或更多数量级的深度学习模型,体现规模扩展带来的重要性能提升,是通用的任务求解途径,但学习的成本高昂。语言模型的发展历程如下。
- 统计语言模型(SLM; Statistical Language Model):具备一定的生成能力,如
元语法( -Gram)模型,即通过 个词语出现的概率来推断语句的结构; - 神经语言模型(NLM; Neural Language Model):如循环神经网络;
- 预训练语言模型(PLM; Pre-Trained Language Model):可有效捕获上下文语义,提升任务迁移性能;
- 大语言模型。
扩展法则(Scaling Law)可描述模型的最终能力,并解决模型参数量和数据量的分配问题,大语言模型的扩展法则以Chinchilla扩展法则为代表,即如下数学形式。
其中:
表示模型参数量; 表示数据量; 为训练成本,即算力开销; 为测试集的负对数似然损失,即性能;其余符号表示常数。
涌现能力(Emergent Ability)是「不存在于小型模型中,但存在于大型模型中」的罕见现象,是简单组件经复杂交互而自发产生的功能,包括但不限于如下。
- 上下文学习(ICL; In-Context Learning);
- 指令遵循(Instruction Following);
- 逐步推理(Step-by-Step Reasoning)。
基于人类反馈的强化学习(RLHF; Reinforcement Learning from Human Feedback)聚合问答数据并训练奖励模型,并通过强化学习的方式微调大语言模型。
登普斯特-谢弗证据推理(Dempster-Shafer Evidential Reasoning)
辨识框架(Frame of Discernment)
定义信任函数(Belief Function)如下,表示对焦元的总的信任程度。
登普斯特-谢弗证据合成(Dempster-Shafer Evidence Combination)将不同的基本概率分配函数合成为新的基本概率分配函数,公式定义如下。
粒计算(GrC; Granular Computing)
粒计算将事物或问题分解成若干个相互关联的子部分,以处理模糊性和不确定性。
粒(Granule)可以是一组因相似性或功能性受约束而被聚集的对象,而粒化(Granulation)是产生粒的数学操作。粒结构(Granular Structure)被定义为粒的集合。
粗糙集理论(RST; Rough Set Theory)
设
三支决策(3WD; Three-Way Decision)将正域、负域和边界域分别解释为接受(Acceptance)、拒绝(Rejection)和不承诺(Noncommitment)。
设
可以使用超参数
模糊集理论(Fuzzy Set Theory)
论域
参考文献(References)
- [1] Boyd, S.; Parikh, N.; Chu, E.; Peleato, B.; and Eckstein, J. 2011. Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers. Foundations and Trends
in Machine learning, 3(1), 1-122. - [2] Cai, J. F.; Candès, E. J.; and Shen, Z. 2010. A Singular Value Thresholding Algorithm for Matrix Completion. SIAM Journal on optimization, 20(4): 1956-1982.
- [3] Chao, G.; Sun, S.; and Bi, J. 2021. A Survey on Multiview Clustering. IEEE Transactions on Artificial Intelligence, 2(2), 146-168.
- [4] Dai, W. Z.; Xu, Q.; Yu, Y.; and Zhou, Z. H. 2019. Bridging Machine Learning and Logical Reasoning by Abductive Learning. In Proceedings of the International Conference on Neural Information Processing Systems, 2815-2826.
- [5] El-Yaniv, R. 2010. On the Foundations of Noise-Free Selective Classification. Journal of Machine Learning Research, 11(5).
- [6] Ganin, Y. et al. 2016. Domain-Adversarial Training of Neural Networks. Journal of Machine Learning Research, 17(1): 2096-2030.
- [7] Geng, X. 2016. Label Distribution Learning. IEEE Transactions on Knowledge and Data Engineering, 28(7): 1734-1748.
- [8] Ghifary, M.; Kleijn, W. B.; Zhang, M.; Balduzzi, D.; and Li, W. 2016. Deep Reconstruction-Classification Networks for Unsupervised Domain Adaptation. In Proceedings of the European Conference on Computer Vision, 597-613.
- [9] Glorot, X.; and Bengio, Y. 2010. Understanding the Difficulty of Training Deep Feedforward Neural Networks. In Proceedings of the International Conference on Artificial Intelligence and Statistics, 249-256.
- [10] He, K.; Zhang, X.; Ren, S.; and Sun, J. 2015. Delving Deep into Rectifiers: Surpassing Human-Level Performance on Imagenet Classification. In Proceedings of the IEEE International Conference on Computer Vision, 1026-1034.
- [11] Kingma, D. P.; and Welling, M. 2014. Auto-Encoding Variational Bayes. In Proceedings of the International Conference on Learning Representations.
- [12] Liu, G.; Lin, Z.; and Yu, Y. 2010. Robust Subspace Segmentation by Low-Rank Representation. In *Proceedings of the International Conference on Machine Learning*, 663-670.
- [13] Maas, A. L.; Hannun, A. Y.; and Ng, A. Y. 2013. Rectifier Nonlinearities Improve Neural Network Acoustic Models. In Proceedings of the International Conference on Machine Learning, 3.
- [14] Motiian, S.; Piccirilli, M.; Adjeroh, D. A.; and Doretto, G. 2017. Unified Deep Supervised Domain Adaptation and Generalization. In Proceedings of the IEEE International Conference on Computer Vision, 5715-5725.
- [15] Nair, V.; and Hinton, G. E. 2010. Rectified Linear Units Improve Restricted Boltzmann Machines. In Proceedings of the International Conference on Machine Learning, 807-814.
- [16] Srivastava, N.; Hinton, G.; Krizhevsky, A.; Sutskever, I.; and Salakhutdinov, R. 2014. Dropout: A Simple Way to Prevent Neural Networks from Overfitting. Journal of Machine Learning Research, 15(1): 1929-1958.
- [17] Tsoumakas, G.; Katakis, I.; and Vlahavas, I. 2010. Random
-Labelsets for Multilabel Classification. IEEE Transactions on Knowledge and Data Engineering, 23(7), 1079-1089. - [18] Van der Maaten, L.; and Hinton, G. 2008. Visualizing Data using t-SNE. Journal of Machine Learning Research, 9(11): 2579-2605.
- [19] Xu, M.; and Zhou, Z. H. 2017. Incomplete Label Distribution Learning. In Proceedings of the International Joint Conference on Artificial Intelligence, 3175-3181.
- [20] Xu, N.; Liu, Y. P.; and Geng, X. 2019. Label Enhancement for Label Distribution Learning. IEEE Transactions on Knowledge and Data Engineering, 33(4), 1632-1643.
- [21] Yang, Y.; Shen, H. T.; Ma, Z.; Huang, Z.; and Zhou, X. 2011.
-Norm Regularized Discriminative Feature Selection for Unsupervised Learning. In Proceedings of the International Joint Conference on Artificial Intelligence, 1589-1594. - [22] Zhang, M. L.; and Zhou, Z. H. A review on Multi-Label Learning Algorithms. IEEE Transactions on Knowledge and Data Engineering, 26(8), 1819-1837.