本文系统梳理了机器学习的核心概念、主要分类及经典算法,配备详细的思维导图,帮助读者建立清晰的机器学习知识体系。(高清无水印思维导图请私信或者留言,白嫖请绕道!)
一、什么是机器学习
机器学习(Machine Learning)是人工智能的一个核心分支,它让计算机系统能够从数据中自动"学习"规律和模式,而无需被显式编程来执行每一项任务。这一概念最早由 Arthur Samuel 在 1959 年提出,他将机器学习定义为"使计算机无需被明确编程就能学习的领域"。随后,Tom Mitchell 在 1997 年给出了更加形式化的定义:如果一个计算机程序在某类任务 T 上的性能度量 P 随着经验 E 的增加而提高,那么我们称该程序从经验 E 中学习。
机器学习的本质是通过数学模型和统计算法,从历史数据中提取有用的信息和知识,进而对未知数据进行预测或决策。与传统的规则驱动编程不同,机器学习采用的是数据驱动的范式------程序员不再需要手动编写每一个逻辑分支和判断条件,而是让算法自动从海量数据中挖掘潜在的规律。这种范式转变在处理复杂、高维、非结构化的数据时展现出了巨大的优势,例如图像识别、自然语言处理、推荐系统等场景中,机器学习方法远超手工规则的效果。
从技术层面看,机器学习涉及概率论、统计学、最优化理论、信息论等多个数学分支的交叉融合。一个典型的机器学习过程包括:数据收集与预处理、特征工程、模型选择与训练、模型评估与调优、模型部署与监控等环节。每个环节都有其独特的技术挑战和解决方案。例如,在数据预处理阶段需要处理缺失值、异常值和数据不平衡问题;在特征工程阶段需要进行特征选择、特征变换和特征构造;在模型训练阶段需要选择合适的损失函数和优化算法。
二、机器学习分类总览
根据学习方式的不同,机器学习可以划分为以下几大类别:监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semi-Supervised Learning)、强化学习(Reinforcement Learning)、神经网络与深度学习(Neural Network & Deep Learning)、集成学习(Ensemble Learning)。下图展示了机器学习的整体知识体系架构:

从图中可以看出,机器学习的各个分支之间既有明确的界限,又存在深度的交叉与融合。监督学习和无监督学习是最基础的两大范式,分别处理有标签数据和无标签数据;半监督学习则尝试融合两者的优势;集成学习关注如何组合多个模型以提升性能;神经网络与深度学习代表了当前最前沿的模型架构;强化学习则开辟了一条完全不同的学习路径------通过与环境的交互来优化决策策略。
三、监督学习(Supervised Learning)
3.1 核心概念
监督学习是机器学习中最基础也最广泛应用的范式。其核心思想是:从一组带有标签的训练数据中学习输入到输出的映射关系,然后利用学习到的映射对新数据进行预测。所谓"监督",指的是训练数据中的标签(Label)就像一位老师,为模型提供明确的正确答案作为参照,引导模型不断调整自身参数以逼近真实映射。
在监督学习中,训练集可以表示为 ,其中 是输入特征向量, 是对应的标签。模型的目标是学习一个函数 ,使得对于新的输入 ,能够准确预测其输出 。根据输出 的类型不同,监督学习又可以细分为两大子类:回归(Regression)和分类(Classification)。
监督学习的训练过程通常遵循以下步骤:首先选择一个合适的模型假设空间(如线性模型、决策树等),然后定义一个损失函数来衡量模型预测值与真实标签之间的差距,最后使用优化算法(如梯度下降法)最小化损失函数,从而找到最优的模型参数。这个过程也被称为经验风险最小化(Empirical Risk Minimization)。
3.2 思维导图

