首先,深度学习究竟在计算什么?

如果你在健一个人脸识别,或者是人脸检测系统,深度神经网络所做的事就是当你输入一张脸部的照片,如下图你就可以把深度神经网络的第一层当成一个特征探测器,或者边缘探测器。在这个例子中会建立大概有20个隐藏单元的深度神经网络,看看是怎么针对这张图进行计算的。

隐藏单元就是图中的小方块,它会去找这张照片里边缘的方向,那么这个隐藏单元可能是在找水平方向的边缘在哪里。

之后的课程里,我们会专门介绍这种识别的卷积神经网络,你可以先把神经网络的第一层当作是图,然后去找这张照片的各个边缘,我们可以把照片里组成边缘的像素放在一起看,然后它可以把被探测到的边缘组合成面部的不同部分。比如说,可能有一个神经元会去找眼睛的部分,另外还有别的在找鼻子部分,然后把许多这样的边缘结合在一起,就可以开始探测人脸的不同部分,最后再把这些部分放在一起,比如鼻子眼睛下巴,就可以识别或是探测不同的人脸。

直觉上可以把这种神经网络的前几层当做探测简单的函数,比如边缘;之后把它们和后几层结合在一起,那么总体上就能学习到更多复杂的函数。这些图的意义,在学习卷积神经网络的时候再深入了解,还有一个技术性的细节需要理解的是,边缘探测器其实相对来说都是针对照片中非常小块的面积,面部探测器就会针对大一些的区域。但是主要的概念是一般会从比较小的细节入手,比如边缘,然后再一步步到更大更复杂的区域,比如一只眼睛或是一个鼻子,再把眼睛鼻子装一块,组成更复杂的部分,这种从简单到复杂的金字塔表示方法或者组成方法也可以应用在图像或者人脸识别以外的其它数据上,比如当你想要建一个语音识别系统的时候,需要解决的是如何可视化语音,比如输入一个音频片段,那么神经网络的第一层可能就回去先开始试着探测比较低层次的音频波形的一些特征,比如音调是变高了还是低了,分辨白噪音、咝咝咝的声音,或者音调等。可以选择这些相对程度比较低的波形特征,然后把这些波形组合在一起,就能去探测声音的基本单元,在语言学中有个概念叫做音位,比如说单词cat的c的发音“嗑”就是一个音位,有了基本的声音单元以后,组合起来就能识别音频中的单词,单词再组合起来就能识别词组,再到完整的句子,所以深度神经网络的这些隐层中,较早的前几层能学习一些低层次的简单特征,等到后几层,就能把简单的特征结合起来,去探测更复杂的东西,比如你录在音频里的单词、词组或者是句子,然后就能进行语音识别了。

同时我们所计算的前几层隐层,也就是相对简单的输入函数,比如图像单元的边缘啥的,到网络中的深层时,实际上就能做很多复杂的事,比如探测脸部,或是探测单词,短语或是句子。

有些人喜欢把深度神经网络和人类大脑做类比,这些神经科学家觉得人的大脑也是先探测简单的东西,比如眼睛看得到的边缘,然后组合起来才能探测到复杂的物体,比如脸。这种深度学习和人类大脑的比较,有时候比较危险,按时不可否认的是我们对大脑运作机制的认识很有价值,有可能大脑是先从简单的东西,比如边缘着手,再组合成一个完整的复杂物体,这类简单到复杂的过程,同样也是其他一些深度学习的灵感来源。

另外一个关于神经网络为什么有效的理论来源于电路理论,它和你能够用电路元件计算哪些函数有着分不开的联系。根据不同的基本逻辑门,譬如与门,非门和或门,在非正式的情况下,这些函数都可以用相对较小但很深的神经网络来计算。小的意思是,隐藏单元的数量相对比较小。但是如果用浅一些的神经网络计算同样的函数,也就是说不能用很多隐藏层时,需要呈指数增长的单元数量才能达到同样的计算结果。

再来举个例子,用没那么正式的语言介绍这个概念,假设你想要对输入特征计算异或或是奇偶性,例如算x1XORx2XORX3XOR...XORxnx_1\space XOR\space x_2\space XOR \space X_3\space XOR...XOR\space x_nx1​ XOR x2​ XOR X3​ XOR...XOR xn​,假设你有n或者nxn_xnx​个特征,如果画一个异或的树图,先要计算x1x_1x1​和x2x_2x2​的异或,然后是x3x_3x3​和x4x_4x4​的异或等等,技术上来说如果你只用或门还有非门的话,你可能会需要几层才能计算异或函数,但是用相对小的电路就可以计算异或了,然后可以继续搭建这样的一个异或树图,最后会得到这样的电路,如下图所示。

要计算异或关系,这种树图对应网络的深度应该是O(log(n))O(log(n))O(log(n)),那么节点的数量和电路部件或者门的数量并不会很大,也不需要太多门去计算异或。但是如果不能使用多隐层的神经网络的话,在这个例子中隐层数为O(log(n))O(log(n))O(log(n))。如果被迫只能用单隐层来计算的话,输入全连接到隐藏层,隐藏单元到输出也是全连接,再输出y,那么要计算奇偶性或者是异或关系函数,需要这一隐层的单数数呈指数增长才行。因为本质上来说你需要列举耗尽2的n次方种可能的配置或者2n2^n2n种输入比特的配置,异或运算的最终结果是1或0,那么你最终就会需要一个隐藏层,其中单元数目随输入比特呈指数上升。精确来说应该是2(n−1)2^(n-1)2(n−1)个隐藏单元数。

