论文笔记: 可解释神经聚类 (鹏鹏专用)

这篇具有很好参考价值的文章主要介绍了论文笔记: 可解释神经聚类 (鹏鹏专用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要: 分享对论文的理解, 原文见 Xi Peng, Yunfan Li, Ivor W. Tsang, Hongyuan Zhu, Jiancheng Lv, Joey Tianyi Zhou,
XAI Beyond Classification: Interpretable Neural Clustering, Journal of Machine Learning Research 22 (2021) 1–27.
源码地址: www.pengxi.me.

1. 符号系统

符号风格按照本贴作者的习惯有所修改.

符号 涵义 备注
X = { x 1 , … , x n } \mathbf{X} = \{\mathbf{x}_1, \dots, \mathbf{x}_n\} X={x1,,xn} 数据集 n n n 为实例个数
x i = ( x i 1 , … , x i m ) \mathbf{x}_i = (x_{i1}, \dots, x_{im}) xi=(xi1,,xim) 对象/实例 m m m 为特征个数/数据维度
S = { S 1 , … , S k } \mathcal{S} = \{\mathbf{S}_1, \dots, \mathbf{S}_k\} S={S1,,Sk} 聚类结果/数据集划分 k k k 为簇数
S i = { s i 1 , … , s i n i } ⊂ X \mathbf{S}_i = \{\mathbf{s}_{i1}, \dots, \mathbf{s}_{i n_i}\} \subset \mathbf{X} Si={si1,,sini}X i i i ∑ i = 1 k n i = n \sum_{i = 1}^k n_i = n i=1kni=n
Ω = ( ω 1 , … , ω k ) \mathbf{\Omega} = (\mathbf{\omega}_1, \dots, \mathbf{\omega}_k) Ω=(ω1,,ωk) 聚类中心点
ω i = ( ω i 1 , … , ω i m ) \mathbf{\omega}_i = (\omega_{i1}, \dots, \omega_{im}) ωi=(ωi1,,ωim) ω i = 1 n i ∑ j = 1 n i s i j \mathbf{\omega}_i = \frac{1}{n_i}\sum_{j=1}^{n_i} \mathbf{s}_{ij} ωi=ni1j=1nisij S i \mathbf{S}_i Si 的均值
W = ( w i j ) k × m \mathbf{W} = (w_{ij})_{k \times m} W=(wij)k×m 2 2 2 Ω \mathbf{\Omega} Ω 主要是改个形式方便神经网络

下面给出一个数据集:

0.2, 0.3
0.1, 0.4
0.5, 0.6
0.6, 0.8
0.7, 0.2
0.9, 0.3

其中, n = 6 n = 6 n=6, m = 2 m = 2 m=2. (鹏鹏作业: 做一个 n = 20 n = 20 n=20 的人造数据集.)

2. k k kMeans 算法

k k kMeans 的目标是求一个最优聚类方案 (划分)
S ∗ = arg min ⁡ S ∑ j = 1 k ∑ x i ∈ S j ∥ x i − ω j ∥ 2 2 . (1) \mathcal{S}^* = \argmin_{\mathcal{S}} \sum_{j = 1}^k \sum_{\mathbf{x}_i \in \mathbf{S}_j} \|\mathbf{x}_i - \mathbf{\omega}_j\|_2^2. \tag{1} S=Sargminj=1kxiSjxiωj22.(1)
换言之, 就是最大化各簇的"内聚性"之和.
为尽可能降低理解难度, 解释如下:
∥ x i − ω j ∥ 2 2 = ∑ l = 1 m ( x i l − ω j l ) 2 = ( x i 1 − ω j 1 ) 2 + ⋯ + ( x i m − ω j m ) 2 , (2) \|\mathbf{x}_i - \mathbf{\omega}_j\|_2^2 = \sum_{l = 1}^m (x_{il} - \omega_{jl})^2 = (x_{i1} - \omega_{j1})^2 + \dots + (x_{im} - \omega_{jm})^2, \tag{2} xiωj22=l=1m(xilωjl)2=(xi1ωj1)2++(ximωjm)2,(2)
即为两个 m m m 维数据点的欧氏距离平方.

k k kMeans 算法描述如下:

  • Step 1. 随机选择 k k k 个数据点, 获得 Ω \mathbf{\Omega} Ω;
  • Step 2. 对于任意 x i ∈ X \mathbf{x}_i \in \mathbf{X} xiX, 计算它到 Ω \mathbf{\Omega} Ω 中各点的距离, 并确定其簇编号为
    c ( x i ) = arg min ⁡ j ∥ x i − ω j ∥ 2 2 , (3) c(\mathbf{x}_i) = \argmin_j \|\mathbf{x}_i - \mathbf{\omega}_j\|_2^2, \tag{3} c(xi)=jargminxiωj22,(3)
    由此构建 S j = { x i ∣ c ( x i ) = j } \mathbf{S}_j = \{\mathbf{x}_i \vert c(\mathbf{x}_i) = j\} Sj={xic(xi)=j}.
  • Step 3. 计算各簇的新中心集合 Ω ′ = ( ω 1 ′ , … , ω k ′ ) \mathbf{\Omega}' = (\mathbf{\omega}_1', \dots, \mathbf{\omega}_k') Ω=(ω1,,ωk), 其中
    ω i ′ = 1 n i ∑ j = 1 n i s i j ; (4) \mathbf{\omega}_i' = \frac{1}{n_i}\sum_{j=1}^{n_i} \mathbf{s}_{ij}; \tag{4} ωi=ni1j=1nisij;(4)
  • Step 4. 如果 Ω ′ = Ω \mathbf{\Omega}' = \mathbf{\Omega} Ω=Ω, 则表示收敛, 算法结束; 否则转到 Step 2.

该算法的 Java 代码见 第 56 天: kMeans 聚类.

  • 问题1: k k kMeans 能保证收敛到全局最优解吗?
    回答: 不能. 不同的初始聚类中心选择, 可能导致不同的聚类结果.
    (鹏鹏作业: 根据所构造例子, 用 k k kMeans 获得两种聚类结果, 并展示其过程.)
  • 问题2: 优化问题 (1) 式是一个困难问题吗?
    回答: 它是一个 NP 完全问题.
    (鹏鹏作业: 找到相应的证明, 可以不去手动证明, 贴图即可.)
  • 问题 3: 簇确定后, 为什么聚类中心点的计算为 (3) 式, 用其它的点会不会导致 (1) 式更小?
    (鹏鹏作业: 自己去证明.)

3. 用神经网络来实现

将 (1) 式改写为:
min ⁡ ∑ i = 1 n ∑ j = 1 k I j ( x i ) ∥ x i − ω j ∥ 2 2 , (5) \min \sum_{i = 1}^n \sum_{j = 1}^k \mathcal{I}_j(\mathbf{x}_i) \|\mathbf{x}_i - \mathbf{\omega}_j\|_2^2, \tag{5} mini=1nj=1kIj(xi)xiωj22,(5)
其中 I j ( x i ) \mathcal{I}_j(\mathbf{x}_i) Ij(xi) 对于任意一个 i i i 而言, 仅有一个 j j j 所对应的值为 1 1 1, 其余 j j j 对应的值为 0 0 0. 可以把它写成一个 n × k n \times k n×k 矩阵, 如:
I = ( 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 ) , \mathcal{I} = \left( \begin{array}{llll} 1 & 0 & 0\\ 0 & 1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 1\\ 0 & 0 & 1\\ 0 & 1 & 0\\ \end{array} \right), I= 101000010001000110 ,
它表示对象被划分为 S = { { x 1 , x 3 } , { x 2 , x 6 } , { x 4 , x 5 } } \mathcal{S} = \{\{\mathbf{x}_1, \mathbf{x}_3\}, \{\mathbf{x}_2, \mathbf{x}_6\}, \{\mathbf{x}_4, \mathbf{x}_5\}\} S={{x1,x3},{x2,x6},{x4,x5}}. 我认为使用 I i j \mathcal{I}_{ij} Iij 可能比 I j ( x i ) \mathcal{I}_j(\mathbf{x}_i) Ij(xi) 这种函数形式更好看一点.
(鹏鹏作业: 根据程序运行结果, 把自己数据对应的布尔矩阵写出来.)

注意 (5) 式与 (1) 式等价. 为了便于优化, 将该布尔矩阵换成一个小数矩阵, 其中原来为 0 0 0 的值不变, 1 1 1 则成为一个 ( 0 , 1 ] (0, 1] (0,1] 区间的小数. 先把它理解为一个隶属度 (cluster membership) 吧, 越接近聚类中心的点, 该值越接近 1 1 1.

将 (2) 式改写为

∥ x i − ω j ∥ 2 2 = ∑ l = 1 m ( x i l − ω j l ) 2 = ∑ l = 1 m x i l 2 − 2 x i l ω j l + ω j l 2 = ∥ x i ∥ 2 2 − 2 ω j T x i + ∥ ω j ∥ 2 2 , (6) \begin{array}{ll}\|\mathbf{x}_i - \mathbf{\omega}_j\|_2^2 & = \sum_{l = 1}^m (x_{il} - \omega_{jl})^2\\ & = \sum_{l = 1}^m x_{il}^2 - 2 x_{il}\omega_{jl} + \omega_{jl}^2 \\ & = \|\mathbf{x}_i\|_2^2 - 2\mathbf{\omega}_j^{\mathsf{T}}\mathbf{x}_i + \|\mathbf{\omega}_j\|_2^2, \end{array}\tag{6} xiωj22=l=1m(xilωjl)2=l=1mxil22xilωjl+ωjl2=xi222ωjTxi+ωj22,(6)
这里使用转置符号 T \mathsf{T} T 是为了支撑内积的计算.

β i = ∥ x i ∥ 2 2 , (7) \beta_i = \|\mathbf{x}_i\|_2^2, \tag{7} βi=xi22,(7)
它是 x i \mathbf{x}_i xi 与坐标原点距离的平方, 在聚类算法执行过程中不变, 因此可以看作是一个常数.
b j = ∥ ω j ∥ 2 2 , (8) b_j = \|\mathbf{\omega}_j\|_2^2, \tag{8} bj=ωj22,(8)
ω i \mathbf{\omega}_i ωi 与坐标原点距离的平方, 在聚类算法执行过程改变.
w j = 2 ω j . (9) \mathbf{w}_j = 2\mathbf{\omega}_j. \tag{9} wj=2ωj.(9)
因此 (6) 式进一步被改造成
∥ x i − ω j ∥ 2 2 = β i − w j T x i − b j . (10) \|\mathbf{x}_i - \mathbf{\omega}_j\|_2^2 = \beta_i - \mathbf{w}_j^{\mathsf{T}}\mathbf{x}_i - b_j. \tag{10} xiωj22=βiwjTxibj.(10)

I i j = exp ⁡ ( − ∥ x i   − ω j ∥ 2 2 / τ ) ∑ j = 1 k exp ⁡ ( − ∥ x i   − ω j ∥ 2 2 / τ ) , (11) \mathcal{I}_{ij} = \frac{\exp\left(- \|\mathbf{x}_i\ - \mathbf{\omega}_j \|_2^2 / \tau \right)}{\sum_{j=1}^k \exp\left(- \|\mathbf{x}_i\ - \mathbf{\omega}_j \|_2^2 \right / \tau)}, \tag{11} Iij=j=1kexp(xi ωj22/τ)exp(xi ωj22/τ),(11)
如果某一数据点与自己的簇中心越近, 则分子越大; 离别人的簇中心越远, 则分子越小. 且该数据取值区间为 ( 0 , 1 ) (0, 1) (0,1). 其中 τ \tau τ 为温度因子 (可能与模拟退火法相关).
(鹏鹏作业: 根据 (11) 式及自己的例子计算 I \mathcal{I} I 矩阵, 分别设置 τ = 0.1 , 0.5 , 0.9 \tau = 0.1, 0.5, 0.9 τ=0.1,0.5,0.9 各计算一次.)
实际上, (11) 式为 softmax 函数的一种扩展, 它在神经网络中很常用.

简单起见, 仅考虑单个样本 x i \mathbf{x}_i xi 的损失.
L i = ∑ j L i j = ∑ j I i j ( β i − w j T x i − b j ) (12) \mathcal{L}_i = \sum_j \mathcal{L}_{ij} = \sum_j \mathcal{I}_{ij} \left(\beta_i - \mathbf{w}_j^{\mathsf{T}}\mathbf{x}_i - b_j\right)\tag{12} Li=jLij=jIij(βiwjTxibj)(12)

论文笔记: 可解释神经聚类 (鹏鹏专用)
图 1. 损失函数的计算

图 1 展示了对应于 (12) 式的损失函数计算实现方式.

z i j = − β i + w j T x i + b j z_{ij} = - \beta_i + \mathbf{w}_j^{\mathsf{T}}\mathbf{x}_i + b_j zij=βi+wjTxi+bj
L i = − ∑ j exp ⁡ ( z i j / τ ) ∑ j = 1 k exp ⁡ ( z i j / τ ) z i j = − ∑ j f ( z i j ) (12) \begin{array}{ll}\mathcal{L}_i & = - \sum_j \frac{\exp(z_{ij} / \tau)}{\sum_{j=1}^k \exp(z_{ij} / \tau)} z_{ij}\\ & = - \sum_j f(z_{ij}) \end{array} \tag{12} Li=jj=1kexp(zij/τ)exp(zij/τ)zij=jf(zij)(12)

因此, 优化目标可以写为
max ⁡ ∑ j f ( z i j ) , where  z i j = − β i + w j T x i + b j . (13) \begin{array}{l} \max \sum_{j} f(z_{ij}),\\ \textrm{where } z_{ij} = - \beta_i + \mathbf{w}_j^{\mathsf{T}}\mathbf{x}_i + b_j. \end{array} \tag{13} maxjf(zij),where zij=βi+wjTxi+bj.(13)
然而, 这里的 z i j z_{ij} zij 中, w j \mathbf{w}_j wj b j b_j bj 相互依赖 (耦合), 无法进行有效的优化. 为此, 必须在训练阶段将拆开.

使用支持向量机类似的方案, 将这里的常数和 b j b_j bj 归一化, 同时 ω j = ω j / ∥ ω j ∥ \mathbf{\omega}_j = \mathbf{\omega}_j / \|\mathbf{\omega}_j\| ωj=ωj/∥ωj, 可以获得
L i = ∑ j I i j ( 2 − w j T x i ) (14) \mathcal{L}_i = \sum_j \mathcal{I}_{ij} \left(2 - \mathbf{w}_j^{\mathsf{T}}\mathbf{x}_i\right) \tag{14} Li=jIij(2wjTxi)(14)

论文笔记: 可解释神经聚类 (鹏鹏专用)
图 2. 权重归一化与梯度归一化

如图 2 所示, 进行式 (14) 的权重归一化之后, 向量的模被控制在单位长度, 以免趋近于无穷; 梯度归一化之后, 变化量被控制在一定范围, 类似于梯度下降时使用的步长, 以避免抖动并保证收敛.

论文笔记: 可解释神经聚类 (鹏鹏专用)
图 3. 端到端训练网络.

现在将聚类嵌入到一个编码-解码器结构中, 令

L = L r e c + L c l u = ∑ i ∥ x i − g ( h ( x i ) ) ∥ 2 2 + λ ∑ i , j I i j ( 2 − w j T h ( x i ) . ) \mathcal{L} = \mathcal{L}_\mathrm{rec} + \mathcal{L}_\mathrm{clu} = \sum_{i} \|\mathbf{x}_i - g(h(\mathbf{x}_i))\|_2^2 + \lambda \sum_{i, j} \mathcal{I}_{ij} \left(2 - \mathbf{w}_j^{\mathsf{T}}h(\mathbf{x}_i). \right) L=Lrec+Lclu=ixig(h(xi))22+λi,jIij(2wjTh(xi).)
其中 h ( ⋅ ) h(\cdot) h() g ( ⋅ ) g(\cdot) g() 分别为编码、解码函数.文章来源地址https://www.toymoban.com/news/detail-490180.html

  • rec 表示 reconstruction, clu 表示 clustering, 也就是说, 同时考虑数据重建与聚类的损失.
  • 使用编码 (本质是特征提取) 后的特征进行聚类, 有可能是将原始空间中非球形的簇变换到接近球形;
  • 这里使用 h h h 代替原文的 f f f 是为了避免与 (13) 式的 f f f 冲突.
  • 论文里面设置 λ = 0.01 \lambda = 0.01 λ=0.01, 不知道为什么如此小, 聚类效果如此不重要吗? (鹏鹏作业: 在实际数据上运行, 看两个损失的比例.)

4. Model Explainability vs. Interpretable Model

  • 前者是模型可解释性, 即获得的中间结果, 最终结果是否可以被强行解释.
  • 后者是可解释模型, 即模型本身的机制是否可解释的.

到了这里,关于论文笔记: 可解释神经聚类 (鹏鹏专用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《python深度学习》笔记(二十):神经网络的解释方法之CAM、Grad-CAM、Grad-CAM++、LayerCAM

    原理 优点 缺点 GAP 将多维特征映射降维为一个固定长度的特征向量 ①减少了模型的参数量;②保留更多的空间位置信息;③可并行计算,计算效率高;④具有一定程度的不变性 ①可能导致信息的损失;②忽略不同尺度的空间信息 CAM 利用最后一个卷积层的特征图×权重(用

    2024年02月05日
    浏览(39)
  • 专用神经网络处理器芯片,神经网络芯片概念股

    2012年,公司整体改制为股份有限公司;2016年12月1日,公司在上海证券交易所主板挂牌上市。 2、佳都科技:佳都科技(PCI)创立于1986年,总部位于中国广州,在中国30多个区域设有分公司或办事处,员工超过2000人,拥有科学家研发团队,设立了佳都科技全球人工智能技术研

    2024年02月07日
    浏览(51)
  • 论文阅读1--A Survey on Incomplete Multi-view Clustering(不完全多视图聚类的调查)阅读笔记

    目录 写在前面(知识补充) 0.Abstract 1.Introduction 2. FUNDAMENTALS AND PRELIMINARY CONCEPTS 3. MATRIX FACTORIZATION BASED IMC(基于矩阵分解的IMC) 4. KERNEL LEARNING BASED IMC(基于内核学习的IMC) 5.GRAPH LEARNING BASED IMC(基于图学习的IMC) 6.DEEP LEARNING BASED IMC(基于深度学习的IMC) 7. EXPERIMENTS(实验部分)

    2024年02月05日
    浏览(56)
  • 【论文笔记】图神经网络采样相关工作整理9.19

    GraphSAGE NIPS2017 论文:Inductive Representation Learning on Large Graphs 目前引用数:11628 本文提出了一种称为GraphSAGE的新的图嵌入方法,该方法可以在大型图上进行高效的无监督和有监督学习。GraphSAGE通过学习如何从节点的局部邻域中聚合特征信息来生成节点的嵌入。该方法可以处理具

    2024年02月07日
    浏览(38)
  • 【聚类算法】带你轻松搞懂K-means聚类(含代码以及详细解释)

    聚类是一个将数据集中 在某些方面相似的数据成员 进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为 无监督学习 。 k均值聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。给定一个数据点集合和需要

    2024年02月01日
    浏览(36)
  • 论文摘要生成器手机版?论文修改神器

    宝子们在做科学基金项目申请书时,特别强调的一点是宝子们必须明确说明课题相对于现有研究成果的 独特学术价值和应用潜力 。这意味着, 所提出的学术和应用价值不应是泛泛之谈,而应突出其独特性,这正是通过深入分析学术历史和最新研究动态得出的。 因此,为了有

    2024年04月25日
    浏览(52)
  • 图神经网络论文笔记(一)——北邮:基于学习解纠缠因果子结构的图神经网络去偏

    作者 :范少华 研究方向 :图神经网络 论文标题 : 基于学习解耦因果子结构的图神经网络去偏 论文链接 :https://arxiv.org/pdf/2209.14107.pdf         https://doi.org/10.48550/arXiv.2209.14107   大多数图神经网络(GNNs)通过学习输入图和标签之间的相关性来预测不可见图的标签。然而,

    2024年02月07日
    浏览(43)
  • 经典神经网络论文超详细解读(八)——ResNeXt学习笔记(翻译+精读+代码复现)

    今天我们一起来学习何恺明大神的又一经典之作:  ResNeXt(《Aggregated Residual Transformations for Deep Neural Networks》) 。这个网络可以被解释为 VGG、ResNet 和 Inception 的结合体,它通过重复多个block(如在 VGG 中)块组成,每个block块聚合了多种转换(如 Inception),同时考虑到跨层

    2024年02月03日
    浏览(51)
  • 经典神经网络论文超详细解读(六)——DenseNet学习笔记(翻译+精读+代码复现)

    上一篇我们介绍了ResNet:经典神经网络论文超详细解读(五)——ResNet(残差网络)学习笔记(翻译+精读+代码复现) ResNet通过短路连接,可以训练出更深的CNN模型,从而实现更高的准确度。今天我们要介绍的是 DenseNet(《Densely connected convolutional networks》) 模型,它的基本

    2024年02月03日
    浏览(56)
  • 【论文笔记合集】卷积神经网络之深度可分离卷积(Depthwise Separable Convolution)

    本文作者: slience_me 我看的论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 假设输入为D F ×D F ×M,输出为输入为D F ×D F ×N,卷积核为D K ×D K ×M,共有N个卷积核进行卷积操作 下图为标准的卷积过程,每个卷积核对输入的向量进行卷积操作,得到一个

    2024年01月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包