吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.9-1.10

目录

  • 第一门课:第二门课 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)
    • 第一周:深度学习的 实践层面 (Practical aspects of Deep Learning)
      • 1.9 归一化输入(Normalizing inputs)
      • 1.10 梯度消失/梯度爆炸(Vanishing / Exploding gradients)

第一门课:第二门课 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)

第一周:深度学习的 实践层面 (Practical aspects of Deep Learning)

1.9 归一化输入(Normalizing inputs)

训练神经网络,其中一个加速训练的方法就是归一化输入。假设一个训练集有两个特征,输入特征为 2 维,归一化需要两个步骤:

1.零均值
2.归一化方差;

我们希望无论是训练集和测试集都是通过相同的μ和 σ 2 σ^2 σ2定义的数据转换,这两个是由训练集得出来的。
在这里插入图片描述

第一步是零均值化, μ = 1 m ∑ i = 1 m x ( i ) μ=\frac{1}{m}\sum_{i=1}^m{x^{(i)}} μ=m1i=1mx(i),它是一个向量,𝑥等于每个训练数据 𝑥减去𝜇,意思是移动训练集,直到它完成零均值化

第二步是归一化方差,注意特征 x 1 x_1 x1的方差比特征 x 2 x_2 x2的方差要大得多,我们要做的是给𝜎赋值, σ 2 = 1 m ∑ i = 1 m ( x ( i ) ) 2 σ^2 =\frac{1}{m}\sum_{i=1}^m{(x^{(i)})^2} σ2=m1i=1m(x(i))2 ,这是节点y 的平方, σ 2 σ^2 σ2是一个向量,它的每个特征都有方差,注意,我们已经完成零值均化, ( x ( i ) ) 2 {(x^{(i)})^2} (x(i))2元素 y 2 y^2 y2就是方差,我们把所有数据除以向量 σ 2 σ^2 σ2,最后变成上图形式。

x_1和x_2的方差都等于 1。提示一下,如果你用它来调整训练数据,那么用相同的 μ和 σ 2 σ^2 σ2来归一化测试集。尤其是,你不希望训练集和测试集的归一化有所不同,不论μ的值是什么,也不论 σ 2 σ^2 σ2的值是什么,这两个公式中都会用到它们。所以你要用同样的方法调整测试集,而不是在训练集和测试集上分别预估μ和 σ 2 σ^2 σ2。因为我们希望不论是训练数据还是测试数据,都是通过相同 μ 和𝜎2定义的相同数据转换,其中 μ和 σ 2 σ^2 σ2是由训练集数据计算得来的。

我们为什么要这么做呢?为什么我们想要归一化输入特征,回想一下右上角所定义的代价函数。
J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ ( i ) , y ( i ) ) J(w,b) =\frac{1}{m}\sum_{i=1}^m{L(\hat{y}^{(i)},y^{(i)})} J(w,b)=m1i=1mL(y^(i),y(i))

如果你使用非归一化的输入特征,代价函数会像这样:

在这里插入图片描述
这是一个非常细长狭窄的代价函数,你要找的最小值应该在这里。但如果特征值在不同范围,假如𝑥1取值范围从 1 到 1000,特征𝑥2的取值范围从 0 到 1,结果是参数𝑤1和𝑤2值的范围或比率将会非常不同,这些数据轴应该是𝑤1和𝑤2,但直观理解,我标记为𝑤和𝑏,代价函数就有点像狭长的碗一样,如果你能画出该函数的部分轮廓,它会是这样一个狭长的函数。

然而如果你归一化特征,代价函数平均起来看更对称,如果你在上图这样的代价函数上运行梯度下降法,你必须使用一个非常小的学习率。因为如果是在这个位置,梯度下降法可能需要多次迭代过程,直到最后找到最小值。但如果函数是一个更圆的球形轮廓,那么不论从哪个位置开始,梯度下降法都能够更直接地找到最小值,你可以在梯度下降法中使用较大步长,而不需要像在左图中那样反复执行。

当然,实际上𝑤是一个高维向量,因此用二维绘制𝑤并不能正确地传达并直观理解,但总地直观理解是代价函数会更圆一些,而且更容易优化,前提是特征都在相似范围内,而不是从 1 到 1000,0 到 1 的范围,而是在-1 到 1 范围内或相似偏差,这使得代价函数𝐽优化起来更简单快速。
在这里插入图片描述
实际上如果假设特征𝑥1范围在 0-1 之间,𝑥2的范围在-1 到 1 之间,𝑥3范围在 1-2 之间,它们是相似范围,所以会表现得很好。

当它们在非常不同的取值范围内,如其中一个从 1 到 1000,另一个从 0 到 1,这对优化算法非常不利。但是仅将它们设置为均化零值,假设方差为 1,就像上一张幻灯片里设定的那样,确保所有特征都在相似范围内,通常可以帮助学习算法运行得更快。

所以如果输入特征处于不同范围内,可能有些特征值从 0 到 1,有些从 1 到 1000,那么归一化特征值就非常重要了。如果特征值处于相似范围内,那么归一化就不是很重要了。执行这类归一化并不会产生什么危害,我通常会做归一化处理,虽然我不确定它能否提高训练或算法速度。

这就是归一化特征输入,下节课我们将继续讨论提升神经网络训练速度的方法。

1.10 梯度消失/梯度爆炸(Vanishing / Exploding gradients)

训练神经网络,尤其是深度神经所面临的一个问题就是梯度消失或梯度爆炸,也就是你训练神经网络的时候,导数或坡度有时会变得非常大,或者非常小,甚至于以指数方式变小,这加大了训练的难度。

这节课,你将会了解梯度消失或梯度爆炸的真正含义,以及如何更明智地选择随机初始化权重,从而避免这个问题。 假设你正在训练这样一个极深的神经网络,为了节约幻灯片上的空间,我画的神经网络每层只有两个隐藏单元,但它可能含有更多,但这个神经网络会有参数 W [ 1 ] , W [ 2 ] , W [ 3 ] W^{[1]},W^{[2]},W^{[3]} W[1]W[2]W[3]等等,直到 W [ l ] W^{[l]} W[l],为了简单起见,假设我们使用激活函数 g ( z ) = z g(z) = z g(z)=z,也就是线性激活函数,我们忽略𝑏,假设 b [ l ] = 0 b[l]=0 b[l]=0,如果那样的话,输出:
y = W [ L ] W [ L − 1 ] W [ L − 2 ] … W [ 3 ] W [ 2 ] W [ 1 ] x y = W^{[L]}W^{[L−1]}W^{[L−2]} … W^{[3]}W^{[2]}W^{[1]}x y=W[L]W[L1]W[L2]W[3]W[2]W[1]x

如果你想考验我的数学水平, W [ 1 ] x = z [ 1 ] W^{[1]}x = z^{[1]} W[1]x=z[1],因为b = 0,所以我想 z [ 1 ] = W [ 1 ] x , a [ 1 ] = g ( z [ 1 ] ) z^{[1]} = W^{[1]}x,a^{[1]} =g(z^{[1]}) z[1]=W[1]xa[1]=g(z[1]),因为我们使用了一个线性激活函数,它等于 z [ 1 ] z^{[1]} z[1],所以第一项 W [ 1 ] x = a [ 1 ] W^{[1]}x = a^{[1]} W[1]x=a[1],通过推理,你会得出 W [ 2 ] W [ 1 ] x = a [ 2 ] W^{[2]}W^{[1]}x = a^{[2]} W[2]W[1]x=a[2],因为 a [ 2 ] = g ( z [ 2 ] ) a^{[2]} = g(z^{[2]}) a[2]=g(z[2]),还等于 g ( W [ 2 ] a [ 1 ] ) g(W^{[2]}a^{[1]}) g(W[2]a[1]),可以用 W [ 1 ] x W^{[1]}x W[1]x替换 a [ 1 ] a^{[1]} a[1],所以这一项就等于 a [ 2 ] a^{[2]} a[2],这个就是 a [ 3 ] ( W [ 3 ] W [ 2 ] W [ 1 ] x ) a^{[3]}(W^{[3]}W^{[2]}W^{[1]}x) a[3](W[3]W[2]W[1]x)
在这里插入图片描述
所有这些矩阵数据传递的协议将给出 y ^ \hat{y} y^而不是𝑦的值。

