吴恩达深度学习笔记:深层神经网络(Deep Neural Networks)4.5-4.8

news2024/10/7 2:25:55

目录

  • 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)
    • 第四周:深层神经网络(Deep Neural Networks)
      • 4.5 为什么使用深层表示?(Why deep representations?)

第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)

第四周:深层神经网络(Deep Neural Networks)

4.5 为什么使用深层表示?(Why deep representations?)

我们都知道深度神经网络能解决好多问题,其实并不需要很大的神经网络,但是得有深度,得有比较多的隐藏层,这是为什么呢?我们一起来看几个例子来帮助理解,为什么深度神经网络会很好用。

在这里插入图片描述
首先,深度网络究竟在计算什么?如果你在建一个人脸识别或是人脸检测系统,深度神经网络所做的事就是,当你输入一张脸部的照片,然后你可以把深度神经网络的第一层,当成一个特征探测器或者边缘探测器。在这个例子里,我会建一个大概有 20 个隐藏单元的深度神经网络,是怎么针对这张图计算的。隐藏单元就是这些图里这些小方块(第一张大图),举个例子,这个小方块(第一行第一列)就是一个隐藏单元,它会去找这张照片里“|”边缘的方向。那么这个隐藏单元(第四行第四列),可能是在找(“—”)水平向的边缘在哪里。之后的课程里,我们会讲专门做这种识别的卷积神经网络,到时候会细讲,为什么小单元是这么表示的。你可以先把神经网络的第一层当作看图,然后去找这张照片的各个边缘。我们可以把照片里组成边缘的像素们放在一起看,然后它可以把被探测到的边缘组合成面部的不同部分(第二张大图)。比如说,可能有一个神经元会去找眼睛的部分,另外还有别的在找鼻子的部分,然后把这许多的边缘结合在一起,就可以开始检测人脸的不同部分。最后再把这些部分放在一起,比如鼻子眼睛下巴,就可以识别或是探测不同的人脸(第三张大图)。

你可以直觉上把这种神经网络的前几层当作探测简单的函数,比如边缘,之后把它们跟后几层结合在一起,那么总体上就能学习更多复杂的函数。这些图的意义,我们在学习卷积神经网络的时候再深入了解。还有一个技术性的细节需要理解的是,边缘探测器其实相对来说都是针对照片中非常小块的面积。就像这块(第一行第一列),都是很小的区域。面部探测器就会针对于大一些的区域,但是主要的概念是,一般你会从比较小的细节入手,比如边缘,然后再一步步到更大更复杂的区域,比如一只眼睛或是一个鼻子,再把眼睛鼻子装一块组成更复杂的部分。

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

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

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

Small:隐藏单元的数量相对较少
Deep:隐藏层数目比较多
深层的网络隐藏单元数量相对较少,隐藏层数目较多,如果浅层的网络想要达到同样的计算结果则需要指数级增长的单元数量才能达到。

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

在这里插入图片描述
我再来举个例子,用没那么正式的语言介绍这个概念。假设你想要对输入特征计算异或或是奇偶性,你可以算𝑥1𝑋𝑂𝑅𝑥2𝑋𝑂𝑅𝑥3𝑋𝑂𝑅 … … 𝑥𝑛,假设你有𝑛或者𝑛𝑥个特征,如果你画一个异或的树图,先要计算𝑥1,𝑥2的异或,然后是𝑥3和𝑥4。技术上来说如果你只用或门,还有
非门的话,你可能会需要几层才能计算异或函数,但是用相对小的电路,你应该就可以计算异或了。然后你可以继续建这样的一个异或树图(上图左),那么你最后会得到这样的电路来输出结果𝑦, y ^ = y \hat{y}= y y^=y,也就是输入特征的异或,或是奇偶性,要计算异或关系。这种树图对应网络的深度应该是𝑂(𝑙𝑜𝑔(𝑛)),那么节点的数量和电路部件,或是门的数量并不会很大,你也不需要太多门去计算异或。

但是如果你不能使用多隐层的神经网络的话,在这个例子中隐层数为𝑂(𝑙𝑜𝑔(𝑛)),比如你被迫只能用单隐藏层来计算的话,这里全部都指向从这些隐藏单元到后面这里,再输出𝑦,那么要计算奇偶性,或者异或关系函数就需要这一隐层(上图右方框部分)的单元数呈指数增长才行,因为本质上来说你需要列举耗尽 2 n 2^n 2n种可能的配置,或是 2 n 2^n 2n种输入比特的配置。异或运算的最终结果是 1 或 0,那么你最终就会需要一个隐藏层,其中单元数目随输入比特指数上升。精确的说应该是 2 n − 1 2^{n−1} 2n1个隐藏单元数,也就是𝑂( 2 n 2^n 2n)。

