论文阅读:Natural Language Processing Advancements By Deep Learning: A Survey

转载自:论文阅读:Natural Language Processing Advancements By Deep Learning: A Survey 深度学习在自然语言处理中的进展

论文链接:Natural Language Processing Advancements By Deep Learning: A Survey

一、介绍

自然语言处理(NLP)是计算机科学的一个分支,它可以帮助机器理解、处理和分析人类语言。NLP方法的开发越来越依赖于数据驱动的方法,这些方法有助于构建更强大、更健壮的模型。计算能力的最新发展以及大数据更大的可用性使深度学习成为NLP领域中最吸引人的方法之一。
  
作为利用深度学习方法在相邻学科中取得显著进步的重要提示,深度神经网络已应用于各种NLP任务,包括词性标注,命名实体识别和语义角色标注。与NLP应用相关的深度学习中的大多数研究工作都涉及有监督的学习或无监督的学习。
  
该综述涵盖了深度学习在NLP领域中所扮演的新角色以及各种应用。我们提出的研究主要集中在架构上,很少讨论具体的应用程序。另一方面,本文介绍了将深度学习应用于NLP问题的挑战、机遇和评估。

二、背景

1.人工智能和深度学习

AI的目标是将信息技术(IT)的功能从以下功能扩展到生成、通信和存储数据;以及将数据处理为决策者和其他人所需的知识。原因之一是可用数据量迅速增加,以至于人们现在无法处理所有可用数据。这留下了两个选择:必须忽略甚至大部分现有数据,或者必须开发AI以将大量可用数据处理为决策者和其他人可以理解的基本信息。深度学习是海量数据与AI之间的桥梁。

深度学习是指将深度神经网络应用于大量数据,通过学习来处理任务的过程。任务的范围从简单分类到复杂推理。在不同的研究领域,例如在采用循环神经网络(RNN),卷积神经网络(CNN)以及最近的循环神经网络的NLP应用中,已经开发了许多深度学习架构。简述如下:

(1)多层感知机

多层感知器(MLP)至少具有三层(输入层、隐藏层和输出层)。一层只是神经元的集合,这些神经元用于将信息从上一层转换到下一层。在MLP体系结构中,一层中的神经元彼此不通信。 MLP采用非线性激活函数。一层中的每个节点都连接到下一层中的所有节点,从而创建了一个完全连接的网络。 MLPs最简单的前馈神经网络(FNNs)类型。 FNNs代表神经网络的一般类别,其中节点之间的连接不创建任何循环,即在FNN中没有信息流的循环。
在这里插入图片描述

(2)卷积神经网络

卷积神经网络(CNNs)的结构受人类视觉皮层启发,是前馈神经网络的子类。 CNNs以基本数学运算卷积命名。卷积神经网络通常需要用2D或3D数据图表示数据的情况。在数据映射表示中,数据点的接近度通常对应于它们的信息相关性。

在输入是图像的卷积神经网络中,数据图表明图像像素与它们的相邻像素高度相关。因此,卷积层具有3个维度:宽度、高度和深度。CNN将图像表示为数值数组。执行特定的数学运算后,它将在新的输出空间中表示图像。此操作也称为特征提取,有助于捕获和表示关键图像内容。提取的特征可用于进一步分析,以完成不同的任务。例如图像分类。
在这里插入图片描述

在将CNN用于NLP的情况下,输入是表示为矩阵的句子或文档。矩阵的每一行都与语言元素(例如单词或字符)相关联。大多数CNN架构在其训练阶段都学习单词或句子的表示形式。各种分类任务中使用了各种CNN架构,例如情感分析和主题分类。 CNN也用于关系提取和关系分类。

(3)循环神经网络

如果我们排列一系列前馈神经网络(FNN),并将每个FNN的输出作为输入提供给下一个,则将构建循环神经网络(RNN)。像FNNs一样,RNN中的图层可以分为输入、隐藏和输出图层。在离散的时间范围内,输入向量的序列作为输入被馈送,一次输入一个向量。例如,在输入每批向量,进行一些操作并更新网络权重之后,下一批输入将被馈送到网络。因此,我们在每个时间步进行预测,并使用当前隐藏层的参数作为下一个时间步的输入。

循环神经网络中的隐藏层可以承载过去的信息,换句话说,就是记忆。此特性使它们特别适用于处理一系列输入的应用程序,例如语言建模,即以机器可以理解的方式表示语言。RNNs可以承载过去的丰富信息。捕获这种依赖性是RNNs的优势之一,其中RNNs中的隐藏层充当存储单元。长期短期记忆网络(LSTM)是RNN最广泛使用的类别之一。 LSTMs试图捕获来自不同时间步长的输入之间的长时间依赖关系。现代机器翻译和语音识别通常依赖于LSTMs。
在这里插入图片描述

(4)自编码器

自编码器在深度学习中实现了无监督方法。它们被广泛用于降维或NLP应用中,这些应用包括序列到序列的建模。由于自编码器是无监督的,因此没有与每个输入相对应的标签。他们旨在学习每个输入的代码表示形式。编码器就像前馈神经网络,其中输入被编码为向量(代码)。解码器的操作类似于编码器,但是相反,即基于编码的输入构造输出。在数据压缩应用程序中,我们希望创建的输出尽可能接近原始输入。自编码器是有损耗的,这意味着输出是输入的近似重建。
在这里插入图片描述

(5)生成对抗网络

生成对抗网络(GAN)是两个神经网络(判别器和生成器)的组合。整个网络以迭代过程进行训练。首先,生成器网络生成假样本。然后,判别器网络试图确定该样本(例如,输入图像)是真实的还是假的,即,它是否来自真实的训练数据(用于建立模型的数据)。生成器的目标是以使判别器认为由生成器合成的人工(即生成的)样本是真实的方式来欺骗判别器。

这个迭代过程一直持续到生成器生成由判别器无法区分的样本为止。生成模型的目标是在判别器试图识别伪造数据的同时捕获真实数据的分布。 GAN的有趣特征之一(关于生成)是:一旦训练阶段完成,就不需要判别网络,因此我们只能与生成网络一起工作。换句话说,访问经过训练的生成模型就足够了。
在这里插入图片描述
已经引入了不同形式的GAN,例如Sim GAN,Wasserstein GAN,info GAN和DC GAN 。在最优雅的GAN实施方式之一中,生成了完全人工的但几乎完美的名人面孔。这些图片不是真实的,而是网络制作的假照片。在NLP域中,GAN通常用于生成文本。

