吴恩达深度学习笔记:浅层神经网络(Shallow neural networks)3.9-3.11

news2024/10/7 6:42:02

目录

  • 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)
    • 第三周:浅层神经网络(Shallow neural networks)
      • 3.9 神 经 网 络 的 梯 度 下 降 ( Gradient descent for neural networks)
      • 3.10(选修)直观理解反向传播(Backpropagation intuition)

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

第三周:浅层神经网络(Shallow neural networks)

3.9 神 经 网 络 的 梯 度 下 降 ( Gradient descent for neural networks)

在这个视频中,我会给你实现反向传播或者说梯度下降算法的方程组,在下一个视频我们会介绍为什么这几个特定的方程是针对你的神经网络实现梯度下降的正确方程。

你的单隐层神经网络会有 W [ 1 ] , b [ 1 ] , W [ 2 ] , b [ 2 ] W^{[1]},b^{[1]},W^{[2]},b^{[2]} W[1],b[1],W[2],b[2]这些参数,还有个𝑛𝑥表示输入特征的个数, n [ 1 ] n^{[1]} n[1]表示隐藏单元个数, n [ 2 ] n^{[2]} n[2]表示输出单元个数。

矩阵 W [ 1 ] W^{[1]} W[1]的维度就是 ( n [ 1 ] , n [ 0 ] ) (n^{[1]},n^{[0]}) (n[1],n[0]) b [ 1 ] b^{[1]} b[1]就是 n [ 1 ] n^{[1]} n[1]维向量,可以写成 ( n [ 1 ] , 1 ) (n^{[1]}, 1) (n[1],1),就是一个的列向量。 矩阵 W [ 2 ] W^{[2]} W[2]的维度就是 ( n [ 2 ] , n [ 1 ] ) (n^{[2]}, n^{[1]}) (n[2],n[1]) b [ 2 ] b^{[2]} b[2]的维就是 ( n [ 2 ] , 1 ) (n^{[2]}, 1) (n[2],1)维度。

你还有一个神经网络的成本函数,假设你在做二分类任务,那么你的成本函数等于:
Cost function: 公式: J ( W [ 1 ] , b [ 1 ] , W [ 2 ] , b [ 2 ] ) = 1 m ∑ i = 1 m L ( y ^ , y ) J(W[1], b[1], W[2], b[2]) =\frac{1}{m}\sum_{i=1}^{m}L(\hat{y} , y) J(W[1],b[1],W[2],b[2])=m1i=1mL(y^,y)
loss function 和之前做 logistic 回归完全一样。

训练参数需要做梯度下降,在训练神经网络的时候,随机初始化参数很重要,而不是初始化成全零。当你参数初始化成某些值后,每次梯度下降都会循环计算以下预测值:
在这里插入图片描述
正向传播方程如下(之前讲过):forward propagation:
在这里插入图片描述
反向传播方程如下:back propagation:
在这里插入图片描述
上述是反向传播的步骤,注:这些都是针对所有样本进行过向量化,Y是1 ×m的矩阵;这里 np.sum 是 python 的 numpy 命令,axis=1 表示水平相加求和,keepdims 是防止python 输出那些古怪的秩数(n, ),加上这个确保阵矩阵 d b [ 2 ] db^{[2]} db[2]这个向量输出的维度为(n, 1)这样标准的形式。

目前为止,我们计算的都和 Logistic 回归十分相似,但当你开始计算反向传播时,你需要计算,是隐藏层函数的导数,输出在使用 sigmoid 函数进行二元分类。这里是进行逐个元素乘积,因为 W [ 2 ] T d z [ 2 ] W^{[2]T}dz^{[2]} W[2]Tdz[2] ( z [ 1 ] ) (z[1]) (z[1])这两个都为 ( n [ 1 ] , m ) (n^{[1]}, m) (n[1],m)矩阵;

还有一种防止 python 输出奇怪的秩数,需要显式地调用 reshape 把 np.sum 输出结果写成矩阵形式。

