百度网站网址是什么宁波做网站首荐荣盛网络

diannao/2026/1/13 15:48:08/文章来源:
百度网站网址是什么,宁波做网站首荐荣盛网络,seo线下培训班,网站建设 010目录 习题6-4 推导LSTM网络中参数的梯度#xff0c; 并分析其避免梯度消失的效果 LSTM前向传播 反向传播 求梯度 梯度消失和梯度爆炸怎么来的#xff1f; 关键点#xff1a;LSTM如何缓解梯度消失#xff1f; 习题6-3P 编程实现下图LSTM运行过程 1…目录 习题6-4  推导LSTM网络中参数的梯度 并分析其避免梯度消失的效果 LSTM前向传播 反向传播 求梯度 梯度消失和梯度爆炸怎么来的 关键点LSTM如何缓解梯度消失 习题6-3P  编程实现下图LSTM运行过程 1. 使用Numpy实现LSTM算子 2. 使用nn.LSTMCell实现 3. 使用nn.LSTM实现 总结 引用的博客以及文章连接 老师博客: 【23-24 秋学期】NNDL 作业11 LSTM-CSDN博客 DL Homework 11-CSDN博客 李宏毅机器学习笔记RNN循环神经网络_李宏毅rnn笔记-CSDN博客 L5W1作业1 手把手实现循环神经网络-CSDN博客 习题6-4  推导LSTM网络中参数的梯度 并分析其避免梯度消失的效果 强烈推荐我看的B站视频2.前向传播的过程_哔哩哔哩_bilibili 我把这个系列来来回回听了两遍照着UP主的思路手推了一遍突然就感觉顿悟了。他讲的简单易懂很细致非常适合初学小白。 以下展示手推过程。分别是前向传播--反向传播 梯度消失与爆炸--如何缓解梯度消失(爆炸)。 LSTM前向传播 先放上前向传播结论图下图为UP主推导得出的结论 首先介绍LSTM结构我在平板上画了一遍这个图中LSTM共有三个门 :遗忘门 :更新门   :输出门 是上一时刻输入进来的Cell记忆单元是上一时刻输入进来的隐藏状态是这一时刻的输入。注意最后的输出,有两个分支一支作为输出(绿色支线)另一支作为下一时刻输入的隐藏状态。 为点乘矩阵/向量对应位置相乘 表示矩阵相加 代表sigmoid可以将值映射到[0,1]之间 tanh即为tanh激活函数。 进行公式推导先举例 推导和 权重输入偏置项都已经标清楚了。sigmoid函数中的公式就是循环神经网络的前向传播公式直接套用即可但是一定要注意下角标标清楚这是来自哪个门的路径角标。 以此类推按照图中所给的结构图进行推导照葫芦画瓢很容易就能得到 (这里使用来表示支线上的是因为避免与记忆单元重合所以赋了一个新的符号) 根据路径关系可以得到是由遗忘门和更新门进行矩阵相加得到的 输出门  又因为要分出一条支路和输出门结果做点乘才能得到t时刻的隐藏状态 : 其中不仅可以作为t时刻的隐藏状态也可以作为输出 (绿色分支的线)的值可以根据任务需求进行设定一般可以设  前向传播很好推导就是根据现有的结构照葫芦画瓢理清楚路径顺序和路径上的操作(比如sigmoidtanh,点乘相加)推出一个参数的公式来其他参数推导公式也就大差不差了。 反向传播 求梯度 我们以t3 为例三个时刻的LSTM模型结构如下图 因为循环神经网络权重共享所以在不同时刻 W的值都是相等的。 其中的表示 预测值(输出)为为: 表示t时刻的损失Loss。当t3时对的梯度表示如下: 那么我们可以分别得到t在各个值时的链式法则求梯度公式 整合一下除了t3时刻的式子之外t2 t1时刻的式子可以提出公因式括号内有一个连乘式 可以得到 故对任意t时刻下有 即 还有一点应为标量这个公式才能成立。具体原因是 公式中使用了连乘。如果为向量就无法满足交换律就不能写为连乘的形式了。 这是数学上的一些细节我资历太浅 讲不明白(捂脸)想深入探究为何的请去看一遍UP的视频。 5.LSTM如何缓解梯度消失公式推导_哔哩哔哩_bilibili 梯度消失和梯度爆炸怎么来的 原因就在于这个公式 上面这个公式是怎么来的---上文我写到了的表达式截个图 放下面 会用复合函数求导的小伙伴一眼就可以看出来这就是求了个复合函数才得到了这个式子。 接下来再回顾一下刚才我们求得的链式法则梯度公式 导致梯度爆炸和梯度消失的关键点就在于连乘我们连乘了好多个 而且又因为所以参数的设置就至关重要了 如果1,那么梯度值会越乘越大很容易出现梯度爆炸现象。设想一下比1大的数经过了十几次方 或者几十次甚至几百 几千次方的连乘这个值将变得超级大。 如果1,相应的梯度值会越乘越大就会出现梯度消失现象。W越乘越接近0链式求导就无法进行下去了。 所以调整的值是非常关键的。 关键点LSTM如何缓解梯度消失 有了前面知识的铺垫现在我们终于可以进入正题那就是LSTM如何缓解梯度消失 (看完了UP主的推导后  被UP深深的折服了献上了我的一键三连。) 首先我们给出结论如下图所示我们需要调整,使得这一项接近于1就能缓解梯度消失现象。    现在来探讨一下具体的原因。 (以上的图片为结论) 下图是我从up视频里截出来的可见LSTM的参数非常非常多看的人头晕。 仍然设我们如果想求出就需要找到各个时刻的梯度值。  时刻的偏导数最好求因为只有一条路径可以到达 但是时刻的偏导数就变得超级难求因为有很多条路径可以达到我用平板画一画 大家体会一下(这一步需要对反向传播链式求导的过程很熟悉) 1. 第一条从到达的路经(红色绿色)---- 这条路径是从入手的仔细观察红色路径的重要拐弯节点。从可以逆推到再从逆推到。 2. 第二条从到达的路径 3. 第三条从到达的路径 4. 第四条从到达的路径 5. 第五条从到达的路径 这五条路径 每一条都可以写出链式求导公式太太太复杂了我们理解了原理就行公式推导无非就是换了一些角标核心思想还是反向传播-链式求导。 这还只是时刻的链式求导公式的构建过程时刻的更加复杂。UP整理的最终链式求导公式为 公式的关键点在这儿 公式中的即代表着一般表达式中的中集合着所有链式求导的路径它是路径的集合形式。我们再回顾这个结论结论从抽象变得具体了 可以得到我们需要控制W参数使连乘项约等于多个1相乘。 这样可以同时缓解梯度消失和梯度爆炸的问题。 最后 感谢UP主的视频讲解十分感谢UP主提供了这么详细的讲解他的公式推导过程很详细十分推荐大家去看他的视频。 习题6-3P  编程实现下图LSTM运行过程 1. 使用Numpy实现LSTM算子 2. 使用nn.LSTMCell实现 3. 使用nn.LSTM实现 谢谢同班同学果大神的代码思路我在第一题里花费了好多时间反复听了一系列课、写博客、写公式前几天也是在一直准备英语四六级。还好有果大神的现成代码能让我借鉴复现一下(仅管有点小小的偷懒意味但老师说过  学习的初始阶段就是不断地借鉴、模仿哈哈哈 那我就借鉴一下同学写好的代码吧) 果大神博客DL Homework 11-CSDN博客 1. 使用Numpy实现LSTM算子 代码的流程和我前文中所写的前向传播过程相匹配: 首先赋初始值给输入和权重 定义sigmoid函数sigmoid函数的数学公式为 开始循环不断地保存上一时刻的状态并且进行三个门的点乘运算更新记忆细胞状态 输出得到结果。 代码 #numpy算子实现LSTM import numpy as np#初始化输入序列每行代表一个时间步的输入 [x1 x2 x3 label] x np.array([[1, 0, 0, 1],[3, 1, 0, 1],[2, 0, 0, 1],[4, 1, 0, 1],[2, 0, 0, 1],[1, 0, 1, 1],[3, -1, 0, 1],[6, 1, 0, 1],[1, 0, 1, 1]])#权重初始化 c_W np.array([1, 0, 0, 0]) #细胞状态权重 inputGate_W np.array([0, 100, 0, -10])#输入门权重 outputGate_W np.array([0, 0, 100, -10])#输出门权重 forgetGate_W np.array([0, 100, 0, 10])#遗忘门权重#sigmoid函数 用于LSTM中各种门的操作 def sigmoid(x):y 1 / (1 np.exp(-x))if y 0.5:return 1else:return 0temp 0 y [] c [] for input in x:c.append(temp) #保存上一时刻的细胞状态temp_c np.sum(np.multiply(input, c_W)) #新细胞状态的线性组合#输入门 遗忘门 输出门# multiply表示点乘运算 sigmoid将数值进行非线性变换temp_input sigmoid(np.sum(np.multiply(input, inputGate_W)))temp_forget sigmoid(np.sum(np.multiply(input, forgetGate_W)))temp_output sigmoid(np.sum(np.multiply(input, outputGate_W)))temp temp_c * temp_input temp_forget * temp#更新细胞状态y.append(temp_output * temp)#通过输出门得到输出保存下来 print(Memory:, c) print(Y :, y) 结果 2. 使用nn.LSTMCell实现 从同学那里淘来的网址中文版pytorch网站PyTorch - torch.nn.LSTMCell (runebook.dev) nn.LSTMCell的使用介绍如下  前向传播过程 参数介绍及形状展示 权重偏置项 使用jupyter运行一下官网给的代码 rnn nn.LSTMCell(10, 20) # (input_size, hidden_size) input torch.randn(2, 3, 10) # (time_steps, batch, input_size) hx torch.randn(3, 20) # (batch, hidden_size) cx torch.randn(3, 20) output [] for i in range(input.size()[0]):hx, cx rnn(input[i], (hx, cx))output.append(hx) output torch.stack(output, dim0) 了解了LSTMCell的基本运行原理后开始使用LSTMCell实现所给示例 import torch import torch.nn as nn#输入数据 x 维度需要变换因为LSTMcell接收的是(time_steps,batch_size,input_size) x torch.tensor([[1, 0, 0, 1],[3, 1, 0, 1],[2, 0, 0, 1],[4, 1, 0, 1],[2, 0, 0, 1],[1, 0, 1, 1],[3, -1, 0, 1],[6, 1, 0, 1],[1, 0, 1, 1]], dtypetorch.float) #增加1个batch维度x由原来的3*4的矩阵变为3*1*4的张量 x x.unsqueeze(1)hidden_size1#使用LSTMCell定义LSTM单元 lstm_cell nn.LSTMCell(input_size4, hidden_size1, biasFalse)lstm_cell.weight_ih.data torch.tensor([[0, 100, 0, 10], # forget gate[0, 100, 0, -10], # input gate[1, 0, 0, 0], # output gate[0, 0, 100, -10]]).float() #cell gate lstm_cell.weight_hh.data torch.zeros([4 * hidden_size, hidden_size]) # https://runebook.dev/zh/docs/pytorch/generated/torch.nn.lstmcell#初始化隐藏状态和细胞状态 初始值设为0 hx torch.zeros(1, hidden_size) cx torch.zeros(1, hidden_size)outputs [] for i in range(len(x)):hx, cx lstm_cell(x[i], (hx, cx))#前向传播outputs.append(hx.detach().numpy()[0][0])#.detach()方法为确保tensor不计算梯度 outputs_rounded [round(x) for x in outputs] #四舍五入到最接近的整数 print(outputs_rounded) 结果 3. 使用nn.LSTM实现 nn.LSTM相较于nn.LSTMCell增加了 num_layers PyTorch - torch.nn.LSTM (runebook.dev) ​​​​​​​ 和nn.LSTMCell()的代码流程一样 import torch import torch.nn as nn# 输入数据 x 维度需要变换因为 LSTM 接收的是 (sequence_length, batch_size, input_size) x torch.tensor([[1, 0, 0, 1],[3, 1, 0, 1],[2, 0, 0, 1],[4, 1, 0, 1],[2, 0, 0, 1],[1, 0, 1, 1],[3, -1, 0, 1],[6, 1, 0, 1],[1, 0, 1, 1]], dtypetorch.float)#增加1个batch维度x由原来的3*4的矩阵变为3*1*4的张量 x x.unsqueeze(1)#输入size 和 隐藏状态 size input_size 4 hidden_size 1#定义LSTM模型 lstm nn.LSTM(input_sizeinput_size, hidden_sizehidden_size, biasFalse)#设置权重矩阵 #只设置了输入到隐藏层的权重而隐藏层到隐藏层的权重被设置为零。 lstm.weight_ih_l0.data torch.tensor([[0, 100, 0, 10], # forget gate[0, 100, 0, -10], # input gate[1, 0, 0, 0], # output gate[0, 0, 100, -10]]).float() # cell gate #隐藏层到隐藏层的权重设置为零 lstm.weight_hh_l0.data torch.zeros([4 * hidden_size, hidden_size])#初始化隐藏状态和记忆状态 hx torch.zeros(1, 1, hidden_size) cx torch.zeros(1, 1, hidden_size)# 前向传播 outputs, (hx, cx) lstm(x, (hx, cx)) #通过.squeeze()方法去掉batch维度得到一个一维的输出结果 outputs outputs.squeeze().tolist()#四舍五入到最接近的整数 outputs_rounded [round(x) for x in outputs] print(outputs_rounded) 结果和使用nn.LSTMCell()构建的结果一样 总结 这次的作业 我将主要精力都放在LSTM原理理解和公式推导部分了选了几个B站的课程试听最终听完了我认为讲的最详细、最适合小白听的课程来回听了两遍。自己画了流程图手推了前向传播过程和简单的反向传播公式。我对一下的LSTM工作流程有了更深入的了解 前向传播--反向传播--梯度爆炸梯度消失问题的来源--缓解梯度消失的方法 听的最酣畅淋漓的就是梯度爆炸梯度消失问题的来源与缓解方法。原来做作业的时候要去分析为什么神经网络模型会出现梯度爆炸和梯度消失得到的答案就是因为   “权重设置不恰当导致反向传播链式求导的时候出现了多个权值连乘 使得梯度值要么 越来越小最终消亡 梯度接近于零 无法进行更新要么越来越大梯度值爆炸式的上升使得模型更新效果大减折扣” 。原因确实是这样的但是背后的数学原理 我还是理解得一塌糊涂没有进行过一步步的数学公式推导所以根本就不清楚为啥会出现“权重连乘项”。 而这次的作业我跟着B站的课紧跟了一遍从模型构建一直到环节梯度消失的过程 为什么会出现权重连乘项的问题也就迎刃而解了。 代码部分借鉴了同学们的作业利用辅助工具(其实是文心一言)帮我理清了代码的流程走了一遍流程照着手敲了一遍。主要问题还是--张量的形状设置头晕脑胀搞不清楚...得一遍又一遍的调整形状参数。哎我的弱项就是写代码必须要加把劲努力做到从头到尾原创代码。

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

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

