深度学习学习笔记(2)线性回归

线性回归

为了度量模型拟合程度,我们使用损失函数(loss function),回归问题中最常用的损失函数是平方误差函数:

L(w,b)=1ni=1nl(i)(w,b)=1ni=1n12(wx(i)+by(i))2.L(\mathbf{w}, b) =\frac{1}{n}\sum_{i=1}^n l^{(i)}(\mathbf{w}, b) =\frac{1}{n} \sum_{i=1}^n \frac{1}{2}\left(\mathbf{w}^\top \mathbf{x}^{(i)} + b - y^{(i)}\right)^2.

线性回归问题有解析解,然而现实世界里的许多复杂问题不可能有解析解。

随机梯度下降是不断地在损失函数递减的方向上更新参数来降低误差。

我们通常会在每次需要计算更新的时候,随机抽取一小批样本,计算损失函数关于模型参数的导数(在这里也可以称为梯度),这叫做小批量随机梯度下降

以线性回归为例,我们用数学公式表示这个过程:

(w,b)(w,b)ηBiB(w,b)l(i)(w,b).(\mathbf{w},b) \leftarrow (\mathbf{w},b) - \frac{\eta}{|\mathcal{B}|} \sum_{i \in \mathcal{B}} \partial_{(\mathbf{w},b)} l^{(i)}(\mathbf{w},b).

B|\mathcal{B}| 表示每个小批量中的样本数,η\eta 则为学习率 。这两个值通常是手动预先指定而不是通过训练而得到,这样的参数叫做超参数调参就是调整超参数的过程。

正态分布/高斯分布 和线性回归之间的关系很密切。

p(x)=12πσ2exp(12σ2(xμ)2)p(x) = \frac{1}{\sqrt{2 \pi \sigma^2}} \exp\left(-\frac{1}{2 \sigma^2} (x - \mu)^2\right)

其中 μ\mu 为均值,σ2\sigma^2 为方差。

softmax 回归

回归可以解决预测的问题,但有时候我们也想解决预测分类的问题。

{,,}\{狗,猫,鸡\} 的分类显然不适合映射到 {1,2,3}\{1,2,3\} 的标签,因为它们之间的关系并没有自然顺序,这种标签没有意义。

正确的方案是采用 独热编码(one-hot encoding)。 独热编码是一个向量,它的分量和类别一样多。比如,{,,}\{狗,猫,鸡\} 分别对应 {(1,0,0),(0,1,0),(0,0,1)}\{(1, 0, 0), (0, 1, 0), (0, 0, 1)\}

假设每次输入是一个 2×22 \times 2 的灰度图像。 我们可以用一个标量表示每个像素值,每个图像对应四个特征 x1,x2,x3,x4x_1,x_2,x_3,x_4

\begin{split}\begin{aligned} o_1 &= x_1 w_{11} + x_2 w_{12} + x_3 w_{13} + x_4 w_{14} + b_1,\\ o_2 &= x_1 w_{21} + x_2 w_{22} + x_3 w_{23} + x_4 w_{24} + b_2,\\ o_3 &= x_1 w_{31} + x_2 w_{32} + x_3 w_{33} + x_4 w_{34} + b_3. \end{aligned}\end{split}

用线性代数语言依然表示为 o=Wx+b\mathbf{o} = \mathbf{W} \mathbf{x} + \mathbf{b} 。其中,权重 W\mathbf{W} 即为一个 3×43 \times 4 的矩阵。

我们希望模型的输出 yj^\hat{y_j} 可以被视为属于类 jj 的概率,然而原始输出 oo 的和不一定为 11,也有可能出现负数。

于是我们使用 softmax 函数:

y^=softmax(o)其中y^j=exp(oj)kexp(ok)\hat{\mathbf{y}} = \mathrm{softmax}(\mathbf{o})\quad 其中 \quad \hat{y}_j = \frac{\exp(o_j)}{\sum_k \exp(o_k)}

softmax 函数能够将未规范化的预测变换为非负数并且总和为1,同时让模型保持可导的性质。

对离散的标签计算误差,通常使用交叉熵

H(y(i),y^(i))=j=1qyj(i)logy^j(i),H\left(\boldsymbol y^{(i)}, \boldsymbol {\hat y}^{(i)}\right ) = -\sum_{j=1}^q y_j^{(i)} \log \hat y_j^{(i)},

其中对于样本 iiy(i)Rq\boldsymbol y^{(i)} \in \mathbb{R}^{q}yy(i)(i)=0\boldsymbol y^{(i)}_{y^{(i)}}=0y(i)\boldsymbol y^{(i)} 的其他分量为 11 ,其中 y(i)y^{(i)} 是样本 ii 所属类别的离散数值。

log\log 并取负可以使模型的判断完全正确时 loss 为 00 ,完全错误时 loss 为 \infty

于是假设训练数据集的样本数为 nn ,损失函数即定义为:

(Θ)=1ni=1nH(y(i),y^(i))\ell(\boldsymbol{\Theta}) = \frac{1}{n} \sum_{i=1}^n H\left(\boldsymbol y^{(i)}, \boldsymbol {\hat y}^{(i)}\right )

对于 softmax 回归模型,我们可以用准确率(accuracy)来评价模型的表现。它等于正确预测数量与总预测数量之比。