3.3 回归(Regression)
回归问题的目标是预测一个连续值输出。例如,根据房屋面积、位置、楼层等特征预测房价,或者根据历史气象数据预测明天的气温。回归模型的输出域是连续的实数空间。
线性回归(Linear Regression) 是最经典的回归算法,它假设输入特征与输出之间存在线性关系,即 。模型通过最小化均方误差(MSE)来估计参数 和 。最小二乘法给出了闭式解,而梯度下降法则适用于大规模数据场景。线性回归简单高效、可解释性强,是回归分析的首选基线模型。
岭回归(Ridge Regression) 在线性回归的损失函数中加入 L2 正则化项 ,通过对参数向量施加二范数约束来防止过拟合。当特征之间存在多重共线性时,岭回归能够有效稳定参数估计,其正则化强度由超参数 控制。岭回归本质上是对参数施加了高斯先验假设的最大后验估计。
Lasso 回归 使用 L1 正则化项 ,相比岭回归,Lasso 的独特优势在于能够产生稀疏解------即将不重要的特征权重压缩为零,从而实现自动特征选择。这使得 Lasso 在高维数据(特征数远大于样本数)的场景中特别有用,能够同时完成回归建模和特征筛选。
弹性网络(ElasticNet) 结合了 L1 和 L2 正则化的优点,其正则化项为 。当特征组之间存在强相关时,Lasso 倾向于随机选择其中一个而忽略其他,弹性网络则能保留整组相关特征,因此在基因微阵列分析等场景中表现更优。
多项式回归(Polynomial Regression) 通过对原始特征进行多项式变换(如 )来拟合非线性关系。虽然本质上仍属于线性模型(对变换后的特征是线性的),但它能够捕捉特征与目标之间的曲线关系,是处理非线性回归问题的基础方法。
3.4 分类(Classification)
分类问题的目标是预测一个离散的类别标签。例如,判断一封邮件是否为垃圾邮件(二分类),或者识别图片中的动物种类(多分类)。分类模型的输出域是有限的离散集合。
K 近邻(KNN, K-Nearest Neighbor) 是一种"惰性学习"算法------它不进行显式的模型训练,而是在预测时找到距离待分类样本最近的 K 个训练样本,通过多数表决决定类别。KNN 的核心要素包括距离度量方式(如欧氏距离、曼哈顿距离)和 K 值的选择。K 值太小容易受噪声影响,K 值太大则可能导致类别边界模糊。KNN 简单直观,但在高维数据下受"维度灾难"影响严重,且预测时计算开销大。
逻辑回归(Logistic Regression) 虽然名字中有"回归",但实际上是一种分类算法。它通过 Sigmoid 函数将线性组合映射到 (0,1) 区间,输出样本属于正类的概率。模型使用对数似然损失(Log-Likelihood Loss)进行训练,可通过梯度下降或牛顿法优化。逻辑回归输出概率值、可解释性强,是二分类任务的经典基线方法,也常作为深度学习模型的最终分类层。
朴素贝叶斯(Naive Bayes) 基于贝叶斯定理和特征条件独立假设,通过先验概率和似然概率计算后验概率进行分类。尽管"特征条件独立"假设在实际中很少严格成立,但朴素贝叶斯在文本分类、垃圾邮件过滤等场景中依然表现出色,且训练速度极快、对小样本数据友好。常见的变体包括高斯朴素贝叶斯(连续特征)和多项式朴素贝叶斯(离散特征)。
支持向量机(SVM, Support Vector Machine) 的核心思想是寻找一个能够最大化类别间隔的超平面。对于线性不可分的数据,SVM 引入核函数(Kernel Function)将数据映射到高维空间,使得在高维空间中数据变得线性可分。常用的核函数包括线性核、多项式核、高斯核(RBF)等。SVM 在中小规模数据集上表现优异,具有较好的泛化能力,但对大规模数据的训练效率较低。
决策树(Decision Tree) 通过递归地对特征空间进行划分来构建树形结构,每个内部节点表示一个特征判断,每个叶节点表示一个类别。划分标准包括信息增益(ID3 算法)、信息增益率(C4.5 算法)和基尼系数(CART 算法)。决策树直观易懂、可解释性强,但单棵决策树容易过拟合,通常需要通过剪枝或集成方法来提升性能。
四、无监督学习(Unsupervised Learning)
4.1 核心概念
无监督学习与监督学习的根本区别在于:训练数据中没有标签信息。算法需要自行发现数据中的内在结构、模式和规律,而不依赖任何预先定义的正确答案。这种学习方式更接近人类在自然界中学习的方式------我们观察世界,自发地发现事物之间的相似性和差异,形成概念和类别。
无监督学习面临的核心挑战是评估困难。由于没有标签作为参照,我们很难用定量的指标来衡量聚类结果或降维结果的"好坏"。因此,无监督学习更多地依赖于领域知识和可视化手段来验证结果的有效性。此外,无监督算法对超参数(如聚类数目 K)的选择往往更加敏感,需要结合业务场景和经验进行调优。
无监督学习在实际应用中具有不可替代的价值。许多现实场景中,获取标注数据的成本极高(如医学影像标注需要专业医生),而未标注数据却大量存在。无监督学习能够充分利用这些未标注数据,发现数据中的潜在模式,为后续的监督学习提供特征提取、数据探索等基础支持。
4.2 思维导图

