论文笔记:Deep Embedded Clustering with Data Augmentation

Deep Embedded Clustering with Data Augmentation

1 摘要

文章讲数据增量引入深度嵌入聚类中,提出deep Embedded Clustering with Data Augmentation (DEC-DA)。
首先,用一组增广数据训练一个自动编码器来构造初始特征空间。
然后对嵌入的特征进行聚类损失约束,进一步学习面向聚类的特征。聚类损失由目标(伪标签)和特征学习模型的实际输出组成,
其中目标通过使用非增强数据计算,输出通过增强数据计算。这类似于带数据增强的有监督训练,并期望有助于无监督聚类。

### SimCLR 实现用于深度学习中的聚类 SimCLR 是一种对比学习框架,旨在无监督方式下学习视觉表征。通过最大化不同图像增广视图之间的互信息,SimCLR 能够捕捉数据的本质特征并生成强大的表征向量[^1]。 对于聚类应用而言,在完成预训练阶段之后,可以通过冻结基础编码器网络参数,并在其顶部附加一个轻量级分类头来进行下游任务的学习。具体实现流程如下: #### 数据准备与增强 为了确保模型能够学到鲁棒且具有区分力的特征,需要对输入样本实施一系列随机变换操作,如裁剪、翻转、颜色抖动等。这些处理有助于增加正样本对间的差异性,从而促使模型聚焦于更深层次的内容理解而非表面统计特性。 ```python import tensorflow as tf from tensorflow.keras import layers, models def create_data_augmentation_pipeline(): data_augmentation = tf.keras.Sequential([ layers.RandomFlip("horizontal"), layers.RandomRotation(0.2), layers.RandomContrast(factor=0.5) ]) return data_augmentation ``` #### 构建SimCLR架构 构建双塔结构——两个分支共享相同的骨干网络权重,分别接收同一张原始图片的不同版本作为输入。经过投影头部转换后的输出会被送入损失函数计算部分以评估相似度得分。 ```python class SimCLRLoss(tf.keras.Model): def __init__(self, temperature=0.5): super(SimCLRLoss, self).__init__() self.temperature = temperature def call(self, z_i, z_j): batch_size = tf.shape(z_i)[0] # Normalize the representations along the feature dimension. zi_norm = tf.math.l2_normalize(z_i, axis=-1) zj_norm = tf.math.l2_normalize(z_j, axis=-1) logits_ii = tf.matmul(zi_norm, zi_norm, transpose_b=True) / self.temperature logits_ij = tf.matmul(zi_norm, zj_norm, transpose_b=True) / self.temperature labels = tf.range(batch_size) loss_a = tf.nn.sparse_softmax_cross_entropy_with_logits(labels, logits_ij) loss_b = tf.nn.sparse_softmax_cross_entropy_with_logits(labels, tf.transpose(logits_ij)) total_loss = tf.reduce_mean(loss_a + loss_b) return total_loss ``` #### 应用至聚类场景 当希望利用上述获得的良好初始化状态执行聚类任务时,则可以在微调过程中采用诸如 KMeans 或者 Gaussian Mixture Model 等传统方法直接作用于提取出来的特征空间上;也可以进一步设计端到端可导的形式,比如 DEC(Deep Embedded Clustering),即先让神经网络收敛后再逐步调整目标分布直至稳定下来。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值