七月 上海 | 高性能计算之GPU CUDA培训

7月27-29日三天密集式学习  快速带你入门阅读全文>

正文共1708个字,5张图,预计阅读时间8分钟。

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

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

原文链接:https://www.jianshu.com/p/376b1c99c8e7

查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:

www.leadai.org

请关注人工智能LeadAI公众号,查看更多专业文章

大家都在看

LSTM模型在问答系统中的应用

基于TensorFlow的神经网络解决用户流失概览问题

最全常见算法工程师面试题目整理(一)

最全常见算法工程师面试题目整理(二)

TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络

装饰器 | Python高级编程

今天不如来复习下Python基础

深度学习与TensorFlow:FCN论文学习笔记相关推荐

  1. [置顶]人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)...

    这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...

  2. 【推荐系统多任务学习 MTL】PLE论文精读笔记(含代码实现)

    论文地址: Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized ...

  3. Spiking GATs(基于尖峰神经网络的学习图注意)论文学习笔记

    这一篇论文是我读研期间,本校(安徽大学)计算机学院的江波老师在2022年5月份发表的一篇论文,由于我自己学习的是图神经网络的方向,而且也是我本校的老师所发的paper,所以在此写下我对此篇论文的笔记, ...

  4. 基于深度学习的图像处理算法论文学习

    近年来,深度学习技术得到了巨大的发展,并广泛应用于图像处理领域.相对于许多传统算法,深度学习技术从海量的训练数据中学习到的先验知识具有更强的泛化能力和更复杂的参数化表达,且无需调节算法参数以适应不同的 ...

  5. 深度学习与TensorFlow: VGG论文笔记

    六月 北京 | 高性能计算之GPU CUDA培训 6月22-24日三天密集式学习  快速带你入门阅读全文> 正文共3220个字,11张图,预计阅读时间15分钟. 马毅老师曾说过:"如果 ...

  6. 深度学习与TensorFlow:VGG论文复现

    六月 北京 | 高性能计算之GPU CUDA培训 6月22-24日三天密集式学习  快速带你入门阅读全文> 正文共1856个字,8张图,预计阅读时间12分钟. 上一篇文章我们介绍了下VGG这一个 ...

  7. 【推荐系统多任务学习MTL】ESMM 论文精读笔记(含代码实现)

    论文地址:Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate ...

  8. 【推荐系统多任务学习MTL】MMoE论文精读笔记(含代码实现)

    论文地址: Google KDD 2018 MMOE (内含论文官方讲解视频) PDF Modeling Task Relationships in Multi-task Learning with ...

  9. 深度学习网络量化白皮书论文学习

    量化 A White Paper on Neural Network Quantization 为什么要量化 为了追求性能,神经网络模型的体量不断增大,这给在边缘设备上部署模型造成了困难.因此需要一些 ...

最新文章

  1. arraylist转int数组_五千字的数组拓展,面试官对我竖起大拇指喊停
  2. 【Android】SlidingMenu属性详解(转)
  3. 你的安全设置不允许在您的计算机,你的安全设置不允许网站使用安装在你的计算机上的ActiveX控件...
  4. linux待机流程,Linux睡眠喚醒機制--Kernel態
  5. SqlServer Split功能函数
  6. 【飞秋】关于结构体和结构体指针的P-INVOKE
  7. 面向小姐姐的编程——java面相对象之抽象
  8. AttributeError: module 'pip' has no attribute 'main'
  9. 如何用编程方式实现创建一个页面并替换掉站点首页
  10. 谈谈流计算中的『Exactly Once』特性
  11. DELPHI2007 安装ACTIVEX插件的方法
  12. Streamlit--python中的前端
  13. CIC滤波器的设计与仿真
  14. C++(指针和高级指针)-上篇
  15. 小程序z-index层级问题view组件坑,z-index失效
  16. 【医疗人工智能论文】使用深度强化学习的腹腔镜机器人辅助训练
  17. python爬虫 爬取京东网页
  18. 各航空公司的网址和电话
  19. UIView 的部分圆角的设定
  20. Spring Security OAuth2实现使用JWT

热门文章

  1. android 自定义dialog 定时关闭,Android 快速实现自定义 Dialog
  2. linux emacs 编译,linux 编译安装emacs和安装spacemacs
  3. datagrid如何获取一行数据中的某个字段值_或许是全网最全面关于数据库面试题...
  4. 优先级调度算法实现_React17新特性:启发式更新算法
  5. print(程序结束)_Python入门丨print()函数
  6. python runtime错误_Python错误:没有名为RuntimeE的模块
  7. mysql 5.6.20 优化_mysql 5.6.20 占用内存超大,大概400M左右
  8. Django项目搭建(基础)
  9. 吴恩达机器学习课程笔记章节二单变量线性回归
  10. 012-Java有几种文件拷贝方式?哪一种最高效?