4.3 聚类(Clustering)
聚类是将数据样本按照相似度划分为若干组(簇),使得同一簇内的样本尽可能相似,不同簇的样本尽可能相异。聚类是最常见的无监督学习任务,广泛应用于客户细分、异常检测、图像分割等场景。
K-Means 是最经典的聚类算法,其核心步骤是交替执行"分配"和"更新"操作:首先随机初始化 K 个质心,然后将每个样本分配到最近的质心所属的簇,再重新计算每个簇的质心位置,如此迭代直至收敛。K-Means 简单高效,适用于大规模数据,但需要预先指定 K 值,且对初始质心选择敏感,只能发现凸形簇。K-Means++ 通过改进初始化策略显著提升了算法的稳定性和收敛速度。
DBSCAN(Density-Based Spatial Clustering of Applications with Noise) 是一种基于密度的聚类算法,它将簇定义为密度相连的点的最大集合。DBSCAN 的核心优势在于:无需预先指定簇数、能够发现任意形状的簇、能够识别噪声点。算法通过两个参数------邻域半径 和最小点数 MinPts------来控制聚类粒度。当数据密度不均匀时,DBSCAN 的效果可能不理想,此时可以考虑 HDBSCAN 等改进算法。
层次聚类(Agglomerative Clustering) 采用自底向上的策略,初始将每个样本视为一个单独的簇,然后逐步合并距离最近的簇,直到达到预设的簇数或满足终止条件。层次聚类的优势在于可以通过树状图(Dendrogram)直观地观察不同粒度下的聚类结果,不需要预先指定簇数。但层次聚类的计算复杂度较高(通常为 O(n^3)),不适合大规模数据集。
Mean Shift 是一种基于核密度估计的聚类算法,它通过迭代地将每个点移动到其邻域内密度的局部最大值位置来发现簇中心。Mean Shift 不需要预设簇数,能够自动发现簇的数量,适用于任意形状的簇,但计算效率相对较低。
Fuzzy C-Means(FCM) 与 K-Means 的硬划分不同,FCM 采用软划分策略,每个样本以一定的隶属度属于每个簇。这种模糊隶属度的表示方式在某些应用场景中更有意义,例如医学图像分割中,一个像素可能同时属于多种组织类型。
4.4 降维(Dimensionality Reduction)
降维的目标是在尽量保留数据原始信息的前提下,将高维数据映射到低维空间。高维数据不仅带来计算开销的增加,还会导致"维度灾难"------在固定样本量下,数据维度越高,模型越容易过拟合。降维可以有效缓解这一问题,同时也便于数据可视化。
PCA(Principal Component Analysis,主成分分析) 是最经典的线性降维方法。它通过正交变换将原始特征投影到方差最大的方向上,保留数据中变异最大的主成分,丢弃方差较小的成分。PCA 的数学本质是对数据协方差矩阵进行特征值分解,取前 k 个最大特征值对应的特征向量作为投影方向。PCA 广泛用于数据压缩、去噪和可视化,但它只能捕捉线性关系,对非线性结构无能为力。
t-SNE(t-Distributed Stochastic Neighbor Embedding) 是一种专门用于数据可视化的非线性降维方法。它通过最小化高维空间和低维空间中样本对之间概率分布的 KL 散度来寻找低维嵌入。t-SNE 在高维空间使用高斯分布衡量相似度,在低维空间使用 t 分布,有效解决了"拥挤问题"。t-SNE 在可视化高维数据(如深度学习特征、单细胞 RNA 数据)时效果出色,但其计算复杂度较高(O(n^2)),且结果对超参数敏感,不适合作为通用的降维预处理步骤。
SVD(Singular Value Decomposition,奇异值分解) 是一种矩阵分解方法,广泛应用于推荐系统(如协同过滤中的矩阵补全)和文本挖掘(LSA 潜在语义分析)。截断 SVD 保留前 k 个最大奇异值对应的成分,可以实现有效的低秩近似和降维。
LDA(Linear Discriminant Analysis,线性判别分析) 与 PCA 的无监督性质不同,LDA 是一种有监督的降维方法(在某些语境下也被归入半监督框架)。它通过最大化类间散度与类内散度的比值来寻找最优投影方向,使得降维后不同类别的样本尽可能分离。
4.5 关联规则学习(Association Rule Learning)
关联规则学习旨在从大规模事务数据库中发现项之间的关联关系,其经典应用场景是购物篮分析------"购买了商品 A 的顾客也倾向于购买商品 B"。
Apriori 算法 是关联规则挖掘的开创性方法,它基于"频繁项集的所有子集也必须是频繁的"这一先验性质,通过逐层搜索的策略先生成频繁项集,再从频繁项集中产生关联规则。评估指标包括支持度(Support)、置信度(Confidence)和提升度(Lift)。Apriori 算法需要多次扫描数据库,在数据量大时效率较低。
Eclat 算法 采用垂直数据格式(TID 列表)和深度优先搜索策略,通过交集运算快速计算项集的支持度,相比 Apriori 减少了数据库扫描次数,在稠密数据集上效率更高。
五、神经网络与深度学习(Neural Network & Deep Learning)
5.1 核心概念
神经网络是一种受生物神经系统启发的计算模型,由大量人工神经元(节点)按层级结构组织而成。每个神经元接收输入信号,进行加权求和后通过激活函数产生输出。深度学习是神经网络的一个子领域,特指包含多个隐藏层的深层神经网络,这些深层结构使得模型能够学习数据的多层次抽象表示。
深度学习的突破性进展始于 2012 年 AlexNet 在 ImageNet 竞赛中的惊人表现,此后在计算机视觉、自然语言处理、语音识别等领域取得了一系列里程碑式的成果。深度学习的成功得益于三大关键要素:大规模数据集的可用性、GPU 等高性能计算硬件的普及,以及激活函数、优化算法、正则化技术等方面的持续创新。从技术角度看,深度学习的本质是表示学习(Representation Learning)------模型自动从原始数据中学习有用的特征表示,而无需依赖人工设计的特征工程。
5.2 思维导图

