首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

《机器学习实战:基于Scikit-Learn、Keras和TensorFlow》第16章 使用RNN和注意力机制进行自然语言处理

自然语言处理的常用方法是循环神经网络。所以接下来会从 character RNN 开始(预测句子中出现的下一个角色),继续介绍RNN,这可以让我们生成一些原生文本,在过程中,我们会学习如何在长序列上创建TensorFlow Dataset。先使用的是无状态RNN(每次迭代中学习文本中的随机部分),然后创建一个有状态RNN(保留训练迭代之间的隐藏态,可以从断点继续,用这种方法学习长规律)。然后,我们会搭建一个RNN,来做情感分析(例如,读取影评,提取评价者对电影的感情),这次是将句子当做词的序列来处理。然后会介绍用RNN如何搭建编码器-解码器架构,来做神经网络机器翻译(NMT)。我们会使用TensorFlow Addons项目中的 seq2seq API 。

02

通俗理解ChatGPT中Transformer架构

Transformer架构是由Vaswani等人在2017年提出的一种深度学习模型,它在自然语言处理(NLP)领域取得了革命性的进展。Transformer的核心思想是使用自注意力(Self-Attention)机制来捕捉输入序列中的长距离依赖关系,而无需依赖于循环神经网络(RNN)或卷积神经网络(CNN)。 以下是Transformer架构的详细介绍和实现原理: 1. 多头自注意力机制(Multi-Head Self-Attention) 自注意力机制是Transformer的核心,它允许模型在处理序列的每个元素时,同时考虑序列中的所有其他元素。这种机制通过计算每个元素对其他元素的注意力权重来实现,这些权重表明了在生成当前元素时,其他元素的重要性。 多头自注意力机制进一步扩展了自注意力的概念,它包含多个注意力“头”,每个头学习序列的不同方面。这增加了模型的表达能力,因为它可以从多个角度理解数据。 2. 位置编码(Positional Encoding) 由于Transformer模型没有循环结构,它需要一种方式来理解单词在序列中的位置。位置编码通过向输入添加额外的信息来解决这个问题,这些信息指示了单词在序列中的位置。位置编码通常使用正弦和余弦函数的组合来生成,这允许模型学习到序列中元素的相对位置。 3. 编码器和解码器层(Encoder and Decoder Layers) Transformer模型由编码器和解码器组成,每个部分包含多个层。编码器用于处理输入序列,解码器用于生成输出序列。 - **编码器**:由多个相同的层堆叠而成,每层包含自注意力机制和前馈神经网络。自注意力机制用于捕捉输入序列内部的依赖关系,而前馈网络则对每个位置的表示进行独立处理。 - **解码器**:也由多个相同的层堆叠而成,每层包含自注意力机制、编码器-解码器注意力机制和前馈神经网络。编码器-解码器注意力机制允许解码器关注输入序列中的相关部分。 4. 层归一化和残差连接 为了稳定训练过程,Transformer模型在每个子层(自注意力和前馈神经网络)的输出上应用层归一化。此外,每个子层的输出都会通过一个残差连接,然后将结果传递给下一个子层。这种设计有助于缓解梯度消失问题,使得模型可以更有效地学习。

01

TensorFlow从1到2(十)带注意力机制的神经网络机器翻译

机器翻译和语音识别是最早开展的两项人工智能研究。今天也取得了最显著的商业成果。 早先的机器翻译实际脱胎于电子词典,能力更擅长于词或者短语的翻译。那时候的翻译通常会将一句话打断为一系列的片段,随后通过复杂的程序逻辑对每一个片段进行翻译,最终组合在一起。所得到的翻译结果应当说似是而非,最大的问题是可读性和连贯性非常差。 实际从机器学习的观点来讲,这种翻译方式,也不符合人类在做语言翻译时所做的动作。其实以神经网络为代表的机器学习,更多的都是在“模仿”人类的行为习惯。 一名职业翻译通常是这样做:首先完整听懂要翻译的语句,将语义充分理解,随后把理解到的内容,用目标语言复述出来。 而现在的机器翻译,也正是这样做的,谷歌的seq2seq是这一模式的开创者。 如果用计算机科学的语言来说,这一过程很像一个编解码过程。原始的语句进入编码器,得到一组用于代表原始语句“内涵”的数组。这些数组中的数字就是原始语句所代表的含义,只是这个含义人类无法读懂,是需要由神经网络模型去理解的。随后解码过程,将“有含义的数字”解码为对应的目标语言。从而完成整个翻译过程。这样的得到的翻译结果,非常流畅,具有更好的可读性。

02
领券