《TensorFlow自然语言处理》—1.4.3 理解一个简单的深层模型—全连接神经网络
1.4.3 理解一个简单的深层模型—全连接神经网络
现在让我们仔细研究深度神经网络,以便更好地理解它。虽然深层模型有许多不同的变体,但最早的模型之一可追溯到1950~1960年,它被称为全连接神经网络(FCNN),有时也被称为多层感知器,图1.5描绘了标准的三层FCNN。
图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)。然后,针对一个测试数据集,其中只包含电影评论(没有评论标签),我们的任务是将这些新句子分类为正面或负面的。
按照以下工作流程,可以使用神经网络(深层或浅层,取决于任务的难度)来处理这项任务:
对句子进行分词
如有必要,使用特殊标记填充句子,使所有句子都是固定长度
将句子转换为数值表示(例如,词袋表示)
将数值表示输入到神经网络并预测输出(正面或负面)
使用所需的损失函数优化神经网络
- 点赞
- 收藏
- 关注作者
评论(0)