5.3 卷积神经网络(CNN)
卷积神经网络是专门为处理网格状数据(如图像)而设计的深度学习架构。其核心组件包括卷积层、池化层和全连接层。卷积层通过可学习的卷积核在输入上进行滑动计算,提取局部特征(如边缘、纹理、形状);池化层通过下采样减少特征图的空间尺寸和参数量,增强模型的平移不变性;全连接层将提取到的高级特征映射到最终的输出空间。
CNN 的关键设计理念包括局部连接(每个神经元只关注局部感受野)和权值共享(同一个卷积核在不同位置使用相同权重),这两大特性使得 CNN 相比全连接网络大幅减少了参数量,同时保留了空间结构信息。经典的 CNN 架构经历了从 LeNet(1998)到 AlexNet(2012)、VGGNet(2014)、GoogLeNet/Inception(2014)、ResNet(2015)的演进,其中残差连接(Residual Connection)的引入有效解决了深层网络的梯度消失问题,使得训练数百层的网络成为可能。
CNN 的典型应用场景包括图像分类(ImageNet 竞赛)、目标检测(YOLO、SSD、Faster R-CNN)、语义分割(U-Net、DeepLab)、人脸识别等。在医学影像分析、自动驾驶、工业质检等领域,CNN 也展现出了巨大的应用价值。
5.4 循环神经网络(RNN)
循环神经网络专门用于处理序列数据(如文本、语音、时间序列),其核心特征是具有循环连接,使得网络能够维护一个隐藏状态来"记忆"历史信息。在时间步 ,RNN 接收当前输入 和上一时刻的隐藏状态 ,计算当前隐藏状态 ,从而实现对序列的逐步处理。
然而,标准 RNN 存在严重的"长程依赖"问题------在反向传播过程中,梯度会随时间步的累乘而指数级衰减或爆炸,导致网络难以捕捉长距离的依赖关系。为解决这一问题,研究者提出了两种改进架构:
LSTM(Long Short-Term Memory) 引入了遗忘门(Forget Gate)、输入门(Input Gate)和输出门(Output Gate)三个门控机制,以及一个独立的记忆单元(Cell State)。记忆单元通过加法交互而非乘法交互来传递信息,有效缓解了梯度消失问题,使得 LSTM 能够学习跨越数百个时间步的长程依赖。LSTM 在机器翻译、文本生成、语音识别等任务中取得了突破性进展。
GRU(Gated Recurrent Unit) 是 LSTM 的简化版本,将遗忘门和输入门合并为更新门(Update Gate),并使用重置门(Reset Gate)控制历史信息的遗忘程度。GRU 的参数量约为 LSTM 的 2/3,训练速度更快,在许多任务上取得了与 LSTM 相当甚至更优的表现。
5.5 生成对抗网络(GAN)
生成对抗网络由 Ian Goodfellow 等人在 2014 年提出,是深度生成模型中最具影响力的架构之一。GAN 由两个神经网络组成:生成器(Generator)负责从随机噪声中生成逼真的数据样本,判别器(Discriminator)负责区分真实数据和生成数据。两者在训练过程中相互博弈------生成器努力"骗过"判别器,判别器努力识破生成器的"伪装",这种对抗训练使得生成器逐渐学会生成越来越逼真的数据。
GAN 的训练本质上是一个极小极大优化问题:,其中 是判别器和生成器的对抗损失。GAN 的训练不稳定是众所周知的问题,常见的改进包括 WGAN(使用 Wasserstein 距离替代 JS 散度)、DCGAN(引入卷积结构)、Progressive GAN(渐进式增长训练)和 StyleGAN(风格控制生成)等。GAN 的应用涵盖图像生成、图像超分辨率、风格迁移、数据增强等方向。
5.6 自编码器(Autoencoder)
自编码器是一种无监督的表示学习方法,由编码器(Encoder)和解码器(Decoder)两部分组成。编码器将输入数据压缩到低维的瓶颈层(Bottleneck),解码器再从瓶颈表示重构原始输入。通过最小化重构误差,自编码器迫使瓶颈层学习到数据的压缩表示,这种表示捕获了数据中最本质的结构信息。
自编码器的多种变体赋予其不同的能力:去噪自编码器(Denoising Autoencoder)通过在输入中添加噪声并训练模型恢复原始数据,学习到更加鲁棒的特征表示;变分自编码器(VAE, Variational Autoencoder)引入概率框架,使编码器输出潜在分布的参数,通过重参数化技巧实现端到端训练,VAE 不仅可以用于数据生成,还提供了概率推断的理论基础;稀疏自编码器(Sparse Autoencoder)通过在隐藏层施加稀疏性约束,迫使模型仅激活少量神经元,学习到更加判别性的特征。
六、集成学习(Ensemble Learning)
6.1 核心概念
集成学习的核心思想是"三个臭皮匠顶个诸葛亮"------通过组合多个基学习器(Base Learner)的预测结果来获得比任何单一学习器更优的泛化性能。其理论依据在于:每个基学习器在部分样本上可能犯错,但不同的学习器倾向于犯不同的错误,通过合理组合可以抵消个体误差,提升整体鲁棒性。集成学习的有效性建立在两个关键条件之上:基学习器应具有一定的准确性(优于随机猜测),且基学习器之间应具有多样性(错误不高度相关)。
根据基学习器的生成方式和组合策略,集成学习主要分为三大范式:Bagging、Boosting 和 Stacking/Blending。它们在基学习器的训练方式、依赖关系和组合策略上各有不同,适用于不同的场景和需求。
6.2 思维导图

