深度学习与TensorFlow:FCN论文学习笔记

这篇文章陆陆续续看了快两周,其中也遇到了自己很多的知识的漏洞,踩了很多坑,这里希望能够和大家说一说,也希望大家可以分享一下自己的看法.

1:FCN基本思路

自从CNN成功之后,很多人都在尝试使用CNN进行图像分割,个人认为CNN最厉害的地方是他的多层结构可以自动提取学习的特征,并且将其学习,并且将提取的这些特征进行分类,但是我们当用CNN进行图像分割的时候,CNN的这项优势反而变成了劣势,因为在特征提取时丢失了一些细节,反倒没有办法指出某些像素点属于那些物体,而FCN跟传统的CNN进行像素分割不同,FCN是试图从抽象的这些抽象的特征中恢复每个像素的类别,也就是从物体的分类到像素点级别的分类,这可以说是一个很大的突破.

2:end-to-end模型怎么理解?

在论文阅读中,我们多次发现读者强调FCN是end-to-end的,这一个部分我觉得用NLP的流程思路去想想还是挺有意思的.在我们之前的NLP对话系统中,往往是由很多个模块组成的,每一个模块单独执行一块任务,这些模块合在一起就构成了整个系统,这样有些面向对象的思想,但是这样每一个模块质量的好坏将直接影响到下一个步骤甚至是整个任务,这是非端到端的.

现在到了深度学习了,深度学习的模型直接在训练过程中从输入数据开始,到达输出端就会有一个输出结果,这样和真实的结果之间就会有一个误差值,这个误差会经过反向传播之后不断进行迭代,每层进行微调,直到我们的模型误差达到一个合理的范围.

最后通俗的说,端到端模型就是输入原始数据,经过模型,获得你想要的结果.

3:FCN基本结构

FCN将传统CNN中的全连接层转化成一个个的卷积层

在上图中,我们可以看到FCN将传统的CNN中的三层全连接层全部修改为卷积层,卷积核的大小(通道数,宽,高)分别为(4096,1,1)、(4096,1,1)、(1000,1,1)。所有的层都是卷积层,所以叫做FCN.

但是我们熟悉卷积原理我们应该知道,每一次卷积都是对图像的一次缩小,每一次缩小带来的是分辨率越低,图像越模糊,而在第一部分我们知道FCN是通过像素点进行图像分割,那FCN是怎么解决的这一个问题?

答案是上采样,比如我们在3次卷积后,图像分别缩小了2 4 8倍,因此在最后的输出层,我们需要进行8倍的上采样,从而得到原来的图像大小.而上采样本身就是一个反卷积实现的,论文中的解释:卷积的forward、backward操作对调,也就是转置卷积.

上图是这个卷积和反卷积上采样的过程:所说的是对第5层的输出(32倍放大)反卷积到原图大小,得到的结果还是不够精确,一些细节无法恢复。于是Jonathan将第4层的输出和第3层的输出也依次反卷积,分别需要16倍和8倍上采样,结果就精细一些了。

有对反卷积不理解的同学可以去看看知乎的提问,如果通俗易懂的解释反卷积?

从论文中得到的结果来看,从32倍,16倍,8倍到最终结果,结果越来越精细.

4:优点和不足

优点:

1:模型的拓展性简单

主要结构与很多模型都类似,基本上现在的采用CNN的模型都可以通过将全连接层转换为卷积层来转化为全卷机模型,这样就可以输出空间的映射.

2:速度快速,高效

因为避免了由于使用像素块而带来的重复存储和计算卷积的问题。

缺点:

1:结果不够精细

从上图中来看,进行8倍上采样虽然比32倍的效果好了很多,但是上采样的结果还是比较模糊和平滑,对图像中的细节不敏感.

2:没有考虑像素之间的关系,缺乏空间一致性.

5:展望

FCN虽然有一些缺点,但是我们更应该关注他的优点,关注他启发性的思路,通过像素与像素之间的关系来去将图像进行分割,比如有一些学者采用了FCN+CRF的结合,这都是一些大胆的创新,值得我们学习.

引用资料:

1:FCN学习笔记 https://zhuanlan.zhihu.com/p/34453588

2:什么是 end-to-end 神经网络? https://www.zhihu.com/question/51435499

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

【深度森林第三弹】周志华等提出梯度提升决策树再胜DNN

882
来自专栏机器之心

训练深度神经网络失败的罪魁祸首不是梯度消失,而是退化

1945
来自专栏大数据挖掘DT机器学习

支持向量机SVM入门详解:那些你需要消化的知识

出自:嘉士伯的Java小屋 http://www.blogjava.net/ (一)SVM的八股简介 支持向量机(Support Vector Machine)...

3438
来自专栏机器学习算法全栈工程师

《机器学习》笔记-特征选择与稀疏学习(11)

如今机器学习和深度学习如此火热,相信很多像我一样的普通程序猿或者还在大学校园中的同学,一定也想参与其中。不管是出于好奇,还是自身充电,跟上潮流,我觉得都值得试一...

1094
来自专栏专知

【AlphaGo Zero 核心技术-深度强化学习教程笔记07】策略梯度

【导读】Google DeepMind在Nature上发表最新论文,介绍了迄今最强最新的版本AlphaGo Zero,不使用人类先验知识,使用纯强化学习,将价值...

2734
来自专栏社区的朋友们

短视频分类进化:从 LR 到 LSTM

为了跟上这波趋势,我使用深度学习中的 LSTM 网络对短视频分类进行了尝试,并与目前使用的传统分类方法(LR)进行对比,的确取得了更好的效果。

2.3K1
来自专栏人工智能LeadAI

深度学习与TensorFlow:FCN论文学习笔记

这篇文章陆陆续续看了快两周,其中也遇到了自己很多的知识的漏洞,踩了很多坑,这里希望能够和大家说一说,也希望大家可以分享一下自己的看法.

1133
来自专栏人工智能头条

深度学习性能提升的诀窍

2136
来自专栏AI科技评论

干货 |「论文笔记」用于在线视频理解的高效卷积网络

AI 科技评论按:本文为上海交通大学林天威为 AI 科技评论撰写的独家稿件,未经AI科技评论许可不得转载。

931
来自专栏人工智能

6种机器学习算法要点

本文旨在为人们提供一些机器学习算法,这些算法的目标是获取关于重要机器学习概念的知识,同时使用免费提供的材料和资源。当然选择有很多,但哪一个是最好的?哪两个互相补...

2039

扫码关注云+社区