2.NLP中深度学习的动机

深度学习应用基于特征表示和深度学习算法以及架构的选择。这些分别与数据表示和学习结构相关联。令人惊讶的是,对于数据表示,通常认为哪些信息对手头的任务很重要与哪种表示实际产生良好的结果之间存在脱节。例如,在情感分析中,某些语言学家认为词典语义、句法结构和上下文具有最重要的意义。尽管如此,以前基于词袋模型的研究显示了可接受的性能。词袋模型,通常被视为向量空间模型,涉及仅表示单词及其出现频率的表示形式。 BoW忽略单词的顺序和交互,并将每个单词视为唯一特征。 BoW忽略了语法结构,但为某些人认为依赖语法的应用程序提供了不错的结果。该观察结果表明,简单的表示形式与大量数据结合使用可能比更复杂的表示形式效果更好或更好。这些发现证实了支持深度学习算法和架构重要性的观点。

NLP的进步通常与有效的语言建模息息相关。统计语言建模的目标是语言中单词序列的概率表示,由于维数灾难,这是一项复杂的任务。通过学习单词的分布式表示和提供序列的概率函数来克服维数灾难。
  
与其他领域(例如,计算机视觉)相比,NLP研究的主要挑战似乎是使用统计模型实现语言的深入表示的复杂性。 NLP应用程序的主要任务是提供文本表示,例如文档。这涉及特征学习,即,提取有意义的信息以使得能够进一步处理和分析原始数据。

传统方法首先是通过对特定应用程序进行仔细的人工分析来进行费时的手工制作功能,然后是开发算法以提取和利用这些功能的实例。另一方面,深度监督的特征学习方法是高度数据驱动的,可用于旨在提供可靠数据表示的更一般性的工作中。

由于大量未标记的数据,无监督的特征学习被认为是NLP中的关键任务。本质上,无监督特征学习是从未标记的数据中学习特征,以提供高维数据空间的低维表示。为此,已提出并成功实施了几种方法,例如K均值聚类和主成分分析。随着深度学习和大量未标记数据的到来,无监督特征学习已成为表示学习(NLP应用的先驱)的关键任务。当前,大多数NLP任务都依赖于带注释的数据,而大量的无注释数据进一步推动了利用深度数据驱动的无监督方法的研究。

鉴于深度学习方法在NLP应用程序中的潜在优势,对各种深度学习方法和体系结构进行全面分析,尤其是对NLP应用程序的关注似乎至关重要。

三、NLP领域的核心概念

1.特征表示

分布式表示形式是一系列紧凑的、低维的数据表示形式,每个表示形式都具有一些独特的信息属性。对于NLP系统,学习单词表示是很重要的。编码的输入特征可以是字符、单词、句子或其他语言元素。通常,与稀疏单词相比,更希望提供单词的紧凑表示。

如何选择文本表示的结构和级别曾经是一个尚未解决的问题。在提出了word2vec方法之后,提出了doc2vec作为一种无监督算法,被称为Paragraph Vector(PV)。 PV的目标是从可变长度的文本部分(例如句子和文档)中学习定长表示形式。 doc2vec的主要目标之一是克服诸如BoW之类的模型的缺点,并为诸如文本分类和情感分析之类的应用程序提供有希望的结果。一种更新的方法是跳跃思维模型,该模型在句子级别应用word2vec 。通过利用编码器-解码器体系结构,该模型使用给定的句子生成周围的句子(下图)。
在这里插入图片描述
接下来,让我们研究各种特征表示。

(1)one-hot 编码

在one-hot编码中,需要表示的每个唯一元素都有其对应的维度,这导致了非常高的维度,非常稀疏的表示。假设用one-hot编码方法表示单词,特征空间中不同单词之间没有有意义的联系。例如,与诸如“海洋”和“火”等不那么相关的词对相比,“海洋”和“水”等高度相关的词不会彼此靠近(在表示空间中)。然而,一些研究工作使用one-hot编码提出了有意义的结果。

(2)连续词袋(CBOW)

连续词袋模型(CBOW)在NLP应用程序中经常使用。 CBOW在给定其上下文(通常为几个附近的单词)的情况下尝试预测一个单词。CBOW既不依赖于单词的顺序也不依赖于概率特征。因此,它通常不用于语言建模。通常对该模型进行训练,以用作更复杂任务的预训练模型。 CBOW的替代方法是加权CBOW(WCBOW),其中不同的向量获得不同的权重,反映了上下文中的相对重要性。最简单的示例可以是文档分类,其中特征是单词,权重是相关单词的TF-IDF分数。

(3)词级嵌入

词嵌入是上下文元素的一种学习表示,理想情况下,具有相关语义的单词在表示空间中高度相关。词嵌入表示背后的主要诱因之一是高泛化能力,而不是稀疏的高维表示。与传统的词袋模型不同,在传统的词袋模型中,不同的词具有完全不同的表示方式,而不论它们的使用或搭配如何,学习分布式表示都利用上下文中的词的用法,为语义相关的词提供相似的表示。创建词嵌入的方法有很多,一些研究工作通过对随机数进行均匀采样来使用随机初始化,目的是在大型数据集上训练模型的有效表示。这种设置在直观上是可接受的,可用于初始化诸如词性标签之类的常见功能。但是,这可能不是表示频率较低的特征(例如单个单词)的最佳方法。对于后者,通常利用以有监督无监督的方式进行训练的预训练模型来提高性能。

(4)字符级嵌入

前面提到的方法大多处于较高的表示水平。低级表示(例如字符级表示)也需要特别注意,因为它们的表示简单并且具有纠正异常字符组合(例如拼写错误)的潜力。已经成功利用了CNN来生成字符级别嵌入。

字符级嵌入已在不同的NLP应用程序中使用。主要优点之一是能够使用较小的模型大小并使用较低级别的语言元素来表示单词。这里的词嵌入是在字符上利用CNN的模型。采用字符级嵌入的另一个动机是词汇外词(OOV)问题,通常在给定单词的词嵌入中没有等效向量时会遇到这种问题。字符级方法可以大大缓解此问题。但是,这种方法在字符与语言的语义和句法部分之间的相关性较弱。因此,考虑到上述利用字符级嵌入的利弊,一些研究工作试图提出并实现更高级别的方法,例如使用子词为OOV实例创建词嵌入以及在相关词之间创建语义桥。