6.3 Bagging
Bagging(Bootstrap Aggregating)的核心流程是:从原始训练集中通过有放回抽样(Bootstrap Sampling)生成多个不同的子训练集,在每个子训练集上独立训练一个基学习器,最后对所有基学习器的预测结果进行投票(分类)或平均(回归)。由于使用了有放回抽样,每个子训练集大约包含原始数据集 63.2% 的不重复样本,剩余约 36.8% 的样本称为袋外(OOB, Out-of-Bag)样本,可直接用于模型评估,无需额外的验证集。
Bagging 的最大优势在于降低方差。当基学习器是决策树时,由于决策树本身具有高方差、低偏差的特点,Bagging 能够显著提升稳定性。随机森林(Random Forest)是 Bagging 的代表性算法,它在 Bagging 的基础上进一步引入了特征随机性------在每个节点的分裂过程中,只从随机选取的特征子集中选择最优分裂特征,这种"双重随机"策略进一步增强了基学习器之间的多样性,有效降低了集成后的泛化误差。
6.4 Boosting
Boosting 与 Bagging 的独立训练策略不同,它采用串行的方式训练基学习器------每个新的基学习器都重点关注前一轮学习器犯错的样本,通过逐步减少训练误差来提升模型性能。Boosting 的核心思想是将一个弱学习器(略优于随机猜测)提升为强学习器,其理论保证由 AdaBoost 的训练误差上界分析给出。
AdaBoost(Adaptive Boosting) 是最早的实用 Boosting 算法。它通过自适应地调整样本权重来引导后续学习器的训练:被前一轮学习器错误分类的样本权重增加,正确分类的样本权重减少。最终的集成输出是所有基学习器的加权组合,权重由各学习器的训练误差决定。AdaBoost 简洁优雅,具有很强的理论保证,但对噪声和异常值较为敏感。
XGBoost(eXtreme Gradient Boosting) 是当前工业界最流行的机器学习算法之一。它在传统梯度提升树的基础上进行了多项关键改进:使用正则化的目标函数(包含叶子节点数和叶子权重的惩罚项)来控制模型复杂度;采用二阶泰勒展开近似损失函数,收敛更快更准确;支持列采样和行采样增强鲁棒性;内置高效的分裂搜索算法和缓存优化。XGBoost 在各类数据科学竞赛(Kaggle)和工业应用中表现出色,是处理结构化/表格数据的首选算法之一。
LightGBM 由微软团队开发,针对 XGBoost 在大规模数据上的训练效率问题进行了优化。它采用基于直方图的决策树学习算法,将连续特征离散化为直方图,大幅降低了分裂搜索的计算量;使用 Leaf-wise 的生长策略(而非 Level-wise),每次选择增益最大的叶子进行分裂,在相同叶子数下获得更低的误差;支持类别特征的直接处理,无需手动编码。LightGBM 在训练速度和内存占用方面显著优于 XGBoost,特别适合亿级样本的训练场景。
CatBoost 由 Yandex 团队开发,其核心特色在于对类别特征的原生处理。CatBoost 使用有序目标编码(Ordered Target Encoding)来避免目标泄露,并通过有序提升(Ordered Boosting)来克服梯度估计中的预测偏移问题。CatBoost 对超参数不太敏感,开箱即用即可获得优秀的表现,在包含大量类别特征的数据集上尤为出色。
6.5 Stacking / Blending
Stacking 和 Blending 都采用多层模型的架构------第一层的多个基学习器分别对训练数据进行预测,这些预测结果作为新的特征输入到第二层的元学习器(Meta-Learner),由元学习器学习如何最优地组合基学习器的输出。
Stacking 使用 K 折交叉验证来生成第一层学习器的训练数据:将训练集分为 K 折,对每一折使用其余 K-1 折训练基学习器,然后在该折上生成预测。这种策略确保了元学习器的训练数据不会因信息泄露而导致过拟合。Stacking 的灵活性极高,可以使用异质的基学习器(如 SVM、随机森林、XGBoost 的组合),通常能获得比任何单一模型更优的性能。
Blending 是 Stacking 的简化版本,它使用留出法(Hold-out)而非交叉验证来生成元特征。具体做法是将训练集划分为训练子集和验证子集,基学习器在训练子集上训练,在验证子集上生成预测作为元特征。Blending 实现简单,但训练数据的利用率较低。
七、半监督学习与强化学习
7.1 思维导图