我希望这能让你有点概念,意识到有很多数学函数用深度网络计算比浅网络要容易得多,我个人倒是认为这种电路理论,对训练直觉思维没那么有用,但这个结果人们还是经常提到的,用来解释为什么需要更深层的网络。

除了这些原因,说实话,我认为“深度学习”这个名字挺唬人的,这些概念以前都统称为有很多隐藏层的神经网络,但是深度学习听起来多高大上,太深奥了,对么?这个词流传出去以后,这是神经网络的重新包装或是多隐藏层神经网络的重新包装,激发了大众的想象力。抛开这些公关概念重新包装不谈,深度网络确实效果不错,有时候人们还是会按照字面意思钻牛角尖,非要用很多隐层。但是当我开始解决一个新问题时,我通常会从 logistic 回归开始,再试试一到两个隐层,把隐藏层数量当作参数、超参数一样去调试,这样去找比较合适的深度。但是近几年以来,有一些人会趋向于使用非常非常深邃的神经网络,比如好几打的层数,某些问题中只有这种网络才是最佳模型。

这就是我想讲的,为什么深度学习效果拔群的直觉解释,现在我们来看看除了正向传播以外,反向传播该怎么具体实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1579128.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

若依ts版本(vue3+element plus+ts)

1、项目简介 本项目参考若依前后端分离版,前端由[若依vue3]改写为ts版本[ruoyi-web-vue3-ts],后端对[若依V3.8.7]进行了修改[后端版本分支vue3.ts.3.8.7],具体文档参见[若依官方文档]。本项目对部分代码做了优化,增加了activiti7…

二维数组及其内存图解

二维数组 在一维数组的介绍当中曾说,数组中可以储存任何同类型的元素,那么这个元素是不是可以也是数组呢?答案是可以,即在数组之中储存数组元素。这种情况就是多维数组,当一个数组中的元素是数组时叫做二维数组&#x…

公网环境下如何端口映射?

公网端口映射是一种网络技术,它允许将本地网络中的设备暴露在公共互联网上,以便能够从任何地方访问这些设备。通过公网端口映射,用户可以通过互联网直接访问和控制局域网中的设备,而无需在本地网络中进行复杂的配置。 公网端口映射…

自动驾驶---Motion Planning之STSC轨迹优化

1 背景 在之前的博客《自动驾驶---Motion Planning之构建SLT Driving Corridor》中,为读者讲解了SLT图构建的思路---通过构建Driving Corridor的方式确定SL两个方向的boundary。但是并没有去详细讲解如何去构造优化问题,以及如何去生成最终的轨迹,所以本篇博客将继续为读者讲…

如果用大模型考公,kimi、通义千问谁能考高分?

都说大模型要超越人类了,今天就试试让kimi和通义千问做公务员考试题目,谁能考高分? 测评结果再次让人震惊! 问题提干:大小两种规格的盒装鸡蛋,大盒装23个,小盒装16个,采购员小王买了…

libVLC 音频立体声模式切换

