深度学习有关NLP的模型介绍

不同的模型应对不同的应用场景,有的模型是刚开始应对某些文本处理场景时“创作”出来的,有的模型是根据原本的模型在处理某些特定问题的时候“改善”出来的,下面我会重点说一下关于这些模型的概念理解

深度神经网络(Deep Neural Network, DNN)

        DNN在这里面算是一个比较大的统称,因为它包含了其他近乎所有的模型,所以它一般出现在需要但是不深入的场景里面提一下就好,本身也不是很常用(一般都会说一些更具体的模型名称)

        DNN是一种由多层神经元组成的人工神经网络。DNN通常包括输入层、多个隐藏层和输出层,每一层都由多个神经元组成,并且各层之间的神经元通常是全连接的。

        DNN通过在训练过程中自动学习输入数据的特征表示,可以用于解决分类、回归、聚类等机器学习任务。深度神经网络的深度指的是它具有多个隐藏层,相对于浅层神经网络,深度神经网络能够更好地表达复杂的非线性关系。

        在深度学习领域,DNN是指代包括多个隐藏层的神经网络模型,常见的深度学习模型如全连接神经网络、卷积神经网络(CNN)、循环神经网络(RNN)、长短时记忆网络(LSTM)等都属于DNN的范畴。

循环神经网络(Recurrent Neural Network,RNN)

        这算是一个小一点的统称,一般是以RNN来代替简单循环神经网络(Simple RNN),而LSTM,BiLSTM和GRU是会另外提出来的。


        RNN主要用于处理序列数据,比如自然语言文本。RNN可以将上一个时刻的输出作为下一个时刻的输入,一直传递下去,从而在整个序列中产生上下文依赖性。常见的RNN包括简单循环神经网络(Simple RNN)、长短时记忆网络(Long Short-term Memory,LSTM)和门控循环单元(Gated Recurrent Unit,GRU)、BiLSTM(双向长短时记忆网络)等。

        下面介绍一下这三个模型以及它们的对比。

长短时记忆网络(Long Short-term Memory,LSTM)

一,RNN和LSTM那些不得不说的故事

        长短时记忆网络(LSTM)是一种特殊类型的循环神经网络(RNN)。相比于传统的RNN,LSTM能够更好地处理长期依赖性,避免梯度消失或梯度爆炸的问题。Why?因为LSTMD引入了三个门,其中遗忘门(功能顾名思义了)的存在增加了它对于更长期,更庞大,更复杂的数据的处理能力。(就跟那个调整dropout来增加鲁棒性是差不多的思路)

        LSTM的核心思想是引入了一个称为"细胞状态"(cell state)的概念,以及三个门控单元(这些门控单元通过一系列的数学运算来决定当前时刻的输入、遗忘和输出,从而控制信息在细胞状态中的流动)。

 LSTM怎么改成RNN呢?(划重点)

       首先就是引入了一个称为"细胞状态"(cell state)的概念,对于这两个不同模型的隐藏状态(hx)来说,RNN没有cell state,但是LSTM有,所以在hx这个地方LSTM是比RNN多一维的,这个要注意。

       还有就是双向的问题,这个里面是要设置特定函数的,到时候按照需求来就OK

二,LSTM的关键部分:

细胞状态(Cell State)

       细胞状态沿着整个序列进行信息传递,它类似于传统RNN中的隐藏状态,但LSTM中的细胞状态具有更强的记忆能力,并能够避免梯度消失的问题。

三个门

  1. 输入门(Input Gate):输入门决定了哪些信息将被更新和存储到记忆单元中。它由一个Sigmoid层和一个点乘操作组成。Sigmoid层输出0到1之间的值,表示每个输入的重要程度。点乘操作将输入的值与Sigmoid层输出相乘,用于过滤输入的部分信息。

  2. 遗忘门(Forget Gate):遗忘门决定了哪些旧的记忆将保留下来,哪些将被遗忘。它也由一个Sigmoid层和一个点乘操作组成。Sigmoid层输出0到1之间的值,表示每个旧记忆的保留程度。点乘操作将旧记忆的值与Sigmoid层输出相乘,用于控制旧记忆的遗忘。

  3. 输出门(Output Gate):输出门决定了记忆单元中的哪些信息将被输出。它由一个Sigmoid层和一个Tanh层组成。Sigmoid层输出0到1之间的值,表示每个记忆单元的输出程度。Tanh层将记忆单元中的值映射到-1到1之间的范围,用于提供输出。

LSTM网络通过这些门控单元的组合,能够在序列数据中选择性地读取、写入和遗忘信息,从而有效地处理长期依赖关系。

双向长短时记忆网络(Bidirectional Long Short-Term Memory,BiLSTM)

        BiLSTM是一种双向循环神经网络(RNN)结构,结合了LSTM和双向性的特点。它在时间上分为正向和反向两个方向,对输入序列进行正向和反向传播,从而能够利用过去和未来的上下文信息。

        BiLSTM的结构包括两个独立的LSTM层,一个用于正向传播,另一个用于反向传播。正向LSTM按照时间顺序处理输入序列,而反向LSTM按照时间的逆序处理输入序列。每个LSTM层都有自己的输入门、遗忘门和输出门,以及记忆单元。

        在正向传播过程中,正向LSTM从序列的第一个元素开始,逐步更新和存储信息。在反向传播过程中,反向LSTM从序列的最后一个元素开始,逐步更新和存储信息。最终,正向和反向LSTM的输出将被连接起来,形成双向的输出序列。

        BiLSTM的优点是能够同时考虑到过去和未来的上下文信息,有效地捕捉输入序列中的长期依赖关系。这使得它在很多任务中表现出色,如语言建模、命名实体识别、情感分析等。通过双向传播,BiLSTM能够更全面地理解和建模输入序列的语义信息。

        然而,BiLSTM也存在一些缺点。由于双向LSTM需要沿着时间轴进行正向和反向传播,因此计算复杂度较高,训练和推断速度可能较慢。此外,BiLSTM对于处理实时数据或动态增长的序列可能不太适用,因为它需要将整个序列输入网络才能进行双向处理。

     

卷积神经网络(Convolutional Neural Network,CNN)


CNN主要用于处理图像数据,但也可以用于句子分类等任务。CNN的核心就是卷积操作,可以提取输入数据的局部特征。对于自然语言文本,CNN可以将词向量序列看做是图像的像素序列,通过卷积操作提取局部特征,再通过池化(Pooling)操作将特征压缩成固定长度的向量,最后使用全连接层进行分类。

 递归神经网络(Recursive Neural Network,RecNN)


RecNN主要用于处理树形结构的数据,比如语法树、依存树等。RecNN可以递归计算每个子节点的表示,并将它们合并成父节点的表示,一直递归到根节点。最后根节点的表示可以作为整个树结构的表示,用于分类、情感分析等任务。

注意力机制(Attention Mechanism)
注意力机制可以帮助模型更好地学习输入数据的重要部分。在NLP任务中,注意力机制可以用来计算每个词对于任务的重要性,根据重要性加权计算对应的表示。常见的注意力机制包括基于位置的注意力、自注意力和多头注意力等。

 预训练模型(Pre-trained Models)
预训练模型是一种使用未标注数据(如维基百科)进行大规模预训练的模型,然后再在特定任务上进行微调的方法。目前比较流行的预训练模型包括BERT、GPT、XLNet等。预训练模型在NLP任务中取得了很好的效果,且可以减少对标注数据的依赖。

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值