7.2 半监督学习(Semi-Supervised Learning)
在现实场景中,获取大量标注数据往往成本高昂(需要领域专家逐条标注),而未标注数据却唾手可得。半监督学习正是为了解决这一矛盾而诞生------它同时利用少量标注数据和大量未标注数据进行学习,在标注数据有限的情况下仍能取得接近全监督学习的性能。
半监督学习的基本假设包括:平滑假设(相近的样本倾向于有相同的标签)、聚类假设(同一聚类中的样本倾向于属于同一类别)和流形假设(高维数据分布在一个低维流形上,相近的流形点具有相似的标签)。这些假设为利用未标注数据提供了理论依据。
半监督 SVM(S3VM) 在标准 SVM 的基础上引入了对未标注数据的约束------要求决策边界避开数据的高密度区域。这一约束基于低密度分隔假设,即决策边界应该穿过特征空间的"空白"区域,而非穿过数据密集的区域。S3VM 的优化问题是非凸的,求解较为困难,常用方法包括连续松弛和标签切换启发式。
自训练(Self-Training) 是最简单的半监督方法:先用标注数据训练一个初始模型,然后用该模型对未标注数据进行预测,将预测置信度高的样本及其伪标签加入训练集,重新训练模型,如此迭代。自训练虽然简单,但面临"错误放大"问题------初始模型的错误预测可能在迭代中被不断强化。协同训练(Co-Training) 通过训练两个基于不同"视图"(特征子集)的分类器来缓解这一问题,两个分类器互为对方提供高置信度的伪标签数据。
半监督学习还包括半监督聚类(利用少量约束信息引导聚类,如必连约束和勿连约束)和半监督降维(在降维过程中保留标注数据的判别信息)等方向。近年来,半监督深度学习(如 Pseudo-Label、Mean Teacher、FixMatch 等)在图像分类和自然语言处理领域取得了显著进展。
7.3 强化学习(Reinforcement Learning)
强化学习是一种截然不同的学习范式:智能体(Agent)通过与环境(Environment)的交互来学习最优策略。在每一步,智能体根据当前状态(State)选择一个动作(Action),环境返回一个奖励信号(Reward)和新的状态。智能体的目标是学习一个策略(Policy),使得长期累积奖励最大化。
强化学习的核心要素可以用马尔可夫决策过程(MDP)来形式化描述:状态空间 、动作空间 、转移概率 、奖励函数 和折扣因子 。智能体的目标是找到最优策略 使得期望累积折扣奖励 最大化。价值函数 和动作价值函数 分别评估状态和状态-动作对的好坏,Bellman 方程提供了递归计算的理论基础。
基于价值的方法 (Value-Based)通过学习动作价值函数 来隐式地确定策略------选择 Q 值最大的动作。Q-Learning 是经典的表格型方法,通过时序差分更新 。DQN(Deep Q-Network) 将深度神经网络与 Q-Learning 结合,使用经验回放(Experience Replay)和目标网络(Target Network)两大创新来稳定训练过程。SARSA 是一种同策略(On-Policy)方法,更新规则为 ,其中 是当前策略在 上选择的动作。
基于策略的方法 (Policy-Based)直接参数化策略 ,通过策略梯度上升来优化期望累积奖励。REINFORCE 使用蒙特卡洛方法估计策略梯度 ,其中 是从时间步 开始的累积折扣奖励。PPO(Proximal Policy Optimization) 是当前最流行的策略梯度算法之一,通过裁剪目标函数限制策略更新幅度,在训练稳定性和样本效率之间取得了良好平衡,是 OpenAI 的默认强化学习算法。
Actor-Critic 方法 结合了基于价值和基于策略的优势:Actor(演员)负责选择动作,Critic(评论家)负责评估动作的好坏。A3C(Asynchronous Advantage Actor-Critic) 使用多个异步线程并行收集经验,加速训练并增强探索。SAC(Soft Actor-Critic) 在标准 Actor-Critic 框架中引入最大熵目标,鼓励策略保持随机性,提升探索能力和鲁棒性。DDPG(Deep Deterministic Policy Gradient) 将 DQN 的思想扩展到连续动作空间,适用于机器人控制等连续决策问题。
强化学习在游戏 AI(AlphaGo 击败世界围棋冠军、OpenAI Five 在 Dota2 中击败职业队伍)、机器人控制(四足机器人行走、机械臂操作)、自动驾驶、资源调度等领域取得了令人瞩目的成就,正在逐步从实验室走向实际应用。
八、机器学习工作流程
一个完整的机器学习项目通常包含以下关键步骤,每个步骤的质量都会直接影响最终模型的性能:
-
问题定义:明确业务目标和建模目标,将业务问题转化为可量化的机器学习问题。这一步决定了后续所有工作的方向,需要与业务方紧密沟通,确定输入特征、输出目标、评估指标和成功标准。
-
数据收集与探索:获取相关数据,进行探索性数据分析(EDA),了解数据的分布特征、缺失情况、异常值和变量间关系。数据质量决定了模型的上限------"Garbage In, Garbage Out"。
-
数据预处理:包括缺失值处理(删除/填充)、异常值检测与处理、数据标准化/归一化、类别编码(One-Hot/Label Encoding/Target Encoding)等。良好的数据预处理能够显著提升模型性能。
-
特征工程:基于领域知识构造新特征、选择关键特征、进行特征变换(对数变换、多项式变换等)。特征工程是机器学习中最具创造性的环节,也是区分优秀从业者的关键能力。
-
模型选择与训练:根据问题类型和数据特征选择合适的算法,使用交叉验证评估模型性能,通过超参数调优寻找最优配置。建议从简单模型(如逻辑回归)开始,逐步尝试更复杂的模型。
-
模型评估:使用独立的测试集评估模型泛化性能。分类任务常用准确率、精确率、召回率、F1 值、AUC-ROC 等指标;回归任务常用 MAE、MSE、RMSE、R² 等指标。
-
模型部署与监控:将训练好的模型部署到生产环境中,持续监控模型性能和数据分布变化,及时发现和处理模型退化问题。定期重新训练或在线学习是维护模型长期有效性的关键策略。
九、总结
机器学习是一个内容丰富、发展迅速的技术领域。本文从整体框架出发,系统地梳理了机器学习的六大分支:监督学习关注从标注数据中学习输入-输出映射;无监督学习致力于发现未标注数据中的内在结构;半监督学习融合两者优势以应对标注数据稀缺的场景;神经网络与深度学习通过深层架构实现强大的表示学习能力;集成学习通过组合多个模型提升整体性能;强化学习开辟了通过与环境交互来优化决策的全新路径。
每个分支下都有其代表性的算法和独特的技术特色。理解这些基本概念和原理,是深入机器学习领域的第一步。在实际应用中,算法的选择没有银弹------需要综合考虑数据特征、问题类型、计算资源和业务约束等多方面因素。建议读者在学习理论的同时,积极动手实践,通过真实项目来加深对算法特性和适用场景的理解。