2.Seq2Seq框架

NLP应用程序中的大多数基础框架都依赖于序列到序列(seq2seq)模型,在该模型中,不仅输入而且将输出表示为序列。这些模型在各种应用中都很常见,包括机器翻译、文本摘要、语音到文本和文本到语音应用。

最常见的seq2seq框架由编码器和解码器组成。编码器提取输入数据的序列,并生成一个中级输出,随后由解码器消耗,以产生一系列最终输出。编码器和解码器通常通过一系列递归神经网络或 LSTM 单元实现。

编码器采用长度为T的序列,X = {x1,x2,···,xT},其中xt∈V = {1,···,| V |}是来自词汇表的单个输入的表示V,然后生成输出状态ht。随后,解码器从编码器获取最后一个状态,即ht,并根据其当前状态st和真实输出yt,开始生成大小为L的输出,Y’= {y’1,y’ 2,…,y’ L}。在不同的应用中,解码器可以利用更多信息(例如上下文向量或自注意力向量)来生成更好的输出。

seq2seq模型最广泛的训练方法之一是Teacher Forcing 。让我们将y = {y1,y2,···,yL}定义为与给定输入序列X对应的真实输出序列。模型训练基于最大似然函数准则,采用向下交叉熵(CE)损失最小化:
在这里插入图片描述
其中θ是训练期间优化的模型参数。

使用交叉熵损失对模型进行优化后,即可生成如下完整序列。令 y^t表示模型在时间t处生成的输出。然后,通过下式生成下一个输出:
在这里插入图片描述
在NLP应用中,可以通过使用集束搜索来找到合理的良好输出序列来提高输出。在集束搜索过程中,我们没有在每个步骤中选择前K个输出,也不是使用argmax来选择最佳输出,而是为输出序列生成了K条不同的路径,最后选择了性能更好的输出作为最终输出。最近有一些研究通过在模型训练过程中加入类似的机制来改善集束搜索,这些研究超出了本文的范围。

给定一系列真实输出Y和生成的模型输出ˆY,使用任务特定的度量(例如ROUGE,BLEU 和METEOR)评估模型性能。例如,ROUGEL是NLP任务中的评估指标,它使用真实输出 Y和模型输出Y^之间的最大公共子串来评估生成的输出。

3.NLP中的强化学习

尽管上节解释的seq2seq模型取得了巨大的成功,但如何训练这些模型存在一些问题。一般来说,seq2seq模型(如在NLP应用中使用的模型)面临两个问题:(1)曝光偏差和(2)训练时间与测试时间测量之间的不一致。

大多数流行的seq2seq模型都通过Teacher Forcing将交叉熵损失最小化作为其优化目标。在Teacher Forcing中,在模型训练期间,解码器利用两个输入,即前一个解码器的输出状态st-1和真实输入yt,来确定其当前的输出状态st。此外,它使用它们来创建下一个token,即y^t。但是,在测试时,解码器完全依赖于模型分布中先前创建的token。由于没有真实数据,因此需要采取这一步骤来预测下一个动作。此后,在训练中,解码器输入来自ground-truth,而在测试阶段,它依赖于先前的预测。

曝光误差在测试阶段通过输出创建引起误差增长。解决此问题的一种方法是通过仅依靠模型分布来最大程度地减少交叉熵损失,从而消除训练中对ground-truth的依赖性。计划采样是处理这种问题的一种流行方法。在安排采样期间,我们首先查看使用交叉熵损失对模型进行预训练,然后用模型生成的样本缓慢替换ground-truth。

seq2seq模型的第二个障碍是,当使用交叉熵损失完成训练时,通常使用诸如ROUGE或METEOR之类的不可微分的度量进行评估。这将在训练目标和测试评估指标之间形成不一致。最近,已经证明可以通过利用强化学习的技术来解决这两个问题。

在大多数强化学习的著名模型中,策略梯度技术(例如REINFORCE算法)和基于演员-评论家(actor-critic)的模型(例如value-based iteration和Q-learning),是NLP深度学习中最常用的技术之一。

Daume等人最初提出在训练时使用模型预测(相对于ground-truth)进行序列建模和生成。根据他们的方法,SEARN,可以将结构化预测表征为以下强化学习案例之一:该模型利用其预测来生成动作序列(单词序列)。然后,在每个时间步长,使用贪婪搜索算法来学习最佳操作,并且将训练该策略以预测该特定操作

在Actor-Critic训练中,actor通常与用于生成输出的神经网络相同,而critic是一个回归模型,用于估计actor对输入数据的表现。actor随后收到critic的反馈并改善其行为。值得注意的是,在大多数与NLP相关的应用程序中,行为就像选择下一个输出token,而状态是解码的每个阶段的解码器输出状态。由于这些应用中的行为空间较小,因此这些模型主要用于机器人和Atari游戏。但是,当我们在NLP应用程序中使用它们时,它们面临多个挑战。大多数NLP应用程序中的行为空间可以定义为词汇表中token的数量(通常在50K到150K token之间)。将其与简单的Atari游戏中的动作空间进行比较,该游戏平均少于20个动作,这说明了为什么将这些Actor-Critic模型应用于NLP应用程序时会遇到困难。一个主要的挑战是NLP应用程序中庞大的行为空间,这不仅会导致难以正确选择action,而且还会使训练过程非常缓慢。这使得找到最佳Actor-Critic模型的过程变得非常复杂,并且模型收敛通常需要对模型进行大量调整。
在这里插入图片描述

四、数据集

许多从事不同任务的研究人员都使用基准数据集,例如下面讨论的那些。机器学习中的基准测试是指对方法和算法的评估,将它们在学习特定模式方面的能力进行比较。基准测试有助于相对于其他现有方法的新方法或实践的验证。

基准数据集通常采用以下三种形式之一。

  1. 第一个是从各种现实世界实验获得的real-world data。
  2. 第二种是人工模拟现实世界模式的synthetic data。生成合成数据以代替实际数据供使用。此类数据集在需要的数据量远远大于可用数据量的应用程序中,或者在诸如医疗保健领域这样的隐私考虑因素至关重要且严格的应用程序中尤为重要。
  3. 第三类是toy datasets,目的是用于演示和可视化。通常,它们是人工生成的;一般不需要表示real-world data模式。

