在Deep Learning中有不同类型的网络结构,不同的网络有不同的应用范围,这些都是与其结构和设计思路相关的。
最常见的网络之一是CNN(Convolutional Neural Network), 在最近几年席卷计算机视觉等相关领域,因为他强大的特征表述能力和对图像处理的得天独厚优势,CNN的设计和训练也是被研究讨论最多的一个话题。

题主提到深度网络中层结构的设计和layer中节点个数的确定,我在这里姑且以CNN的网络结构设计为例讨论。
首先有一些常识知识是在设计一个CNN时需要知道的,我先简单介绍一下cnn的两三种基本操作:
CNN网络中几种基本网络层结构包括:
Convolutional Layer(卷积层)
Convolutional Layer对该层输入数据所做的操作其实是这样的:

如上图,左侧绿色的假设为该层的输入(你可以想象成一个输入的图片),我们假设在这里他的输入size为 W=6, H=6, D=1,代表输入的数据的三个维度粉分别是6,6,1(图像数据如rgb格式图像为3层结构,所以会有3channel的数据,D就可能为不止1)红色区域的为一次卷积操作的region,他会与一个为3*3的权值矩阵做点乘然后做加和映射到一个数值上,他的过程类似于下图:

要注意的一点是,权值矩阵我这里没有画出来,而且权值矩阵在这里我们称他为filters,一层convolutional layer通常是会有多个filters的,原因是在初始化权值矩阵中的权值的时候,我们通常是采用随机生成的办法产生parameters(基于某些特定的分布),越多的parameters显然会让该层网络有更强大的数据表达能力,但是同时会让网络的训练更慢,代价更大。

Pooling Layers(池化层)
Pooling层做的事情的目的其实可以这么理解,这么大的3维矩阵放入计算,后面在training阶段还要算梯度来做优化求解参数,小的图像数据还好,如果是一个医学图像,一言不合就 30003000 ,再来一个20层的网络结构,当然没法训练。所以我们要想办法让这个数据变小一些,不然所有的模型太难训练都是空谈了。
Pooling 的想法很简答,把例如,我把一个3
3的区域拿出来,只用这9个点中的最大值来代替这个区域的值就好了,这就是max pooling层。与此类似,我们还有均值pooling等等。
下面的图应该很好理解pooling:

这个图把pooling操作成为downsampling,中文很多人翻译成下采样,其实就是指的只保留的一部分的图像数据,那么有人可能就会有疑问了,这么做不是会丢失很多图像数据吗?
答案是这个的疑问是非常有道理的,在一些简单的图像分类问题上,丢失一些数据不算什么,我仍然能正确的识别分类,但是在一些segmentation的问题上,尤其是在医学图像要求比较严谨的结果的大前提下,这么丢失数据是不妥的,也会导致不准确的segmentation的出现。有一些手段可以解决这个问题,包括将原始图像和他合并来恢复丢失数据等,这些如果你感兴趣可以看看这篇文章:
Von Eicken, Thorsten, et al. “U-Net: A user-level network interface for parallel and distributed computing.” ACM SIGOPS Operating Systems Review. Vol. 29. No. 5. ACM, 1995.
还有多的不同操作包括
Fully-connected layer
Normalization Layer
我就不啰嗦展开介绍了,你可以参看
CS231n Convolutional Neural Networks for Visual Recognition
或者
LeCun, Yann, Koray Kavukcuoglu, and Clément Farabet. “Convolutional networks and applications in vision.” ISCAS. 2010.
的具体介绍,讲的非常仔细

在设计一个cnn的时候层数怎么确定呢?

数据来决定,有可能你根本就不需要多层结构,一个输入输出层就够了,这就一个线性模型。

层数越多的网络,对数据的表达能力也越强这是好理解的,但是显然并不是层数越多越好,一个是训练成本增加,一个也是如果你的训练数据不够多,你根本就不能training一个这么多层数的网络,这对nodes数也是一样的道理。
但是layers的层数在数据足够多足够hold住的情况下,多加一些不会有什么坏处,至于最多的层数有多少,我这里有一些层数非常深的例子:

1.GoogleNet-22层

GoogleNet是用于image recognition 和 Detection的,他的数据是ImageNetLarge-Scale Visual Recognition Challenge 2014(ILSVRC14).
2. ResNet, 152 layers

“Deep Residual Learning for Image Recognition”
这个网络让它们获得ILSVRC & COCO 2015 competitions的第一名,包括ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation.
所以网络深一些并没有什么坏处,只要你的数据hold的住,机子跑的动,结构要合理。

