递归神经网络|深度学习(李宏毅)(十六)

简介: 递归神经网络|深度学习(李宏毅)(十六)

李宏毅老师深度学习系列2020


一、递归神经网络与循环神经网络


该部分以情感分析任务为例来说明递归神经网络(recursive neural network)和循环神经网络(recurrent neural network)的关系。


如下图所示,在使用RNN来搭建情感分析神经网络模型时,我们首先使用word embedding的方法来将获取句子的embedding序列,然后将序列中的每一个token的embedding输入到RNN中,最后将最后一个时间点的输出向量输入到一个分类器(可以是一个前馈网络)中来完成情感分类任务。而使用递归结构时需要事先确定文本序列的结构信息,然后按照文本的结构来按顺序将embedding向量输入到QIBN`ZXATZ09H6@HV8M)8NE.png中,QIBN`ZXATZ09H6@HV8M)8NE.png可以是一个神经网络,最终需要将最后一个QIBN`ZXATZ09H6@HV8M)8NE.png的输入输入到分类器~0$R@BGU@PXY[6)3L7XE)}9.png中获得情感分类的结果:

V_{B3~{O(66614KUXALOZZV.png

                                            情感分析


循环神经网络可以看做递归神经网络的特殊情况,递归神经网络需要事先定义序列内token的关系来决定输入的顺序,只要定义这个顺序和循环神经网络一样,递归神经网络就成了循环神经网络。


二、递归神经网络


该部分以一个具体的例子来说明递归神经网络的设计。


  1. 架构

]C1VZL~BO5AUGKCLEP`P7TP.png

                                                     递归神经网络