深度学习利用的基础是数据的可用性,以教会系统有关模式识别的知识。模型的有效性取决于数据的质量。尽管成功实现了诸如BERT之类的通用语言建模技术,但此类模型只能用于预训练模型。之后,需要在与所需任务相关的数据上训练模型。今后,基于不同机器领域(如NLP)的日常需求,创建新数据集至关重要。

另一方面,创建新数据集通常不是一件容易的事。非正式地讲,新创建的数据集应该是:可以训练的正确数据,足以进行评估并且可以准确地进行工作。回答“正确和准确的数据是什么意思”的问题是高度基于应用程序的。基本上,数据应具有足够的信息,这取决于数据的质量和数量。

要创建数据集,第一步总是询问“我们要做什么以及需要解决什么问题?”和“我们需要什么样的数据以及需要多少数据?”,下一步是创建训练和测试部分。训练数据集用于训练模型,以了解如何找到输入与关联的输出之间的连接。测试数据集用于评估机器的智能,即训练后的模型可以在看不见的测试样本上运行的程度。接下来,我们必须进行数据准备,以确保数据及其格式对于人类专家而言简单易懂。之后,可能会出现数据可访问性和所有权问题。数据的分发可能需要获得特定的授权,尤其是在我们处理敏感或私有数据时。

根据上述路线图,创建适当的数据集非常复杂且非常重要。这就是为什么研究人员和开发人员经常选择很少的数据集进行基准测试的原因。表I提供了广泛使用的基准数据集的摘要。
在这里插入图片描述

五、深度学习中的NLP任务

本节介绍使用深度学习的NLP应用程序。下图显示了代表性的NLP任务(及其所属的类别)。
在这里插入图片描述

1.基本任务

(1)Part-Of-Speech Tagging(词性标注)

词性标注是自然语言处理中的基本任务之一,是根据单词的词性类别标注单词的过程。词性被用于许多关键任务,例如命名实体识别。词性标注的一种常用数据集是WSJ语料库。该数据集包含超过一百万个token,已被广泛用作词性标注系统性能评估的基准数据集。传统方法仍然可以很好地完成此任务。然而,已经提出了基于神经网络的方法来进行词性标注。

例如,已开发出名为CharWNN的深度神经网络体系结构,以使用卷积神经网络对词性标注进行词级和字符级表示。其中的重点是字符级特征提取的重要性,因为他们的实验结果表明,在没有字符级特征的情况下必须采用手工制作的功能来实现最新技术。另外,一些研究提出了用于序列标注任务的各种基于神经网络的模型,例如LSTM网络双向LSTM网络具有CRF层的LSTM网络等。序列标注本身包括词性标注、分块和命名实体识别。同样,已经提出了基于全局规范化转换的神经网络体系结构用于词性标注 。下表总结了最新的结果。
在这里插入图片描述

(2)Parsing(句法分析)

句法分析是将结构分配给可识别的字符串。句法分析有不同类型。成分句法分析(Constituency Parsing)尤其是指为句子分配句法结构。贪心句法分析(greedy parser)使用向量表示对内容进行语法和语义汇总。为了增强贪心句法分析的结果,新方法提出侧重于学习形态嵌入。最近,深度神经网络模型的性能优于传统算法。下表总结了最新的结果。
在这里插入图片描述
另一种类型的句法分析称为依赖句法分析(Dependency Parsing)。依存关系结构显示了目标句子中单词之间的结构关系。在依赖句法分析中,短语元素和短语结构规则对过程没有帮助。而是仅根据句子中的单词和单词之间的关联关系来表达句子的句法结构

神经网络在通用性和降低特征计算成本方面显示出了优势。论文提出了一种基于神经网络的新颖方法,用于基于转换的依赖句法分析(transition-based dependency parser)。在特定于任务的转换系统上运行的基于神经网络的模型也已用于依赖句法分析。用于预测弧和标签提出了带有双仿射分类器(bi-affine classifiers)的正则化分析器。双向LSTM已在依赖句法分析中用于特征表示。一种新的控制结构已经被引入到基于stack LSTM的序列到序列神经网络中,并已用于基于转换的分析中。

(3)Semantic Role Labeling(语义角色标签)

语义角色标注(SRL)是文本参数的识别和分类过程。它旨在表征元素,以确定“谁”对“谁”做了“什么”以及“如何”、“在哪里”和“何时”。它识别句子的谓词-论元(predicate-argument)结构。本质上,谓词(predictate)指的是“什么”,而论元(argument)则由关联的参与者和文本中的属性组成。 SRL的目标是提取谓词和相关论元之间的语义关系

先前报告的大多数研究工作都基于关于语义角色的显式表示。最近,深度学习方法已实现了SRL的最新技术,而没有考虑显式语法表示。另一方面,有人认为,可以利用句法信息来提高与语法无关的模型的性能。一种语言学上的自注意力(LISA)模型利用多任务学习和自注意力来有效利用SRL的句法信息。当前最先进的方法采用谓词和论元的联合预测,新颖的词表征方法和自注意力模型。
在这里插入图片描述

2.文本分类

文本分类的主要目的是为文本部分(可以是单词、句子或整个文档)分配预定义的类别,以进行初步分类以及进一步的组织和分析。一个简单的例子是将给定文档分类为政治或非政治新闻。

使用CNNs进行句子分类,即通过微调在预训练的词向量之上训练模型,从而在学习特定于任务的向量方面带来了显着的进步。后来,动态卷积神经网络(DCNN)架构(本质上是具有动态k-max池化方法的CNN)被用于捕获句子的语义建模。除了CNN,RNN也已用于文本分类。LSTM-RNN体系结构用于在定义的Web搜索任务中的句子嵌入有很大的优势。分层注意力网络(HAN)已被用来捕获文本的分层结构,具有单词级和句子级的注意力机制。

一些模型使用RNN和CNN的组合进行文本分类。除了具有有效词表征方法的最大池化之外,这是一种循环体系结构,与简单的基于窗口的神经网络方法相比,它具有优越性。另一种统一的架构是C-LSTM,用于分类中的句子和文档建模。下表总结了当前的最新技术。
在这里插入图片描述

3.信息抽取

信息抽取可从“非结构化”数据(例如社交媒体帖子和在线新闻)中识别结构化信息。深度学习已用于有关子任务(例如命名实体识别、关系抽取、共指消解和事件抽取)的信息抽取。

(1)命名实体识别

