Label propagation

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Zoe_Su/article/details/78479710

label propagation(标签传播)

label propagation 原理

label propagation是一种半监督学习算法,主要基于三种假设:
- 平滑假设: 相似的数据具有相同的label
- 聚类假设: 处于同一聚类下的数据具有相同的label
- 流形假设: 处于同一流行结构下的数据具有相同的label

步骤:

1.构建相似矩阵
2. 标签传播

构建相似矩阵
标签传播算法是基于图模型的,第一步我们需要先构建一个图,图中的每个节点都是一个数据,边表示数据之间的相似度,假设我们所构建的图为全连接图,定义节点i和节点j的相似度(即边权重)为:

wij=exp(||xixj||α2)

其中 α 为超参数。(另外一种构建图的方式是knn图,即只保留每个节点的k近权重,其他边为0,此时的边权重为稀疏的。)
标签传播
标签传播即通过节点间的边传播标签信息,边的权重越大,表示两个节点越相似,此时的概率转移矩阵为:
pij=wijnk=1wik

其中 pij 表示从节点i转移到节点j的概率。
另外假设有M个分类N个样本,其中有label的为N1个,没有label的为N2个,则可以对label构建两个矩阵分别为N1*M的 yl 和N2*M的 yu , yu 由于无标签信息,则可以随机初始化,此时定义 f=[yl,yu]
此时迭代计算过程如下:

  • 计算 f=pf
  • 更新label的标签: fl=yl
  • 重复上述过程直至f收敛

简化计算
如下所示,矩阵P构成为:

P=[pllpulplupuu]

由于 yl 始终不变,因此实际计算的只有:
fupuufu+pulyl

迭代上式至收敛则得到解。
另外,可以直接用如下公式得到解为:
fu=(Ipuu)1pulyl


猜你喜欢

转载自blog.csdn.net/Zoe_Su/article/details/78479710