《TensorFlow自然语言处理》—1.4.3 理解一个简单的深层模型—全连接神经网络

举报
华章计算机 发表于 2019/07/20 22:08:09 2019/07/20
【摘要】 本节书摘来自华章计算机《TensorFlow自然语言处理》一书中的第1章,第1.4.3节,[澳] 图珊·加内格达拉(Thushan Ganegedara) 著 马恩驰 陆 健 译。

1.4.3 理解一个简单的深层模型—全连接神经网络

现在让我们仔细研究深度神经网络,以便更好地理解它。虽然深层模型有许多不同的变体,但最早的模型之一可追溯到1950~1960年,它被称为全连接神经网络(FCNN),有时也被称为多层感知器,图1.5描绘了标准的三层FCNN。

 image.png

图1.5 全连接网络的例子(FCNN)

FCNN的目标是将输入(例如,图像或句子)映射到特定标签或注释(例如,图像的类别)。这可以使用h = sigma(W * x + b)之类的变换,通过计算x的隐藏表示h来实现。这里,W和b分别是FCNN的权重和偏差,sigma是S形(sigmoid)激活函数。接下来,将分类器(例如,softmax分类器)放置在FCNN的顶部,该分类器能够利用隐藏层中的学习特征来对输入进行分类。分类器是具有权重Ws和偏差bs的另一个隐藏层,它本质上是FCNN的一部分。然后,可以用公式output = softmax(Ws * h + bs)计算FCNN的输出。例如,softmax分类器提供分类器层输出分数的归一化表示,该标签被认为是具有最高softmax值的输出节点。然后,根据这个结果,我们可以计算预测的输出标签和实际的输出标签之间的差异,将它定义为分类损失。均方损失是这种损失函数的一个例子。你不必担心不理解损失函数的实际细节,我们将在后面的章节中讨论很多损失函数。接下来,使用标准随机优化器(例如,随机梯度下降)来优化神经网络参数W,b,Ws和bs,以减少所有输入的分类损失。图1.5描述了本段中针对三层FCNN的解释过程。我们将在第3章逐步介绍如何将这种模型用于NLP任务的细节。

让我们看一个如何将神经网络用于情感分析任务的示例。想象一下我们有一个数据集,其中,输入是一个表达对电影的正面或负面意见的句子,以及一个相应的标签,说明该句子实际上是正面(1)还是负面(0)。然后,针对一个测试数据集,其中只包含电影评论(没有评论标签),我们的任务是将这些新句子分类为正面或负面的。

按照以下工作流程,可以使用神经网络(深层或浅层,取决于任务的难度)来处理这项任务:

  • 对句子进行分词

  • 如有必要,使用特殊标记填充句子,使所有句子都是固定长度

  • 将句子转换为数值表示(例如,词袋表示)

  • 将数值表示输入到神经网络并预测输出(正面或负面)

  • 使用所需的损失函数优化神经网络


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。