很多数学函数,用深度网络计算比浅网络要容易得多。

吴恩达深度学习 ——4.4 为什么使用深层表示相关推荐

  1. 吴恩达深度学习之二《改善深层神经网络:超参数调试、正则化以及优化》学习笔记

    一.深度学习的实用层面 1.1 训练/开发/测试集 机器学习时代,数据集很小,可能100.1000.10000条,这种级别.可以按 70%.30% 划分训练集和测试集,训练后直接用测试集评估.或者按 ...

  2. 吴恩达深度学习课程-Course 2 改善深层神经网络 第三周 TensorFlow入门编程作业

    虽然申请书的ddl临近,但还是先写写编程作业- 编程作业的代码用的是tf1,而我的环境为tf2,所以 TensorFlow入门 TensorFlow教程 1 - 探索Tensorflow库 1.1 - ...

  3. [转载]《吴恩达深度学习核心笔记》发布,黄海广博士整理!

    红色石头 深度学习专栏 深度学习入门首推课程就是吴恩达的深度学习专项课程系列的 5 门课.该专项课程最大的特色就是内容全面.通俗易懂并配备了丰富的实战项目.今天,给大家推荐一份关于该专项课程的核心笔记 ...

  4. 737 页《吴恩达深度学习核心笔记》发布,黄海广博士整理!

    点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 深度学习入门首推课程就是吴恩达的深度学习专项课程系列的 5 门课.该专项课程最大的特色就是内容 ...

  5. 吴恩达深度学习笔记1-Course1-Week1【深度学习概论】

    2018.5.7 吴恩达深度学习视频教程网址 网易云课堂:https://mooc.study.163.com/smartSpec/detail/1001319001.htm Coursera:htt ...

  6. 799页!吴恩达深度学习笔记.PDF

    吴恩达深度学习课程,是公认的最优秀的深度学习课程之一,目前没有教材,只有视频,本文提供完整笔记下载,这本笔记非常适合和深度学习入门. 0.导语 黄海广博士和同学将吴恩达老师深度学习视频课程做了完整的笔 ...

  7. 吴恩达深度学习课程的漫画版来了!(漫画、视频、笔记都可以下载了!)

    吴恩达深度学习课程,个人认为是对初学者最友好的课程,非常系统.初学者如果希望快速入门,建议从这门课开始.由于是视频课,除了课程笔记之外,可以先看看课程漫画,更有助于理解. 尽管是英文版,但英文水平达到 ...

  8. 360题带你走进深度学习!吴恩达深度学习课程测试题中英对照版发布

    吴恩达的深度学习课程(deepLearning.ai)是公认的入门深度学习的宝典,本站将课程的课后测试题进行了翻译,建议初学者学习.所有题目都翻译完毕,适合英文不好的同学学习. 主要翻译者:黄海广 内 ...

  9. github标星8331+:吴恩达深度学习课程资源(完整笔记、中英文字幕视频、python作业,提供百度云镜像!)...

    吴恩达老师的深度学习课程(deeplearning.ai),可以说是深度学习入门的最热门课程,我和志愿者编写了这门课的笔记,并在github开源,star数达到8331+,曾经有相关报道文章.为解决g ...

最新文章

  1. 网络名词--“环路”
  2. C#入门面向对象编程(委托的使用)
  3. 【Python-ML】无监督线性降维PCA方法
  4. java基本输入类型数据System.out.println()或System.out.print()
  5. C++对象内存模型学习
  6. 一张小票看透支付清结算架构
  7. C++语言实现-邻接矩阵
  8. linux 系统让服务后台运行
  9. python 制作抽奖箱_丽水本地抽奖箱制作公司,抽奖箱制作-优质服务!
  10. 微程序控制器的组成及原理总结
  11. C++ List的用法(整理)[转载]
  12. 通信原理几种调制方式
  13. access 的几种更新语句:update where 与 update join where
  14. 和自己“卷”才是王道
  15. 【资源分享】一款bootstrap开发的后台管理系统前端模板
  16. EPLAN教程——如何手动放置报表(以端子排为例)
  17. Siebel学习笔记
  18. 安卓手机如何让你的微信减肥不卡顿
  19. 普乐蛙VR航天体验|航天vr设备|航空vr设备厂家案例分享
  20. Qt5--学习笔记-+openCV2-客户端、服务端回环视频显示

热门文章

  1. JS 数据结构之旅 :通过JS实现栈、队列、二叉树、二分搜索树、AVL树、Trie树、并查集树、堆
  2. Caddy、 SSLDocker、Nginx 性能比较及使用体验
  3. VirtualBox linux 网络设置 Bridged Adapter模式
  4. 解决ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost
  5. BGP——community团体属性(讲解+配置)@
  6. C语言,编写函数exchangeMaxMin(int arr[],int n),将该数组中最大最小值交换位置;
  7. 浅谈 TypeScript【上】-- Flow 静态类型检查工具
  8. 【Python】蟒蛇绘制(三种方式+import用法)
  9. 编写react组件_s! 这就是为什么ReasonReact是编写React的最佳方法的原因
  10. 用python画渐变的圆_Python成像库(PIL)绘图 – 带渐变的圆角矩形