| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 2022.8.14 第十九次周报 -> 正文阅读 |
|
[人工智能]2022.8.14 第十九次周报 |
目录 前言本章我们从基础的RNN入手,在了解RNN的基本知识之后,对RNN存在的问题展开描述。借此展开对LSTM的探索,并用LSTM解决这些问题。探讨LSTM的结构和能解决这些问题的原因。最后手推LSTM,让我们对该模型有更深度的理解。 RNN的基本概念RNN的定义循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,他能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,RNN就能够很好地解决这类问题。 RNN的结构和原理在使用深度学习处理时序问题时,RNN是最常使用的模型之一。RNN之所以在时序数据上有着优异的表现是因为RNN在?t?时间片时会将?t?1?时间片的隐节点作为当前时间片的输入,也就是RNN具有下图的结构。这样有效的原因是之前时间片的信息也用于计算当前时间片的内容,而传统模型的隐节点的输出只取决于当前时间片的输入特征。 RNN存在的问题?在深度学习领域中(尤其是RNN),“长期依赖“问题是普遍存在的。长期依赖产生的原因是当神经网络的节点经过许多阶段的计算后,之前比较长的时间片的特征已经被覆盖。 梯度消失和梯度爆炸是困扰RNN模型训练的关键原因之一,产生梯度消失和梯度爆炸是由于RNN的权值矩阵循环相乘导致的,相同函数的多次组合会导致极端的非线性行为。梯度消失和梯度爆炸主要存在RNN中,因为RNN中每个时间片使用相同的权值矩阵。 LSTM的理论内容长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。 LSTM提出的动机是为了解决上面我们提到的长期依赖问题。传统的RNN节点输出仅由权值,偏置以及激活函数决定。RNN是一个链式结构,每个时间片使用的是相同的参数。而LSTM之所以能够解决RNN的长期依赖问题,是因为LSTM引入了门(gate)机制用于控制特征的流通和损失。 LSTM内部主要有三个阶段: 1. 忘记阶段。这个阶段主要是对上一个节点传进来的输入进行选择性忘记。简单来说就是会 “忘记不重要的,记住重要的”。 具体来说是通过计算得到的 Zf?(f表示forget)来作为忘记门控,来控制上一个状态的 C t?1?哪些需要留哪些需要忘。 2. 选择记忆阶段。这个阶段将这个阶段的输入有选择性地进行“记忆”。主要是会对输入?xt?进行选择记忆。哪些重要则着重记录下来,哪些不重要,则少记一些。当前的输入内容由前面计算得到的?z?表示。而选择的门控信号则是由?zi?(i代表information)来进行控制。 将上面两步得到的结果相加,即可得到传输给下一个状态的?ct 3. 输出阶段。这个阶段将决定哪些将会被当成当前状态的输出。主要是通过?zo?来进行控制的。并且还对上一阶段得到的?co?进行了放缩(通过一个tanh激活函数进行变化)。 与普通RNN类似,输出?yt?往往最终也是通过?ht?变化得到。 手推LSTM下图是LSTM的结构图 ? ?下图是要用到的公式 ? 初始化第一步,更新下面九个参数 ?第二步,初始化C0和H0都为1,1。并把输入都填进去。 正向传播第一步是遗忘门的公式 ? 第二步算输入门的值 第三步算candidate state 的值? 第四步算cell state ? 第五步算hidden state ? 第六步也就是最后算真正的输出? 下面给出运算步骤 ? 反向传播?运算步骤如下图 ?更新结果更新结果如下图 ? 总结以上,就是LSTM的内部结构。通过门控状态来控制传输状态,记住需要长时间记忆的,忘记不重要的信息;而不像普通的RNN那样只能够“呆萌”地仅有一种记忆叠加方式。对很多需要“长期记忆”的任务来说,尤其好用。但也因为引入了很多内容,导致参数变多,也使得训练难度加大了很多。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/25 23:13:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |