机器学习线性回归

作者: 希望每天涨粉

  线性回归理论部分《机器学习——线性回归》

1 线性回归

  线性回归输出是一个连续值,因此适用于回归问题。回归问题在实际中很常见,如预测房屋价格、气温、销售额等连续值的问题。与回归问题不同,分类问题中模型的最终输出是一个离散值。们所说的图像分类、垃圾邮件识别、疾病检测等输出为离散值的问题都属于分类问题的范畴。softmax回归则适用于分类问题。

  由于线性回归和softmax回归都是单层神经网络,它们涉及的概念和技术同样适用于大多数的深度学习模型。们首先以线性回归为例,介绍大多数深度学习模型的基本要素和表示方法。

2 线性回归的基本要素

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

2.1 模型

  设房屋的面积为 $x_1$,房龄为 $x_2$,售出价格为 $y$。们需要建立基于输入 $x_1$ 和 $x_2$ 来计算输出 $y$ 的表达式,也就是模型(model)。顾名思义,线性回归假设输出与各个输入之间是线性关系:

    $\hat=x{1} w{1}+x{2} w{2}+b $

  其中 $w{1}$ 和 $w{2}$ 是权重(weight ),$b$ 是偏差(bias),且均为标量。它们是线性回归模型的参数(parameter)。模型输出 $ \hat{y}$ 是线性回归对真实价格 $y $ 的预测或估计。们通常允许它们之间有一定误差。

2.2 模型训练

  接下来们需要通过数据来寻找特定的模型参数值,使模型在数据上的误差尽可能小。这个过程叫作模型训练(model training)。下面们介绍模型训练所涉及的3个要素。

2.2.1 训练数据

  们通常收集一系列的真实数据,例如多栋房屋的真实售出价格和它们对应的面积和房龄。们希望在这个数据上面寻找模型参数来使模型的预测价格与真实价格的误差最小。在机器学习术语里,该数据集被称为训练数据集(training data set)或训练集(training set),一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label),用来预测标签的两个因素叫作特征(feature)。特征用来表征样本的特点。

  假设们采集的样本数为 $n$ , 索引为 $i$ 的样本的特征为 $x{1}^{(i)}$ 和 $x{2}^{(i)}$ , 标签为 $y^{(i)}$ 。 对于索引为 $i$ 的房屋,线性回归模型的房屋价格预测表达式为

    $\hat^{(i)}=x{1}^{(i)} w{1}+x{2}^{(i)} w{2}+b $

2.2.2 损失函数

  在模型训练中,们需要衡量价格预测值与真实值之间的误差。通常们会选取一个非负数作为误差,且数值越小表示误差越小。一个常用的选择是平方函数。它在评估索引为 $i$ 的样本误差的表达式为
    $\ell^{(i)}\left(w{1}, w{2}, b\right)=\frac{1}{2}\left(\hat{y}^{(i)}-y^{(i)}\right)^{2}$
  其中常数 $1/2$ 使对平方项求导后的常数系数为 $1$,这样在形式上稍微简单一些。显然,误差越小表示预测价格与真实价格越相近,且当二者相等时误差为 $0$。给定训练数据集,这个误差只与模型参数相关,因此们将它记为以模型参数为参数的函数。在机器学习里,将衡量误差的函数称为损失函数(loss function)。这里使用的平方误差函数也称为平方损失(square loss)。
  通常,们用训练数据集中所有样本误差的平均来衡量模型预测的质量,即(代价函数)
    $\ell\left(w{1}, w{2}, b\right)=\frac{1}{n} \sum \limits {i=1}^{n} \ell^{(i)}\left(w{1}, w{2}, b\right)=\frac{1}{n} \sum \limits{i=1}^{n} \frac{1}{2}\left(x{1}^{(i)} w{1}+x{2}^{(i)} w{2}+b-y^{(i)}\right)^{2}$
  在模型训练中,们希望找出一组模型参数,记为 $w^{*}, w{2}^{*}, b^{*}$ ,来使训练样本平均损失最小:
    $w{1}^{*}, w{2}^{*}, b^{*}=\underset{w{1}, w{2}, b}{\operatorname{arg\ \ min}}\ \ \ell\left(w{1}, w{2}, b\right)$

2.2.3 优化算法

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

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

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

    $\begin{array}{l} w{1} \leftarrow w{1}-\frac{\eta}{\|\mathcal{B}\|} \sum \limits{i \in \mathcal{B}} \frac{\partial \ell^{(i)}\left(w{1}, w{2}, b\right)}{\partial w{1}}=w{1}-\frac{\eta}{\|\mathcal{B}\|} \sum \limits{i \in \mathcal{B}} x{1}^{(i)}\left(x{1}^{(i)} w{1}+x{2}^{(i)} w{2}+b-y^{(i)}\right) \\ w{2} \leftarrow w{2}-\frac{\eta}{\|\mathcal{B}\|} \sum \limits{i \in \mathcal{B}} \frac{\partial \ell^{(i)}\left(w{1}, w{2}, b\right)}{\partial w{2}}=w{2}-\frac{\eta}{\|\mathcal{B}\|} \sum \limits{i \in \mathcal{B}} x{2}^{(i)}\left(x{1}^{(i)} w{1}+x{2}^{(i)} w{2}+b-y^{(i)}\right) \\ b \leftarrow b-\frac{\eta}{\|\mathcal{B}\|} \sum \limits{i \in \mathcal{B}} \frac{\partial \ell^{(i)}\left(w{1}, w{2}, b\right)}{\partial b}=b-\frac{\eta}{\|\mathcal{B}\|} \sum \limits{i \in \mathcal{B}}\left(x {1}^{(i)} w{1}+x{2}^{(i)} w{2}+b-y^{(i)}\right) \end{array}$

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