以上就是正向传播的 4 个方程和反向传播的 6 个方程,这里我是直接给出的,在下个视频中,我会讲如何导出反向传播的这 6 个式子的。如果你要实现这些算法,你必须正确执行正向和反向传播运算,你必须能计算所有需要的导数,用梯度下降来学习神经网络的参数;你也可以许多成功的深度学习从业者一样直接实现这个算法,不去了解其中的知识。

3.10(选修)直观理解反向传播(Backpropagation intuition)

这个视频主要是推导反向传播。
下图是逻辑回归的推导:
回想一下逻辑回归的公式(参考公式 3.2、公式 3.5、公式 3.6、公式 3.15) 公式 3.38:
在这里插入图片描述
所以回想当时我们讨论逻辑回归的时候,我们有这个正向传播步骤,其中我们计算𝑧,然后𝑎,然后损失函数𝐿。
在这里插入图片描述
神经网络的计算中,与逻辑回归十分类似,但中间会有多层的计算。下图是一个双层神经网络,有一个输入层,一个隐藏层和一个输出层。

前向传播:
计算 z [ 1 ] z^{[1]} z[1] a [ 1 ] a^{[1]} a[1],再计算 z [ 2 ] z^{[2]} z[2] a [ 2 ] a^{[2]} a[2],最后得到 loss function。
反向传播:
向后推算出 d a [ 2 ] da^{[2]} da[2],然后推算出 d z [ 2 ] dz^{[2]} dz[2],接着推算出 d a [ 1 ] da^{[1]} da[1],然后推算出 d z [ 1 ] dz^{[1]} dz[1]。我们不需要对x求导,因为x是固定的,我们也不是想优化x。向后推算出 d a [ 2 ] da^{[2]} da[2],然后推算出 d z [ 2 ] dz^{[2]} dz[2]的步骤可以合为一步:

公式 3.40: d z [ 2 ] = a [ 2 ] − y dz^{[2]} = a^{[2]} − y dz[2]=a[2]y d W [ 2 ] = d z [ 2 ] a [ 1 ] T dW^{[2]} = dz^{[2]}a^{[1]T} dW[2]=dz[2]a[1]T(注意:逻辑回归中;为什么 a [ 1 ] T a^{[1]T} a[1]T多了个转置:dw中的W(视频里是 W i [ 2 ] W_i^{[2]} Wi[2])是一个列向量,而 W [ 2 ] W^{[2]} W[2]是个行向量,故需要加个转置);

公式 3.41: d b [ 2 ] = d z [ 2 ] db^{[2]} = dz^{[2]} db[2]=dz[2]
公式3.42:KaTeX parse error: Double superscript at position 36: …^{[2]}∗ g^{[1]}'̲(z^{[1]}) 注意:这里的矩阵:W[2]的维度是:( n [ 2 ] , n [ 1 ] n^{[2]},n^{[1]} n[2]n[1])。
z [ 2 ] z^{[2]} z[2] d z [ 2 ] dz^{[2]} dz[2]的维度都是:( n [ 2 ] , 1 n^{[2]},1 n[2],1),如果是二分类,那维度就是(1,1)。

z [ 1 ] z^{[1]} z[1] d z [ 1 ] dz^{[1]} dz[1]的维度都是:( n [ 1 ] , 1 n^{[1]},1 n[1],1)。
证明过程: 见公式 3.42,