命名实体识别(NER)旨在将上下文中的命名实体定位和分类为预定义的类别,例如人物和地点的名称。深度神经网络在NER中的应用已通过使用CNN和RNN体系结构以及双向LSTM和CNN混合体系结构进行了研究。 NeuroNER是一种命名实体识别工具,基于人工神经网络运行。下表报告了最新模型。
在这里插入图片描述

(2)关系抽取

关系抽取旨在查找实体对之间的语义关系。循环神经网络(RNN)模型已经被提出通过学习组成向量表示来进行语义关系分类。对于关系分类,也通过提取词汇和句子级别的特征来使用CNN体系结构。

(3)共指消解(Coreference Resolution)

共指消解包括标识引用同一实体的上下文中的提及。例如,提到的“car”,“Camry”和“it”都可以指同一实体。在一些论文中第一次将强化学习(RL)应用于共指消解。当前最先进的方法利用注意力机制

(4)事件抽取

从文本中抽取信息的一种特定类型是事件。这样的抽取可以涉及识别与事件有关的触发词,并且将标签分配给代表事件触发的实体提及。卷积神经网络已被用于事件检测。他们使用基于特征的方法处理问题,包括详尽的特征工程和用于特征生成的错误传播现象。在2018年,Nguyen和Grishman应用了graph-CNN(GCCN),其中将卷积运算应用于句法相关的单词以及连续的单词;它们的添加的实体信息反映了使用CNN模型的最新技术。

4.情感分析(Sentiment analysis)

情感分析的主要目标是通过上下文挖掘从文本中提取主观信息。情感分析被认为是基于源数据的高级推理。情感分析有时被称为观点挖掘,因为它的主要目标是分析有关产品、问题和各种主题的人类观点、情感甚至是对产品的情绪。自2000年以来,由于情感分析与各种应用程序之间的关系,与新研究挑战的关联以及丰富数据的可用性,引起了人们对情感分析的广泛关注。

情感分析研究的一个关键方面是内容粒度。考虑到此标准,情感分析通常分为三个类别/级别:文档级、句子级和方面级。

  1. 文档级的情感分析:文档级的任务是确定整个文档是否反映出对一个实体的正面或负面情绪。这与针对多个条目的观点挖掘不同。门控循环神经网络(Gated Recurrent Neural Network)架构已被成功地用于有效编码文档语义结构中句子之间的关系。为了将训练后的模型部署在看不见的新资源上还研究了域自适应性(Domain adaptation)。
  2. 句子级的情感分析:在句子级别,情感分析确定句子中表达的观点的正面、负面或中立。句子级情感分类的一般假设是,表达的句子中仅存在一个持有者的观点。通过学习短语的向量空间表示,将循环自编码器(Domain adaptation)用于句子级别的情感标签预测。长短期记忆(LSTM)递归模型也已用于推特情感预测。情感树库和循环神经张量网络(The Sentiment Treebank and Recursive Neural Tensor Networks)已显示出预测细粒度情感标签的希望。
  3. 方面级的情感分析:文档级和句子级的情感分析通常集中于情感本身,而不是情感目标,例如产品。在假设存在情感及其目标的情况下,方面级的情感分析直接针对一种观点。文档或句子通常可能没有正面或负面的情绪,但可能有多个不同目标的子任务,每个目标都有正面或负面的情绪。这可能使方面级的分析比其他类型的情感分类更具挑战性。
    方面级的情感分析通常涉及方面情感分类(Aspect Sentiment Classification)和方面提取(Aspect Extraction)。前者确定对不同方面(正面、中性或负面)的意见,而后者则确定要进行上下文评估的目标方面。例如,考虑以下句子:“This car is old. It must be repaired and sold!”。 “This car”必须接受评估,并且必须首先提取。在此,对此方面的看法是负面的。
      对于方面级的情感分类,提出了基于自注意力的LSTM,以将方面和句子内容联系起来进行情感分类。对于方面提取,深度学习已成功地在观点挖掘中提出。最先进的方法依赖于将基于方面的情感分析转换为句子对分类任务,基于语言模型BERT的后训练方法以及采用预训练的嵌入。

5.机器翻译

机器翻译(MT)是NLP的领域之一,它受到深度学习的进步的深刻影响。下面介绍了深度学习前阶段使用的方法,如参考的NLP教科书,例如“Speech and Language Processing” 。之后专门研究开始的基于神经网络的MT最新创新。

  1. 传统机器翻译:1954年发生了最早的机器翻译演示,作者试图将俄语翻译成英语。该翻译系统基于六个简单规则,但是词汇量非常有限。直到1990s年代,随着越来越多的双语语料库的出现,机器翻译的成功统计解释出现了。BLEU评分被引入作为一种新的评估指标,与唯一的使用人工进行评估的方法相比,可以更快速的改善。
  2. 神经机器翻译:在图像分类任务中神经网络取得成功之后,研究人员开始在机器翻译(NMT)中使用神经网络。 2013年前后,研究小组开始在NMT方面取得突破性成果。与传统的统计机器翻译不同,NMT基于端到端神经网络。这意味着不需要大量的预处理和单词对齐。相反,重点转移到了网络结构上。

下图显示了用于机器翻译的端到端循环神经网络的示例。一系列输入tokens被馈送到网络中。一旦到达句子结尾(EOS)token,它将开始生成输出序列。以与输入序列相同的循环方式生成输出序列,直到到达句子结束token。这种方法的一个主要优点是不需要指定序列的长度。网络会自动将其考虑在内。换句话说,句子结束token确定序列的长度。网络隐式地了解到较长的输入句子通常会导致较长的输入输出长度可变的句子,并且顺序可以更改。例如,形容词通常在英语中的名词之前出现,而在西班牙语中的名词之后出现。由于网络可以捕获此类属性,因此无需明确指定。而且,NMT使用的内存量只是传统统计机器翻译中使用的内存的一小部分。
在这里插入图片描述
Recurrent Continuous Translation Model(RCTM)是结合递归神经网络进行机器翻译的早期工作之一。他们能够实现的困惑度较低的值表示更好的模型的度量)比基于最新比对的翻译模型低43%。他们的 RCTM模型 能够明确捕获单词顺序、语法和源句子的含义。它将源句子映射为目标语言中句子的概率分布。 RCTM估计将句子e = e1 + … +ek将源语言转换为目标语言句子f = f1 + … + fm的概率 P(f | e)。 RCTM通过考虑源句子e和目标语言中的前一个单词f1:i-1来估计P(f | e):
在这里插入图片描述
RCTM生成的表示作用在较低层的n-gram上,并且随着一个句子移到较高层,对整个句子的作用更大。通过应用不同的卷积层来执行此层次表示。首先,每个单词的连续表示;即,如果句子为e = e1 … ek,则单词ei的表示形式为v(ei)∈Rq×1。这将导致句子矩阵Ee∈Rq×k,其中Ee:,i = v(ei)。句子的这种矩阵表示形式将被馈送到一系列卷积层中,以生成递归神经网络的最终表示形式e。公式和示意图如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
为了考虑句子长度,作者引入了RCTM II,它估计目标句子的长度。与其他现有的机器翻译系统相比,RCTM II在WMT数据集上具有更好的困惑度

