当前位置: 代码迷 >> 综合 >> 【Paper Note】Convolutional Clustering for Unsupervised Learning 论文理解
  详细解决方案

【Paper Note】Convolutional Clustering for Unsupervised Learning 论文理解

热度:23   发布时间:2023-12-16 23:01:07.0

前言


我们接触的大多数深度神经网络都需要大量的含有标签的数据作为输入,通过成千上万次的迭代训练,使神经网络模型学习到特征规则,从而完成生成、分类、识别等任务,而现实的世界,有标签的数据量有限,多数情况下需要人工标注数据,尽管已经有了像ImageNet这样优质的开源数据集,但对于事物的多样性和深度神经网络而言还是远远不够的,当年李飞飞教授和她的学生标注ImageNet数据集时候也是费尽心思,因此,对于深度神经网络而言,如果能够使用无监督学习算法对数据进行预处理,进而减少甚至去掉数据标注的任务,对于深读神经网络而言具有重要意义。这篇paper就是从这个角度出发,讨论了用卷积聚类进行处理,并以STL-10和MNIST数据集进行验证。
深度神经网络需要大量数据输入进行训练,而标注数据又具有一定的困难性,因此近些年来的不少研究为此正在努力尝试,像是k-means聚类等算法对数据进行处理,这篇paper提出了convolutional clustering的思想,在卷积网络和去监督学习之间基于k-means技术应用在图片识别上。卷积网络通过增加网络的宽度和深度来提高模型的准确率,因此尝试将无监督学习算法与深度卷积神经网络相结合。

早期的工作建议在patch级别进行稀疏编码和稀疏建模,而忽略了filter以卷积的方式为人所用的事实,这种方法导致了重复的filter,这些filter彼此间都是相互转换的版本,为了解决这个问题,使用对比差异训练的convolutional Restricted Boltzmann Machine和convolutional sparse coding methods两种方法被提出(两种方法未接触过,就没翻译)。

使用k-means的filter在近期的研究中获得极大关注,是由于它在预处理和编码方案过程中得到了具有竞争力的结果,同时,卷积的方式对于提取输入图片特征的作用效果明显。但随之而来的问题是——维度的诅咒,随着输入数据维度的增加,k-means算法准确性逐渐降低,于是不断的有人提出无监督算法、随机连接、分组相似特征等方法,这些方法增加了额外的网络层结构,使算法得以提升。

原理

首先说一下这个模型的结构,可以分成两个层,中间通过Connection Matrix相连接,每个层的结构与CNN基本结构相同,都是经过卷积(Convolution)、池化(max-pooling)、激励函数(Activation Function)三部分,不同的地方在于第二层时候对Feature Maps进行了分组。结构如下图:

输入图片大小为:3x96x96,经过第一个滤波器,第一个滤波器设置参数为:96x3x5x5,即:96个(3,5,5)大小的滤波器,strides=1,padding=“valid“,这样经过卷积之后生成尺寸为(96,92,92),然后经过池化操作,选用max-pooling操作,尺寸为:2x2,strides=1,随后通过ReLU激励函数,得到(96,46,46)的feature maps,之后进行Connection Matrix操作,这个操作之后就摄取之前的卷积结果,主要是为了使用无监督的方法,较少标签数据量,避免过拟合。接下来为第二层,先将feature maps进行分组,4个一组,原本有96个feature maps,分成24组,之后采取64个4x5x5的滤波器,因此整个filter的尺寸为:24x64x4x5x5。

Experimental Results of Multi-Layer Networks

Paper中建立了一个两层的网络,第一层含有96个size为13x13的filter,卷积层设置步长为4,之后激励函数ReLU。
之后预定义一个含有4个连续feature map的组,每组64个filter。
第二层选择4x5x5的filter,池化过程:6x6,之后激励函数ReLU,最后接一个线性分类器,两层,512个隐含神经元,设有dropout。
应用在MNIST和CIFAR数据集上面,效果明显: