吴恩达深度学习-序列模型1.3循环神经网络模型

我们之前了解了准备工作,那么如果真的要做一个模型,我们会遇到什么问题呢?

假设我们跟之前一样,使用一个普通的神经网络模型,把输入的one-hot向量当成第一层的输入层,然后经过几层神经网络,得到一个同样长度的输出,这样做可以吗?

这样做其实会有几个问题:
1.首先,在序列模型当中,输入与输出的个数是不确定的,这样效果就不会很好。(虽然可以通过填补来增加长度)

2.它没有办法共享一个语句在不同位置得到的特征,所以就很难对一个句子或者一个顺序的数据进行分析和特征提取。

那么我们提出一个比较简单的RNN模型(循环神经网络),我们使用一个个词作为输入量,每一个输入量都对应一个输出量,然后在后一个词的神经网络当中,加入前一个词的激活函数,变成一个链。

在这种情况下,每一个词的输出都会受到前面信息的影响。

在这里他举了一个例子:
1.泰迪若斯福特是一个好总统。
2.泰迪熊在售卖中。

在这两句话当中,只通过前面的三个单词,我们很难知道泰迪这个词究竟是否是一个人名,这受制于这个模型的单向传播缺陷。但是在后面,我们会提到另外一个模型,BRNN(双向循环神经网络),可以一定程度上解决这个问题。

通过算式,我们对前一个输入的a和当前的输入量x进行参数相乘,再加上偏移量b就可以得到下一个a的值。

计算y的时候,使用到我们刚刚已经计算好的a,乘上一个y的参数,再加入一个偏移量。也就是相当于这里建立了两个小的神经网络。

然后在这里,定义了几个关于计算方面的符号:Waa,Wya,Wax,前面那个参数,代表的是要得出的变量,后面那个参数,代表的是要乘上的变量。

为了后面建立更复杂的神经网络的时候能看的更简便一些,我们需要将这些计算符号进行进一步的简化。通过矩阵乘法的方式来简化Wa和X与a之间相乘的算式。

同样的,我们也对计算y的算式进行一个简化操作。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容