其中 W [ 2 ] T d z [ 2 ] W^{[2]T}dz^{[2]} W[2]Tdz[2]维度为:( n [ 1 ] , n [ 2 ] n^{[1]}, n^{[2]} n[1],n[2])、( n [ 2 ] , 1 n^{[2]}, 1 n[2],1)相乘得到( n [ 1 ] , 1 n^{[1]}, 1 n[1],1),和 z [ 1 ] z^{[1]} z[1]维度相同,KaTeX parse error: Double superscript at position 8: g^{[1]}'̲(z^{[1]})的维度为( n [ 1 ] , 1 n^{[1]}, 1 n[1],1),这就变成了两个都是( n [ 1 ] , 1 n^{[1]}, 1 n[1],1)向量逐元素乘积。
实现后向传播有个技巧,就是要保证矩阵的维度相互匹配。最后得到 d W [ 1 ] 和 d b [ 1 ] dW^{[1]}和db^{[1]} dW[1]db[1],公式 3.43: d W [ 1 ] = d z [ 1 ] x T dW^{[1]} = dz^{[1]}x^T dW[1]=dz[1]xT, d b [ 1 ] = d z [ 1 ] db^{[1]} = dz^{[1]} db[1]=dz[1]可以看出 d W [ 1 ] 和 d W [ 2 ] dW^{[1]} 和dW^{[2]} dW[1]dW[2] 非常相似,其中x扮演了 a [ 0 ] a^{[0]} a[0]的角色, x T x^T xT等同于 a [ 0 ] T a^{[0]T} a[0]T
在这里插入图片描述
下图写了主要的推导过程:
在这里插入图片描述
吴恩达老师认为反向传播的推导是机器学习领域最难的数学推导之一,矩阵的导数要用链式法则来求,如果这章内容掌握不了也没大的关系,只要有这种直觉就可以了。还有一点,就是初始化你的神经网络的权重,不要都是 0,而是随机初始化,下一章将详细介绍原因。

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

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

相关文章

MATLAB多级分组绘图及图例等细节处理 ; MATLAB画图横轴时间纵轴数值按照不同sensorCode分组画不同sensorCode的曲线