假设每个权重矩阵 W [ L ] = [ 1.5 0 0 1.5 ] W^{[L]} =\begin{bmatrix}1.5 & 0 \\0 & 1.5 \end{bmatrix} W[L]=[1.5001.5],从技术上来讲,最后一项有不同维度,可能它就是余下的权重矩阵, y = W [ 1 ] [ 1.5 0 0 1.5 ] ( L − 1 ) x y= W^{[1]}\begin{bmatrix}1.5 & 0 \\0 & 1.5 \end{bmatrix}^{(L−1)}x y=W[1][1.5001.5](L1)x,因为我们假设所有矩阵都等于它,它是 1.5倍的单位矩阵,最后的计算结果就是 y ^ \hat{y} y^ y ^ \hat{y} y^也就是等于 1. 5 ( L − 1 ) x 1.5^{(L−1)}x 1.5(L1)x。如果对于一个深度神经网络来说𝐿值较大,那么 y ^ \hat{y} y^的值也会非常大,实际上它呈指数级增长的,它增长的比率是 1. 5 L 1.5^L 1.5L,因此对于一个深度神经网络,𝑦的值将爆炸式增长。

相反的,如果权重是 0.5, W [ L ] = [ 1.5 0 0 1.5 ] W^{[L]} =\begin{bmatrix}1.5 & 0 \\0 & 1.5 \end{bmatrix} W[L]=[1.5001.5],它比 1 小,这项也就变成了 0. 5 L 0.5^L 0.5L,矩阵 y = W [ 1 ] [ 0.5 0 0 0.5 ] ( L − 1 ) x y=W^{[1]}\begin{bmatrix}0.5 & 0 \\0 & 0.5 \end{bmatrix}^{(L−1)}x y=W[1][0.5000.5](L1)x,再次忽略 W [ L ] W^{[L]} W[L],因此每个矩阵都小于 1,假设 x 1 x_1 x1 x 2 x_2 x2都是 1,激活函数将变成 1 2 , 1 2 , 1 4 , 1 4 , 1 8 , 1 8 \frac{1}{2},\frac{1}{2},\frac{1}{4},\frac{1}{4},\frac{1}{8},\frac{1}{8} 212141418181等,直到最后一项变成 1 2 L \frac{1}{2^L} 2L1,所以作为自定义函数,激活函数的值将以指数级下降,它是与网络层数数量𝐿相关的函数,在深度网络中,激活函数以指数级递减。我希望你得到的直观理解是,权重W只比 1 略大一点,或者说只是比单位矩阵大一点,深度神经网络的激活函数将爆炸式增长,如果W比 1 略小一点,可能是 [ 0.9 0 0 0.9 ] \begin{bmatrix}0.9 & 0 \\0 & 0.9\end{bmatrix} [0.9000.9]

在这里插入图片描述

在深度神经网络中,激活函数将以指数级递减,虽然我只是讨论了激活函数以与𝐿相关的指数级数增长或下降,它也适用于与层数𝐿相关的导数或梯度函数,也是呈指数级增长或呈指数递减。

对于当前的神经网络,假设𝐿 = 150,最近 Microsoft 对 152 层神经网络的研究取得了很大进展,在这样一个深度神经网络中,如果激活函数或梯度函数以与𝐿相关的指数增长或递减,它们的值将会变得极大或极小,从而导致训练难度上升,尤其是梯度指数小于𝐿时,梯度下降算法的步长会非常非常小,梯度下降算法将花费很长时间来学习。

