在子空间聚类的时候,为了保持最后求出的解非平凡解,需要对对角线元素进行约束
image.png
diag(C)=0
这个在传统优化算法里应该有固定的写法
但是在深度学习优化里怎么写呢?
这个文章的代码里给了说明
https://github.com/panji530/Deep-subspace-clustering-networks
如果用L2正则约束,则不需要约束C对角线元素为0,而如果用L1则需要
将encoder学出来的latent representation Z,在进入解码器之前做如下操作
tf.matmul((C-tf.diag(tf.diag_part(C))),Z)
网友评论