一、 核心思想
这篇论文的核心思想是提出一种名为 SLSD (Self-Labeling and Self-Distillation) 的深度无监督特征选择方法。它旨在解决传统方法的几个关键痛点:1) 依赖线性模型,表达能力有限;2) 聚类时使用原始高维特征,易受噪声和无关特征干扰;3) 忽略特征间的冗余性。
SLSD的创新之处在于将伪标签学习、深度神经网络和自知识蒸馏(Self-KD) 三者有机结合,形成一个相互促进的闭环系统:
- 深度伪标签生成:首先,通过自监督预训练(如掩码重建)学习一个编码器(Encoder),以从原始数据中提取低维、非线性且信息丰富的表示。然后,基于这些高质量的表示进行聚类(如K-means),并结合神经网络的预测输出,动态地、迭代地优化伪标签。
- 自知识蒸馏驱动的特征选择:构建一个标准的神经网络(称为FSNet),由编码器和预测器(Predictor)组成,并引入一个全局特征选择器 sss。同时,引入一个“依赖子网络”(Dependency Subnet),它只使用FSNet所选特征的一个局部子集 smaxKs_{maxK}smaxK。自知识蒸馏的目标是迫使子网络的预测输出 y~\tilde{y}y~ 与FSNet的预测输出 y^\hat{y}y^ 保持一致。这个过程有两个关键作用:
- 全局探索:FSNet和 l1l_1l1 正则化(∥s∥1\|s\|_1∥s∥1)负责全局评估所有特征的判别能力。
- 局部多样性挖掘:子网络为了用更少的特征模仿FSNet的输出,必须选择与FSNet所选特征集不同但同样有效的特征,从而自动去除冗余,提升特征子集的多样性。
这两个过程交替进行:更好的伪标签能指导FSNet选出更具判别性的特征;而更具判别性和多样性的特征又能反过来生成更准确的伪标签,形成一个性能不断提升的正向循环。
二、 目标函数
SLSD的优化过程分为两个阶段:参数初始化和监督微调。其核心目标函数在监督微调阶段定义。
1. 参数初始化阶段的目标函数
该阶段通过自监督学习预训练编码器 θ\thetaθ,目标函数如下:
minθ,ψ1,ψ2∑iLBCE(mi,m^i)+ζ∥xi−x^i∥22 \min_{\theta, \psi_1, \psi_2} \sum_{i} \mathcal{L}_{BCE}(m_i, \hat{m}_i) + \zeta \|x_i - \hat{x}_i\|_2^2 θ,ψ1,ψ2mini∑LBCE(mi,m^i)+ζ∥xi−x^i∥22
其中:
- mim_imi 是用于损坏样本 xix_ixi 的二进制掩码向量。
- m^i=vψ1∘fθ(x~i)\hat{m}_i = v_{\psi_1} \circ f_\theta(\tilde{x}_i)m^i=vψ1∘fθ(x~i) 是掩码向量估计器对掩码的预测。
- x^i=vψ2∘fθ(x~i)\hat{x}_i = v_{\psi_2} \circ f_\theta(\tilde{x}_i)x^i=vψ2∘fθ(x~i) 是特征向量估计器对原始样本的重建。
- LBCE\mathcal{L}_{BCE}LBCE 是二元交叉熵损失。
- ζ\zetaζ 是平衡两个损失项的超参数。
2. 监督微调阶段的目标函数
这是SLSD的核心。它交替优化伪标签 {yi}\{y_i\}{yi} 和神经网络参数 {s,θ,W}\{s, \theta, W\}{s,θ,W}。
-
步骤一:更新伪标签 {yi}\{y_i\}{yi}
该步骤结合了聚类结果和FSNet的预测,目标函数为:
minC,{yi}∑i=1N∥fθ(Sxi)−Cyi∥22+γLCE(yi,y^i) \min_{C, \{y_i\}} \sum_{i=1}^{N} \|f_\theta(Sx_i) - Cy_i\|_2^2 + \gamma \mathcal{L}_{CE}(y_i, \hat{y}_i) C,{yi}mini=1∑N∥fθ(Sxi)−Cyi∥22+γLCE(yi,y^i)
其中:
- CCC 是聚类中心矩阵。
- S=Diag(s)S = \text{Diag}(s)S=Diag(s) 是全局特征选择矩阵。
- y^i\hat{y}_iy^i 是FSNet对样本 iii 的预测概率。
- LCE\mathcal{L}_{CE}LCE 是交叉熵损失。
- γ\gammaγ 是平衡聚类损失和预测损失的超参数。
- 约束条件为 yi∈{0,1}Cy_i \in \{0, 1\}^Cyi∈{0,1}C 且 1Tyi=11^Ty_i = 11Tyi=1,即 yiy_iyi 是one-hot向量。
该问题有闭式解:
yi(j)={1,if j=argminh={1,...,C}∥fθ(Sxi)−ch∥22−γlogy^i(h)0,otherwise y_i^{(j)} = \begin{cases} 1, & \text{if } j = \arg\min_{h=\{1,...,C\}} \|f_\theta(Sx_i) - c_h\|_2^2 - \gamma \log \hat{y}_i^{(h)} \\ 0, & \text{otherwise} \end{cases} yi(j)={1,0,if j=argminh={1,...,C}∥fθ(Sxi)−ch∥22−γlogy^i(h)otherwise -
步骤二:更新神经网络参数 {s,θ,W}\{s, \theta, W\}{s,θ,W}
该步骤是SLSD的精华,结合了监督学习和自知识蒸馏:
mins,θ,W∑i=1N(LCE(yi,y^i)+βLCE(y^T,i,y~T,i))+α∥s∥1 \min_{s, \theta, W} \sum_{i=1}^{N} \left( \mathcal{L}_{CE}(y_i, \hat{y}_i) + \beta \mathcal{L}_{CE}(\hat{y}_{T,i}, \tilde{y}_{T,i}) \right) + \alpha \|s\|_1 s,θ,Wmini=1∑N(LCE(yi,y^i)+βLCE(y^T,i,y~T,i))+α∥s∥1
其中:
- y^i\hat{y}_iy^i 是FSNet的预测:y^i=softmax(WTfθ(Sxi))\hat{y}_i = \text{softmax}(W^T f_\theta(Sx_i))y^i=softmax(WTfθ(Sxi))。
- y~i\tilde{y}_iy~i 是子网络的预测:y~i=softmax(WTfθ(SmaxKxi))\tilde{y}_i = \text{softmax}(W^T f_\theta(S_{maxK}x_i))y~i=softmax(WTfθ(SmaxKxi)),其中 SmaxK=Diag(smaxK)S_{maxK} = \text{Diag}(s_{maxK})SmaxK=Diag(smaxK),smaxKs_{maxK}smaxK 是从 sss 中选取得分最高的 KKK 个特征构成的向量。
- y^T,i\hat{y}_{T,i}y^T,i 和 y~T,i\tilde{y}_{T,i}y~T,i 是经过温度 TTT 软化后的概率分布,即 y^T,i(j)=softmax(zi(j)/T)\hat{y}_{T,i}^{(j)} = \text{softmax}(z_i^{(j)} / T)y^T,i(j)=softmax(zi(j)/T),其中 zi=WTfθ(Sxi)z_i = W^T f_\theta(Sx_i)zi=WTfθ(Sxi)。
- α\alphaα 控制特征选择器 sss 的稀疏度。
- β\betaβ 控制自知识蒸馏项的权重。
该目标函数的三项分别起到以下作用:
- LCE(yi,y^i)\mathcal{L}_{CE}(y_i, \hat{y}_i)LCE(yi,y^i):监督损失,确保FSNet能根据当前伪标签进行准确预测。
- βLCE(y^T,i,y~T,i)\beta \mathcal{L}_{CE}(\hat{y}_{T,i}, \tilde{y}_{T,i})βLCE(y^T,i,y~T,i):自知识蒸馏损失,迫使子网络模仿FSNet的输出,从而在局部挖掘特征多样性。
- α∥s∥1\alpha \|s\|_1α∥s∥1:稀疏正则化,促使不重要的特征权重 s(j)s^{(j)}s(j) 趋近于零。
三、 目标函数详细的优化过程
论文的优化算法(Algorithm 1)是一个迭代的交替优化过程。
算法 1: Self-Labeling Self-Distillation Feature Selection
输入: 数据集 D={xi}i=1N\mathcal{D}=\{x_i\}_{i=1}^ND={xi}i=1N,正则化参数 α,β,ζ,γ\alpha, \beta, \zeta, \gammaα,β,ζ,γ,掩码概率 ppp,伪类数量 CCC,选定特征数 KKK,温度 TTT,最大训练轮数 EEE。
输出: KKK 个最具多样性和判别性的特征。
-
初始化:
- 通过求解自监督目标函数 (8) 来预训练编码器参数 θ\thetaθ。
- 在编码器的输出上运行K-means聚类,生成初始伪标签 {yi}i=1N\{y_i\}_{i=1}^N{yi}i=1N。
- 随机初始化FSNet的其他参数 {s,W}\{s, W\}{s,W}(sss 从均匀分布采样,WWW 从正态分布采样)。
-
重复 以下步骤直到收敛或达到最大轮数 EEE:
- 步骤A: 更新NN参数。通过优化目标函数 (4) 来更新 {s,θ,W}\{s, \theta, W\}{s,θ,W}。论文采用 Adam 优化器和反向传播来实现。在此过程中,全局选择器 sss 和局部选择器 smaxKs_{maxK}smaxK 通过FSNet和子网络进行交互:子网络根据 sss 的得分选择特征,而FSNet则作为约束,确保被选特征具有全局判别性。
- 步骤B: 更新伪标签。固定聚类中心 CCC,根据公式 (9) 更新伪标签 {yi}\{y_i\}{yi}。
- 步骤C: 更新聚类中心。固定伪标签 {yi}\{y_i\}{yi},根据公式 (10) 更新聚类中心 CCC:cj=(1/∣Cj∣)∑i∈Cjfθ(Sxi)c_j = (1/|C_j|) \sum_{i \in C_j} f_\theta(Sx_i)cj=(1/∣Cj∣)∑i∈Cjfθ(Sxi),其中 CjC_jCj 是属于第 jjj 个伪类的样本集合。
-
输出结果: 对每个特征的得分 ∥s(j)∥\|s^{(j)}\|∥s(j)∥ 进行降序排序,选择排名前 KKK 的特征。
时间复杂度分析:
假设FSNet每层最大节点数为 D^\hat{D}D^,自监督预训练最大轮数为 E1E_1E1,K-means最大迭代次数为 E2E_2E2。则总时间复杂度为 O(D^2N(E+E1)+QCN(E2+E))O(\hat{D}^2N(E + E_1) + QCN(E_2 + E))O(D^2N(E+E1)+QCN(E2+E)),其中 QQQ 是编码器输出的维度。
四、 主要的贡献点
作者在论文中总结了三个主要贡献,我们可以进一步提炼为:
- 提出了一种新颖的深度无监督特征选择框架 (SLSD):该框架首次将自知识蒸馏机制引入无监督特征选择领域。它不是简单地使用自编码器进行数据重建,而是利用分类神经网络和动态优化的伪标签来选择与下游任务(如分类/聚类)更相关的特征。
- 设计了高效的自标签生成与优化机制:通过自监督预训练获得高质量的非线性数据表示,再结合聚类结果和模型预测输出来动态地、迭代地优化伪标签。这种方法生成的伪标签比直接在原始数据或线性投影上聚类得到的标签更可靠。
- 通过自知识蒸馏实现特征多样性与模型自提升:引入的子网络和自蒸馏损失项,不仅能够在局部挖掘特征多样性,有效去除冗余特征,还能利用FSNet预测中蕴含的丰富类间相似性知识(例如,数字“9”可能被误判为“7”或“8”的概率),从而提升模型本身的泛化能力和判别力。实验表明,这种自蒸馏机制能同时优化伪标签和选定的特征子集,带来显著的性能提升。
五、 算法的实现过程详细解释
SLSD算法的实现可以清晰地分为两个阶段:
第一阶段:参数初始化 (Initialization Phase)
-
数据损坏与预训练:
- 对于每个样本 xix_ixi,生成一个随机的二进制掩码向量 mim_imi(每个元素从伯努利分布 Bernoulli(p)Bernoulli(p)Bernoulli(p) 采样)。
- 根据公式 x~i=mi⊙xˉi+(1−mi)⊙xi\tilde{x}_i = m_i \odot \bar{x}_i + (1 - m_i) \odot x_ix~i=mi⊙xˉi+(1−mi)⊙xi 生成损坏样本。其中,xˉi\bar{x}_ixˉi 的第 jjj 个特征是从数据集中随机选取的另一个样本的第 jjj 个特征。
- 构建一个神经网络,包含一个编码器 fθf_\thetafθ 和两个独立的预测头:一个用于预测掩码 vψ1v_{\psi_1}vψ1,另一个用于重建原始特征 vψ2v_{\psi_2}vψ2。
- 使用 RMSProp 优化器,通过最小化目标函数 (8) 来联合训练 θ,ψ1,ψ2\theta, \psi_1, \psi_2θ,ψ1,ψ2。经过300个epoch的训练后,编码器 fθf_\thetafθ 能够学习到数据的内在结构和特征间的相关性。
-
生成初始伪标签:
- 将所有原始样本 xix_ixi 输入到预训练好的编码器 fθf_\thetafθ 中,得到低维表示 fθ(xi)f_\theta(x_i)fθ(xi)。
- 在这些低维表示上运行标准的 K-means 算法(聚类数为 CCC),得到初始的伪标签 {yi}\{y_i\}{yi}。
-
初始化其他参数:
- 全局特征选择器 sss 的每个元素从均匀分布 U[0.999999,0.9999999]U[0.999999, 0.9999999]U[0.999999,0.9999999] 中随机初始化。
- 预测器的权重矩阵 WWW 从均值为0、标准差 ψ=0.005\psi=0.005ψ=0.005 的正态分布 N(0,ψ2)N(0, \psi^2)N(0,ψ2) 中初始化。
第二阶段:监督微调 (Supervised Fine-tuning Phase)
此阶段是算法的核心,通过交替优化来不断提升模型。
-
更新神经网络参数 (FSNet 和 Subnet):
- 固定当前的伪标签 {yi}\{y_i\}{yi} 和聚类中心 CCC。
- 构建计算图:输入样本 xix_ixi,首先通过全局选择器 S=Diag(s)S = \text{Diag}(s)S=Diag(s) 得到选中特征 SxiSx_iSxi,然后通过编码器 fθf_\thetafθ 和预测器 fWf_WfW 得到FSNet的预测 y^i\hat{y}_iy^i。
- 同时,从 sss 中选出得分最高的 KKK 个特征,构成局部选择器 SmaxKS_{maxK}SmaxK,得到子集特征 SmaxKxiS_{maxK}x_iSmaxKxi,再通过同一个编码器 fθf_\thetafθ 和预测器 fWf_WfW 得到子网络的预测 y~i\tilde{y}_iy~i。(注意:子网络与FSNet共享 θ\thetaθ 和 WWW,区别仅在于输入特征是全局选中的还是局部选中的)。
- 计算总损失:∑i(LCE(yi,y^i)+βLCE(y^T,i,y~T,i))+α∥s∥1\sum_{i} \left( \mathcal{L}_{CE}(y_i, \hat{y}_i) + \beta \mathcal{L}_{CE}(\hat{y}_{T,i}, \tilde{y}_{T,i}) \right) + \alpha \|s\|_1∑i(LCE(yi,y^i)+βLCE(y^T,i,y~T,i))+α∥s∥1。
- 使用 Adam 优化器,通过反向传播更新参数 {s,θ,W}\{s, \theta, W\}{s,θ,W}。学习率初始设为0.01。在此过程中,sss 的梯度会受到三项损失的共同影响,使得它既能选出判别性强的特征,又能保证这些特征具有多样性(以便子网络能成功模仿)。
-
更新伪标签:
- 固定刚更新的网络参数 {s,θ,W}\{s, \theta, W\}{s,θ,W}。
- 对于每个样本 iii,计算其在当前特征子集下的表示 fθ(Sxi)f_\theta(Sx_i)fθ(Sxi)。
- 根据闭式解公式 (9) 重新分配其伪标签 yiy_iyi。该公式综合考虑了该样本到各个聚类中心的距离和FSNet对其的预测置信度(−γlogy^i(h)-\gamma \log \hat{y}_i^{(h)}−γlogy^i(h)),从而实现对K-means聚类结果的“自校正”。
-
更新聚类中心:
- 固定刚更新的伪标签 {yi}\{y_i\}{yi}。
- 对于每个伪类 jjj,根据公式 (10) 重新计算其聚类中心 cjc_jcj,即该类所有样本在当前特征表示下的均值。
-
迭代与收敛:
- 重复执行步骤1、2、3,直到损失函数收敛或达到预设的最大训练轮数 EEE(论文中设为200)。
- 最终,根据全局选择器 sss 中各特征的得分 ∥s(j)∥\|s^{(j)}\|∥s(j)∥ 进行排序,选取分数最高的前 KKK 个特征作为最终的特征子集。
通过上述实现过程,SLSD成功地将自监督学习、伪标签优化和自知识蒸馏融为一体,构建了一个强大的无监督特征选择器。