IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 吴恩达深度学习笔记(一)week5 -> 正文阅读

[人工智能]吴恩达深度学习笔记(一)week5

4.4为什么使用深层表示

如果在建一个人脸识别或是人脸检测系统,深度神经网络所做的事就是,当输入一张脸部的照片,然后可以把深度神经网络的第一层,当成一个特征探测器或者边缘探测器。在这个例子里,如果建一个大概有20个隐藏单元的深度神经网络,是怎么针对这张图计算的。隐藏单元就是这些图里这些小方块(第一张大图),举个例子,这个小方块(第一行第一列)就是一个隐藏单元,它会去找这张照片里“|”边缘的方向。那么这个隐藏单元(第四行第四列),可能是在找(“—”)水平向的边缘在哪里以先把神经网络的第一层当作看图,然后去找这张照片的各个边缘。可以把照片里组成边缘的像素们放在一起看,然后它可以把被探测到的边缘组合成面部的不同部分(第二张大图)。比如说,可能有一个神经元会去找眼睛的部分,另外还有别的在找鼻子的部分,然后把这许多的边缘结合在一起,就可以开始检测人脸的不同部分。最后再把这些部分放在一起,比如鼻子眼睛下巴,就可以识别或是探测不同的人脸(第三张大图)。可以直觉上把这种神经网络的前几层当作探测简单的函数,比如边缘,之后把它们跟后几层结合在一起,那么总体上就能学习更多复杂的函数。这些图的意义,在学习卷积神经网络的时候再深入了解。还有一个技术性的细节需要理解的是,边缘探测器其实相对来说都是针对照片中非常小块的面积。就像第一行第一列,都是很小的区域。面部探测器就会针对于大一些的区域,但是主要的概念是,一般会从比较小的细节入手,比如边缘,然后再一步步到更大更复杂的区域,比如一只眼睛或是一个鼻子,再把眼睛鼻子装一块组成更复杂的部分。

?这种从简单到复杂的金字塔状表示方法或者组成方法,也可以应用在图像或者人脸识别以外的其他数据上。比如当你想要建一个语音识别系统的时候,需要解决的就是如何可视化语音,比如你输入一个音频片段,那么神经网络的第一层可能就会去先开始试着探测比较低层次的音频波形的一些特征,比如音调是变高了还是低了,分辨白噪音,咝咝咝的声音,或者音调,可以选择这些相对程度比较低的波形特征,然后把这些波形组合在一起就能去探测声音的基本单元。

所以深度神经网络的这许多隐藏层中,较早的前几层能学习一些低层次的简单特征,等到后几层,就能把简单的特征结合起来,去探测更加复杂的东西。比如你录在音频里的单词、词组或是句子,然后就能运行语音识别了。同时所计算的之前的几层,也就是相对简单的输入函数,比如图像单元的边缘什么的。到网络中的深层时,你实际上就能做很多复杂的事,比如探测面部或是探测单词、短语或是句子。

4.5 搭建深层神经网络块

在这里插入图片描述

在第?l?层有参数W^{\left [ l \right ]}?和b^{\left [ l \right ]}正向传播里有输入的激活函数,输入是前一层?a^{\left [ l-1 \right ]},输出是a^{\left [ l \right ]}

z=w^{\left [ l \right ]}a^{\left [ l-1 \right ]}+b^{\left [ l \right ]}a^{\left [ l \right ]}=g^{\left [ l \right ]}\left ( z^{\left [ l \right ]} \right ),把z缓存起来。

然后是反向步骤,同样也是第l层的计算,需要实现一个函数输入为da^{\left [ l \right ]},输出da^{\left [ l-1 \right ]}的函数

然后如果实现了这两个函数(正向和反向),然后神经网络的计算过程会是这样的:

在这里插入图片描述

?把输入特征 a [ 0 ] ? ,放入第一层并计算第一层的激活函数,用a^{\left [ 1 \right ]}表示,需要 w^{\left [ 1 \right ]}和 [ 1 ] 来计算,之后也缓存z^{\left [ l\right ]}值。之后喂到第二层,第二层里,需要用到 w^{\left [ 2 \right ]}b^{\left [ 2 \right ]},会需要计算第二层的激活函数a^{\left [ 2 \right ]} 。后面几层以此类推,直到最后你算出了?a^{\left [L \right ]} ,第 L 层的最终输出值 y\widehat{}在这些过程里缓存了所有的?z 值,这就是正向传播的步骤。

前向和反向传播

前向,输入a^{\left [ l-1 \right ]},输出是a^{\left [ l \right ]},缓存是z^{\left [ l \right ]}

?前向传播需要A^{\left [ 0 \right ]}来初始化,初始化的是第一层的输入值a^{\left [ 0 \right ]}对应于一个训练样本的输入特征,而A^{0}对应于一整 ( m )? 个训练样本的输入特征,所以这就是这条链的第一个前向函数的输入,重复这个步骤就可以从左到右计算前向传播。

反向:输入为da^{\left [ l \right ]},输出为da^{\left [ l-1 \right ]}dw^{\left [ l \right ]}db^{\left [ l \right ]}

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:16:59  更:2021-10-09 16:18:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:38:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码