2.3 模型预测

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

3 线性回归的表示方法

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

3.1 神经网络图

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

    

  在图3.1所示的神经网络中, 输入分别为 $x{1}$ 和 $x{2}$ , 因此输入层的输入个数为 $2$。输入个数也叫特征数或特征向量维 度。图 3.1 中网络的输出为 $O$ , 输出层的输出个数为 $1$ 。需要注意的是,们直接将图3.1中神经网络的输出 $ o$ 作为线 性回归的输出,即 $\hat{y}=o $ 。由于输入层并不涉及计算, 按照惯例,图3.1所示的神经网络的层数为 $1$ 。所以,线性 回归是一个单层神经网络。输出层中负责计算 $o$ 的单元又叫神经元。在线性回归中,$o$ 的计算依赖于 $x{1} $ 和 $x{2} $ 。也 就是说,输出层中的神经元和输入层中各个输入完全连接。因此,这里的输出层又叫全连接层(fully-connected layer)或稠密层(dense layer)。

4 线性回归例子

  让们再次回到本节的房价预测问题。如果们对训练数据集里的3个房屋样本(索引分别为1、2和3)逐一预测价格,将得到
    $\begin{split}\begin{aligned} \hat{y}^{(1)} \&= x_1^{(1)} w_1 + x_2^{(1)} w_2 + b,\\ \hat{y}^{(2)} \&= x_1^{(2)} w_1 + x_2^{(2)} w_2 + b,\\ \hat{y}^{(3)} \&= x_1^{(3)} w_1 + x_2^{(3)} w_2 + b. \end{aligned}\end{split}$
  现在,们将上面3个等式转化成矢量计算。设
    $\begin{split}\boldsymbol{\hat{y}} = \begin{bmatrix} \hat{y}^{(1)} \\ \hat{y}^{(2)} \\ \hat{y}^{(3)} \end{bmatrix},\quad \boldsymbol{X} = \begin{bmatrix} x_1^{(1)} \& x_2^{(1)} \\ x_1^{(2)} \& x_2^{(2)} \\ x_1^{(3)} \& x_2^{(3)} \end{bmatrix},\quad \boldsymbol{w} = \begin{bmatrix} w_1 \\ w_2 \end{bmatrix}.\end{split}$
  对3个房屋样本预测价格的矢量计算表达式为 $\boldsymbol{\hat{y}} = \boldsymbol{X} \boldsymbol{w} + b,$,其中的加法运算使用了广播机制。
  广义上讲,当数据样本数为 $n$ ,特征数为 $d$ 时,线性回归的矢量计算表达式为
    $\boldsymbol} = \boldsymbol{X} \boldsymbol{w} + b,$
  其中模型输出 $\boldsymbol{\hat{y}} \in \mathbb{R}^{n \times 1}$, 批量数据样本特征 $\boldsymbol{X} \in \mathbb{R}^{n \times d}$,权重 $\boldsymbol{w} \in \mathbb{R}^{d \times 1}$, 偏差 $b \in \mathbb{R}$。相应地,批量数据样本标签 $\boldsymbol{\hat{y}} \in \mathbb{R}^{n \times 1}$ 。设模型参数 $\boldsymbol{\theta} = [w_1, w_2, b]^\top$ ,们可以重写损失函数为
    $\ell(\boldsymbol{\theta})=\frac{1}{2n}(\boldsymbol{\hat{y}}-\boldsymbol{y})^\top(\boldsymbol{\hat{y}}-\boldsymbol{y}).$
  小批量随机梯度下降的迭代步骤将相应地改写为
    $\boldsymbol{\theta} \leftarrow \boldsymbol{\theta} - \frac{\eta}{\|\mathcal{B}\|} \sum{i \in \mathcal{B}} \nabla{\boldsymbol{\theta}} \ell^{(i)}(\boldsymbol{\theta})$
  其中梯度是损失有关3个为标量的模型参数的偏导数组成的向量:

$${\large \begin{split}\nabla_{\boldsymbol{\theta}} \ell^{(i)}(\boldsymbol{\theta})=
\begin
\frac(w_1, w_2, b) }{\partial w_1} \\
\frac(w_1, w_2, b) }{\partial w_2} \\
\frac(w_1, w_2, b) }{\partial b}

\end

