3.线性神经网络
3.1. 线性回归
回归:一类为一个或多个自变量与因变量之间关系建模的方法。
在自然科学和社会科学领域,回归经常用来表示输入和输出之间的关系。
3.1.1. 线性回归的基本元素
线性回归基本假设:
- 自变量和因变量之间为线性关系(因变量为自变量的加权和,通常允许包含观测值的一些噪声)
- 任何噪声都比较正常,如噪声遵循正态分布
3.1.1.1. 线性模型
- 权重决定了每个特征对预测值的影响
- 偏置是指当所有特征都取值为0时,预测值应该为多少(没有偏置会限制模型的表达能力)
- 给定训练数据特征X和对应的已知标签y,线性回归的目标是找到一组权重向量w和偏置b。当给定从X的同分布中取样的新样本特征时,找到的权重向量和偏置能够使得新样本预测标签的误差尽可能小。
- 加入一个噪声项来考虑观测误差带来的影响
3.1.1.2. 损失函数
- 损失函数能够量化目标的实际值与预测值之间的差距(模型拟合程度的度量)
- 回归问题中最常用的损失函数是平方误差函数
- 平方误差: l ( i ) ( w , b ) = ( y ^ ( i ) − y ( i ) ) 2 l^{(i)}(w,b)=(\hat{y}^{(i)}-y^{(i)})^2 l(i)(w,b)=(y^(i)−y(i))2,其中 y ^ ( i ) = ( w T x ( i ) + b ) \hat{y}^{(i)}=(w^Tx^{(i)}+b) y^(i)=(wTx(i)+b)
- 训练集n个样本上的损失均值: L ( w , b ) = 1 n ∑ i = 1 n l ( i ) ( w , b ) L(w,b)=\frac{1} {n}\sum_{i=1}^n l^{(i)}(w,b) L(w,b)=n1∑i=1nl(i)(w,b)
- 估计值 和观测值之间较大的差异将贡献更大的损失,最小化在所有训练样本上的总损失: w ∗ , b ∗ = a r g m i n w , b L ( w , b ) w^*,b^*=argmin_{w,b}L(w,b) w∗,b∗=argminw,bL(w,b)
3.1.1.3. 解析解
预测问题最小化:
∣
∣
y
−
X
w
∣
∣
2
||y-Xw||^2
∣∣y−Xw∣∣2
解析解:
w
∗
=
(
X
⊤
X
)
−
1
X
⊤
y
w^∗=(X^⊤X)^{-1}X^⊤y
w∗=(X⊤X)−1X⊤y
3.1.1.4. 小批量随机梯度下降
- 梯度下降的方法几乎可以优化所有深度学习模型,通过不断地在损失函数递减的方向上更新参数来降低误差
- 小批量随机梯度下降:每次需要计算更新的时候随机抽取一小批样本(因为梯度下降在每次更新前都要遍历整个数据集,在实际中运行很慢)
- 梯度更新过程:(1)初始化模型参数的值,如随机初始化;(2)从数据集中随机抽取小批量样本且在负梯度的方向上更新参数,并不断迭代这一步骤。
( w , b ) ← ( w , b ) − η ∣ B ∣ ∑ i ∈ B α w , b l ( i ) ( w , b ) (w,b) \leftarrow(w,b)-\frac{\eta} {|B|}\sum_{i\in B} \alpha_{w,b} l^{(i)}(w,b) (w,b)←(w,b)−∣B∣η∑i∈Bαw,bl(i)(w,b)
w ← w − η ∣ B ∣ ∑ i ∈ B ∂ w , b l ( i ) ( w , b ) = w − η ∣ B ∣ ∑ i ∈ B x ( i ) ( w T x ( i ) + b − y ( i ) ) w \leftarrow w-\frac{\eta} {|B|}\sum_{i\in B} \partial_{w,b} l^{(i)}(w,b) = w-\frac{\eta} {|B|}\sum_{i\in B}x^{(i)}(w^Tx^{(i)}+b-y^{(i)}) w←w−∣B∣η∑i∈B∂w,bl(i)(w,b)=w−∣B∣η∑i∈Bx(i)(wTx(i)+b−y(i))
b ← b − η ∣ B ∣ ∑ i ∈ B ∂ w , b l ( i ) ( w , b ) = b − η ∣ B ∣ ∑ i ∈ B ( w T x ( i ) + b − y ( i ) ) b \leftarrow b-\frac{\eta} {|B|}\sum_{i\in B} \partial_{w,b} l^{(i)}(w,b) = b-\frac{\eta} {|B|}\sum_{i\in B}(w^Tx^{(i)}+b-y^{(i)}) b←b−∣B∣η∑i∈B∂w,bl(i)(w,b)=b−∣B∣η∑i∈B(wTx(i)+b−y(i))
其中批大小 ∣ B ∣ |B| ∣B∣,学习率 η \eta η,这些可以调整但不在训练过程中更新的参数称为超参数 - 算法会使得损失向最小值缓慢收敛,但却不能在有限的步数内非常精确地达到最小值。
- 泛化:找到一组参数使得模型在未见的数据上具有较低的损失
3.1.1.5. 用学习到的模型进行预测
预测或推断:给定特征估计目标
在统计学中,推断更多地表示基于数据集估计参数
3.1.2. 矢量化加速
矢量化代码通常会带来数量级的加速
3.1.3. 正态分布与平方损失
-
正太分布/高斯分布,概率密度函数:
p ( x ) = 1 2 π σ 2 exp ( ( x − μ ) 2 2 σ 2 ) p(x)=\frac{1} {\sqrt{2\pi\sigma^2}}\exp(\frac{(x-\mu)^2}{2\sigma^2}) p(x)=2πσ21exp(2σ2(x−μ)2) -
改变均值会产生沿 x 轴的偏移,增加方差将会分散分布、降低其峰值
-
均方误差损失函数(简称均方损失)可以用于线性回归的一个原因是:我们假设了观测中包含噪声,其中噪声服从正态分布。噪声正态分布如下式:
y = w T x + b + ϵ y = w^Tx +b + \epsilon y=wTx+b+ϵ where ϵ ∈ N ( 0 , σ 2 ) \epsilon \in N(0,\sigma^2) ϵ∈N(0,σ2) -
根据最大似然估计法,参数w和b的最优值使整个数据集的可能性最大的值:
P ( y ∣ X ) = ∏ i = 1 n p ( y ( i ) ∣ x ( i ) ) P(y|X)=\prod_{i=1}^n p(y^{(i)}|x^{(i)}) P(y∣X)=∏i=1np(y(i)∣x(i)) -
最大似然估计乘积计算困难,简化为最大化似然对数:
− l o g P ( y ∣ X ) = ∑ i = 1 n 1 2 l o g ( 2 π σ 2 ) + 1 2 σ 2 ( y ( i ) − w T x ( i ) − b ) 2 -logP(y|X)=\sum_{i=1}^n\frac{1}{2}log(2\pi\sigma^2)+\frac{1}{2\sigma^2}(y^{(i)}-w^Tx^{(i)}-b)^2 −logP(y∣X)=∑i=1n21log(2πσ2)+2σ21(y(i)−wTx(i)−b)2
由公式可知,在高斯噪声的假设下,最小化均方误差等价于对线性模型的最大似然估计
3.1.4. 从线性回归到深度网络
3.1.4.1. 神经网络图
- 由于模型重点在发生计算的地方,所以通常在计算层数时不考虑输入层
- 可以将线性回归模型视为仅由单个人工神经元组成的神经网络,或称为单层神经网络
- 全连接层/稠密层:每个输入都与每个输出相连
3.1.4.2. 生物学
- 许多这样的单元可以通过正确连接和正确的学习算法拼凑在一起,从而产生的行为会比单独一个神经元所产生的行为更有趣、更复杂
- 虽然飞机可能受到鸟类的启发。但几个世纪以来,鸟类学并不是航空创新的主要驱动力。同样地,如今在深度学习中的灵感同样或更多地来自数学、统计学和计算机科学
3.1.5. 小结
- 机器学习模型中的关键要素是训练数据,损失函数,优化算法,还有模型本身。
- 矢量化使数学表达上更简洁,同时运行的更快。
- 最小化目标函数和执行最大似然估计等价。
- 线性回归模型也是神经网络。