论文《Unsupervised Continual Learning And Self-Taught Associative Memory Hierarchies》解读

本论文提出了一个无监督的持续学习组件STAM(Self-Taught Associative Memory)
如下图:

论文《Unsupervised Continual Learning And Self-Taught Associative Memory Hierarchies》解读

上图中,CiC_i为所有聚类簇的集合。当一个图片XiX_i输入到这个结构中时,会被打碎成若干个重叠的可接受域(Receptive Fields,RFs)。需要注意的是,每一个STAM结构处理一个可接受域。这些可接受域经过函数c(xi,m)=arg minj=1...Cixi,mwi,jc(x_{i,m})=\argmin_{j=1...|C_i|} ||x_{i,m}-w_{i,j}||的处理会将各个可接受域转为相应的聚类簇。上图中ci(xi,.m)c_i(x_{i,.m})意为第ii层的聚类簇中,与xi,.mx_{i,.m}距离最近的聚类簇(欧氏距离),而xi,mx_{i,m}意为第ii层,第mm个可接受域的输入数据。然后将通过函数c()c(·)处理的的可接受域重组输出为处理后的图片输出为YiY_iYiY_i虽然与XiX_i具有相同的特征维度,但是因为XiX_i的每一个可接受域做了分类处理,所以YiY_i的实际特征维度可能小于XiX_i。此外,聚类簇的集合可能会更新。没当我们队xi,mx_{i,m}进行分类时,若xi,mx_{i,m}分类至第ii层,第jj个聚类簇wi,jw_{i,j},则聚类簇向量wi,jw_{i,j}需要进行更新,公式为:
wi,j=αxi,m+(1α)wi,jwhenc(xi,m)=j w_{i,j}=\alpha x_{i,m}+(1-\alpha)w_{i,j} when c(x_{i,m})=j
此外,由于持续学习的不确定性,难免乎有新的聚类簇也会动态的生成,它会分成两个步骤判断是都要生成新的聚类簇。更新第jj的聚类簇对应的平均值和标准差。

论文《Unsupervised Continual Learning And Self-Taught Associative Memory Hierarchies》解读

对于输入的可接受域xi,mx_{i,m},如果其与离它最近的聚类簇jj,存在以下关系,则可以判定xi,mx_{i,m}是一个新的类,以该可接受域初始化产生新的聚类簇,判别准则如下:

论文《Unsupervised Continual Learning And Self-Taught Associative Memory Hierarchies》解读

但是为了区分极端值与真正的新的类簇,我们可以再做一个判定。若yi+1,my_{i+1,m}是输出Yi+1Y_{i+1}的一部分,其对应的是第ii层,第mm个STAM的输出,计算ci(yi+1,m)c_i(y_{i+1,m}),并根据上面的判别准则判定yi+1,my_{i+1,m}是否属于新的类簇,如果yi+1,mxi,my_{i+1,m}与x_{i,m}都是新的类簇,则生成新的聚类簇。如果xi,mx_{i,m}是新类簇而y_{i+1,m}不是$,则不生产新的类簇。

当我们对输入的数据xx进行最终分类时,遵循以下步骤,这块不难理解就不做解释了:
论文《Unsupervised Continual Learning And Self-Taught Associative Memory Hierarchies》解读