通常Q74{1ZMS]WV@`_RUC{FFKKD.png不会是两个输入向量的简单相加,因为获取两个词结合起来的意思可能需要比较复杂的函数来拟合,举例来说:


Case1:

 not:neutral

 good:positive

 not good:negative

Case2:

 好棒:positive

 棒:positive

 好棒棒:negative


通过上面的例子可以想象两个词向量的简单相加是不能表达其结合起来的意义的,因此Q74{1ZMS]WV@`_RUC{FFKKD.png通常是一个神经网络。在下面两图中,我们使用蓝色来代表positive的意思,橙色来代表negative的意思。两张图分别表达了“not”要将跟其结合的词的意义转向(reverse),而“very”要将跟其结合的词的意义加强(emphasize),因此Q74{1ZMS]WV@`_RUC{FFKKD.png需要是一个复杂的神经网络:


E1H$8IO@WHFW4`~RKHC~[_5.png

                               not

T1)DS$HZCHKHO9M8Y4%QIOH.png

                           very

训练这个网络的整个过程如下,将所有词按照文法结构输入给Q74{1ZMS]WV@`_RUC{FFKKD.png,最终将Q74{1ZMS]WV@`_RUC{FFKKD.png的输入输入到分类器ZEI@R@H{JCAQK`HR{_1A86F.png中最终得到类别的分布,然后再将这个分布跟标签取loss然后更新网络的参数:


H6_]19G%K5`UT%N$IT7$~ZY.png

过程


  1. 网络Q74{1ZMS]WV@`_RUC{FFKKD.png的设计

前面说过,Q74{1ZMS]WV@`_RUC{FFKKD.png不能是两个输入向量的简单相加,下图这种Q74{1ZMS]WV@`_RUC{FFKKD.png的设计方式会使得输入向量ZOTTVKUE%(]H%TMQT4(_SP0.pngG{81F]~Q5CW]EB[5P7X}K(K.png由很少的交互,最终Q74{1ZMS]WV@`_RUC{FFKKD.png输出的Q$W5}2%ANOGJDFL@%0SD%RW.png的每一维度都只是ZOTTVKUE%(]H%TMQT4(_SP0.pngG{81F]~Q5CW]EB[5P7X}K(K.png的简单相加,因此Q74{1ZMS]WV@`_RUC{FFKKD.png仍需要更复杂的设计:


[I%)VATX909Z3VOZZ[VSTJN.png

                                         f的结构


  • Recursive Neural Tensor Network

下面介绍的这种Q74{1ZMS]WV@`_RUC{FFKKD.png的设计中包含了Tensor Network的结构,因此叫做Recursive Neural Tensor Network。下图展示了这种Q74{1ZMS]WV@`_RUC{FFKKD.png的具体设计:

8DNDC~7UEE97[PL~V``KZ6X.png

                                        Recursive Neural Tensor Network


我们定义(Q_5OZ@6)ZR%J3F9OSBOR(9.pngE3Z8L[@$%YZ~`UOUF3[AYLO.png拼接起来的向量为QB3L_VPS88250UENOM77Y4A.png,图中方框内的部分会得到一个标量(SH_7AJO{%18JI9K_%YPR3X.png,这样(Q_5OZ@6)ZR%J3F9OSBOR(9.pngE3Z8L[@$%YZ~`UOUF3[AYLO.png就因为有了更多的相乘的关系而有了更强的交互。这里使用了多个方框中的结构是为了能够得到一个向量与加号右边的部分相加。需要注意多个方框内的@6A7DEM3Q_CF)_Q_}((TZ(L.png是不同的。


  • Matrix-Vector Recursive Network


Matrix-Vector Recursive Network这种设计虽然在效果上不如上述方法,但其设计思想值得学习一下。这种方法做的主要的假设是一个词的embedding的一部分代表这个词的意义,另一部分代表这个词如何去影响别的词:


C1MVV@A7C0Z0K(5}MY(VUVR.png

                    假设


每个输入的词的一部分代表其含义,另一部分代表其如何影响别的词,我们将这一部分排列成一个矩阵。当两个词(以“not”和“good”为例)同时输入到函数Q74{1ZMS]WV@`_RUC{FFKKD.png中时,每个词的代表含义的向量将和另一个词的代表影响的矩阵相乘得到两个向量,然后将这两个向量拼接起来再乘以一个权重矩阵L%MW3Q243MJ(G@)OUPX[68D.png得到新的含义向量;每个词的影响矩阵会拼接到一起然后乘以一个一个权重矩阵)V2_BN960O{{GN_@D3H7)LF.png得到新的影响矩阵,然后将含义向量和影响矩阵排列成新的向量在通过激活函数就是Q74{1ZMS]WV@`_RUC{FFKKD.png的输出。该过程如下图所示:


N`}XKZG2$1Q87$XZ~A@I[JR.png

                             Matrix-Vector Recursive Network


可以推测,像“not”这样的中性词,其含义向量可能为`4ESG0FEOZDFL1(]EDFMQ(4.png,而其会将与之结合的词的意义反转,所以其影响矩阵可能为对角元素为(6M157UVBKD2}B1QFX70)J4.png的对角矩阵;而“good”对与之结合的词没有太大影响,其影响矩阵可能是单位矩阵。


  • Tree LSTM


L_06_)Z@5OB4$F~PWMPKEV1.png

                                                  LSTM


Tree LSTM也就是使用LSTM来充当递归神经网络的Q74{1ZMS]WV@`_RUC{FFKKD.png


770]Z({G[8FT6%A43ZEQYUT.png

                       Recursive Neural Network


这里的LSTM输入两个向量,每个向量都包含`59OS_I@ZKQB2CB[PU~CK)I.png3E42(D0NJCQXB89B4(5I){C.png,然后输出另一个`59OS_I@ZKQB2CB[PU~CK)I.png3E42(D0NJCQXB89B4(5I){C.png


`HZTV`L{(HL36`~)O`0RRTN.png

                                   Tree LSTM


三、应用


如果输入的序列有明显的结构层次(比如数学公式),那么使用递归神经网络会有比较好的效果,对于一般的文本递归神经网络的提升并不大,这是因为定义的文本结构也不一定是正确的。


除了应用在情感分析上,递归神经网络也有一些别的应用,比如评估句子相似度(sentence relatedness)。具体的做法是将两个句子输入到递归神经网络中得到其输出,然后将输出输入到一个别的神经网络中得到评估的结果:


ORZ@[KR6WD[_CB7R)W@X8FX.png

                      sentence relatedness


得到的效果如下,每句话前面的数字代表打分:


25`H_4N4AH([5ZTVGN[05PG.png

                            效果


上述例子的论文链接:https://arxiv.org/abs/1503.00075

相关文章
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
|
6天前
|
机器学习/深度学习 人工智能 网络架构
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
22 1
|
8天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。
|
14天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
13天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
14天前
|
机器学习/深度学习 人工智能 自动驾驶
深入解析深度学习中的卷积神经网络(CNN)
深入解析深度学习中的卷积神经网络(CNN)
30 0
|
16天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习的奇迹:如何用神经网络识别图像
【10月更文挑战第33天】在这篇文章中,我们将探索深度学习的奇妙世界,特别是卷积神经网络(CNN)在图像识别中的应用。我们将通过一个简单的代码示例,展示如何使用Python和Keras库构建一个能够识别手写数字的神经网络。这不仅是对深度学习概念的直观介绍,也是对技术实践的一次尝试。让我们一起踏上这段探索之旅,看看数据、模型和代码是如何交织在一起,创造出令人惊叹的结果。
26 0
|
2天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的知识,并提供一些实用的技巧和建议,帮助读者更好地保护自己的网络安全和信息安全。
|
2天前
|
安全 算法 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在当今数字化时代,网络安全和信息安全已经成为了全球关注的焦点。随着技术的发展,网络攻击手段日益狡猾,而防范措施也必须不断更新以应对新的挑战。本文将深入探讨网络安全的常见漏洞,介绍加密技术的基本概念和应用,并强调培养良好安全意识的重要性。通过这些知识的分享,旨在提升公众对网络安全的认识,共同构建更加安全的网络环境。

热门文章

最新文章

下一篇
无影云桌面