平时研究需要大量的绘图Excel有时候又臃肿且麻烦 尤其是当处理大量数据时可能会拖死Windows 示例代码及数据量展示 因为数据量是万级别的折线图也变成"柱状图"了, 不过还能看出大致趋势! 横轴是时间纵轴是传感器数值图例是传感器所在深度 % data readtable(C:\U…

“美国债务螺旋上升,每百天膨胀万亿”!华尔街:投入比特币是明智之举,美元早晚垮台?

​ 前不久,黄金和比特币价格的双双逼近历史高位,再度吸引了不少金融市场参与者的关注。虽然这两类资产大涨的背后,有着诸如比特币减半临近、地缘局势引发避险等各自的原因,但也有一些业内人士提到了美国政府债务规模激增等无法回…

如何使用 ArcGIS Pro 自动矢量化水系

对于某些要素颜色统一的地图,比如电子地图,可以通过图像识别技术将其自动矢量化,这里为大家介绍一下 ArcGIS Pro 自动矢量化水系的方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的电子地图数据&#…

【C++】list介绍

个人主页 : zxctscl 如有转载请先通知 文章目录 1. list介绍2. list的构造3. ist iterator的使用4. capacity5. element access6. modifiers7. 迭代器失效8. Operations8.1 reverse8.2 sort8.3 unique8.4 splice 1. list介绍 list是可以在常数范围内在任意位置进行插…

Linux之 线程池 | 单例模式的线程安全问题 | 其他锁

目录 一、线程池 1、线程池 2、线程池代码 3、线程池的应用场景 二、单例模式的线程安全问题 1、线程池的单例模式 2、线程安全问题 三、其他锁 一、线程池 1、线程池 线程池是一种线程使用模式。线程池里面可以维护一些线程。 为什么要有线程池? 因为在…

代码随想录算法训练营第二十五天| 216.组合总和III,17.电话号码的字母组合

题目与题解 216.组合总和III 题目链接:216.组合总和III 代码随想录题解:216.组合总和III 视频讲解:和组合问题有啥区别?回溯算法如何剪枝?| LeetCode:216.组合总和III_哔哩哔哩_bilibili 解题思路&#xf…

超云信创新品发布,引领国产化AI算力新高度

在当前数字化转型的大潮中,算力作为新质生产力的重要动力引擎,对推动经济社会发展起着关键作用。尤其在人工智能领域,随着高性能、安全可控的AI算力需求持续攀升,国产化服务器的研发与应用显得尤为迫切。 作为国内专业的算力基础…

【技巧】如何解除Excel“打开密码”?

给Excel表格设置“打开密码”,可以保护表格不被他人随意打开,那如果后续不需要保护了,不想每次打开Excel都需要输密码,要怎么去除“打开密码”呢? 今天分享3个方法,最后一个方法记得收藏起来,以…

基于springboot实现教师工作量管理系统项目【项目源码+论文说明】

基于springboot实现教师工作量管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了教师工作量管理系统的开发全过程。通过分析教师工作量管理系统管理的不足,创建了一个计算机管理教师工作…

Dragonfly S系列相机 多领域大规模制造应用的首选

Dragonfly S系列工业相机,作为一款模块化紧凑型USB3机器视觉相机,一经推出就广受从生命科学仪器到工厂自动化等行业的青睐。同时它也非常适合各种嵌入式和手持设备的高性能图像采集系统。 Dragonfly S系列相机凭借其模块化、紧凑、轻量级的设计理念&…

在哪买国外服务器便宜?

在哪买国外服务器便宜?在寻找便宜且可靠的国外服务器商家时,我们需要考虑多个因素,包括价格、性能、可靠性、技术支持和扩展性等。下面是一些备受推崇的便宜国外服务器商家。 Amazon Web Services (AWS)。作为全球最大的云服务提供商之一&am…

抖店的运营玩法你真的了解吗?没有货源也能操作的方法来了!

大家好,我是电商小布。 现在越来越多的小伙伴开始察觉到了抖店这个项目的优势,并想要加入进来开一家属于自己的小店。 但是店铺的发展远不是我们看到的那么简单,开店只是我们进入这个市场的第一步。 接下来的运营操作才是关键点。 而这个…

国货护肤更替,“韩束珀莱雅们”会成为常胜将军吗?

【潮汐商业评论/文】 July是一位资深的护肤达人,“这是敏感肌专用的修复水,这是针对熬夜黑眼圈的眼霜,这是军训专用防晒霜,这是……,”虽然粉丝很少,但July总是乐此不疲的分享自己的爱用护肤品。 最近&am…

镭速如何解决UDP传输不通的问题

我们之前有谈到过企业如果遇到UDP传输不通的情况,常见的一些解决方式,同时也介绍了一站式企业文件传输方式-镭速相关优势,如果在实际应用中,若镭速UDP传输出现不通的情况,需要按照网络通信的一般性排查方法以及针对镭速…

linux下使用iperf工具测试通过EC20模组联网后网速

1.我主要参考以下文章资料(现在是VIP文章了):iperf软件编译以及使用_iperf源码编译-CSDN博客 这里我下载的版本为3.1.3,以下附上百度网盘: 链接:https://pan.baidu.com/s/1tPi4oTBUC36jJcM5M5oj_A 提取码:bo4f --来自百度网盘超级会员V6的…

echart 仪表盘实现指针的渐变色及添加图片

需求: 在仪表盘中设置指针为渐变色,并在仪表盘中间添加图片。 实现重点: 1、仪表盘指针渐变色的实现 渐变色通过设置pointer的itemStyle属性内的color实现,重点是echart版本,这个原本使用4.8.0的版本不起作用&#xff…

2022 Tesla AI Day -特斯拉自动驾驶FSD的进展和算法软件技术之数据以及虚拟

2022 Tesla AI Day -特斯拉自动驾驶FSD的进展和算法软件技术之数据以及虚拟 附赠自动驾驶学习资料和量产经验:链接 人工智能算法犹如电影的主演,我们很多时候看电影只看到主演们的精彩,但其实电影的创意和呈现都来自于背后的导演和制片等团队…

【Effective Web】页面优化

页面优化 页面渲染流程 JavaScript 》 Style 》 Layout 》 Paint 》 Composite 首先js做了一些逻辑,触发了样式变化,style计算好这些变化后,把影响的dom元素进行重新布局(layout),再画到画布中(Paint&am…

OpenAI 展示音频模型 Voice Engine;清明节前 AI 复活亲人成热门生意丨RTE 开发者日报 Vol.175

开发者朋友们大家好: 这里是「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

逆向分析之antibot

现在太卷了,没资源,很难接到好活,今天群里看到个单子,分析了下能做,结果忙活了一小会,幸好问了下,人家同时有多个人再做,直接就拒绝再继续了。就这次忘了收定金了,所以原…