总比寺白角
量子比特报告| 公众号QbitAI
在今天的机器学习初学者入门文章中,我们将向您介绍什么是循环神经网络(也称为RNN)。
循环神经网络专门处理序列。由于其在处理文本方面的有效性,它经常用于自然语言处理(NLP)任务。
这是我之前介绍过的——Victor Zhou的作者。
RNN有什么用?
传统神经网络和CNN 的问题之一是它们仅适用于预设大小。
通俗地说,它接受固定大小的输入并产生固定大小的输出。
例如,我们之前讨论的CNN 示例采用4x4 图像作为输入,并指定2x2 图像的最终输出。
那么RNN 呢?它专注于文本处理,具有可变的输入和输出长度,例如一对一、一对多、多对一和多对多。
我想你看了这张照片就明白了。
其中,输入为红色,RNN本身为绿色,输出为蓝色。
处理这个序列的能力非常有用,因此RNN 拥有丰富的应用场景。
例如,机器翻译。
可以看到,具体的歌曲、具体的方法、具体的程度以及最近流行的DeepL翻译器都是以“多对多”的方式实现的。
原始文本序列被输入RNN,翻译后的文本将作为输出生成。
另一个例子是情感分析。
通常使用“多对一”RNN。待分析的文本被输入到RNN,该RNN 会生成单个输出分类。
示例:分析评论是正面还是负面。
输出:这是一个积极的评论。
怎样实现RNN?
我们先想一下。 “多对多RNN,输入为x0、x1、x2…xn,输出为y0、y1、y2…yn,其中xi 和yi 是任意维度的向量。”
RNN 的工作原理是重复更新隐藏状态h,它是一个可以具有任意维度的向量。
对于任何ht:
1. 根据相应的输入xt 和之前的隐藏层ht-1 计算。 2、输出yt是ht计算的结果。
这样,前面的输出结果就被带入下一个隐藏层一起训练。这么一看,你不觉得“循环”二字吗?
一般来说,典型的RNN只需要三组权重即可完成计算。
此外,还需要两个偏差。
这样,这三个权重和两个偏差就完成了整个RNN的计算。
将它们结合起来,方程变为:
请注意,这里的权重是矩阵,而其他变量是向量。
这里的第一个方程中,使用双曲函数作为激活函数,但当然你也可以使用上面提到的S形函数。
文本是肯定还是否定?
接下来,尝试从头开始运行RNN。
情感分析的一个简单示例是确定给定的字符串是正面表达还是负面表达。
例如,像这样的数据集:
从该表中可以看到,我们使用“多对一”RNN 类型。
每个输入x 将是一个表示文本中单词的向量。
输出y 是一个包含两个数字的向量,一个代表正数,一个代表负数。然后应用Softmax将这些值转换为概率,最终得到正值和负值。
预处理
首先,您需要执行一些预处理,将数据集转换为可用的格式。由于RNN 还无法识别单词,因此它需要建立所有单词的词汇表并对其进行编号。
词汇表中有18个单词,这意味着每个单词是x,因此输入是一个18维向量。
训练RNN
接下来,从原始RNN 所需的三个权重和两个偏差开始。
这是我们之前看到的公式。
与训练以前的CNN 类似,训练RNN 首先需要损失函数。
这次,我们将使用交叉熵损失和softmax联合计算以下内容。
(c代表文本标签,如正确)
例如,如果正文本测试显示有90% 的机会为正,则损失函数将为:
计算出损失函数后,我们需要使用梯度下降训练来降低损失。
接下来是多变量计算。计算的概念与之前相同,但具体的计算公式不同。单击下面的链接了解更多信息。
训练结束后,别忘了还需要测试哦~
好了,今天的RNN介绍就到这里了。
传送门
https://victorzhou.com/blog/intro-to-rnns/
- 就这样-
量子位QbitAI·今日头条签名
关注我们,第一时间了解最新技术动态
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。