线性回归(Linear Regression)——原理、均方损失、小批量随机梯度降低、PyTorch实现

1. 线性回归

  回归(regression)问题指一类为一个或多个自变量与因变量之间关系建模的方法,一般用来表示输入和输出之间的关系。机器学习

  机器学习领域中多数问题都与预测相关,当咱们想预测一个数值时,就会涉及到回归问题,如预测房价等。(预测不只包含回归问题,还包含分类问题)函数

 

  线性回归(Linear Regression),自变量 $\textbf x$ 与因变量 $y$ 之间的关系是线性的,即 $y$ 能够表示为 $\textbf x$ 中元素的加权和。学习

  咱们用 $n$ 来表示数据集中的样本数,对索引为 $i$ 的样本,其输入表示为 $\textbf x^{\left ( i \right )}= \begin{bmatrix} x_{1}^{\left ( i \right )} & x_{2}^{\left ( i \right )}\end{bmatrix}^T$ ,其对应的标签为 $y^{\left ( i \right )}$ 。(这里的输入 $\textbf x$ 包含2个特征)优化

 

2. 线性模型

2.1 一个简化模型

  假设1:影响房屋价格的关键因素是卧室个数、卫生间个数、居住面积,记为 $x_{1}$ ,$x_{2}$ ,$x_{3}$ 。索引

  假设2:房屋价格 $y$ 是关键因素的加权和,$y=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+b$ 。it

  上式中的 $x_{1}$ ,$x_{2}$ ,$x_{3}$ 称为特征, $w_{1}$ , $w_{2}$ , $w_{3}$ 称为权重(weight),$b$ 称为偏置(bias),或偏移量、截距。权重决定了每一个特征对咱们预测值的影响。偏置是指全部特征为0时,预测值应为多少。既是现实中不会有房子居住面积为 $0$ ,或者没有卧室,但咱们仍须要偏置项,由于它拓展了模型的表达能力。io

 

2.2 线性模型

  给定一个数据集,咱们的目标是寻找模型的权重 $\textbf w$ 和偏置 $b$ ,使得根据模型作出的预测大致符合数据里的真实价格。变量

  当输入包含 $d$ 个特征时,咱们将预测结果 $\hat{y}\in\mathbb{R}$ 表示为:学习笔记

$$\hat{y}=w_{1}x_{1}+\cdots+w_{d}x_{d}+b$$方法

  咱们用向量使表示更简洁,特征向量 $\textbf x\in\mathbb{R}^{d}$ ,权重向量 $\textbf w\in\mathbb{R}^{d}$ ,偏置 $b\in\mathbb{R}$ ,即:

$$\textbf x=\begin{bmatrix}x_{1} & x_{2} & \cdots & x_{d} \end{bmatrix}^T , \textbf w=\begin{bmatrix}w_{1} & w_{2} & \cdots & w_{d} \end{bmatrix}^T , b$$

  该模型能够用点积式表示:

$$\hat{y}=\textbf w^{T}\textbf x+b$$

  

  上式中,向量 $\textbf x$ 仅对应于单个数据样本的特征,咱们使用 $\textbf X\in\mathbb{R}^{n\times d}$ 来表示整个数据集的 $n$ 个样本。 $\textbf X$ 的每一行是一个样本,每一列是一种特征。

  对于特征集合 $\textbf X$ ,预测值向量 $\hat{\textbf y}\in\mathbb{R}^{n}$ 能够经过矩阵-向量乘法表示为:

$$\hat{\textbf y}=\textbf X\textbf w+b$$

 

  在开始寻找最优的模型参数 $\textbf w$ 和 $b$ 以前,咱们还须要了解:模型质量的度量方式、更新和优化模型参数的方法。

 

3. 损失函数——平方损失

  损失函数能够量化目标的真实值和预测值之间的差距。一般使用非负数做为损失,数值越小表示损失越小,完美预测时为 $0$ 。回归问题中最经常使用的损失函数就是平方损失函数。

  当样本 $i$ 的预测值为 $\hat{y}^{\left ( i \right)}$ ,其对应的真实标签为 $y^{\left ( i \right)}$ 时,平方损失能够表示为:

$$l^{\left ( i \right)}\left ( \textbf w,b \right)=\frac{1}{2}\left( \hat{y}^{\left ( i \right)}-y^{\left ( i \right)}\right)^{2}$$

  $\frac{1}{2}$ 是为了求导方便。

  为了度量模型在整个数据集上的质量,咱们计算在训练集上 $n$ 个样本的损失均值:

$$L\left( \textbf w,b \right)=\frac{1}{n}\sum_{i=1}^{n}l^{\left( i \right )}\left( \textbf w,b \right )=\frac{1}{n}\sum_{i=1}^{n}\frac{1}{2}\left( \textbf w^{T}\textbf x^{\left( i \right)}+b-y^{\left( i \right)}\right)^{2}=\frac{1}{2n}\Vert \textbf X\textbf w+b-\textbf y\Vert_2$$

   在训练模型时,咱们但愿找到一组参数 $\left(\textbf w^{*},b^{*}\right)$ ,可以最小化在训练集上的损失,表示以下:

$$\textbf w^{*},b^{*}=\mathop{\arg\min}_{\textbf w,b}L\left(\textbf w,b\right)$$

 

4. 解析解(显式解)

  线性回归是一个很是简单的优化问题,它的解能够用一个公式简单地表达出来,这类解叫作解析解(Analytical solution)。下面进行求解:

  首先将偏置 $b$ 合并到权重 $\textbf w$ 中,即 $\textbf X \leftarrow \begin{bmatrix} \textbf X & \textbf 1 \end{bmatrix}$ ,$\textbf w \leftarrow \begin{bmatrix}\textbf w \\ b \end{bmatrix}$ ,此时,$\textbf X \in\mathbb{R}^{n\times \left(d+1\right)}$ ,$\textbf w \in\mathbb{R}^{d+1}$ 。

  咱们的目标是,最小化损失(下式):

$$L\left( \textbf w \right)=\frac{1}{2n}\Vert \textbf y-\textbf X\textbf w \Vert_2$$

  损失函数对参数 $\textbf w$ 求导:

$$\frac{\partial L\left(\textbf w \right )}{\partial \textbf w}=\frac{\partial L}{\partial \left(\textbf y-\textbf X\textbf w\right)}\frac{\partial \left(\textbf y-\textbf X\textbf w\right)}{\partial \textbf X\textbf w}\frac{\partial \textbf X\textbf w}{\partial \textbf w}$$

$$=\frac{1}{n}\left(\textbf y-\textbf X\textbf w\right)^{T}_{\left(1,n\right)}I_{\left(n,n\right)}X_{\left(n,d\right)}$$

$$=\frac{1}{n}\left(\textbf y-\textbf X\textbf w \right )^{T}\textbf X$$

  损失函数是凸函数(不知道为何,搞懂了再来写),因此最小值知足:

$$\frac{\partial L\left(\textbf w\right)}{\textbf w}=0$$

$$\frac{1}{n}\left(\textbf y-\textbf X\textbf w \right )^{T}\textbf X=0$$

$$\textbf w^{*}=\left(\textbf X^{T}\textbf X\right)^{-1}\textbf X\textbf y$$

 

5. 小批量随机梯度降低(minibatch stochasitc gradient descent)

 

 

未完待续。。

 

本文为学习笔记,学习内容来自李沐的https://zh-v2.d2l.ai/