标题(paper):Deep Clustering with Convolutional Autoencoders
期刊 + 时间 + 有无源代码: nternational Conference on Neural Information Processing - 2017 - 有
作者: Xifeng Guo, Xinwang Liu, En Zhu, and Jianping Yin
方法名及缩写: Deep Convolutional Embedded Clustering (DCEC)
算法框架:
流程图 :
卷积自编码示意图,Conv 卷积层,Flatten平铺操作, h h h 嵌入层,FC 全连接层, DeConv 卷积转置层。这种CAE结构不需要分层预训练。
DCEC流程图 clustering layers可以参考DEC
主要创新点: DCEC中同时利用了CAE和局部结构的优点。个人感觉像是将卷积自编码器和聚类步骤融合。
关键思想是CAE有利于图像特征的学习,并保持数据的局部结构,避免特征空间的失真。
动机: 1、现有的深度聚类算法要么不能很好地利用卷积神经网络,要么不能很好地保留学习到的特征空间中数据生成分布的局部结构。
2、讨论什么类型的神经网络适合于特征提取?特征空间中应该保留数据的哪些属性?的这两个问题。
目标函数:
L
=
L
r
+
γ
L
c
L=L_r+\gamma L_c
L=Lr+γLc
L
r
L_r
Lr是重构损失,
L
r
L_r
Lr是聚类损失,
γ
>
0
\gamma >0
γ>0是控制嵌入空间扭曲程度的系数(本文
γ
=
0.1
\gamma=0.1
γ=0.1)
L c L_c Lc的定义和DEC基本一致。
优化步骤: 首先 γ = 0 \gamma=0 γ=0 预训练参数,预训练后,通过对所有图像的嵌入特征执行k-means来初始化聚类中心。
其次, γ = 0.1 \gamma=0.1 γ=0.1更新CAE的权值,聚类中心,目标分布 P P P(想了解可以查原文,本身文中写的就不多,我感觉基本和DEC优化公式和方法一致)
注解:(优缺点 + 随便想记的内容 )
1、这篇论文可以看作是DEC的改进。作者在文中提到DEC仅考虑了聚类损失,没有考虑编码损失,并且忽略了解码步骤,同时根据聚类结构动态调整编码结构等问题(可以查这篇论文,里面又讨论)。
2、对于卷积网络参数设置上:
c
o
n
v
32
5
→
c
o
n
v
64
5
→
c
o
n
v
128
3
→
F
C
10
\mathrm{conv}_{32}^5\to\mathrm{conv}_{64}^5\to\mathrm{conv}_{128}^3\to\mathrm{FC}_{10}
conv325→conv645→conv1283→FC10
c
o
n
v
n
k
conv^k_n
convnk 表示有
n
n
n个滤波器的卷积层,默认核大小为
k
×
k
k\times k
k×k,步长为2。
Convolutional AutoEncoders 卷积自编码器
组成:编码器encoder f W ( ) f_W() fW()和 解码器decoder g U ( ) g_U() gU()
目标:通过最小化所有样本的输入和输出之间的均方误差(MSE)来找到每个输入样本的代码
min
W
,
U
1
n
∑
i
=
1
n
∥
g
U
(
f
W
(
x
i
)
)
−
x
i
∥
2
2
\begin{aligned}\min_{W,U}\frac1n\sum_{i=1}^n\|g_U(f_W(x_i))-x_i\|_2^2\end{aligned}
W,Uminn1i=1∑n∥gU(fW(xi))−xi∥22
全连接自编码器(一般的自编码器):
f
W
(
x
)
=
σ
(
W
x
)
≡
h
g
U
(
h
)
=
σ
(
U
h
)
\begin{aligned}f_W(x)&=\sigma(Wx)\equiv h\\g_U(h)&=\quad\sigma(Uh)\end{aligned}
fW(x)gU(h)=σ(Wx)≡h=σ(Uh)
x
x
x和
h
h
h是向量,
σ
(
)
\sigma()
σ()是激活函数
卷积自编码器:
f
W
(
x
)
=
σ
(
x
∗
W
)
≡
h
g
U
(
h
)
=
σ
(
h
∗
U
)
\begin{aligned}f_W(x)&=\sigma(x*W)\equiv h\\g_U(h)&=\quad\sigma(h*U)\end{aligned}
fW(x)gU(h)=σ(x∗W)≡h=σ(h∗U)
x
x
x和
h
h
h是矩阵或者张量,
∗
*
∗是卷积操作。
注:1、也可以加入其他约束
Stacked Convolutional AutoEncoders (SCAE)
与SAE相似,都是堆叠多层CAE。