在另一项工作中,论文提出了一种端到端的序列学习方法,而没有对序列的结构进行严格的假设。他们的方法包括两个LSTM,一个用于将输入映射到固定维数的向量,另一个LSTM用于对向量的输出序列解码。他们的模型能够处理长句子以及对词序敏感的句子表示形式。 token指示预测的结束。给定输入序列(ζ),通过最大化翻译的对数概率(η)来训练网络。换句话说,目标函数是:
在这里插入图片描述
如下图所示,模型读取“ ABC”作为输入序列,并产生“ WXYZ”作为输出序列。
在这里插入图片描述
D是训练集,| D |是它的大小。他们方法的新颖性之一是颠倒了源句子的词序。这有助于LSTM学习长期依赖关系。在解码器阶段具有固定长度的向量是编码-解码器方法的瓶颈之一。 网络将很难将来自输入句子的所有信息压缩为固定大小的向量。他们通过允许网络搜索来解决此问题源句子中可用于预测翻译的片段。代替将输入语句表示为固定大小的向量,将输入语句编码为向量序列,并使用称为注意力机制的方法选择它们的子集,如下图所示。
在这里插入图片描述
在他们的方法中,P(yi | y1,…,yi-1, X)= g(yi-1,si,ci),其中si = f(si-1,yi-1,ci)。尽管先前的c对于所有时间步都是相同的,但在这里c在每个时间步取不同的值ci**。这说明了该特定时间步长周围的注意力机制(上下文向量)。 ci根据以下公式计算:
在这里插入图片描述
这里的a是由前馈神经网络表示的对齐模型。另外,hj=[→hT j,←hTj],这是一种在hj中同时包含有关前单词和后单词的信息的方式。无论输入句子的长度如何,该模型都能胜过简单的编码-解码器方法。

改进的机器翻译模型不断涌现,部分是由于人们的兴趣增长以及需要了解其他语言来推动的。大多数模型是端对端解码-编码器方法的变体。例如,论文试图处理稀疏词的问题。他们的LSTM网络由使用残差的编码器和解码器层以及注意机制组成。他们的系统能够减少训练时间,加快推理速度并处理稀疏单词的翻译。下表总结了一些最新的神经机器翻译模型之间的比较。
在这里插入图片描述

6.问题回答

问答(QA)是信息检索(IR)的细粒度版本。在IR中,必须从一组文档中检索所需的一组信息。所需的信息可以是特定的文档、文本、图像等。另一方面,在QA中,通常是那些可以从可用文档中推断特定的答案。 NLP的其他领域(例如阅读理解和对话系统)与问题回答相交。

自1960年代以来,一直在进行计算机问答系统的研究。在本节中,我们将概述问答系统的历史,并重点介绍该领域的突破。像NLP中的所有其他领域一样,问答也受到深度学习的发展的影响,因此我们提供了深度学习环境中QA的概述。我们还简要介绍了视觉问答。

(1)基于规则的问答

Baseball是QA的早期著作(1961年)之一,该研究致力于通过使用游戏数据库来回答与棒球比赛有关的问题。棒球系统包括:(1)读入问题,(2)对问题中的单词进行字典查找,(3)对所讨论单词的句法(POS)分析,(4)提取输入问题的内容分析,以及(5)估计与回答输入问题的相关性。

IBM’s的统计问答系统由四个主要组件组成:

  1. 问题/答案类型分类
  2. 查询扩展/信息检索
  3. 名称实体制作
  4. 答案选择

当语义上等效的关系用不同的措词表达时,某些QA系统将失败。 可以通过提出基于互信息和期望最大化的模糊关系匹配来解决这个问题。

(2)深度学习时期的问答

智能手机(Siri, Ok Google, Alexa, etc.)和虚拟个人助理是QA系统的常见示例,许多人每天与之互动。尽管早期的此类系统采用基于规则的方法,但如今,其核心算法是基于深度学习的。下表列出了Siri在iPhone上提供的一些问题和答案。
在这里插入图片描述
早期论文报告了针对阅读理解测试的质量检查结果。系统尝试在数据库中选择一个具有问题答案的句子,并且特征向量代表每个问题句子对。其主要贡献是提出了一个特征向量表示框架,旨在为学习模型提供信息。一共有五个分类器(location, date, etc.),每种类型一个。他们能够实现与以前方法相比具有竞争力的准确性。

在这里插入图片描述
之后的论文使用卷积神经网络来以固定长度矢量的形式编码问题-答案句子对(上图),而与输入句子的长度无关。它们没有使用诸如余弦相关性的距离度量,而是合并了非线性张量层以匹配问题和答案之间的相关性。下式计算问题q及其对应答案a之间的匹配度。
在这里插入图片描述
f是标准的逐元非线性函数,M [1:r]∈Rns×ns ×ris张量,V∈Rr×2ns,b∈Rr,u∈Rr。

该模型试图捕获问题和答案之间的相互作用。受神经科学发现的启发,论文在动态记忆网络(DMN)中加入了情节记忆。通过处理输入序列和问题,DMN形成情景记忆来回答相关问题。如下图所示,他们的系统是根据原始的Input-Question-Answer三元组进行训练的。
在这里插入图片描述
DMN由四个相互通信的模块组成,如下图所示。输入模块将原始输入文本编码为分布式矢量表示形式。同样,问题模块将问题编码为其分布式矢量表示形式。情节式存储器模块使用注意力机制,以便将精力集中在输入模块的特定部分上。通过迭代过程,此模块将生成考虑问题以及先前内存的内存矢量表示。答案模块使用最终存储向量生成答案。该模型改进了之前任务的最新结果。DMN是可以潜在地用于各种NLP应用程序(例如分类、问答和序列建模)的体系结构之一。
在这里插入图片描述
之后的论文引入了动态协同网络(DCN),以解决与错误答案相对应的局部最大值;它被认为是回答问题的最佳方法之一。

