深度学习之线性回归——2020.2.13

    线性回归输出是一个连续值,因此适用于回归问题。回归问题在实际中很常见,如预测房屋价格、气温、销售额等连续值的问题。与回归问题不同,分类问题中模型的最终输出是一个离散值。我们所说的图像分类、垃圾邮件识别、疾病检测等输出为离散值的问题都属于分类问题的范畴。softmax回归则适用于分类问题。
    由于线性回归和softmax回归都是单层神经网络,它们涉及的概念和技术同样适用于大多数的深度学习模型。本文将首先以线性回归为例,介绍大多数深度学习模型的基本要素和表示方法。

一、线性回归的基本要素

    例如,一个简单的房屋价格预测作为例子来解释线性回归的基本要素。这个应用的目标是预测一栋房子的售出价格(元)。价格取决于很多因素,如房屋状况、地段、市场行情等。为了简单起见,这里假设价格只取决于房屋状况的两个因素,即面积(平方米)和房龄(年)。接下来是价格与这两个因素的具体关系。

(一)模型

    设房屋的面积为\(x1\),房龄为\(x2\),售出价格为\(y\)。首先建立基于输入\(x1\)\(x2\)来计算输出\(y\)的表达式,也就是模型(model)。顾名思义,线性回归假设输出与各个输入之间是线性关系:
\[ \hat y = x_1W_1 + x_2W_2+b_1 \]
    其中\(w1\)\(w2\)是权重(weight),\(b\)是偏差(bias),且均为标量。它们是线性回归模型的参数(parameter)。模型输出\(\hat y\)是线性回归对真实价格y的预测或估计。通常可以允许它们之间有一定误差。

(二)模型训练

3. 优化算法

    当模型和损失函数形式较为简单时,上面的误差最小化问题的解可以直接用公式表达出来。这类解叫作解析解(analytical solution)。本次实验使用的线性回归和平方误差刚好属于这个范畴。然而,大多数深度学习模型并没有解析解,只能通过优化算法有限次迭代模型参数来尽可能降低损失函数的值。这类解叫作数值解(numerical solution)。

    在求数值解的优化算法中,小批量随机梯度下降(mini-batch stochastic gradient descent)在深度学习中被广泛使用。它的算法很简单:先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量(mini-batch)\(B\),然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数的乘积作为模型参数在本次迭代的减小量。

    在训练本节讨论的线性回归模型的过程中,模型的每个参数将作如下迭代:

    在上式中,\(|B|\)代表每个小批量中的样本个数(批量大小,batch size),\(η\)称作学习率(learning rate)并取正数。需要强调的是,这里的批量大小和学习率的值是人为设定的,并不是通过模型训练学出的,因此叫作超参数(hyperparameter)。我们通常所说的“调参”指的正是调节超参数,例如通过反复试错来找到超参数合适的值。在少数情况下,超参数也可以通过模型训练学出。本书对此类情况不做讨论。

4. 模型预测

    模型训练完成后,我们将模型参数\(w1,w2,b\)在优化算法停止时的值分别记作\(\hat w_1,\hat w_2,\hat b\)。注意,这里我们得到的并不一定是最小化损失函数的最优解w∗1,w∗2,b∗,而是对最优解的一个近似。然后,我们就可以使用学出的线性回归模型\(x_1 \hat w_1+x_2 \hat w_2+ \hat b\)来估算训练数据集以外任意一栋面积(平方米)为x1、房龄(年)为\(x2\)的房屋的价格了。这里的估算也叫作模型预测、模型推断或模型测试。

(三)线性回归的表示方法

    阐述了线性回归的模型表达式、训练和预测。下面是线性回归与神经网络的联系,以及线性回归的矢量计算表达式。

1. 神经网络图


    在深度学习中,可以使用神经网络图直观地表现模型结构。为了更清晰地展示线性回归作为神经网络的结构,图中使用神经网络图表示本节中介绍的线性回归模型。神经网络图隐去了模型参数权重和偏差。

猜你喜欢

转载自www.cnblogs.com/somedayLi/p/12305629.html