关于循环神经网络RNN,隐藏层是怎么来的?

2021-01-15 10:35发布

比如一个三层神经网络,我有20张图片第一张图片的最终输出作为第二张图片的隐藏层?还是第一张图片的第一层神经网络的输出作为隐藏层?反向更新权重的时候,每张图片的迭代都反向更新?还是20张图片都迭代完了更...

比如一个三层神经网络,我有20张图片

第一张图片的最终输出作为第二张图片的隐藏层?还是第一张图片的第一层神经网络的输出作为隐藏层?

反向更新权重的时候,每张图片的迭代都反向更新?还是20张图片都迭代完了更新一次?


2条回答
收获很多
2021-01-18 17:10

1.RNN怎么来的?

循环神经网络的应用场景比较多,比如暂时能写论文,写程序,写诗,但是,(总是会有但是的),但是他们现在还不能正常使用,学习出来的东西没有逻辑,所以要想真正让它更有用,路还很远。

这是一般的神经网络应该有的结构:
这里写图片描述

既然我们已经有了人工神经网络和卷积神经网络,为什么还要循环神经网络?
原因很简单,无论是卷积神经网络,还是人工神经网络,他们的前提假设都是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。
但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去_____.这里填空,人应该都知道是填“云南“。因为我们是根据上下文的内容推断出来的,但机会要做到这一步就相当得难了。因此,就有了现在的循环神经网络,他的本质是:像人一样拥有记忆的能力。因此,他的输出就依赖于当前的输入和记忆。

2.RNN的网络结构及原理

它的网络结构如下:
这里写图片描述
其中每个圆圈可以看作是一个单元,而且每个单元做的事情也是一样的,因此可以折叠呈左半图的样子。用一句话解释RNN,就是一个单元结构重复使用

RNN是一个序列到序列的模型,假设是一个输入:“我是中国“,那么就应该对应”是”,”中国”这两个,预测下一个词最有可能是什么?就是应该是”人”的概率比较大。

因此,我们可以做这样的定义:

。因为我们当前时刻的输出是由记忆和当前时刻的输入决定的,就像你现在大四,你的知识是由大四学到的知识(当前输入)和大三以及大三以前学到的东西的(记忆)的结合,RNN在这点上也类似,神经网络最擅长做的就是通过一系列参数把很多内容整合到一起,然后学习这个参数,因此就定义了RNN的基础:

大家可能会很好奇,为什么还要加一个 函数,其实这个函数是神经网络中的激活函数,但为什么要加上它呢?
举个例子,假如你在大学学了非常好的解题方法,那你初中那时候的解题方法还要用吗?显然是不用了的。RNN的想法也一样,既然我能记忆了,那我当然是只记重要的信息啦,其他不重要的,就肯定会忘记,是吧。但是在神经网络中什么最适合过滤信息呀?肯定是激活函数嘛,因此在这里就套用一个激活函数,来做一个非线性映射,来过滤信息,这个激活函数可能为tanh,也可为其他。


一周热门 更多>