第三章 浅层神经网络
第二章我们学习了使用一维线性回归的监督学习方法,但这种模型只能表示出输入与输出之间简单的线性关系。在这一章里,我们将接触到浅层神经网络。这种网络可以表达分段线性函数,并且能力强大到足以近似任何复杂度的多维输入和输出之间的关系。
3.1 神经网络示例
浅层神经网络是带有参数 ϕ\phiϕ 的函数 y=f[x,ϕ]y = f[x, \phi]y=f[x,ϕ],它将多变量输入 xxx 映射成多变量输出 yyy。关于浅层神经网络的全面定义将在第3.4节中给出。首先,我们通过一个示例网络 f[x,ϕ]f[x, \phi]f[x,ϕ] 来介绍核心概念。这个网络能够将单一变量输入 xxx 转化为单一变量输出 yyy,并包含十个参数 ϕ={ ϕ0,ϕ1,ϕ2,ϕ3,θ10,θ11,θ20,θ21,θ30,θ31}\phi = \{\phi_0, \phi_1, \phi_2, \phi_3, \theta_{10}, \theta_{11}, \theta_{20}, \theta_{21}, \theta_{30}, \theta_{31}\}ϕ={ ϕ0,ϕ1,ϕ2,ϕ3,θ10,θ11,θ20,θ21,θ30,θ31}:
y=f[x,ϕ]=ϕ0+ϕ1a[θ10+θ11x]+ϕ2a[θ20+θ21x]+ϕ3a[θ30+θ31x] \begin{align} y &= f[x, \phi] \\ &= \phi_0 + \phi_1a[\theta_{10} + \theta_{11}x] + \phi_2a[\theta_{20} + \theta_{21}x] + \phi_3a[\theta_{30} + \theta_{31}x] \tag{3.1} \end{align} y=f[x,ϕ]=ϕ0+ϕ1a[θ10+θ11x]+ϕ2a[θ20+θ21x]+ϕ3a[θ30+θ31x](3.1)
这个计算过程可以分成三个步骤:首先,计算输入数据 xxx 的三个线性函数(θ10+θ11x,θ20+θ21x,θ30+θ31x\theta_{10} + \theta_{11}x, \theta_{20} + \theta_{21}x, \theta_{30} + \theta_{31}xθ10+θ11x,θ20+θ21x,θ30+θ31x)。接着,将这三个函数的结果通过激活函数 a[⋅]a[\cdot]a[⋅] 处理。最后,用 ϕ1,ϕ2,ϕ3\phi_1, \phi_2, \phi_3ϕ1,ϕ2,ϕ3 对这三个激活结果进行加权,求和,并加上一个偏移量 ϕ0\phi_0ϕ0。
接下来,我们需要定义激活函数(activation function)a[⋅]a[\cdot]a[⋅]。虽然有很多选择,但最常用的是整流线性单元(ReLU):
a[z]=ReLU[z]={ 0if z<0zif z≥0(3.2) a[z] = ReLU[z] = \begin{cases} 0 & \text{if } z < 0 \\ z & \text{if } z \geq 0 \end{cases} \tag{3.2} a[z]=ReLU[z]={ 0zif z<0if z≥0(3.2)
这个函数在输入为正时返回输入值,否则返回零(参见图 3.1)。
方程 3.1 描述了哪一类输入/输出关系可能不是一目了然的。但是,前一章节提到的所有概念都适用于这里。方程 3.1 表示了一个函数族,具体的函数取决于 φ 中的十个参数。如果我们知道这些参数,就可以通过对给定输入 xxx 计算该方程来进行推断(预测 yyy)。给定一个训练数据集 { xi,yi}i=1I\{ {x_i,y_i}\}^I_{i=1}{ xi,yi}i=1I,我们可以定义一个最小二乘损失函数 L[ϕ]L[\phi]L[ϕ],用它来评估对于任意参数值 ϕ\phiϕ,模型描述该数据集的效果。为了训练这个模型,我们要找出能够最小化这个损失的参数值 ϕ^\hat \phiϕ^。

图 3.1 整流线性单元 (Rectified Linear Unit, ReLU)。这种激活函数在输入小于零时输出为零,否则保持输入值不变。简而言之,它将所有负数输入值变为零。需要注意的是,虽然有许多其他激活函数可供选择(参见图 3.13),但 ReLU 由于其简单易懂,成为最常用的选择。

图 3.2 由方程 3.1 定义的函数族。a-c) 展示了三种不同参数 $\phi$ 的选择下的函数。在这些函数中,输入与输出的关系均为分段线性。不过,各个拐点的位置、拐点间线段的斜率,以及整体高度各不相同。
3.1.1 神经网络直观理解
事实上,方程 3.1 描述了一个连续分段线性函数族(见图 3.2),这个函数族最多包含四个线性区域。下面我们解析这个方程,阐释它是如何描绘出这样一个函数族的。为了便于理解,我们将这个函数拆分为两个部分。首先,我们定义几个中间量:
h1=a[θ10+θ11x]h2=a[θ20+θ21x]h3=a[θ30+θ31x](3.3) \begin{align} h1 = a[\theta_{10} + \theta_{11}x] \\ h2 = a[\theta_{20} + \theta_{21}x] \\ h3 = a[\theta_{30} + \theta_{31}x] \end{align} \tag{3.3} h1=a[θ10+θ11x]h2=a[θ20+θ21x]h3=a[θ30+

最低0.47元/天 解锁文章
1010

被折叠的 条评论
为什么被折叠?