总结一下,我们讲了深度神经网络是如何产生梯度消失或爆炸问题的,实际上,在很长一段时间内,它曾是训练深度神经网络的阻力,虽然有一个不能彻底解决此问题的解决方案,但是已在如何选择初始化权重问题上提供了很多帮助。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW自动剪板机控制系统

LabVIEW自动剪板机控制系统 随着工业自动化的快速发展,钣金加工行业面临着生产效率和加工精度的双重挑战。传统的手动或脚踏式剪板机已无法满足现代生产的高效率和高精度要求,因此,自动剪板机控制系统的研究与开发成为了行业发展的必然趋势。…

如何快速开发个性化回收小程序

回收小程序的开发无疑是提升回收业务效率的重要途径。它不仅可以清晰地列出各类回收物品,还能在微信、抖音、支付宝等多个平台同时上线,让回收服务触手可及。那么,如何以最快、最简单、最经济的方式上线这样一个小程序呢? 在这里&…

Linux实训-用户和组的管理

实训1:用户的管理 创建一个新用户user1,设置其主目录为/home/user1。查看/etc/passwd文件的最后一行,看看是如何记录的。查看文件/etc/shadow文件的最后一行,看看如何记录的。给用户user1设置密码。再次查看文件/etc/shadow文件的…

分享5个图源二维码及使用方法

数据是GIS的血液! 我们在《4个在ArcGIS中可加载的图源分享》一文中,为大家分享了4个可以直接在ArcMap中打开查看的图源。 现在,我们再分享5个可以在水经微图(以下简称“微图”)桌面版(PC端)、…

Kafka Exactly Once 语义实现原理:幂等性与事务消息

01 前言 在现代分布式系统中,确保数据处理的准确性和一致性是至关重要的。Apache Kafka,作为一个广泛使用的流处理平台,提供了强大的消息队列和流处理功能。随着业务需求的增长,Kafka 的事务消息功能应运而生,它允许应…

MacPro(M1,M2芯片)Java开发和常用工具开源软件合集

目录 Java开发软件1 IDE1.1 idea1.2 Vs Code 2 开发工具2.1 数据库数据库模型管理数据库连接客户端 2.2 SSH/Telnet/Serial/Shell/Sftp客户端2.3 MarkDown编辑器2.3 代码片段管理粘贴 3小工具3.1 截图贴图3.2 Mac下修改hosts文件的图形化界面软件 Java开发软件 1 IDE 1.1 ide…

第三方软件测试机构-科技成果评价测试

科技成果评价测试是对科研成果的工作质量、学术水平、实际应用和成熟程度等方面进行的客观、具体、恰当的评价过程。这一评价过程有助于了解科技成果的质量和水平,以及其在学术和应用方面的价值和潜力。 科技成果评价测试主要包括以下几个方面: 工作质量…

设计不外流,保护创意的同时锁住图纸安全!

在设计行业中,图纸和创意文稿的安全至关重要,因为它们体现了企业的创新能力和核心竞争力。华企盾DSC数据防泄密系统提供了一系列功能,可以有效地保护这些珍贵的设计和文档不被外泄。以下是如何利用华企盾DSC系统保障设计图纸安全的关键措施&a…

tableau如何传参数到MySQL数据库

1、打开tableau连接本地MySQL-》新建自定义sql-》创建参数 2、新建一个简单的工作表-》把维度拖拽到行显示结果-》右键显示参数 3、参数传递到数据库sql写法 select * from yonghu where yonghu.姓名 like concat(%,<参数.姓名>,%)select * FROMabadata4WHERE abadata4…

mysql-sql-练习题-1

文章目录 环境注释建表 5张建库学生表课程表教师表分数表总表 语法书写顺序in学过/没学过完全相同 环境 Windows cmd&#xff08;普通用户/管理员&#xff09; mysql -uroot -pmysql版本&#xff0c;模式&#xff08;可自定义&#xff09; select version(),global.sql_mode…

不完全微分PD控制器(CODESYS源代码+算法详细介绍)