在libVLC中,可以使用libvlc_audio_set_channel函数来设置音频的立体声模式。这个函数允许选择不同的音频通道,例如立体声、左声道、右声道、环绕声等。 /*** Set current audio channel.** \param p_mi media player* \param channel the audio channel…

【webrtc】源码下载与编译

目录 下载 下依赖 参考文章 : 下载 (1) windows ,centos上都会报错 (2) ubuntu A : 在git上设置代理 B fetch通过 ubuntu的界面 proxy设置了代理 这将会拉取webRTC源码,且额外加了android相关的依赖,例如And…

MySQL·库的操作

目录 数据库的增加 字符集和校验规则 显示的指明字符集和校验规则 校验规则对数据库的影响 数据库的删除 数据库的查看 显示创建语句 数据库的修改 数据库的备份与恢复 备份 恢复 注意事项 查看连接情况 数据库的增加 CREATE DATABASE [IF NOT EXISTS] db_name [cr…

【神经网络】卷积神经网络CNN

卷积神经网络 欢迎访问Blog全部目录! 文章目录 卷积神经网络1. 神经网络概览2.CNN(Convolutional Neunal Network)2.1.学习链接2.2.CNN结构2.2.1.基本结构2.2.1.1输入层2.2.1.2.卷积层|Convolution Layers2.2.1.3.池化层|Pooling layers2.3…

【Entity Framework】EF连接字符串和模型

【Entity Framework】EF连接字符串和模型 文章目录 【Entity Framework】EF连接字符串和模型一、概述二、使用 Code First 按约定创建连接三、使用 Code First 和指定的数据库名称按约定创建连接四、将 Code First 与 app.config/web.config 文件中的连接字符串结合使用五、将 …

软件设计师——数据库

数据库 三级模式两级映像关系模型基本术语关系模型中的关系完整性约束 三级模式两级映像 概念模式(也称模式)对应基本表 外模式(也称用户模式或子模式)对应视图 内模式(也称存储模式)对应存储文件 两级映像…

下载python电子书

下面展示一些 内联代码片。 import requests from lxml import etree from urllib import parse from pprint import pprint from tqdm import tqdm class PythonBook: def init(self): self.url“https://m.jb51.net/books/list476_1.html” self.url_page“https://m.jb51.n…

编译Nginx配置QUIC/HTTP3.0

1. 安装BoringSSL sudo apt update sudo apt install -y build-essential ca-certificates zlib1g-dev libpcre3 \ libpcre3-dev tar unzip libssl-dev wget curl git cmake ninja-build mercurial \ libunwind-dev pkg-configgit clone --depth1 https://github.com/google/b…

el-cascader的懒加载模式怎么设置默认值

点击修改会跳出一个dialog&#xff0c;dialog需要显示信息&#xff0c;其中地址使用el-cascader标签并使用懒加载实现&#xff0c;地址数据都是从后台获取&#xff0c;如果直接使用v-model绑定默认值&#xff0c;会不显示。 解决方法1&#xff1a; <el-cascader class&quo…

Docker之数据卷和Dockerfile

目录 一、Docker数据管理 二、数据卷 创建数据卷 查看数据卷 删除数据卷 挂载数据卷 三、数据卷容器 创建数据卷容器 测试数据卷容器 备份数据卷容器 还原数据卷容器 四、Dockerfile 什么是Dockerfile 基本结构 常用指令 快速入门 编写Dockerfile文件 构建镜…

OneFlow深度学习框架:技术优势与功能特点

文章目录 一、概要二、核心技术优势2.1、分布式训练2.2、极致性能2.3、端到端的智能数据平台2.4、开放灵活的算法支持2.5、跨平台支持 三、功能特点四、OneFlow与TensorFlow对比四、安装OneFlow五、总结 一、概要 OneFlow是一款基于Python的开源深度学习框架&#xff0c;旨在实…

无人机概述

1、中英文对照表 中文中文简称英文全称英文简称无人驾驶飞机无人机Unmanned Aerial VehicleUAV无人机自组织网络无人机网络flying Ad-Hoc networkFANET 2、相关概念 2.1鲁棒性 网络鲁棒性是指网络系统在面对随机故障、蓄意攻击或其他异常情况时&#xff0c;能够保持其基本功…

麒麟系统下安装qt5.9.1后不能输入中文

引言 在虚拟机上安装麒麟系统后,安装了qt5.9.1,只能输入英文和数字不能输入中文注释,编译的程序也不能输入中文。 原因 安装后的麒麟系统自带搜狗输入法,原本可以输入中文,但是qt5.9.1缺少支持搜狗输入法的fcitx插件。所以qt5.9.1中不能输入中文。 解决方法 安装fcit…

Docker速成:新手变专家!

Docker介绍 容器历史 1、Chroot Jail 就是常见的chroot命令的用法。它在1979年的时候就出现了&#xff0c;被认为是最早的容器化技术之一。它可以把一个进程的文件系统隔离起来。 2、The FreeBSD Jail &#xff08;监狱&#xff09;实现了操作系统级别的虚拟化&#xff0c;他…

ShowDoc<2.8.3 前台文件上传

直接对着接口index.php?s/home/page/uploadimg构造上传请求就行了&#xff0c;上传表单的name属性为editormd-image-file&#xff0c;文件名要在php前面加一对<>符号。 数据包&#xff1a; POST /index.php?s/home/page/uploadImg HTTP/1.1