(3)视觉问答

给定输入图像,视觉问答(VQA)试图回答有关图像的自然语言问题。 VQN解决了多个问题,例如对象检测、图像分割、情感分析等。通过提供包含超过250K图像,760K问题和大约10M答案的数据集,引入了VQA的任务。 论文提出了一种基于神经的方法来回答有关输入的问题图片。如下图所示,Neural-Image-QA是由CNN和LSTM组成的深度网络。由于问题可以有多个答案,因此该问题被分解为根据有限的词汇集ν预测一组答案词aq,x = {a1,a2,…,aN(q,x)},其中N(q, x)表示有关给定问题的答案词数。
在这里插入图片描述
在回答关于图片的问题时,人类和电脑看的是同一片区域吗? 论文试图通过对VQA中的human attention进行大规模研究来回答这个问题。他们的发现表明,VQA似乎与人类不在同一地区。下图显示了他们模型的推断过程。如图所示,其系统中的特定注意机制可以突出显示输入图像中的关注区域。
在这里插入图片描述

7.文件摘要

文档摘要是指一组问题,这些问题涉及在给定一个或多个文档作为输入的情况下生成摘要语句

通常,文本摘要分为两类:

  1. 抽取式摘要,其目的是识别文档中最突出的句子并将其作为摘要返回。
  2. 生成式摘要,目标是从头开始生成摘要句子;它们可能包含原始文档中未出现的新颖词。

每种方法都有其自身的优点和缺点。抽取式摘要易于产生冗长的,有时是重叠的摘要句子;但是,结果反映了作者的表达方式。生成式方法产生的摘要较短,但是很难训练

关于使用抽取式和生成式方法的文本摘要的主题,有大量研究。作为使用神经网络进行抽取摘要的最早工作之一,论文提出了一种使用排序技术来抽取输入中最显着句子的框架。之后改进的模型使用文档级编码器表示句子,并使用分类器对这些句子进行排序。另一方面,在生成摘要中,论文首次将注意力放在序列到序列(seq2seq)模型上来解决标题生成问题。但是,由于简单的注意力模型比抽取的模型表现差,因此针对此任务提出了更有效的注意力模型,例如graph-based attention 和transformers 。

为了进一步改进生成式文本摘要模型,论文提出了第一个指针生成模型,并将其应用于DeepMind QA数据集。这项工作的结果是,出现了the CNN/Daily Mail dataset,该数据集现已成为摘要任务中广泛使用的数据集之一。之后的论文也为类似的任务采用了复制机制。但是他们的分析揭示了基于注意力的编码-解码器模型的关键问题:它们通常会生成由重复短语组成的异常摘要。最近,论文使用类似的框架获得了生成式文本摘要的最新结果。他们通过避免生成未知标记并用输入文章中的标记替换这些单词来减轻不自然的摘要。后来,研究人员将重点转移到使用句子嵌入的方法,该方法首先抽取突出的句子,然后使用解释模型将其生成。抽取过程中使用句子分类或排序,而生成则尝试删除句子中的额外信息并将其作为简短摘要显示。 Fast-RL 是该系列作品中的第一个框架。在Fast-RL中,抽取经过预训练以选择突出的句子,而生成则使用指针生成模型进行预训练以生成解释。最后,为了合并这两个不可微的组成部分,他们建议使用Actor-Critic Q-learning方法,其中actor接收单个文档并生成输出,而critic则根据与基本事实摘要的比较来评价输出。

尽管评估汇总模型性能的标准方法是使用ROUGE 和BLEU ,但此类措施仍存在主要问题。例如,ROUGE度量集中于两个句子之间共享的n-grams的数量。这样的方法错误地给使用不同单词的生成式摘要分配了低分,但却提供了一个很好的解释,人们会对其进行高度评价。显然,在这种情况下,需要更好的自动化评估方法。

当前的汇总模型还有其他问题。其他论文提供了有关文本摘要的全面调查。

8.对话系统

对话系统正迅速成为人机交互的主要工具,部分原因是其具有广阔的发展潜力和商业价值。一种应用是自动化客户服务,既支持在线业务又支持实体业务。客户期望与公司及其服务打交道时,其速度、准确性和尊重度会不断提高。由于知识渊博的人力资源的高昂成本,公司经常转向智能对话机器。请注意,会话机器和对话机器通常可以互换使用

对话系统通常是基于任务或非任务的。尽管对话系统中可能有自动语音识别(ASR)和语言到语音(L2S)组件,但本节的讨论仅涉及对话系统的语言组件。与语音技术相关的概念将被忽略。
在这里插入图片描述
尽管在对话系统的后端(尤其是在语言理解模块中)使用了有用的统计模型,但大多数已部署的对话系统仍依赖昂贵的手工和手动功能进行操作。此外,这些人工设计的系统对其他领域和功能的通用性是有问题的。因此,最近的注意力集中在深度学习上,以增强性能、通用性和鲁棒性。深度学习促进了端到端面向任务的对话系统的创建,该系统丰富了框架,使已注释的特定任务的对话资源之外的对话得以泛化。

(1)基于任务的系统

基于任务的对话系统的结构通常包含以下元素:

  • 自然语言理解(NLU):该组件通过为语音内容分配构成结构来处理理解和解释用户的语音环境(例如,一个句子)并捕获其句法表示和语义解释,以允许后端操作/任务。无论对话上下文如何,通常都会利用NLU。
  • 对话管理(DM):由NLU生成的表示形式将由对话管理处理,对话管理将调查上下文并返回合理的语义相关响应。
  • 自然语言生成(NLG):自然语言生成(NLG)组件根据DM组件提供的响应产生话语。

总体流程如下:NLU模块(即语义解码器)将语音识别模块的输出转换为某些对话元素。然后,DM处理这些对话元素,并提供适当的响应,该响应被馈送到NLG以生成响应。 NLU中的主要管道是对用户查询域和用户意图进行分类,并填充一组槽以创建语义框架。通常习惯同时执行意图预测和时隙填充。大多数面向任务的对话系统都采用时隙填充方法来对会话特定域中的用户意图进行分类。为此,需要有预定义的任务。这取决于具有不同关联插槽的手动制作状态。今后,设计的对话系统将在其他任务中用途有限或无用。

