我正在使用TensorFlow来理解卷积自动编码器。我已经实现了一个简单的单层自动编码器:
输入(尺寸:95x95x1)--->编码(使用32个5x5滤波器进行卷积)--->潜在表示(维度:95x95x1x32)--->解码(使用绑定权重)--->重建输入(维度:95x95x1)
输入是黑白边缘图像,即RGB图像边缘检测的结果。
我随机初始化滤波器,然后训练模型以最小化损耗,其中损耗定义为输入和重建输入的均方误差。
loss = 0.5*(tf.reduce_mean(tf.square(tf.sub(x,x_reconstructed))))
经过1000步训练后,我的损失收敛,网络能够很好地重建图像。但是,当我可视化学习过滤器时,它们与随机初始化的过滤器看起来并没有太大差别!但是过滤器的值从训练步骤变为训练步骤。
我原本期望至少水平和垂直边缘滤镜。或者,如果我的网络正在学习"身份过滤器"我本以为过滤器都是白色的还是什么?
有没有人对此有任何想法?或者有什么建议我可以做些什么来分析正在发生的事情?我应该在解码之前包括池和depooling层吗?
谢谢!
P / S:我在RGB图像上尝试了相同的模型,并且滤镜看起来也是随机的(就像随机的颜色斑点一样)。