第 7 讲在最后六页引入神经网络,讲到多层网络的示意图就停下了。9 月 17 日那一讲接着讲反向传播。本页只覆盖课件展示的内容,并标出少数几处补充说明。
逻辑回归本身就是一个很小的神经网络 Lec 7 · PDF p. 64
再看一遍逻辑回归分类器做的事:取输入特征 \(x_1,\dots,x_d\),各乘一个权重,加上偏置,再把总和送进 sigmoid。课件把它画成一个神经网络单元(neural network unit):
示意图里,偏置被画成一个额外的输入 \(x_0=1\),权重是 \(b\)。这样写,求和就能把偏置当作多出来的一项吸收进去。把 \(z\) 变成输出的那一步叫激活函数(activation function)。这里用的是 sigmoid,但任何非线性函数都可以担任这个角色。
这幅图和大脑里的神经元有点像:几条强弱不同的输入连接,一个合并后的信号,以及一个随信号非线性变化的响应。名字就是这么来的。不过这个单元只是一段算术,不是生物学模型。
激活函数是关键成分 Lec 7 · PDF p. 65
课件列出三种常用激活函数,并画出了它们的曲线。
| 函数 | 公式 | 输出范围 | \(z=-2,\,0,\,2\) 时的值 |
|---|---|---|---|
| Sigmoid | \(\sigma(z)=\dfrac{1}{1+e^{-z}}\) | \((0,1)\) | 0.119, 0.5, 0.881 |
| tanh | \(\tanh(z)=\dfrac{e^{z}-e^{-z}}{e^{z}+e^{-z}}\) | \((-1,1)\) | −0.964, 0, 0.964 |
| ReLU(rectified linear unit,修正线性单元) | \(\operatorname{ReLU}(z)=\max(0,z)\) | \([0,\infty)\) | 0, 0, 2 |
Sigmoid 和 tanh 都是 S 形。tanh 是把 sigmoid 缩放后以零为中心的版本:\(\tanh(z)=2\sigma(2z)-1\)。ReLU 是三者中最简单的:正数原样通过,负数换成零。课件标注 ReLU 是实践中最常用的选择。右边那列数值是这里补充的,方便看清曲线的形状。
非线性为什么重要? Lec 7 · PDF pp. 66–67
只做加权求和的模型,只能用一条直线(在更高维度里是一个平面)把两类分开。课件第一幅图是两团点,中间隔着一条直线。第二幅图是更难的情形:红点在左上角和右下角,蓝点在右上角和左下角。没有任何一条直线能把红蓝分开,这样的数据叫线性不可分(linearly inseparable)。
下一页对输入做了一次 tanh 变换,再把结果画出来。变换之后,红点和蓝点可以用一条直线分开了。非线性函数把空间重新塑形,让线性边界变得够用。这就是非线性的力量。
假设一个网络先做一次加权求和,再对结果做一次加权求和,中间没有激活函数。把两层写成矩阵,\(U(W\mathbf{x})=(UW)\mathbf{x}\),这仍然是一次加权求和,只是矩阵变成了 \(UW\)。所以线性层叠再多,也走不出线性边界。层与层之间的激活函数,才让第二层有了新的东西可用。
把单元叠成前馈网络 Lec 7 · PDF p. 68
前馈神经网络(feed-forward neural network),也叫多层感知机(multilayer perceptron),把单元按层排列。课件的示意图有三层:
- 输入层:特征 \(x_1,\dots,x_{d_0}\),外加用于偏置的常数 \(x_0=1\)。
- 隐藏层:单元 \(h_1,\dots,h_{d_1}\)。每个隐藏单元先对全部输入加权求和,再经过激活函数。权重组成矩阵 \(W\),偏置组成向量 \(\mathbf{b}\)。
- 输出层:数值 \(y_1,\dots,y_{d_2}\),由隐藏单元经另一个权重矩阵 \(U\) 算出。
信息只朝一个方向流动:从输入到隐藏单元,再到输出,所以叫"前馈"。写成公式,一个隐藏层是这样的:
课件只画了示意图并标出矩阵 \(W\)、\(\mathbf{b}\)、\(U\);这里的公式按指定阅读材料 Jurafsky & Martin 第 7 章写出。把输出那一步和多分类逻辑回归对比:计算完全一样,只是输入换成了学出来的隐藏向量 \(\mathbf{h}\),而不是原始特征。前馈网络就是叠在一个学出来的非线性变换之上的多分类逻辑回归。
课件还写道,这样的网络"技术上可以学习任何函数"。这句话指的是一个逼近定理:只要隐藏单元足够多,这种形状的网络可以把很大一类函数逼近到任意精度。但这个结果不说明需要多少单元,不保证梯度下降能找到合适的权重,也不保证在新样本上表现良好。这些限定是这里补充的,课件只给了结论本身。
课件的最后一句是"让我们回到逻辑回归模型来把它拆开讲",下一讲从这里接上。
- 一个神经单元 = 加权求和 + 非线性激活函数。逻辑回归就是一个用 sigmoid 的单元。
- Sigmoid、tanh、ReLU 是标准的激活函数。ReLU,即 \(\max(0,z)\),最常用。
- 没有非线性,多层会塌缩成一个线性模型,分不开四角那样的模式。
- 前馈网络先算 \(\mathbf{h}=g(W\mathbf{x}+\mathbf{b})\),再算 \(\operatorname{softmax}(U\mathbf{h})\)。它的输出层就是作用在学出来的特征上的多分类逻辑回归。