Deep Learning中的层结构相关推荐

  1. 干货|(DL~3)deep learning中一些层的介绍

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 简介 一.relu层 1.前向传播 2.反向传播 二.dropou ...

  2. Deep Learning 中的 benchmark 与 baseline

    Deep Learning 中的 benchmark 与 baseline benchmark benchmark是一个参考点,通常指一个数据集或一系列标准化的测试任务,用于评估模型的性能.bench ...

  3. deep learning中网络的层数和每层的节点数是如何确定的?

    在Deep Learning中有不同类型的网络结构,不同的网络有不同的应用范围,这些都是与其结构和设计思路相关的. 最常见的网络之一是CNN(Convolutional Neural Network) ...

  4. Deep Learning中如何选择GPU?(一)

    作者:Redflashing 文中图片均来自于NVIDIA官方文档或NVIDIA社区博客 深度学习通常需要大规模的计算需求,作为主要运算硬件的GPU的选择决定了深度学习的体验.但是如何去选择新的GPU ...

  5. 详述Deep Learning中的各种卷积(二)

    作者:Redflashing 本文梳理举例总结深度学习中所遇到的各种卷积,帮助大家更为深刻理解和构建卷积神经网络. 本文将详细介绍以下卷积概念: 2D卷积(2D Convolution) 3D卷积(3 ...

  6. A guide to convolution arithmetic for deep learning中译版

    最近学习CNN(卷积神经网络),导师推荐阅读一篇论文<A guide to convolution arithmetic for deep learning>,论文链接:arXiv.org ...

  7. [深度学习-总结]Deep learning中8大模型介绍与比较(LeNet5,AlexNet,VGG,Inception,MobileNets,ResNet,DenseNet,Senet)

    深度学习 9中模型介绍与比较 0. CNN 结构演化 1. LeNet5 2. AlexNet 3. VGG 为什么使用2个3x3卷积核可以来代替5*5卷积核 4. 1*1卷积 5. Inceptio ...

  8. 深度学习和浅层学习 Deep Learning and Shallow Learning

    由于 Deep Learning 现在如火如荼的势头,在各种领域逐渐占据 state-of-the-art 的地位,上个学期在一门课的 project 中见识过了 deep learning 的效果, ...

  9. 干货丨科普丨大牛的《深度学习》笔记,Deep Learning速成教程

    深度学习,即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支.从快速发展到实际应用,短短几年时间里,深度学习颠覆了语音识别.图像分类. ...

  10. Deep Learning(深度学习)学习笔记整理系列

    一.概述 Artificial Intelligence,也就是人工智能,就像长生不老和星际漫游一样,是人类最美好的梦想之一.虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生& ...

最新文章

  1. 【bzoj1369】[Baltic2003]Gem(树形dp+结论)
  2. SecureCRT如何显示颜色和高亮显示
  3. oracle查询重复数据出现次数
  4. java禁止ie后退_Java开发网 - 【讨论】html页面禁用右键,浏览器后退、刷新,以及相应快捷键...
  5. opencv java 显示图片_【opencv三】利用opencv读取显示图片
  6. 【Android】Android中ContentProvider组件详解
  7. 如何在画面中摆放大量图片
  8. php知识点汇总与解答_PHP操作员能力倾向问题与解答
  9. [导入]mootools框架【三】-Array篇: 主要方法测试实例
  10. input hidden的值存储在哪儿_kafka内核:消息存储模块的工作机制
  11. android 选择多选图片
  12. Linux主进程退出,主进程创建的线程会退出吗?
  13. ios崩溃日志分析,无dSYM文件
  14. Vue使用Upload上传图片报错:TypeError: Cannot create property 'xxx' on string 'xxxx'
  15. 第六节课 pycharm
  16. Linux conda tensorflow-gpu安装及Not creating XLA devices, tf_xla_enable_xla_devices not set相关问题解决
  17. 进程与应用程序的区别
  18. 直流电机PID转速闭环调速控制系统
  19. 音视频基础知识 颜色模型
  20. Windows、Firefox、ideal、Excel下常用快捷键

热门文章

  1. 随机过程(基本概念、平稳随机过程)
  2. 个人计算机显示器配置,怎么看电脑显示器配置
  3. 水逆期自我救赎:MacBook pro进水
  4. php幂函数,PHP-常用函数
  5. Acer 4250G TL 58 Vista 系统装xp系统完全攻略
  6. 在ESC云服务器中部署KodCloud云盘系统(四)
  7. NOIP模拟赛 czy的后宫5
  8. url在html中的作用,所谓的URL到底是什么意思,URL有什么作用
  9. HR套招的十大经典面试问题
  10. 从劳动分工的角度理解CPU、FPGA和ASIC