\begin
x_1^{(i)} (x_1^{(i)} w_1 + x_2^{(i)} w_2 + b - y^{(i)}) \\
x_2^{(i)} (x_1^{(i)} w_1 + x_2^{(i)} w_2 + b - y^{(i)}) \\
x_1^ w_1 + x_2^ w_2 + b - y^

\end

\begin
x_1^ \\
x_2^ \\
1
\end
(\hat^{(i)} - y^{(i)}).\end{split}} $$

5 小结

  • 和大多数深度学习模型一样,对于线性回归这样一种单层神经网络,它的基本要素包括模型、训练数据、损失函数和优化算法。
  • 既可以用神经网络图表示线性回归,又可以用矢量计算表示该模型。
  • 应该尽可能采用矢量计算,以提升计算效率。

原文创作:希望每天涨粉

原文链接:https://www.cnblogs.com/BlairGrowing/p/15059398.html

更多推荐

更多
  • AWS自动化机器学习-十一、MLSDLC 的持续集成、部署和训练 技术要求,编纂持续集成阶段,管理持续部署阶段,管理持续训练,延伸,构建集成工件,构建测试工件,构建生产工件,自动化持续集成流程,回顾构建阶段,回顾测试阶段,审查部署和维护阶段,回顾应用用户体验,创建新的鲍鱼调查数据,回顾持续训练流程,清
    Apache CN

  • AWS自动化机器学习-六、使用 AWS 步骤函数自动化机器学习过程 技术要求,介绍 AWS 步骤功能,使用 Step 函数 Data Science SDK for CI/CD,建立 CI/CD 渠道资源,创建状态机,解决状态机的复杂性,更新开发环境,创建管道工件库,构建管道应用构件,部署 CI/CD
    Apache CN

  • AWS自动化机器学习-第三部分:优化以源代码为中心的自动化机器学习方法 本节将向您介绍整体 CI/CD 流程的局限性,以及如何将 ML 从业者的角色进一步整合到管道构建流程中。本节还将介绍这种角色集成如何简化自动化过程,并通过向您介绍 AWS Step 函数向您展示一种优化的方法。本节包括以下章节:
    Apache CN

  • AWS自动化机器学习-一、AWS 上的自动化机器学习入门 技术要求,洗钱流程概述,洗钱过程的复杂性,端到端 ML 流程示例,AWS 如何使 ML 开发和部署过程更容易自动化,介绍 ACME 渔业物流,ML 的情况,从数据中获得洞察力,建立正确的模型,训练模型,评估训练好的模型,探索可能的后续步
    Apache CN

  • AWS自动化机器学习-二、使用 SageMaker 自动驾驶器自动化机器学习模型开发 技术要求,介绍 AWS AI 和 ML 前景,SageMaker 自动驾驶器概述,利用 SageMaker 自动驾驶器克服自动化挑战,使用 SageMaker SDK 自动化 ML 实验,SageMaker Studio 入门,准备实验
    Apache CN

  • AWS自动化机器学习-四、机器学习的持续集成和持续交(CI/CD) 四、机器学习的持续集成和持续交CI/CD技术要求,介绍 CI/CD 方法,通过 CI/CD 实现 ML 自动化,在 AWS 上创建 CI/CD 管道,介绍 CI/CD 的 CI 部分,介绍 CI/CD 的 CD 部分,结束循环,采取以部
    Apache CN

  • AWS自动化机器学习-九、使用 Amazon Managed Workflows 为 Apache AirFlow 构建 ML 工作流 技术要求,开发以数据为中心的工作流程,创建合成鲍鱼调查数据,执行以数据为中心的工作流程,构建和单元测试数据 ETL 工件,构建气流 DAG,清理, 在前面的年龄计算器示例中,我们了解了如何通过 ML 从业者和开发人员团队之间的跨职能
    Apache CN

  • AWS自动化机器学习-七、使用 AWS 步骤函数构建 ML 工作流 技术要求,构建状态机工作流,执行集成测试,监控管道进度,设置服务权限,创建 ML 工作流程, 在本章中,我们将从第六章中的 [处继续,使用 AWS 步骤函数自动化机器学习过程。您将从那一章中回忆起,我们正在努力实现的主要目标是简化
    Apache CN

  • AWS自动化机器学习-八、使用 Apache Airflow 实现机器学习过程的自动化 技术要求,介绍阿帕奇气流,介绍亚马逊 MWAA,利用气流处理鲍鱼数据集,配置 MWAA 系统的先决条件,配置 MWAA 环境, 当建立一个 ML 模型时,有一个所有 ML 从业者都知道的基本原则;也就是说,最大似然模型只有在数据被训练时
    Apache CN

  • AWS自动化机器学习-五、自动化 ML 模型的持续部署 技术要求,部署 CI/CD 管道,构建 ML 模型工件,执行自动化 ML 模型部署,整理管道结构,创建 CDK 应用,部署管道应用,查看建模文件,审查申请文件,查看模型服务文件,查看容器构建文件,提交 ML 工件,清理, 在 [第 4
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多