相关文章

阿里云怎么放多个网站主题 sku 推广

为什么要选择百度云 ? 因为他免费用一年 首先要先开通百度云内容安全服务 按照操作指引走完整套 ContentCensor Java SDK目录结构** com.baidu.aip├── auth //签名相关类├── http //Http通…

保定网站设计优势做网站公司融资多少

Nginx 中将前端请求中的所有以 “/apiUrl” 开头的路径代理到 http://192.12.200.101:9813 例如: /apiUrl/login > http://192.12.200.101:9813/login 配置nginx环境 进入Nginx 的配置文件编辑界面: sudo nano /etc/nginx/conf.d/default.conf开始编辑 defaul…

有名网站建设公司WordPress如何推广

Dubbo面试专题 JVM面试专题 Java并发面试专题 Kafka面试专题 MongDB面试专题 MyBatis面试专题 MySQL面试专题 Netty面试专题 RabbitMQ面试专题 Redis面试专题 Spring Cloud面试专题 SpringBoot面试专题 zookeeper面试专题 最后 给大家送一个小福利 资料都是免费分享的&#xf…

品牌型网站设计阿里云clouder网站建设

全世界只有3.14 % 的人关注了爆炸吧知识大家好,我是小南,本科就读于国内某双非二本院校,于2019年拿到了浙江大学的直博录取函。很多人问我从二本院校成功跨越到国内知名高校的秘诀是什么,我个人觉得,除开运气&#xff…

