【课堂笔记】标签传播算法Label Propagation Algorithm(LPA)

文章目录

问题背景

标签传播算法 (Label Propagation Algorithm, LPA)主要解决的是数据标注不足 的实际问题。在许多现实世界的机器学习任务中,获取大量标注数据(即带有正确标签的样本)成本高昂,例如需要专家参与(如医疗影像标注)或耗费大量时间(如语音转录)。

未标注数据通常包含有关数据分布的宝贵信息,例如数据点之间的相似性或聚集模式(流形结构)。

LPA通过构建图结构,基于数据的相似性(流形假设:相似的数据点倾向于具有相同标签)将已知标签传播到未标注数据,挖掘未标注数据的潜在结构。这是一种半监督学习的算法。

基本假设

(1)样本可用性假设 :未标记的样本获取成本较低,所以有更多未标记的样本可供选择(相比已标记样本)

(2)流形假设 :数据点在高维空间中分布在一个低维流形 上,相似的数据点(即在流形上靠近的点)更有可能具有相同的标签。

(3)平滑性假设 :模型的预测函数在数据空间中应该是平滑的

(4)簇假设:数据的不同类别形成分离的簇,决策边界应位于低密度区域,而不是穿过高密度区域。

算法步骤

(1)构建图结构

将所有数据点(已标记和未标记,共 M + N M+N M+N 个,其中 M M M 是已标记数据, N N N 是未标记数据)表示为图的节点。

边的权重 w i , j w_{i,j} wi,j 表示节点 i i i 和 j j j 之间的相似度(例如,基于欧氏距离、余弦相似度或高斯核)。通常只连接最近邻节点(通过 k-NN 或 ϵ \epsilon ϵ-邻域方法)以减少计算复杂度。
(2)构建转移矩阵

构造一个 ( M + N ) × ( M + N ) (M+N) \times (M+N) (M+N)×(M+N) 的转移矩阵 T \mathbf{T} T,表示从节点 j j j 到节点 i i i 的归一化转移概率。其中
T i , j = w i , j ∑ k w i , k \mathbf{T}{i,j} = \frac{w{i,j}}{ \underset{k}{\sum}w_{i,k}} Ti,j=k∑wi,kwi,j

T \mathbf{T} T 反映了标签传播的强度,基于数据点之间的相似性。
(3)初始化标签矩阵

定义一个 ( M + N ) × C (M+N) \times C (M+N)×C 的标签矩阵 Y \mathbf{Y} Y,其中 C C C 是类别数。

对于已标记数据, Y \mathbf{Y} Y 的对应行初始化为独热编码(one-hot,例如 [ 1 , 0 , 0 ] [1, 0, 0] [1,0,0] 表示类别 1)。

对于未标记数据, Y \mathbf{Y} Y 的对应行初始化为零向量或均匀分布。
(4)迭代传播标签

迭代更新: Y ← T Y \mathbf{Y} \leftarrow \mathbf{T} \mathbf{Y} Y←TY,即通过转移矩阵传播标签概率。每次迭代后,归一化 Y \mathbf{Y} Y 的每一行,使其表示有效的概率分布。

对于已标记数据,固定其标签(将对应行重新设为独热编码),以防止标签被覆盖。

重复迭代直到 Y \mathbf{Y} Y 收敛(标签概率稳定)或达到最大迭代次数。
(5)输出预测

收敛后, Y \mathbf{Y} Y 的每一行表示对应数据点的类别概率分布。

对未标记数据,取最大概率的类别作为最终预测标签。

数学原理解剖

现在我们有了一张图 G = ( V , E ) \mathbf{G} = (\mathbf{V}, \mathbf{E}) G=(V,E),其中点集 ∣ V ∣ = M + N |\mathbf{V}|=M+N ∣V∣=M+N,边集 E = {   e u , v = ( u , v , w u v )   } \mathbf{E} = \set{e_{u, v} = (u, v, w_{uv})} E={eu,v=(u,v,wuv)},还有了一个标签矩阵 Y ∈ R ( M + N ) × C \mathbf{Y} \in \mathbb{R}^{(M+N) \times C} Y∈R(M+N)×C,一个转移矩阵 T ∈ R ( M + N ) × ( M + N ) \mathbf{T} \in \mathbb{R}^{(M+N) \times (M+N)} T∈R(M+N)×(M+N),我们来分析步骤中矩阵乘法在图上的意义:

(1)独热编码,初始化 :如果某个点 i i i的标签是 2 2 2,标签集合为 {   1 , 2 , 3   } \set{1, 2, 3} {1,2,3},则它的独热编码为 p i ( 0 ) = [ 0 , 1 , 0 ] p^{(0)}_i = [0, 1, 0] pi(0)=[0,1,0],这里实际上表示了它标签的概率分布。

对于这个 i i i(实际标签确定),则它标签为 2 2 2的概率为 100 % 100\% 100%,其余为 0 % 0\% 0%;

对于不确定标签的点,初始化为全零(注意这不是一个合法的概率分布,因为总和不为1,所以后续更新需要不断进行归一化)

(2)迭代更新 : Y ( t + 1 ) = T Y ( t ) \mathbf{Y}^{(t+1)} = \mathbf{T} \mathbf{Y}^{(t)} Y(t+1)=TY(t),每个节点的标签概率变成它所有邻居标签概率的加权平均 ,权重就是边的相似度。

假设某个点第 t t t次迭代的概率分布为 p i ( t ) = [ p i , 1 ( t ) , . . . , p i , C ( t ) ] p^{(t)}i = [p^{(t)}{i,1}, ..., p^{(t)}{i,C}] pi(t)=[pi,1(t),...,pi,C(t)],这是 Y \mathbf{Y} Y的第 i i i行;它对应的转移向量为 T i = [ T i , 1 , . . . , T i , ( M + N ) ] T{i} = [T_{i,1}, ..., T_{i,(M+N)}] Ti=[Ti,1,...,Ti,(M+N)],它是 T \mathbf{T} T的第 i i i行,则下一次更新的概率分布应为:
p i ( t + 1 ) = ∑ M + N k = 1 T i , k p k ( t ) p_{i}^{(t+1)} = \underset{k=1}{\overset{M+N}{\sum}}T_{i, k}p_{k}^{(t)} pi(t+1)=k=1∑M+NTi,kpk(t)

即每个点 k k k根据转移的权重把它们的分布加给点 i i i。于是写成矩阵的样子也就是 Y ( t + 1 ) = T Y ( t ) \mathbf{Y}^{(t+1)} = \mathbf{T} \mathbf{Y}^{(t)} Y(t+1)=TY(t)

(3)归一化 :保证每个点的概率分布总和为 1 1 1,否则不是个合法的概率。

算法收敛性

怎么理解这个算法最终会趋于稳定?这里给出粗略的直观理解。

关键在于有已知标签的点的存在,它们从始至终都是稳定的。而每次更新,不确定的点都会根据相似性从邻居那里获取信息,从而使信息不断在图中散布,稳定性从确定点开始不断影响不确定的点,最终使整张图趋于稳定。

相关推荐
workflower1 分钟前
FDD与其他方法的相似和区别
数据库·算法·需求分析·个人开发
深兰科技1 小时前
廊坊市市长刘媛率队到访深兰科技,推动机器人制造基地与产业投资落地
人工智能·科技·机器人·scala·symfony·深兰科技·廊坊市市长刘媛
沫儿笙1 小时前
发那科机器人在氩弧焊中搭配节气装置的优势
人工智能·机器人
m0_650108245 小时前
【论文精读】CMD:迈向高效视频生成的新范式
人工智能·论文精读·视频扩散模型·高效生成·内容 - 运动分解·latent 空间
电鱼智能的电小鱼5 小时前
基于电鱼 AI 工控机的智慧工地视频智能分析方案——边缘端AI检测,实现无人值守下的实时安全预警
网络·人工智能·嵌入式硬件·算法·安全·音视频
年年测试5 小时前
AI驱动的测试:用Dify工作流实现智能缺陷分析与分类
人工智能·分类·数据挖掘
孫治AllenSun5 小时前
【算法】图相关算法和递归
windows·python·算法
charlie1145141916 小时前
CSS笔记4:CSS:列表、边框、表格、背景、鼠标与常用长度单位
css·笔记·学习·css3·教程
唐兴通个人6 小时前
人工智能Deepseek医药AI培训师培训讲师唐兴通讲课课程纲要
大数据·人工智能
格图素书6 小时前
数学建模算法案例精讲500篇-【数学建模】DBSCAN聚类算法
算法·数据挖掘·聚类