最近基于深度强化学习设计了面向任务的对话系统,该系统在性能,领域适应和对话生成方面提供了有希望的结果。这是由于转向端到端可训练框架来设计和部署面向任务的对话系统。端到端框架合并并使用处理外部数据库的单个模块,而不是传统上使用的管道。尽管端到端对话系统具有易处理性(即易于培训和易于工程设计),但由于需要通过查询与外部数据库进行互操作,因此它们并不适合于面向任务的设置。解决该挑战的一些方法包括将用户输入转换为内部表示,结合监督学习和强化学习,以及将用于提问的内存网络方法扩展到对话系统。

(2)基于非任务的系统

与基于任务的对话系统相反,设计和部署基于非任务的对话系统的目标是使机器具有与人类进行自然对话的能力。通常,聊天机器人属于以下类型之一:基于检索的方法和生成方法。基于检索的模型可以访问信息资源,并且可以提供更简洁、流畅和准确的响应。但是,由于它们对后端数据资源的依赖性,它们在提供的响应种类方面受到限制。另一方面,生成模型的优点是,当这些响应不在语料库中时,能够产生适当的响应。但是,与基于检索的模型相反,它们更倾向于因其生成模型而产生语法和概念上的错误。

基于检索的方法从候选响应中选择适当的响应。因此,关键要素是查询响应操作。通常,此问题已被表述为搜索问题,并使用IR技术完成任务。基于检索的方法通常采用单转响应匹配或多转响应匹配。在第一种类型中,当前查询(消息)仅用于选择合适的响应。后一种类型将当前消息和先前的话语作为系统输入,并基于即时和时间信息检索响应。该模型尝试选择一个考虑整个上下文的响应,以确保对话的一致性。已经提出了基于LSTM的模型,用于创建上下文和响应向量。在之后的论文中,各种特征和多个数据输入已被合并,以使用深度学习框架进行摄取。当前关于基于检索的聊天机器人的基本模型依赖于注意力机制和序列匹配增强的多回合响应选择。

生成模型不假定预定义的响应可用。从头开始产生新的响应,并基于经过训练的模型。生成模型通常基于序列模型,并将输入查询映射到目标元素作为响应。通常,设计和实现能够在人类层面进行对话的对话代理程序非常具有挑战性。典型的方法通常包括学习和模仿人类对话。为了实现这一目标,通常会在大量会话中对机器进行训练。但是,这不能直接解决遇到语外对话的问题。问题是:How can an agent be taught to generate proper responses to conversations that it never has seen? 由于查询和相应响应之间缺少内容匹配,这是由于人类可以提供的范围广泛的合理查询所致,因此它必须处理在机器经过训练的数据语料库中不完全可用的内容。

为了解决上述一般性问题,必须回答一些基本问题:(1)自然对话的核心特征是什么? (2)如何测量这些特性? (3)我们如何将这些知识整合到机器(即对话系统)中?这三个要素的有效整合决定了机器的智能。定性标准是观察所产生的话语是否可以与自然的人类对话区分开。对于定量评估,对抗评估最初用于句子生成的质量评估,并用于对话系统的质量评估。序列建模的最新进展鼓励了许多有关自然语言生成的研究。此外,深度强化学习在自然语言生成中产生了有希望的表现。
  
关于对话系统的最后说明:尽管AI取得了显着进步,并且对对话系统的关注度很高,但实际上,成功的商业工具(如Apple’s Siri 和 Amazon’s Alexa)仍然严重依赖手工功能。考虑到自然语言的复杂性、框架设计的困难以及可用数据源的复杂性,设计和训练数据驱动的对话机仍然非常具有挑战性。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Natural Language Processing by Jalaj Thanaki English | 31 July 2017 | ISBN: 1787121429 | ASIN: B072B8YWCJ | 486 Pages | AZW3 | 11.02 MB Key Features Implement Machine Learning and Deep Learning techniques for efficient natural language processing Get started with NLTK and implement NLP in your applications with ease Understand and interpret human languages with the power of text analysis via Python Book Description This book starts off by laying the foundation for Natural Language Processing and why Python is one of the best options to build an NLP-based expert system with advantages such as Community support, availability of frameworks and so on. Later it gives you a better understanding of available free forms of corpus and different types of dataset. After this, you will know how to choose a dataset for natural language processing applications and find the right NLP techniques to process sentences in datasets and understand their structure. You will also learn how to tokenize different parts of sentences and ways to analyze them. During the course of the book, you will explore the semantic as well as syntactic analysis of text. You will understand how to solve various ambiguities in processing human language and will come across various scenarios while performing text analysis. You will learn the very basics of getting the environment ready for natural language processing, move on to the initial setup, and then quickly understand sentences and language parts. You will learn the power of Machine Learning and Deep Learning to extract information from text data. By the end of the book, you will have a clear understanding of natural language processing and will have worked on multiple examples that implement NLP in the real world. What you will learn Focus on Python programming paradigms, which are used to develop NLP applications Understand corpus analysis and different types of data attribute. Learn NLP using Python libraries such as NLTK, Polyglot,
As an AI language model, I can suggest the following steps to learn deep learning: 1. Learn the basics of machine learning: Before diving into deep learning, it is essential to understand the basics of machine learning, including supervised and unsupervised learning, regression, clustering, and classification. 2. Learn programming languages: To work with deep learning, one needs to have a strong foundation in programming languages such as Python and R, as most of the deep learning libraries are written in these languages. 3. Understand the mathematics behind deep learning: Deep learning involves a lot of math, including linear algebra, calculus, and probability. Understanding these concepts will help you better understand the algorithms used in deep learning. 4. Choose a deep learning framework: Popular deep learning frameworks include Tensorflow, Keras, PyTorch, and Caffe. Choose one and learn it. 5. Practice with datasets: Work with datasets to understand how deep learning works in practice. Kaggle is a great platform to get started with real-world datasets. 6. Read research papers: Read research papers to stay up-to-date with the latest advancements in deep learning. 7. Join communities: Join online communities such as Reddit, Discord, or GitHub to connect with other deep learning enthusiasts and learn from them. 8. Build projects: Building projects is the best way to learn deep learning. Start with simple projects and gradually move on to more complex ones. Remember, deep learning is a vast field, and it takes time and effort to master it. Keep practicing, and you will get there.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值