岳阳做网站费用这么自己建设网站

登录—专业IT笔试面试备考平台_牛客网 题意 思路 首先想法非常单一,一定是去枚举操作点,然后看它染白和不染的价值差值 也就是说,把一个黑色结点染白之后,对哪些结点的价值会影响 不难想象其实就是操作结点的子树和该点连通的…

网站站点建设的端口摄影化妆艺术学校网站源码

实现效果:点击图表,弹出该数据下对应得详情 官方文档: 封装的图表组件中: 点击获取点击得对象,进而将需要的参数传给父组件,在父组件中再去请求接口获取更多信息 this.chart.on(click, (params)> {th…

网站模版 拓如何上传程序到网站空间

安卓手机下载一个络达官方的刷机软件然后连接上耳机,打开软件,就可以看到耳机芯片的相关信息。软件下载地址:https://pan.baidu.com/s/1MOXjkHv1wfxWWIVdcsMSFg 提取码: tasc我们的耳机都是络达芯片,不怕你检测,希望用…

dw个人网站制作模板做纺织机械的网站域名

Windows电脑向ipad和iOS系统共享文件夹 这个方案不需要下载任何软件,但是要求 iOS 和 Windows 在同一个局域网内。再大的文件都可以在 iOS13 自带的的“文件App”里实时显示,可以直接打开。这个解决方案需要你 Windows 电脑上登陆了微软账号&#xff0c…

中文网站制作网站备案喷绘

Windows 8里面带的IE10酷不酷?沉浸式界面果然不同凡响,IE10让人几乎认不出来了!这是微软的浏览器么?上面这张图是Windows8下Metro UI的新界面IE10,不过当我们切换回传统桌面的时候,也有IE10的经典版的。好吧…

动易网站安装公司在东莞建设网登记要多少钱

学习分析 1、资源准备2、环境配置2.1、将资源包下载解压缩保存。2.2、在QT中创建工程,配置环境 3、测试配置3.1、 sqlite3_open函数3.2、sqlite3_close函数3.3、代码测试 1、资源准备 资源包 2、环境配置 2.1、将资源包下载解压缩保存。 解压缩得到以下文件 2.2、在QT中创建…

网站开发名词解释南宁网站建设电话

1、基本概念 队列是只允许在一端进行插入,而在另一段进行删除的线性表队头:允许删除的一端队尾:允许插入的一端空队列:没有任何元素的空表 队列是操作受限的线性表,因此不是任何对线性表的操作都可以作为队列的操作…

网站名称在哪里修改北京朝阳官方平台

介绍: Java中的CopyOnWriteArrayList是List接口的线程安全实现。 它属于java.util.concurrent包,是ArrayList实现的增强版本。 顾名思义, CopyOnWriteArrayList为每个add()或set()操作创建基础…

论文引用网站怎样做脚注做网站法律条文

SVN常用命令详解和global ignore pattern Subversion(SVN)是一个版本控制系统,广泛用于软件开发项目中。它能够追踪文件的变更,并且允许多人在同一个项目中协同工作。以下是一些常用的SVN命令及其用法。 1. 检出代码 要从SVN服…

网站制作的大公司网站建设分为那几个模块

一、安装TensorBoard 管理员身份运行Anaconda Prompt,进入自己的环境环境 conda activate y_pytorch,pip install tensorboard 进行下载,也可以通过conda install tensorboard进行下载。其实通俗点,pip相当于菜市场,c…

乔拓云智能建站免费注册淘宝做问卷的网站好

本章内容 目录 一、了解 Diff 算法二、key 值的重要性三、为什么不建议使用 index 做 key 值 上一节我们初步了解了 React中的”虚拟 DOM“ ,本节我们来说一说”虚拟DOM“中的”Diff算法“ 一、了解 Diff 算法 在上一篇中,我们有讲到:当 st…

剑网三奇遇查询网站怎么做线上营销工具

大家好,我是若川。持续组织了近一年的源码共读活动,感兴趣的可以 加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

深圳网站设计十年乐云seo合肥房产备案网上查询

一个星期前刷了3.2,但充电和耗电问题一直困扰着我,我的魅兔主要出现以下问题:1.充电慢,基本四个小时充满。如果一边玩一边充,甚至会掉电。2.耗电极快,待机一小时掉电10%,待机一晚掉电50%。倒是出…

网站分站作用石家庄兼职做网站

在32位系统,ip2long不能转换IPv6,但您可以转换ip2bin和bin2ip 这个函数转换为IPv4和IPv6,返回false,如果是无效的实例程序 代码如下复制代码function ip2bin($ip){if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ! fa…

做母婴产品哪个网站做的好处wordpress文字个数

两个应用程序如果需要进行通讯最基本的一个前提就是能够唯一的标示一个进程,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中…

怎么建立博客网站wordpress打印短代码

大模型日报 2024-04-09 大模型资讯 苹果预告超越ChatGPT的新AI模型ReaLM 摘要: 苹果公司最新宣布,即将推出一款名为ReaLM的人工智能模型。这款AI技术在理解复杂屏幕用户指令方面表现出高超的能力,并能与用户进行自然流畅的对话。ReaLM的推出预示着苹果在…