本论文提出了一个无监督的持续学习组件STAM(Self-Taught Associative Memory)
如下图:
上图中,Ci为所有聚类簇的集合。当一个图片Xi输入到这个结构中时,会被打碎成若干个重叠的可接受域(Receptive Fields,RFs)。需要注意的是,每一个STAM结构处理一个可接受域。这些可接受域经过函数c(xi,m)=j=1...∣Ci∣argmin∣∣xi,m−wi,j∣∣的处理会将各个可接受域转为相应的聚类簇。上图中ci(xi,.m)意为第i层的聚类簇中,与xi,.m距离最近的聚类簇(欧氏距离),而xi,m意为第i层,第m个可接受域的输入数据。然后将通过函数c(⋅)处理的的可接受域重组输出为处理后的图片输出为Yi,Yi虽然与Xi具有相同的特征维度,但是因为Xi的每一个可接受域做了分类处理,所以Yi的实际特征维度可能小于Xi。此外,聚类簇的集合可能会更新。没当我们队xi,m进行分类时,若xi,m分类至第i层,第j个聚类簇wi,j,则聚类簇向量wi,j需要进行更新,公式为:
wi,j=αxi,m+(1−α)wi,jwhenc(xi,m)=j
此外,由于持续学习的不确定性,难免乎有新的聚类簇也会动态的生成,它会分成两个步骤判断是都要生成新的聚类簇。更新第j的聚类簇对应的平均值和标准差。
对于输入的可接受域xi,m,如果其与离它最近的聚类簇j,存在以下关系,则可以判定xi,m是一个新的类,以该可接受域初始化产生新的聚类簇,判别准则如下:
但是为了区分极端值与真正的新的类簇,我们可以再做一个判定。若yi+1,m是输出Yi+1的一部分,其对应的是第i层,第m个STAM的输出,计算ci(yi+1,m),并根据上面的判别准则判定yi+1,m是否属于新的类簇,如果yi+1,m与xi,m都是新的类簇,则生成新的聚类簇。如果xi,m是新类簇而y_{i+1,m}不是$,则不生产新的类簇。
当我们对输入的数据x进行最终分类时,遵循以下步骤,这块不难理解就不做解释了:
