如何使用fashion_mnist上的变体自动编码器消除潜在空间中的空白

时间:2020-02-03 16:25:57

标签: python machine-learning autoencoder

我对可变自动编码器有疑问。我使用了这段代码(http://louistiao.me/listings/vae/variational_autoencoder.py.html),并将2“ from keras.datasets import mnist”更改为“ from keras.datasets import fashion_mnist”,以将fashion_mnist用作数据集。

现在我有一个问题,就是我对潜在空间的结果不满意。不同类别之间存在差距(见图1)。

Figure 1: Result with initial Architecture

然后我在编码器和解码器上增加了两个额外的层,并得到了差距较小的结果(见图2)

Figure 2: Result with changes Architecture

在这里您可以看到我如何编码附加层:

decoder = Sequential()
decoder.add(Dense(intermediate_dim2, input_dim = latent_dim, activation='relu'))
decoder.add(Dense(intermediate_dim1, input_dim = intermediate_dim2, activation='relu'))
decoder.add(Dense(intermediate_dim, input_dim = intermediate_dim1, activation='relu'))
decoder.add(Dense(original_dim, activation='sigmoid'))

#Encoder Architecture
x = Input(shape=(original_dim,))
h = Dense(intermediate_dim, activation='relu')(x)
h = Dense(intermediate_dim1, activation='relu')(h)
h = Dense(intermediate_dim2, activation='relu')(h)

z_mu = Dense(latent_dim)(h)
z_log_var = Dense(latent_dim)(h)

z_mu, z_log_var = KLDivergenceLayer()([z_mu, z_log_var])
z_sigma = Lambda(lambda t: K.exp(.5*t))(z_log_var)

因此,当我们将图1与图2进行比较时,可以看到更少的间隙。我的问题是:是否有更好的方法来消除差距?

0 个答案:

没有答案