完全微分计算公式为Kp*Td/Ts(e(k)-e(k-1))。有关位置式PID和增量式PID更多相关内容,大家可以参考下面的文章链接: 1、CODESYS位置式PID CODESYS位置式PID(完整ST源代码)_codesys pid功能块-CSDN博客文章浏览阅读1.1k次,点赞2次,收藏2次。CODESYS增量式PID完整源代码请参看…

中国标准地图如何与卫星影像叠加

我们在《一幅SHP格式的中国标准地图》一文中&#xff0c;为你分享过一幅SHP格式的中国标准地图&#xff0c;但该数据为等积投影。 由于我们常用的卫星影像为WGS84经纬度投影或墨卡托投影&#xff0c;那么将该数据如何与卫星影像进行叠加制作专题图呢&#xff1f; 我们现在就来…

day17-day20_项目实战项目部署

万信金融 项目部署 目标&#xff1a; 理解DevOps概念 能够使用Docker Compose部署项目 理解持续集成的作用 会使用Jenkins进行持续集成 1 DevOps介绍 1.1 什么是DevOps DevOps是Development和Operations两个词的缩写&#xff0c;引用百度百科的定义&#xff1a; DevOps…

Windows Server配置网卡绑定:NIC组合

正文共&#xff1a;1024 字 12 图&#xff0c;预估阅读时间&#xff1a;1 分钟 在网络设备上&#xff0c;为了提高可靠性&#xff0c;一般会配置链路聚合&#xff08;Link Aggregation&#xff09;&#xff08;网络之路28&#xff1a;二层链路聚合&#xff09;&#xff0c;同样…

GNU Radio之OFDM Channel Estimation底层C++实现

文章目录 前言一、 OFDM Channel Estimation 模块简介二、C 具体实现1、初始化和配置参数2、forecast 函数3、计算载波偏移量4、提取信道响应5、核心的数据处理任务 前言 OFDM Channel Estimation 模块的功能是根据前导码&#xff08;同步字&#xff09;估计 OFDM 的信道和粗略…

FileLink内外网文件摆渡系统产品介绍

在现代企业中&#xff0c;往往存在着多个网络、系统之间的数据孤岛问题&#xff0c;数据难以互相访问和共享。 一、常用的内外网文件摆渡方式 传统的数据交换方式往往需要人工介入&#xff0c;效率低下且容易出错。如&#xff1a;U盘、FTP、VPN等&#xff0c;极易引发各种各样…

CSS常见的 9 个单位汇总!

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生&#xff0c;一枚程序媛&#xff0c;感谢关注。回复 “前端基础题”&#xff0c;可免费获得前端基础 100 题汇总&#xff0c;回复 “前端工具”&#xff0c;可获取 Web 开发工具合…

银行卡归属地查询API接口快速对接

银行卡归属地查询API接口指的是通过银行卡号查询该银行卡详细信息&#xff0c;包括银行卡名称、卡种、卡品牌、发卡行、编号以及归属地等信息&#xff0c;支持一千多家银行返回归属地信息&#xff0c;那么银行卡归属地查询API接口如何快速对接呢&#xff1f; 首先找到有做银行…

短视频橱窗好物带货者必看:如何解决无商品素材无收益还限流的烦恼?

随着短视频橱窗带货越来越火爆&#xff0c;许多人发现通过短视频橱窗好物带货素材APP不仅可以提升创作效果&#xff0c;还能轻松赚取佣金。下面&#xff0c;为您推荐三款一键领取并直接发布的抖音短视频素材APP&#xff0c;确保您在创作短视频时&#xff0c;既有高质量的素材&a…

Facebook’s Tectonic Filesystem: Efficiency from Exascale——论文阅读

FAST 2021 Paper 分布式元数据论文阅读笔记整理 背景 Blob storage 用来存放大量的文本、图片、视频等非结构化数据 包含 EB 级别的数据 存储内容大小不一&#xff0c;大小几KB到几MB不等 要求低时延 使用 Haystack 和 F4 Data warehouse 存放用于数据分析和机器学习的…
最新文章