1700538684
百面机器学习:算法工程师带你去面试 第10章 循环神经网络
1700538685
1700538686
作为生物体,我们的视觉和听觉不断地获得带有序列的声音和图像信号,并交由大脑理解;同时我们在说话、写作、驾驶等过程中不断地输出序列的声音、文字、操作等信号。在互联网公司日常要处理的数据中,也有很多是以序列形式存在的,例如文本、语音、视频、点击流等等。因此,如何更好地对序列数据进行建模,一向是人工智能领域的研究的要点。
1700538687
1700538688
循环神经网络(Recurrent Neural Network,RNN)是用来建模序列化数据的一种主流深度学习模型。我们知道,传统的前馈神经网络一般的输入都是一个定长的向量,无法处理变长的序列信息,即使通过一些方法把序列处理成定长的向量,模型也很难捕捉序列中的长距离依赖关系。RNN则通过将神经元串行起来处理序列化的数据。由于每个神经元能用它的内部变量保存之前输入的序列信息,因此整个序列被浓缩成抽象的表示,并可以据此进行分类或生成新的序列。近年来,得益于计算能力的大幅提升和模型的改进,RNN在很多领域取得了突破性的进展——机器翻译、序列标注、图像描述、推荐系统、智能聊天机器人、自动作词作曲等。
1700538689
1700538690
1700538691
1700538692
1700538694
百面机器学习:算法工程师带你去面试 01 循环神经网络和卷积神经网络
1700538695
1700538696
1700538697
1700538698
场景描述
1700538699
1700538700
用传统方法进行文本分类任务时,通常将一篇文章所对应的TF-IDF向量作为输入,其中TF-IDF向量的维度是词汇表的大小。使用前馈神经网络,如卷积神经网络对文本数据建模时,一般会如何操作?使用循环神经网络对文本这种带有序列信息的数据进行建模时,相比卷积神经网络又会有什么不同?
1700538701
1700538702
知识点
1700538703
1700538704
循环神经网络,前馈神经网络
1700538705
1700538706
问题 处理文本数据时,循环神经网络与前馈神经网络相比有什么特点?
1700538707
1700538708
难度:★☆☆☆☆
1700538709
1700538710
分析与解答
1700538711
1700538712
刚才提到,传统文本处理任务的方法中一般将TF-IDF向量作为特征输入。显而易见,这样的表示实际上丢失了输入的文本序列中每个单词的顺序。在神经网络的建模过程中,一般的前馈神经网络,如卷积神经网络,通常接受一个定长的向量作为输入。卷积神经网络对文本数据建模时,输入变长的字符串或者单词串,然后通过滑动窗口加池化的方式将原先的输入转换成一个固定长度的向量表示,这样做可以捕捉到原文本中的一些局部特征,但是两个单词之间的长距离依赖关系还是很难被学习到。
1700538713
1700538714
循环神经网络却能很好地处理文本数据变长并且有序的输入序列。它模拟了人阅读一篇文章的顺序,从前到后阅读文章中的每一个单词,将前面阅读到的有用信息编码到状态变量中去,从而拥有了一定的记忆能力,可以更好地理解之后的文本。图10.1展示了一个典型的循环神经网络结构[22]。
1700538715
1700538716
1700538717
1700538718
1700538719
图10.1 循环神经网络结构
1700538720
1700538721
由图可见,一个长度为T的序列用循环神经网络建模,展开之后可以看作是一个T层的前馈神经网络。其中,第t层的隐含状态ht编码了序列中前t个输入的信息,可以通过当前的输入xt和上一层神经网络的状态ht−1计算得到;最后一层的状态hT编码了整个序列的信息,因此可以作为整篇文档的压缩表示,以此为基础的结构可以应用于多种具体任务。例如,在hT后面直接接一个Softmax层,输出文本所属类别的预测概率y,就可以实现文本分类。ht和y的计算公式为
1700538722
1700538723
nett=Uxt+Wht−1 ,
1700538724
1700538725
(10.1)
1700538726
1700538727
ht=f(nett) ,
1700538728
1700538729
(10.2)
1700538730
1700538731
y=g(VhT) ,
1700538732
[
上一页 ]
[ :1.700538683e+09 ]
[
下一页 ]