作为机器学习的一类,深度学习通常基于神经网络模型逐级表示越来越抽象的概念或模式。
这里从线性回归和softmax回归这两种单层神经网络入手。进一步从单层神经网络延伸到多层神经网络,并通过多层感知机引入深度学习模型。
线性分类
具体讨论之前首先说明回归问题与分类问题的差别。
- 回归问题:输出是连续值,如预测房价、气温等,使用线性回归;
- 分类问题:输出是离散值,如图像分类、垃圾邮件识别等,使用softmax回归。
线性回归
基本要素
以房屋价格预测为例解释线性回归的基本要素,假设价格只取决于两个因素,即面积和房龄。
-
模型
设房屋的⾯积为 x 1 x_{1} x1,房龄为 x 2 x_{2} x2,售出价格为 y y y。我们需要建⽴基于输⼊ x 1 x_{1} x1和 x 2 x_{2} x2来计算输出 y y y的表达式,也就是模型(model)。顾名思义,线性回归假设输出与各个输⼊之间是线性关系:
y ^ = x 1 w 1 + x 2 w 2 + b \hat{y}=x_{1} w_{1}+x_{2} w_{2}+b y^=x1w1+x2w2+b
其中 w 1 w_{1} w1和 w 2 w_{2} w2是权重(weight), b b b是偏差(bias),且均为标量。它们是线性回归模型的参数(parameter)。模型输出 y ^ \hat{y} y^是线性回归对真实价格 y y y的预测或估计。我们通常允许它们之间有⼀定误差。 -
模型训练
-
训练数据
这里的训练数据可以是多栋房屋的真实售出价格和它们对应的⾯积和房龄。在机器学习术语⾥,该数据集被称为训练集(training set),⼀栋房屋被称为⼀个样本(sample),其真实售出价格叫作标签(label),⽤来预测标签的两个因素叫作特征(feature)。特征⽤来表征样本的特点。
假设我们采集的样本数为n,线性回归模型的房屋价格预测表达式为
y ^ ( i ) = x 1 ( i ) w 1 + x 2 ( i ) w 2 + b \hat{y}^{(i)}=x_{1}^{(i)} w_{1}+x_{2}^{(i)} w_{2}+b y^(i)=x1(i)w1+x2(i)w2+b -
损失函数
也称为代价函数或者误差函数,用来衡量格预测值与真实值之间的误差。常常选择平方函数:
ℓ ( i ) ( w 1 , w 2 , b ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 \ell^{(i)}\left(w_{1}, w_{2}, b\right)=\frac{1}{2}\left(\hat{y}^{(i)}-y^{(i)}\right)^{2} ℓ(i)(w1,w2,b)=21(y^(i)−y(i))2
在模型训练中,我们希望找出⼀组模型参数来使训练样本平均损失最小:
w 1 ∗ , w 2 ∗ , b ∗ = argmin w 1 , w 2 , b ℓ ( w 1 , w 2 , b ) w_{1}^{*}, w_{2}^{*}, b^{*}=\underset{w_{1}, w_{2}, b}{\operatorname{argmin}} \ell\left(w_{1}, w_{2}, b\right) w1∗,w2∗,b∗=w1,w2,bargminℓ(w1,w2,b) -
优化算法
当模型和损失函数形式较为简单时,上⾯的误差最小化问题的解可以直接⽤公式表达出来。这类
解叫作解析解(analytical solution)。然而,⼤多数深度学习模型并没有解析解,只能通过优化算法有限次迭代模型参数来尽可能降低损失函数的值。这类解叫作数值解(numerical solution)。
在求数值解的优化算法中,小批量随机梯度下降在深度学习中被广泛使用。后续再作介绍。
-
-
模型预测
模型训练完成后,将模型参数在优化算法停⽌时的值分别记作 w ^ 1 \hat{w}_{1} w^1, w ^ 2 \hat{w}_{2} w^2, b ^ \hat{b} b^。这⾥得到的并不⼀定是最小化损失函数的最优解 w 1 ∗ , w 2 ∗ , b ∗ w_{1}^{*}, w_{2}^{*}, b^{*} w1∗,w2∗,b∗,而是对最优解的⼀个近似。
得到线性回归模型 x 1 w ^ 1 + x 2 w ^ 2 + b ^ x_{1} \hat{w}_{1}+x_{2} \hat{w}_{2}+\hat{b} x1w^1+x2w^2+b^,便可以用来估算训练数据集以外任意⼀栋已知⾯积和房龄的房屋价格了。这⾥的估算也叫作模型预测、模型推断或模型测试。
表示方法——神经网络图
神经网络图可以直观表现线性回归模型结构。隐去模型参数权重和偏差后如图所示: 由于输出层中的神经元和输入层中各个输入完全连接,这里可以称输出层为全连接层(fully-connected layer)或稠密层(dense layer)。
线性二分类
不同于线性回归,线性分类器透过特征的线性组合来做出分类决定。也就是说,样本通过直线(或超平面)可分。
线性分类与线性回归的差别如下
– | 输出意义 | 参数意义 |
---|---|---|
线性分类 | 属于某类的概率 | 回归具体值 |
线性回归 | 最佳分类直线 | 最佳拟合直线 |
二分类问题输出的可以是0或者1,也可以是0-1之间的数,代表属于某类的概率。此时需要用Sigmoid函数对值做一个变换。
y
=
1
1
+
e
−
z
y=\frac{1}{1+e^{-z}}
y=1+e−z1
其中
z
=
θ
1
x
1
+
θ
2
x
2
+
θ
0
z=\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{0}
z=θ1x1+θ2x2+θ0
多分类回归
- softmax回归模型
softmax回归跟线性回归一样将输⼊特征与权重做线性叠加。与线性回归的⼀个主要不同在于,softmax回归的输出值个数等于标签⾥的类别数。
softmax回归同线性回归⼀样,也是⼀个单层神经⽹络,输出层也是一个全连接层。 - softmax运算
softmax运算符可以直接将输出值变成值为正且和为1的概率分布:
y ^ 1 , y ^ 2 , y ^ 3 = s o f t m a x ( o 1 , o 2 , o 3 ) \hat{y}_{1}, \hat{y}_{2}, \hat{y}_{3} = softmax(o_{1}, o_{2}, o_{3}) y^1,y^2,y^3=softmax(o1,o2,o3)
多层感知机
进一步从单层神经网络延伸到多层神经网络。此处以多层感知机(multilayer perceptron,MLP)为例,介绍多层神经⽹络的概念。
神经元模型
- 神经元模型
- 作用函数
-
非对称型Sigmoid函数(Log Sigmoid)
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+e−x1
-
对称型Sigmoid函数(Tangent Sigmoid)
f ( x ) = 1 − e − x 1 + e − x f(x)=\frac{1-e^{-x}}{1+e^{-x}} f(x)=1+e−x1−e−x -
对称型跳跃函数
具有阶跃作用函数的神经元,称为阈值逻辑单元。
f ( x ) = { + 1 , x ≥ 0 − 1 , x < 0 f(x)= \begin{cases} +1, x\ge 0\\ -1, x< 0 \end{cases} f(x)={+1,x≥0−1,x<0
-
- Hebb规则
连接权值的调整量与输入和输出的乘积成正比:
△ w = α ⋅ x ⋅ y \bigtriangleup w = \alpha \cdot x\cdot y △w=α⋅x⋅y
感知机模型
感知机(Perceptron)是1957年,由Rosenblatt提出,是神经网络和支持向量机的基础。感知机用于解决线性分类问题。
如图所示,假设分类直线方程为
a
x
+
b
y
+
c
=
0
ax+by+c=0
ax+by+c=0,任意一点
(
x
0
,
y
0
)
(x_{0}, y_{0})
(x0,y0)到直线的距离为:
d
=
a
x
0
+
b
y
0
+
c
a
2
+
b
2
d=\frac{ax_{0}+by_{0}+c}{\sqrt{a^2+b^2} }
d=a2+b2ax0+by0+c
如果是高纬情况,分类面为超平面,则有
d
=
w
T
x
∥
w
∥
d=\frac{ \textbf{w}^T\textbf{x}}{\left \| \textbf{w} \right \| }
d=∥w∥wTx
其中
w
0
=
b
\textbf{w}_{0}=b
w0=b
多层感知机(multilayer perceptron,MLP)
本文参考《动手深度学习》