使用自动编码器进行特征提取并将子特征分配给类

数据挖掘 深度学习 特征选择 特征提取 特征工程 自动编码器
2022-03-11 08:17:56

我有一个数据集,其中包含不同类别的N记录和D数字属性。C我使用堆叠自动编码器进行分类任务的特征提取:它采用输入向量,并将其映射到隐藏表示 ( )。xRdyRdd<d

我的问题是:如果我们将最中间层的输出(即)作为我们的特征集,对于每类数据(),如何我们意识到这个特征集的哪个子集对识别类的影响最大。 yRdciCmi

例如:对于 MNIST,我们有N=60000D=784C=10具有这种架构的自动编码器:

d=784
inp = Input(shape=(d,))
x = Dense(d, activation='relu')(inp)
x = Dense(d//2, activation='relu')(x)
x = Dense(d//8, activation='relu')(x)
y = Dense(d//128, activation='relu')(x)
x = Dense(d//8, activation='relu')(y)
x = Dense(d//2, activation='relu')(decoded)
x = Dense(d, activation='sigmoid')(x)
model = Model(input_img, z)

产生一个例如,在这里我们看到了 layer的 digit和的输出yR6y59

  class  y_1    y_2     y_3     y_4     y_5    y_6
  9      1.09   9.59    1.58    8.47    1.14   7.25
  9      2.13   1.34    4.00    8.59    1.53   1.36
  5      7.19   7.52    4.58    5.04    1.09   5.35
  5      9.80   1.55    1.46    5.06    6.49   3.51

如果我们将层 y 连接到softmax密集层:

out = Dense(num_classes, activation='softmax')(y)
encoded = Model(input_img, out)

新模型encoded为我们提供了关于98%. 那么,如果我们考虑新的表示,y作为一个有效提取的特征向量,将这个特征向量的一个子集分配给每个数字是否合理?y或者,将向量与C不同类相关联的正确方法是什么?

0个回答
没有发现任何回复~