2.7 神经网络
我们以讨论基于线性基础模型及其变体的监督学习模型为开始,包括内核机和支持向量机。 所有这些模型的共同点是,基本函数或特征映射是先验 a priori 选择的,不依赖于训练数据集 。 在2.5节中,我们介绍了决策树,这是第一个例子,在训练时根据 数据集 选择 基函数 。 具体而言,决策树基函数 ϕ j ( x ) = 1 x ∈ R j ϕ_j(x) = 1_{x∈R_j} ϕj(x)=1x∈Rj 依赖于从数据中学习到的小区域 { R j } \{\mathcal{R}_j\} {Rj},例如使用递归分裂算法。
在这一节中,我们将介绍另一类 从数据中学习基函数 的模型: 神经网络 。 随着我们拥有的数据量和计算能力的增加,基于神经网络的机器学习模型,尤其是深度学习,已经变得越来越受欢迎。 “神经网络”一词源于这样一个事实,即这些模型最初是作为一种尝试,以数学精确的方式,模拟人类大脑中的神经相互作用而开发的。 然而,人们很快发现,这些模型过于简化,缺乏理解人类生理所需的复杂性。 然而,它们形成了一类强大的机器学习模型,这些模型具有独特的特性,值得研究。 下面,我们从浅神经网络的基础开始。
2.7.1 浅神经网络
为简单起见,让我们考虑一个d维的回归问题,使oracle函数为
f
∗
:
R
d
→
R
f^∗: \mathbb{R} _d→\mathbb{R}
f∗:Rd→R。浅神经网络对应以下假设空间:
其中,𝑤𝑗是隐藏层的权重,𝑏𝑗是隐藏层的biases,𝑣𝑗是输出层的权重,𝜎:ℝ→ℝ为激活函数。
现在,让我们介绍一些神经网络研究中常用的术语。
- 函数 σ : R → R σ: \mathbb{R}→\mathbb{R} σ:R→R 称为 激活函数 activation function。受欢迎的选择包括:
但这个清单当然不是详尽无遗的。
-
接下来,参数 w j w_j wj 通常被称为权值,而 b j b_j bj 则被称为偏差。 回想一下,在线性模型中,我们倾向于通过在输入状态 x x x 上加上“1”来组合它们。然而,这里我们将明确地写出偏差项,以符合流行的符号。
-
我们将 v j v_j vj 称为系数,但在更深层次的模型中,它们也可以被视为权重。
-
最后,数字M是隐藏层的维数,这控制了模型的复杂性。
-
通常,我们将 h j = w j T x + b j h_j = w_j^T x + b_j hj=wjTx+bj 作为第 j j j 个隐藏节点的值。
-
因此,M为神经网络中隐藏节点的个数。
图2.8给出了一个用于预测的浅神经网络模型。
-
Linear vs Nonlinear Approximation
Linear Approximation Basis independent of data
Nonlinear Approximation Basis depends on data
现在让我们讨论浅神经网络的近似性质。
我们首先再次强调(2.104)和线性基模型之间的差异。 对于(2.104),我们可以在看到数据后选择
w
j
,
b
j
w_j,b_j
wj,bj 或oracle函数
f
∗
f^∗
f∗。 另一方面,(2.104)的线性基等价为:
其中,固定的组合 w j ∈ R d , b j ∈ R w_j∈\mathbb{R}^d, bj∈R wj∈Rd,bj∈R, j = 1 , … , M j = 1,… ,M j=1,…,M
这是线性的,因为对于任意 f 1 , f 2 ∈ H l i n e a r , λ 1 , λ 2 ∈ R , λ 1 f 1 + λ 2 f 2 ∈ H l i n e a r f_1, f_2∈H_{linear}, λ_1, λ_2∈\mathbb{R}, λ_1 f_1 + λ_2 f_2∈H_{linear} f1,f2∈Hlinear,λ1,λ2∈R,λ1f1+λ2f2∈Hlinear。 但对 H n n , M H_{nn,M} Hnn,M 不成立,因为这需要2M项的求和。
那么,线性和非线性假设空间的区别是什么?
我们在例2.23中给出了一个简单的说明。 一般来说,非线性假设空间是函数的一种更精确的表示,但我们付出的代价是得到一个通常更困难的优化问题。
-
Example 2.23 : Cosine Series Approximation
让我们考虑一个一维问题。假设已知一个oracle函数 f ∗ ( x ) = c o s ( x / 2 ) f^∗(x) = cos(x/2) f∗(x)=cos(x/2) ,我们尝试用cos级数来近似它。考虑以下两个选择:
很明显,在非线性情况下,我们可以简单地让 M = 0 M = 0 M=0,通过选取 a 0 = 1 , w 0 = 1 / 2 a_0 = 1, w_0 = 1/2 a0=1,w0=1/2 得到一个完美的近似。然而,在线性情况下,我们不会有任何有限M的完美逼近。事实上,最好的(M +1)项线性逼近是余弦级数:
-
Universal Approximation Theorem
为了进一步证明它的逼近能力,我们现在讨论神经网络逼近理论的一个基本结果。 这就是所谓的普遍近似定理universal approximation theorem。 换句话说,只要有 足够多 的隐藏节点,神经网络就能以任意精度逼近任何函数。 让我们在下面给出这个结果的准确表述。
任意宽的神经网络假设空间的近似误差为零![在这里插入图片描述](https://img-blog.csdnimg.cn/30944f0336084363bc3a8330b0222c0a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcmVpbmRleHg=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center =600x)
考虑一个特殊的例子:
Curse of Dimensionality 级数灾难 :虽然这个想法可以扩展到高维,但它引入了一个问题。 [ 0 , 1 ] 𝑑 [0,1]^𝑑 [0,1]d 中有多少线性大小为𝜖的patches?
•Font metrics not found for font: . 块
•Font metrics not found for font: . 块
•一般情况 Font metrics not found for font: . 碎片
即使以某种方式,我们只需要固定数量的神经元来近似每一块,我们仍然需要 Font metrics not found for font: . 的神经元。这被称为困扰高维问题的维度诅咒。
-
Theorem 2.24: Universal Approximation Theorem for Neural Networks
令 K ⊂ R d K \subset \mathbb{R}^d K⊂Rd 是封闭有界的,且 f ∗ : K → R f^∗:K→\mathbb{R} f∗:K→R 是连续的。假设激活函数 σ σ σ 为sigmoidal,即 σ σ σ 是连续的, l i m z → ∞ σ ( z ) = 1 , l i m z → − ∞ σ ( z ) = 0 lim_{z→∞}σ(z) = 1, lim_{z→−∞}σ(z) = 0 limz→∞σ(z)=1,limz→−∞σ(z)=0。
则对于每一个 ε ε ε,都存在 f ∈ ∪ M ≥ 1 H n n , M f∈∪_{M≥1}H_{nn,M} f∈∪M≥1Hnn,M使:
一般定理2.24的证明从应用程序的Hahn-Banach定理和Riesz-Markov表示定理,连同一个论点基于非简并的属性σ,虽然也有很多其他证明使用不同的技术(见延伸阅读本节结束时)。 因为理解证明需要一些函数分析的知识,而这些知识在这些注释中没有涉及,所以我们不提供细节。
2.7.2 Optimizing Neural Networks
普遍逼近定理(定理2.24)保证可以建立一个神经网络来逼近在紧凑域上的任意连续函数 f ∗ f^∗ f∗ 。然而,它并没有告诉我们如何构建它。换句话说,当近似问题(c.f.第2.1节和图2.1)解决后,优化问题依然存在。在本节中,我们将讨论用于优化机器学习模型的 梯度下降法 gradient descent,包括但不限于神经网络。
正如以前许多案例所证明的那样,在实践中,经验风险最小化问题可以写成在某些可训练参数下的优化问题。换句话说,我们假设假设空间允许参数化,因此
H
=
f
:
f
(
x
)
=
f
θ
(
x
)
,
θ
∈
Θ
H = {f: f (x) = f_θ (x),θ∈Θ}
H=f:f(x)=fθ(x),θ∈Θ。
Θ
Θ
Θ 是允许的可训练参数集。例如,对于浅神经网络(2.104),
θ
=
(
v
,
w
,
b
)
∈
Θ
=
R
(
2
+
d
)
M
θ = (v,w,b)∈Θ = \mathbb{R}^{(2 + d) M}
θ=(v,w,b)∈Θ=R(2+d)M。在大多数应用中,我们可以让
Θ
=
R
p
Θ = \mathbb{R}^ p
Θ=Rp 是一个欧几里德空间,但当然也存在重要的例外(例如,量化网络)。因此,经验风险最小化可以写成
其中, L L L 为损失函数。
one important shorthand:
然后,经验风险最小化问题的目标是求解 m i n θ ∈ R p Φ ( θ ) min_{θ∈R^p}Φ(θ) minθ∈RpΦ(θ)。
-
Gradient Descent
除了简单的情况(例如,最小二乘),极小化Φ(θ)不允许显式解,我们经常求助于可在计算机上实现的迭代逼近方法。 现在我们介绍其中最简单的一种,梯度下降(GD)算法。
注意,梯度向量∇Φ(θ)总是指向由z = Φ(θ)定义的表面上最陡的上升方向,因此,为了减小Φ(θ),我们应该朝着相反的方向,即由−∇Φ(θ)给出的最陡的下降方向(图2.9)。 我们每一步要走多久? 这是由一个叫做学习速率或步长的参数控制的,η > 0。 为了保证算法的稳定性,通常取较小的值。 算法在3中进行了总结,并在图2.9中进行了说明。
手写笔记