【深度学习】线性回归

本文介绍了线性模型的基本概念,包括数据集的构成、特征与标签,以及如何使用线性代数表示方法。重点讲解了平方误差作为损失函数的应用,以及随机梯度下降算法在优化过程中的作用,特别是小批量随机梯度下降策略。最后提到了泛化问题的重要性。
摘要由CSDN通过智能技术生成

基本元素

数据集称为训练数据集(training data set) 或训练集(training set)。
每行数据(比如一次房屋交易相对应的数据)称为样本(sample),也可以称为数据点(data point)或数据样本(data instance)。
我们把试图预测的目标(比如预测房屋价格)称为标签(label)或目标(target)。
预测所依据的自变量(面积和房龄)称为特征(feature)或协变量(covariate)。

通常,我们使用 n n n 来表示数据集中的样本数。对索引为 i i i 的样本,其输入表示为 x ( i ) = [ x 1 ( i ) , x 2 ( i ) ] T \mathbf{x}^{(i)}=[\mathbf{x}_1^{(i)},\mathbf{x}_2^{(i)}]^T x(i)=[x1(i),x2(i)]T,其对应的标签是 y ( i ) y^{(i)} y(i)

线性模型

在机器学习领域,我们通常使用的是高维数据集,建模时采用线性代数表示法会比较方便。当我们的输入包含 d d d 个特征时,我们将预测结果 y ^ \hat{y} y^通常使用“尖角”符号表示 y y y 的估计值)表示为:
y ^ = w 1 x 1 + . . . + w d x d + b \hat{y}=w_1x_1+...+w_dx_d+b y^=w1x1+...+wdxd+b
将所有特征放到向量 x ∈ R \mathbf{x}\in\mathbb{R} xR 中,并将所有权重放到向量 w ∈ R d \mathbf{w}\in\mathbb{R^d} wRd 中,我们可以用点积形式来简洁地表达模型:
y ^ = w T x + b \hat{y}=\mathbf{w}^T\mathbf{x}+b y^=wTx+b
对于特征集合 X \mathbf{X} X,预测值 y ^ ∈ R n \hat{y}\in\mathbb{R^n} y^Rn 可以表示为:
y ^ = X T w + b \hat{y}=\mathbf{X}^T\mathbf{w}+b y^=XTw+b

损失函数

当样本 i i i 的预测值为 y ^ ( i ) \hat{y}^{(i)} y^(i) ,其相应的真实标签为 y ( i ) y^{(i)} y(i) 时,平方误差可以定义为以下公式:
l ( i ) = ( w , b ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 l^{(i)}=(\mathbf{w},b)=\frac{1}{2}(\hat{y}^{(i)}-y^{(i)})^2 l(i)=(w,b)=21(y^(i)y(i))2
为了度量模型在整个数据集上的质量,我们需计算在训练集 n n n 个样本上的损失均值(也等价于求和):
L ( w , b ) = 1 n ∑ i = 1 n l ( i ) ( w , b ) = 1 n ∑ i = 1 n 1 2 ( w T x ( i ) + b − y ( 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}(\mathbf{w}^T\mathbf{x}^{(i)}+b-y^{(i)})^2 L(w,b)=n1i=1nl(i)(w,b)=n1i=1n21(wTx(i)+by(i))2
在训练模型时,我们希望寻找一组参数 ( w ∗ , b ∗ ) (\mathbf{w}^*,b^*) (w,b),这组参数能最小化在所有训练样本上的总损失。如下式:
w ∗ , b ∗ = arg ⁡ min ⁡ w , b L ( w , b ) \mathbf{w}^*,b^*=\mathop{\arg\min}\limits_{\mathbf{w},b} L(\mathbf{w},b) w,b=w,bargminL(w,b)

解析解

线性回归的解可以用一个公式简单地表达出来,显示解:
w ∗ = ( X T X ) − 1 X T y \mathbf{w}^*=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^Ty w=(XTX)1XTy

随机梯度下降

我们用到一种名为梯度下降(gradient descent)的方法,这种方法几乎可以优化所有深度学习模型。它通过不断地在损失函数递减的方向上更新参数来降低误差。
梯度下降最简单的用法是计算损失函数(数据集中所有样本的损失均值) 关于模型参数的导数(在这里也可以称为梯度)。但实际中的执行可能会非常慢:因为在每一次更新参数之前,我们必须遍历整个数据集。因此,我们通常会在每次需要计算更新的时候随机抽取一小批样本,这种变体叫做小批量随机梯度下降(minibatch stochastic gradient descent)。

在每次迭代中,我们首先随机抽样一个小批量batch size B B B,它是由固定数量的训练样本组成的。然后,我们计算小批量的平均损失关于模型参数的导数(也可以称为梯度)。最后,我们将梯度乘以一个预先确定的正数学习率 η \eta η,并从当前参数的值中减掉。
我们用下面的数学公式来表示这一更新过程( ∂ \partial 表示偏导数):
( w , b ) ← ( w , b ) − η ∣ B ∣ ∑ i ∈ B ∂ ( w , b ) l ( i ) ( w , b ) (\mathbf{w},b)\leftarrow(\mathbf{w},b)-\frac{\eta}{|B|}\sum_{i\in B}\partial_{(\mathbf{w},b)}l^{(i)}(\mathbf{w},b) (w,b)(w,b)BηiB(w,b)l(i)(w,b)
事实上,更难做到的是找到一组参数,这组参数能够在我们从未见过的数据上实现较低的损失,这一挑战被称为泛化(generalization)。

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值