Ch 05. 神经网络
提纲
重点
- 前向传播的神经网络函数
难点
- Hessian 矩阵的逼近。
基础
- 固定基函数
- 回归模型: ( Ch 03 )
- 分类模型: ( Ch 04 )
要点
大规模问题需要可调节基函数
- 支持向量机: Ch 07 ( 选择不同的基函数 )
- 定义以训练数据点为中心的基函数集合
- 在训练过程中从定义的基函数集合中选择基函数子集
- 优点
- 目标函数是凸函数,虽然训练阶段涉及到非线性优化
- 相对直接地得到最优问题的解,最优解中基函数的数量远小于训练数据点的数量
- 相关向量机: Sec 7.2
- 选择固定基函数的一个子集
- 生成一个相当稀疏的模型
- 产生概率形式的输出,以训练阶段的非凸优化为代价
神经网络: Ch 06 ( 相同的基函数,不同的基函数的参数 )
- 使用参数形式的基函数,参数可以在训练阶段调节
- 最终模型相当简洁,计算速度更快,可以快速地处理新的数据。
神经网络学习点
神经网络的函数形式
- 基函数的具体参数
使用最大似然框架确定神经网络参数
- 非线性最优化问题
- 如何使用误差反向传播算法取得神经网络参数的导数
- 如何使用误差反向传播算法取得其他的导数
- Jacobian 矩阵
- Hessian 矩阵
- 如何使用误差反向传播算法取得其他的导数
神经网络训练的正则化方法,以及方法之间的联系
混合密度网络
- 对条件概率密度建模
基于贝叶斯观点的神经网络,具体可以参考 [^Bishop,1995]
5.1. 前馈神经网络
前向传播的神经网络函数 ( 熟练地使用这些公式将有助于后面的推导 )
- 固定非线性基函数 $\phi_j(\text{x})$ 的线性组合
- 在回归问题中,$f(\cdot)$ 定义为恒等函数,即$f(x)=x$
- 在分类问题中,$f(\cdot)$ 定义为非线性激活函数
- 目标是推广这个模型,使基函数 $\phi_j(\text{x})$ 依赖于参数,从而保证参数和系数{$w_j$}都能够在训练阶段调节。
$$
y(\text{x,w})=f\biggl(\sum_{j=1}^M w_j\phi_j(\text{x})\biggl)
$$
基本神经网络模型(Fig 5.1)
- 输入变量 $x_1,\cdots,x_D$
- 隐藏单元:即线性基函数模型中的基函数
- 隐藏单元的激活: $a_1,\cdots,a_M$
- 每个激活都使用一个可微的非线性激活函数 $h(\cdot)$ 进行变换
- $z_j=h(a_j)$
- 激活函数通常选择 Logistic Sigmoid 函数 或者 双曲正切函数
- 上标 $(1)$ 表示对应的参数是神经网络的第「一」层
- 参数 $w_{ji}^{(1)}$ 称为权,参数 $w_{j0}^{(1)}$ 称为偏置
$$
a_j=\sum_{i=1}^D w_{ji}^{(1)}x_i+w_{j0}^{(1)}
$$
- 输出单元:隐藏单元的输出再次线性组合和变换
- 输出单元的激活:$a_1,\cdots,a_K$
- 激活函数的选择(Sec 5.2)
- 二分类问题选择 Logistic Sigmoid 函数
- 多分类问题选择 Softmax 函数
- 上标 $(2)$ 表示对应的参数是神经网络的第「二」层
$$
a_k=\sum_{j=1}^M w_{kj}^{(2)}z_j+w_{k0}^{(2)}
$$
- 整体的网络函数
- 所有的权参数和偏置参数聚集在一起,记作向量 $\text{w}$
$$
y_k(\text{x,w})=\sigma\biggl(\sum_{j=1}^M w_{kj}^{(2)}h(\sum_{i=1}^D w_{ji}^{(1)}x_i+w_{j0}^{(1)})+w_{k0}^{(2)}\biggl)\tag{5.7}
$$
- 简化的整体网络函数
- 额外的输入变量 $x_0=1$
$$
y_k(\text{x,w})=\sigma\biggl(\sum_{j=0}^{M}w_{kj}^{(2)}h(\sum_{i=0}^{D}w_{ji}^{(1)}x_i)\biggl)
$$
多层感知器 ( Multilayer Perceptron, MLP ) 与感知器模型的区别
- 多层感知器:也叫神经网络
- 在隐含单元中使用连续的 sigmoid 非线性函数。( 带有连续的非线性性质 )
- 函数关于参数是可微的。
- 在隐含单元中使用连续的 sigmoid 非线性函数。( 带有连续的非线性性质 )
- 感知器模型
- 在输出单元使用阶梯函数 sgn 这一非线性函数。( 带有非连续的非线性性质 )
多层感知器的性质
- 如果网络中所有隐藏单元的激活函数都是线性函数,那么可以找到等价的无隐藏单元的网络。因为连续的线性变换本身就是一个线性变换。
- 如果网络中隐含单元的数量小于输入单元的数量或者小于输出单元的数量,则因为降维造成信息损失
- 通用近似:带有线性输出的两层网络可以在任意精度下逼近任何输入变量较少的连续函数
多层感知器的扩展
- 增加额外的处理层,参考深度学习[^Goodfellow,2017]
- 引入跨层连接,每个跨层链接都关联着一个对应的可调节参数
- 稀疏网络
多层感知器的限制
- 网络中不能存在有向圈,确保输出是输入的确定函数
5.1.1 权空间对称性
激活函数的对称性:导致权空间中解的对称性。即网络不同的权向量 $\text{w}$ 的选择,可能产生相同的输入到输出的映射函数。
- 对于 M 个隐含单元,任何给定的权向量都是权空间中 $2^M$ 个等价的权向量中的一个。
- 因为隐含单元的连接有 $M!$ 种可能,所以每个隐含层单元的整体权空间对称性因子是 $M!\times{2^M}$
- 对于多于两层的网络,$y=\underset{i}{\prod} x_i$
- $y$ 是对称性因子总数
- $x_i$ 第 $i$ 层隐含单元的对称性因子数。
- 这种对称性几乎没有什么实际的用处
5.2. 网络训练
(网络训练的本质就是确定参数,估计参数就是基于最优化理论对误差函数求极值)
- 关键问题是:输出单元的激活函数 $f ( \cdot )$ 和 对应的误差函数 $E ( \text{w} )$
回归问题
- 前提条件
- 训练集的输入变量 $\text{X}={\text{x}_1,\cdots,\text{x}_N}$
- 训练集的目标变量 $\text{T}\equiv{\text{t}_1,\cdots,\text{t}_N}$
- $f ( \cdot )$ 为恒等函数 $f ( \mathbf{x} ) =\mathbf{x}$
- $E ( \text{w} )$ 为平方和误差函数 $E(\text{w})=\frac12\sum_{n=1}^N|y( \text{x}_n,\text{w})-\text{t}_n|^2$
- 一元目标变量:最小化误差函数等价于最大化似然函数
- 神经网络的输出:$p(t|\text{x,w})=\mathcal{N} (t|y( \text{x,w}),\beta^{-1})$
- 对应的似然函数
- $p( \mathbf{t}|\text{X,w},\beta)=\prod_{n=1}^N p(t_n|\text{x}_n,\text{w},\beta)$
- 取负对数,得到误差函数
- (Eq 5.13) : $\frac{\beta}2\sum_{n=1}^N {y ( \text{x,w})-t_n}^2-\frac{N}2\ln\beta+\frac{N}2\ln(2\pi)$
- 用于估计 $\text{w}$ 的误差函数(Eq 5.14) : $E( \text{w})=\frac12\sum_{n=1}^N {y ( \text{x,w})-t_n}^2$
- 等价于最小化平方和误差函数(去掉了相加的和相乘的常数)
- 关于 $\text{w}$ 最小化(Eq 5.14) $E ( \text{w} )$ 得到的值记为 $\text{w}_{ML}$
- 在实际应用中,神经网络函数 $y( \text{x,w})$的非线性性质导致误差函数 $E ( \text{w} )$不是凸函数,因此寻找到的可能是似然函数的局部最大值,对应于误差函数的局部最小值,讨论参考 Sec 5.2.1
- 关于 $\beta$ 最小化误差函数(Eq 5.13)估计 $\beta$ 的值:$\frac1{\beta_{ML}}=\frac1N\sum_{n=1}^N{y(\text{x}n,\text{w}{ML})-t_n}^2$
- 多元目标变量:假设目标变量之间相互独立
- 目标变量的条件分布:$p(\text{t|x,w})=\mathcal{N} (\text{t|y(x,w)},\beta^{-1}\text{I})$
- 估计 $\text{w}$ 的误差函数: $E(\text{w})=\frac12\sum_{n=1}^N|y( \text{x}_n,\text{w})-\text{t}_n|^2$
- 噪声的精度:$\frac1{\beta_{ML}}=\frac1{NK}\sum_{n=1}^N|\text{y}(\text{x}n,\text{w}{ML})-\text{t}_n|^2$
- $K$ 是目标变量的维度
分类问题
- 前提条件
- 训练集的输入变量 $\text{X}={\text{x}_1,\cdots,\text{x}_N}$
- 训练集的目标变量 $\text{T}\equiv{\text{t}_1,\cdots,\text{t}_N}$
- 二元分类问题:$f ( \cdot )$ 为 Logistic Sigmoid 函数和 $E ( \text{w} )$ 为交叉熵误差函数
- 前提条件
- 单一目标变量 $t$,$t=1$ 表示类别 $\mathcal{C}_1$;$t=0$ 表示类别 $\mathcal{C}_2$
- 激活函数是 Logistic Sigmoid 函数:$y=\sigma(a)\equiv\frac1{1+\exp{-a}}$
- 由 $0\leq y(\text{x,w})\leq 1$,得到条件概率:$p(\mathcal{C}_1|\text{x})=y(\text{x,w}),p(\mathcal{C}_2|\text{x})=1-y(\text{x,w})$
- 目标变量的条件概率分布是 Bernoulli 分布:$p(t|\text{x,w})=y( \text{x,w})^t{1-y( \text{x,w})}^{(1-t)}$
- 负对数似然函数得到的就是交叉熵误差函数
- $E ( \text{w} )=-\sum_{n=1}^N{t_n\ln y( \text{x}_n,\text{w})+ ( 1-t_n ) \ln ( 1-y_n ) }$
- 【注】没有噪声精度相类似的参数,因为假定目标值的标记都是正确的,没有数据受到噪声影响
- 前提条件
- $K$ 个相互独立的二元分类问题
- 前提条件
- $K$ 个输出的神经网络
- 每个输出都有一个 Logistic Sigmoid 激活函数
- 与每个输出相关联的是一个二元类别标签 $t_k\in{0,1},k=1,\cdots,K$
- 假定类别标签是相互独立的
- 目标向量的条件概率分布:$p(\text{t|x,w})=\prod_{k=1}^K y_k(\text{x,w})^{t_k}[1-y_k(\text{x,w})]^{1-t_k}$
- 负对数似然函数得到的就是误差函数
- $E ( \text{w} )=-\sum_{n=1}^N\sum_{k=1}^K{t_{nk}\ln y_k(\text{x}n,\text{w})+(1-t{nk})\ln(1-y_k(\text{x}_n,\text{w}))}$
- 前提条件
- 多元分类问题:$f ( \cdot )$ 为 Softmax 函数和 $E ( \text{w} )$ 为多分类交叉熵误差函数
- 每个输入被分到 $K$ 个互斥的类别中
- 二元目标变量 $t_k\in{0,1}$ 使用 「1-of-K」表示类别
- 网络输出:$y_k(\text{x,w})=p(t_k=1|\text{x})$
- 误差函数:$E( \text{w})=-\sum_{n=1}^N\sum_{k=1}^K t_{nk} \ln y_k(\text{x}_n,\text{w})$
- 给误差函数增加正则化项,可以避免误差函数在权值空间的某些方向上是常数,详情参考 Sec 5.5
- 输出单元的激活函数:$y_k(\text{x,w})=\frac{\exp{a_k(\text{x,w})}}{\sum_j \exp{a_j(\text{x,w})}}$
- $\sum_k y_k=1,y_k\in(0,1)$
- 【注】交叉熵误差函数比平方和误差函数,训练速度更快,泛化能力更强。
5.2.1 参数最优化
参数最优化: ( 如果你对最优化不熟悉,建议参考 [^袁亚湘,1997];如果很熟悉,则可以浏览一下 )
梯度为零的点为驻点,分为极小值点、极大值点和鞍点。
对于所有的权向量,误差函数的最小值称为全局最小值。
任何其他的使误差函数的值较大的值称为局部极小值。
神经网络不是必须找到全局最小值,可以找到几个局部极小值,再从中选出足够好的解就可以满足需要了。
因为无法找到方程 $\nabla E(\text{w})=0$ 的解析解,可以使用迭代的数值方法。$\text{w}^{(\tau+1)}=\text{w}^{(\tau)}+\Delta\text{w}^{(\tau)}$
- $\tau$ 表示迭代次数
5.2.2 局部二次近似
误差函数 $E(\text{w})$ 在权值空间某点 $\hat{\text{w}}$ 处的泰勒展开:
$$
E(\text{w})\simeq E(\hat{\text{w}})
+(\text{w}-\hat{\text{w}})^T \nabla E|_{\text{w}=\hat{\text{w}}}
+\frac12(\text{w}-\hat{\text{w}})^T\text{H}(\text{w}-\hat{\text{w}})
\tag{5.28}
$$
- Hessian 矩阵 $\text{H}=\nabla\nabla E$ 的元素 $(\text{H}){ij}\equiv\frac{\partial E}{\partial w_i\partial w_j}\biggl|{\text{w}=\hat{\text{w}}}$
- 梯度的局部近似为:$\nabla E \simeq \nabla E|_{\text{w}=\hat{\text{w}}} +\text{H}(\text{w}-\hat{\text{w}})$
- 对于距离点 $\hat{\text{w}}$ 充分近的点 $\text{w}$,表达式能够对误差函数及它的梯度给出合理的近似
理解误差函数的局部二次近似,可以更好地理解最优化问题,以及各种解决最优化问题的方法
误差函数 $E(\text{w})$ 在权值空间最小值点 $\text{w}^*$ 附近的局部二次近似:
$$
E(\text{w})\simeq E(\text{w}^*)
+\frac12(\text{w}-\text{w}^*)^T\text{H}(\text{w}-\text{w}^*)
\tag{5.32}
$$
- 因为在 $\text{w}^*$ 处 $\nabla E=0$,所以没有了线性项,(Eq 5.28)变成了(Eq 5.32)。
Hessian 矩阵在点 $\text{w}^*$ 处的计算:
- Hessian 矩阵的特征值方程:$\text{Hu}_i=\lambda_i\text{u}_i$
- 特征向量 $\text{u}_i$ 构成了完备的单位正交集合:$\text{u}_i^T\text{u}j=\delta{ij}$
- 将 $(\text{w-w}^*)$ 展开成特征值的线性组合的形式:$\text{w-w}^*=\sum_i\alpha_i\text{u}_i$
- 误差函数为:$E( \text{w})=E( \text{w}^*)+\frac12\sum_i\lambda_i\alpha_i^2$
- Hessian 矩阵是正定矩阵 当且仅当 $\forall \text{v},\text{v}^T\text{Hv}>0,\text{v}\neq 0$
- $\text{v}=\sum_i c_i\text{u}_i$
- $\text{v}^T\text{Hv}=\sum_i c_i^2\lambda_i$
- Hessian 矩阵是正定矩阵 当且仅当 $\lambda_i>0$
- 在一维权值空间,当驻点 $\text{w}^*$ 处的 $\frac{\partial^2 E}{\partial\text{w}^2}\biggl|_{\text{w}^*}>0$ 时,取得最小值
- 在多维权值空间,当驻点 $\text{w}^*$ 处的 Hessian 矩阵为正定矩阵时,取得最小值
5.2.3 使用梯度信息
使用梯度信息构成了训练神经网络的基础。
使用误差反向传播算法可以高效地计算误差函数的梯度。Sec 5.3
5.2.4 梯度下降最优化
- 批量最优化算法 ( 一次处理批量的数据 )
- 梯度下降法,也叫最陡峭下降法,最速下降法。权值向量沿着误差函数下降速度最快的方向移动。因为每一步需要处理整个数据集,所以这个算法的实际效果很差,建议使用其他批量最优化算法。
- 其他批量最优化算法的共同性质:误差函数在每次迭代时总是减小的,除非权向量到达了局部或者全局的最小值。
- 共轭梯度法
- 拟牛顿法
- 在线最优化算法 ( 一次处理一条数据,常用于在线数据处理 )
- 在线梯度下降,也叫顺序梯度下降,随机梯度下降。权向量的更新每次只依赖于一个数据点。
- 可以更加高效地处理数据中的冗余性。
- 可以逃离局部极小值点。
5.3. 误差反向传播
误差反向传播 ( Error Backporrogpagation ) :也叫反传 ( backprop ),其目的是为了寻找一种高效算法,用于计算前馈神经网络的误差函数 $E ( \text{w} )$ 的梯度,因此利用局部信息传递的思想,使得信息在神经网络中交替地向前和向后传播。
- 反向传播方法的两个阶段
- 计算误差函数关于权值的导数;
- 为了计算导数而采用的误差在网络中反向传播方法可以应用于许多其他各类的网络;
- 导数的计算结果用于调整网络的权值。
- 通过许多最优化方法可以处理调整网络权值的工作。
- 计算误差函数关于权值的导数;
反向传播方法的重要贡献:提供了 高效地 计算误差函数的方法
5.3.1 误差函数导数的计算
- 误差函数导数的计算,即反向传播算法的流程 ( 建议能够熟练地推导 )
- 对于网络的一个输入向量进行正向传播,找到所有隐含单元和输出单元的激活;
- 计算所有输出单元的误差;
- 反射传播输出单元的误差,获得网络中所有隐含单元的误差;
- 计算导数。
5.3.3 反向传播的效率
- 影响反向传播的计算效率的因素
- 正向传播的计算复杂度 ( 即求和式的计算 ) + 激活函数的计算
5.3.4 Jacobian 矩阵
5.4 Hessian 矩阵
5.4.1 对角近似
5.4.2 外积近似
5.4.3 Hessian 矩阵的逆矩阵
5.4.4 有限差
5.4.5 Hessian 矩阵的精确计算
5.4.6 Hessian 矩阵的快速乘法
- 反向传播的应用 ( 建议不理解就跳过,内容只是帮助深入理解 BP 算法 )
- Jacobian 矩阵的求导
- Hessian 矩阵的计算
- Hessian 矩阵的对角化近似,方便求得逆矩阵;
- Hessian 矩阵的外积近似,即 Levenberg-Marquardt 近似,可以得到一个求解逆矩阵的高效方法;
- 使用有限差计算 Hessian 矩阵,可以用于检查反向传播算法执行的正确性;
- Hessian 矩阵的精确计算:利用反向传播算法计算一阶导数的推广,同时也保留了计算一阶导数的许多良好的性质。
- Hessian 矩阵的快速乘法,不再关注求得 Hessian 矩阵本身,而是某个向量与矩阵的乘积。
5.5 神经网络的正则化
5.5.1 相容的高斯先验
- 寻找相容的高斯先验
- 第 3 章讨论的正则化项可以表示为权值 $\text{w}$ 上的零均值高斯先验分布的负对数。
- 第 3 章讨论过的正则化项与神经网络映射的确定缩放性质不相容,所以需要为神经网络寻找相容的高斯先验。
- 相容性要求两个网络是等价的,差别仅在于权值的线性变换。
- 第一个网络是使用原始数据训练的;
- 第二个网络是使用将原始数据经过线性变换后的结果数据训练的。
- 相容性要求两个网络是等价的,差别仅在于权值的线性变换。
5.5.2 早停止
- 提早停止网络训练
- 非线性网络模型的训练对应于误差函数的迭代减小
- 误差函数是关于训练数据集定义的
- 误差函数是一个关于迭代次数的不增函数
- 训练过程可以在验证集误差最小的时候停止
- 网络的行为可以通过网络的自由度有效数量来定量描述
- 自由度有效数量开始很小,随着训练过程中的增长,对应的模型复杂度也在持续增长。
- 自由度有效数量的描述:$\tau\eta$( 其中 $\tau$ 是迭代次数,$\eta$ 是学习率参数 )
- 非线性网络模型的训练对应于误差函数的迭代减小
5.5.3 不变性
- 满足不变性 ( invariant ) 的需要
- 不变性的分类
- 平移不变性 ( translation invariance ) :位置的变化不影响结果;
- 缩放不变性 ( scale invariance ) :尺度的变化不影响结果。
- 不变性的解决方案
- 复制训练模式
- 根据不变性的需要对训练集进行扩展;
- 相对简单,但是计算开销大
- 变换后的数据训练:与切线传播方法有密切的关系。
- 通过添加随机噪声变换数据与 Tikhonov 正则化也有密切的关系。
- 误差函数的正则化项
- 惩罚当输入发生改变时,那些输出也发生改变的情况;
- 保持了数据集的不变性
- 切线传播 ( tangent propagation ) :使用正则化来让模型对于输入的变换具有不变性
- 当网络映射函数在每个模式向量的领域内具有变换不变性时,正则化函数等于零。
- 切线距离 ( tangent distance ) :用来构造基于距离的方法的不变性。
- 抽取不变特征
- 无论数据发生怎样的变化都不会影响到特征的稳定性,从而将不变性整合到预处理过程中;
- 由于训练集中没有包含变换,所以使用外插时不受影响。
- 寻找符合要求的特征难度较大。
- 模型对不变性的整合
- 将不变性整合到神经网络的构建过程中
- 卷积神经网络
- 在卷积层,各个单元被组织在一系列平面中,每个平面被称为一个特征地图 ( feature map )。
- 一个特征地图中的每个单元只从图像的一个小的子区域接收输入,且一个特征地图中的所有单元被限制为共享相同的权值。
- 构成了输出对于输入图像的平衡和变形的 ( 近似 ) 不变性的基础。
- 卷积单元的输出构成了网络的下采样层的输入。
- 下采样层的单元的响应对于对应的输入空间区域中的图片的微小平移相对不第三。
- 一个特征地图中的每个单元只从图像的一个小的子区域接收输入,且一个特征地图中的所有单元被限制为共享相同的权值。
- 整合不变性的方法
- 局部接收场
- 权值共享
- 软权值共享:权值相等的硬限制被解放思想一种形式的正则化,其中权值的分组倾向于取近似的值。
- 权值的分组以及每组权值的均值和分组内的取值范围都在学习过程中确定。
- 软权值共享:权值相等的硬限制被解放思想一种形式的正则化,其中权值的分组倾向于取近似的值。
- 下采样
- 解决了图像的关键性质 ( 距离较近的像素的相关性要远大于距离较远的像素的相关性 )
- 在卷积层,各个单元被组织在一系列平面中,每个平面被称为一个特征地图 ( feature map )。
- 卷积神经网络
- 将不变性整合到相关向量机的核函数中
- 将不变性整合到神经网络的构建过程中
- 复制训练模式
- 不变性的分类
5.5.4 切线传播
5.5.5 用变换后的数据训练
5.5.6 卷积神经网络
5.5.7 软权值共享
5.6 混合密度网络
混合密度网络 ( mixture density network )
- 起因
- 在许多简单的回归问题中,条件概率分布 $p ( \mathbf{t}\vert\mathbf{x} )$ 假定为高斯分布;
- 在许多逆问题中,条件概率分布可能是其他类型的分布,还可能是多峰的分布。
- 方法
- 为 $p ( \mathbf{t}\vert\mathbf{x} )$ 使用一个混合模型,模型的混合系数和每个分量的概率分布都是输入向量的一个比较灵活的函数,这就构成了混合密度网络。
5.7 Bayes 神经网络
5.7.1 后验参数分布
5.7.2 超参数最优化
5.7.3 用于分类的 Bayes 神经网络
- 在贝叶斯方法中,为了进行预测,需要对参数的概率分布进行积分或者求和。
- 在多层神经网络中,网络函数对于参数值的高度非线性使得精确的贝叶斯方法不再可行。
- 变分推断方法可以对后验概率的分解进行高斯近似 Ch 10
- 最完整的贝叶斯方法是基于拉普拉斯近似的方法。( Sec 5.7 )
- 拉普拉斯近似
- 后验参数分布
- 条件概率分布 $p ( \mathbf{t}\vert\mathbf{x} )$ 假定为高斯分布,使用拉普拉斯近似找到后验概率分布的高斯近似。
- 超参数最优化
- 使用拉普拉斯近似可以确定超参数的边缘似然函数,从而对超参数进行点估计。
- 后验参数分布
- 贝叶斯神经网络用于解决分类问题
- 二分类问题 ( 通过解决这个问题深入理解拉普拉斯近似在基于贝叶斯方法的神经网络回归模型中的应用 )
- 多分类问题
小结
如果需要深入了解神经网络,建议参考 [^Haykin,2011]。本书的重点只是引入 Bayes 观点的神经网络。