《自然语言处理:基于预训练模型的方法》第四章 自然语言处理中的神经网络基础--读书笔记

多层感知器模型

1.感知器

感知器(Perceptron)是最简单也是最早出现的机器学习模型,其灵感直接来源于生产生活的实践。例如,在公司面试时,经常由多位面试官对一位面试者打分,最终将多位面试官的打分求和,如果分数超过一定的阈值,则录用该面试者,否则不予录取。假设有n位面试官,每人的打分分别为x_{1}, x_{2}, \cdots, x_{n},则总分s=x_{1}+x_{2}+\cdots+x_{n},如果s\geqslant t,则给与录取,其中t被称为阈值,x_{1}, x_{2}, \cdots, x_{n}被称为输入,可以使用向量\boldsymbol{x}=\left[x_{1}, x_{2}, \cdots, x_{n}\right]表示,然而,在这些面试官中,有一些经验比较丰富,而有一些是刚入门的新手,如果简单地将它们的打分进行相加,最终的得分显然不够客观,因此可以通过对面试官的打分进行加权的方法解决,即为经验丰富的面试官赋予较高的权重,而为新手赋予较低的权重。假设n位面试官的权重分别为w_{1}, w_{2}, \cdots, w_{n},则最终的分数为s=w_{1} x_{1}+w_{2} x_{2}+\cdots+w_{n} x_{n},同样可以使用向量\boldsymbol{w}=\left[w_{1}, w_{2}, \cdots, w_{n}\right]表示n个权重,则分数可以写成权重向量和输入向量的点积,即s=\boldsymbol{w} \cdot \boldsymbol{x},于是最终的输出y为:

y=\left\{\begin{array}{ll} 1, & \text { if } s \geqslant t \\ 0, & \text { otherwise} \end{array}= \begin{cases}1, & \text { if } \boldsymbol{w} \cdot \boldsymbol{x} \geqslant t \\ 0, & \text { otherwise }\end{cases}\right.

式中,输出y=1表示录用,y=0表示不录用。这就是感知器模型,其还可以写成以下的形式:

y= \begin{cases}1, & \text { if } \boldsymbol{w} \cdot \boldsymbol{x}+b \geqslant 0 \\ 0, & \text { otherwise }\end{cases}

式中,b=-t,又被称为偏差项(Bias)。

当使用感知器模型时,有两个棘手的问题需要加以解决。

首先是如何将一个问题的原始输入(Raw Input)转换成输入向量\boldsymbol{x},此过程又被称为特征提取(Feature Extraction)。在自然语言处理中,其实就是如何用数值向量表示文本。

其次是如何合理地设置权重\boldsymbol{w}和偏差项b(它们也被称为模型参数),此过程又被称为参数学习(也称参数优化或模型训练)

很多现实生活中遇到的问题都可以使用感知器模型加以解决,比如识别一个用户评论句子的情感极性是褒义还是贬义等,在自然语言处理中,这些问题又被归为文本分类问题。

2.线性回归

上一小节介绍的感知器是一个分类模型,即输出结果为离散的类别(如褒义或贬义)。

除了分类模型,还有一大类机器学习模型被称为回归(Regression)模型,其与分类模型的本质区别在于输出的结果不是离散的类别,而是连续的实数值。

在实际生活中,回归模型也有大量的应用,如预测股票的指数,天气预报中温度的预测等。类似地,在情感分析中,如果目标不是预测文本的情感极性,而是一个情感强弱的分数,如电商或影评网站中用户对商品或电影的评分等,则是一个回归问题。

线性回归(Linear Regression)是最简单的回归模型。与感知器类似,线性回归模型将输出y建模为对输入\boldsymbol{x}中各个元素的线性加权和,最后也可以再加上偏差项b,即y=w_{1} x_{1}+w_{2} x_{2}+\cdots+w_{n} x_{n}+b=\boldsymbol{w} \cdot \boldsymbol{x}+b

3.Logistic回归

线性回归输出值的大小(值域)是任意的,有时需要将其限制在一定的范围内。有很多函数能够实现此功能,它们又被称为激活函数(Activation Function),其中Logistic函数经常被用到,其形式为:

y=\frac{L}{1+\mathrm{e}^{-k\left(z-z_{0}\right)}}

该函数能将y的值限制在0(z \rightarrow-\infty)L(z \rightarrow+\infty)之间,当z=z_{0}时,y=L/2;k控制了函数的陡峭程度。若z=w_{1} x_{1}+w_{2} x_{2}+\cdots+w_{n} x_{n}+b,此模型又被称为Logistic回归(Logistic Regression)模型。

虽然被称为回归模型,但是Logistic回归经常被用于分类问题。这是如何做到的呢?如果将Logistic函数中的参数进行如下设置。L=1k=1z_{0}=0,此时函数形式为:

y=\frac{1}{1+\mathrm{e}^{-z}}

该函数又被称为Sigmoid函数,

其值域恰好在0~1之间,所以经过Sigmoid函数归一化的模型输出可以看作一个输入属于某一类别的概率值(假设只有两个类别,因此也被称为二元分类问题)

除了可以输出概率值,Sigmoid函数另一个较好的性质是其导数比较容易求得({y}'=y(1-y)),这为后续基于梯度的参数优化算法带来了一定的便利。

4.Softmax回归

Sigmoid虽然可以用于处理二元分类问题,但是很多现实问题的类别可能不止两个,如手写数字的识,输出属于0~9共10个数字中的一个,即有10个类别。在自言语言处理中,如文本分类、词性标注等问题,均属于多元分类问题,即使是情感极性识别也一样,除了褒义和贬义,还可以增加一个中性类别。那么,如何处理多元分类问题呢?其中一种方法和Sigmoid回归的思想类似,即对第i个类别使用线性回归打一个分数,z_{i}=w_{i 1} x_{1}+w_{i 2} x_{2}+\cdots+w_{i n} x_{n}+b_{i}。式中,w_{i j}表示第i个类别对应的第j个输入的权重,然后,对多个分数使用指数函数进行归一化计算,并获得一个输入属于某个类别的概率。该方法又称为Softmax回归,具体公式为:

y_{i}=\operatorname{Softmax}(\boldsymbol{z})_{i}=\frac{\mathrm{e}^{z_{i}}}{\mathrm{e}^{z_{1}}+\mathrm{e}^{z_{2}}+\cdots+\mathrm{e}^{z_{m}}}

式中,\boldsymbol{z}表示向量\left[z_{1}, z_{2}, \cdots, z_{m}\right]m表示类别数;y_{i}表示第i个类别的概率。

当m=2时,即处理二元分类问题时,可以写为:

y_{1}=\frac{\mathrm{e}^{z_{1}}}{\mathrm{e}^{z_{1}}+\mathrm{e}^{z_{2}}}=\frac{1}{1+\mathrm{e}^{-\left(z_{1}-z_{2}\right)}}

此公式即Sigmoid函数形式,也就是Sigmoid函数是Softmax函数在处理二元分类问题时的一个特例。

进一步地,将Softmax回归模型公式展开,其形式为:

\left[\begin{array}{c} y_{1} \\ y_{2} \\ \vdots \\ y_{m} \end{array}\right]=\operatorname{Softmax}\left(\begin{array}{c} w_{11} x_{1}+w_{12} x_{2}+\cdots+w_{1 n} x_{n}+b_{1} \\ w_{21} x_{1}+w_{22} x_{2}+\cdots+w_{2 n} x_{n}+b_{2} \\ \vdots \\ w_{m 1} x_{1}+w_{m 2} x_{2}+\cdots+w_{m n} x_{n}+b_{m} \end{array}\right)

可以使用矩阵乘法形式重写该公式:

\left[\begin{array}{c} y_{1} \\ y_{2} \\ \vdots \\ y_{m} \end{array}\right]=\operatorname{Softmax}\left(\left[\begin{array}{c} w_{11}, w_{12}, \cdots, w_{1 n} \\ w_{21}, w_{22}, \cdots, w_{2 n} \\ \vdots \\ w_{m 1}, w_{m 2}, \cdots, w_{m n} \end{array}\right] \cdot\left[\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{array}\right]+\left[\begin{array}{c} b_{1} \\ b_{2} \\ \vdots \\ b_{m} \end{array}\right]\right)

更进一步地,可以使用张量表示输入、输出以及其中的参数,即:

\boldsymbol{y}=\operatorname{Softmax}(\boldsymbol{W} \boldsymbol{x}+\boldsymbol{b})

式中,\boldsymbol{x}=\left[x_{1}, x_{2}, \cdots, x_{n}\right]^{\top}\boldsymbol{y}=\left[y_{1}, y_{2}, \cdots, y_{m}\right]^{\top}W=\left[\begin{array}{c} w_{11}, w_{12}, \cdots, w_{1 n} \\ w_{21}, w_{22}, \cdots, w_{2 n} \\ \vdots \\ w_{m 1}, w_{m 2}, \cdots, w_{m n} \end{array}\right]\boldsymbol{b}=\left[b_{1}, b_{2}, \cdots, b_{m}\right]^{\top}。对向量\boldsymbol{x}执行\boldsymbol{W} \boldsymbol{x}+\boldsymbol{b}运算又被称为对\boldsymbol{x}进行线性映射或线性变换。

5.多层感知器

多层感知器(Multi-layer Perceptron,MLP)是解决线性不可分问题的一种解决方案。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值