AutoEncoder(自编码器)之风雨调参路

    xiaoxiao2021-04-17  273

        早在一年多前就接触到了自编码器这个简单巧妙的深度学习模型,还曾编写过简单的基于MNIST的自编码器。但是因为觉得其思想简单,就扔入武器库中任其生锈。

        一年后的今天,居然因为当初的不求甚解赔付了巨额罚单。。。

        任务如下:手语识别项目的大致思路是将视频编码成为二维向量,之后对其 Covariance Matrix 进行 SVD,保留前k大的奇异值,将该数据映射到其空间对应的 Grassmann Manifold 中,之后通过求标准正交基与该流形上的点的夹角以得到该流行的描述子,最后送进分类器做分类。

        那么作为万里长征第一步,视频的编码显得尤其重要。我的第一个尝试是VAE,结果发现重建视频太过模糊,加上对VAE的train和调试过程并没有太多的工程经验,就愉快地改用AE。However,半小时完成的代码经过半天的训练加上那看似牛逼哄哄收敛的loss函数这些酷炫操作在最终test结果面前显得格外的苍白和尴尬。No matter how various the inputs are, the outputs stay similar to each other!!! 我想当然地对AE中我为了加快收敛速度而添加的Batch Normalization层怒目而视,怀疑是它们导致了输出的ability of discrimination如此感人。然而接下来的实验证明了我是Naive的初级炼丹师,无论如何调参,如何添加减少bn的数量,模型一直坚持着它那蠢笨如猪的重建输出,人工智障之称有过之而无不及。

        组会偶然收到来自老师的炼丹秘籍,是Stanford视觉组的大佬总结的各种奇技淫巧。我看了不免热血沸腾,似乎找到了炼丹真谛。收缩数据集!先过拟合!然而模型以它坚韧不拔的精神继续保持其智障观点 no matter how small the training set is。我佛了。

        今天通过可视化隐含层 value,卷积层与全连接层的增减调试,再加上对其他网络模型的参考,终于得出结论:

    对于图像AutoEncoder,卷积层和反卷积层是保持其信息独特性的重要操作,过早的进入全连接层会导致存在显著区别的区域稀释于相同的大背景,导致网络对图片差异缺乏敏感,容易输出同样的图片。

         放几张图片来展示一下今晚的调试成果:

    (以上是隐含层可视化结果,编码的是相邻帧的图片,可以看出其相似性和区别性都得到了体现)

    (以上就是AE的重建效果啦)

     

    Research is life, you need to put your heart to it.

    申请季加油吧少年!


    最新回复(0)