重启机器学习基础—线性回归(1)矩阵视角

2,465 阅读2分钟

这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

机器学习基础,然后今天咱们主要聊一聊是线性回归,最简单的一个模型。

咱们先从概念上说一说线性归回,线性回归是由 2 个词组成的,第一个是线性,然后是回归。

线性

线性我们这个可能早在初中的时候就接触了,比如说 y 等于 ax 加 b。可以在 y x 形成平面中,绘制一条直线来表示 y=ax+by= ax + b。然后给每一次在这个方程内输入一个 x,就会得到一个 y。

y=ax+by = ax + b

这里 a 表示斜率而 b 表示截距,也叫做偏置。这个方程表示 y 和 x 之间线性关系,在几何意义上是一条直线。

回归

那么什么是回归呢?听起来比较高大尚。去分析 x 和 y 这对这个自变量和因变量,他们俩之间关系。我们可以用散点图将 x 和 y 绘制在一个平面内,这些点散落在平面内,分布呈一定规律的。这时我们可以用一条直线。这条线呢很可以很好的去描述这些散落的点。也就是拟合这些点,这就是回归,比如说这个身高和体重啊。然后房子的面积与房价啊,他们都是呈一种线性关系的,比如胆固醇与年龄之间关系都是可以通过回归进行预测。

数据

我们用数学语言来描述问题。

D={(x1,y1),(x2,y2),(xi,yi)}ND = \{ (x_1,y_1),(x_2,y_2),\cdots (x_i,y_i)\}_N

假设我们数据集用大 D 来表示,每一个样本是一个 m 为向量xiRmx_i \in \mathbb{R}^m 而为 yiy_i 为一个实数 yiRy_i \in \mathbb{R}

数据集可能服从一个概率分布,但实际上,我们是只能观察到样本也是只是全部数据一部分,数据真实服从概率分布我们是不知道的。只能通过观察到样本来推测真实的分布。

好假设这里有 X 和 Y 分别表示 x 和 y 集合,因为 x 是一个列向量所以 X=(x1,x2,,xN)TX = (x_1,x_2,\cdots, x_N)^T这样不难看出 X 每一行是一个样本 xix_i,也就是,Y 是一个 (y1,y2,,yN)T(y_1, y_2,\cdots,y_N)^T

[x11x12x1mx21x22x2mxn1xn2xnm]N×m\begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1m}\\ x_{21} & x_{22} & \cdots & x_{2m}\\ \vdots & \vdots & \cdots & \vdots\\ x_{n1} & x_{n2} & \cdots & x_{nm}\\ \end{bmatrix}_{N \times m}

损失函数

计算损失函数这里我们 y^=wTxi\hat{y} = w^Tx_i 然后计算 wTxiyiw^Tx_i - y_i 之间的距离,也就是找到这么一条直线,直线点到预估点距离

L(w)=i=1NwTxiyi2L(w) = \sum_{i=1}^N ||w^Tx_i - y_i||^2

然后我们把 wTxiyi2||w^Tx_i - y_i||^2 这部分尝试用矩阵形式表示,首先将其展开为如下

(wTx1y1,wTx2y2,,wTxNyN)(wTx1y1wTx2y2wTxNyN)(w^Tx_1 - y_1,w^Tx_2 - y_2, \cdots, w^Tx_N - y_N ) \left( \begin{matrix} w^Tx_1 - y_1\\ w^Tx_2 - y_2\\ \vdots\\ w^Tx_N - y_N\\ \end{matrix} \right)

然后将其进行进一步进行化简,然后转换为 将(x1,x2,,xN)(x_1,x_2,\cdots,x_N) 转换为 XTX^T 并将 (y1,y2,,yN)(y_1,y_2, \cdots, y_N) YTY^T

(wTXTYT)(w^TX^T - Y^T)

(wTx1y1,wTx2y2,,wTxNyN)=wT(x1,x2,,xN)(y1,y2,,yN)=(wTXTYT)(w^Tx_1 - y_1,w^Tx_2 - y_2, \cdots, w^Tx_N - y_N ) = w^T(x_1,x_2,\cdots,x_N) - (y_1,y_2,\cdots,y_N)= (w^TX^T - Y^T)
(wTXTYT)(XwY)wTXTXwwTXTY+YTXwYwTXTXw2wTXTY+YTY(w^TX^T - Y^T)(Xw - Y)\\ w^TX^TXw - w^TX^TY + Y^TXw - Y\\ w^TX^TXw - 2w^TX^TY + Y^TY

wTXTYw^TX^TY 这两项 YTXwY^TXw 其实都是实数,因为 wTw^T 表示 1×m1 \times m XTX^T 的维度为 m×Nm \times N 所以得出 1×N1 \times N 维度,加和 N×1N \times 1 维度 YY 矩阵相乘得到一个数,因为 YTXwY^TXw 也是一个数,所以这两项可以合并为一个项。

接下来就是矩阵求导

L(w)w=2XTXw2XTY=0w=(XTX)1XTY\frac{\partial L(w)}{\partial w} = 2X^TXw - 2 X^TY = 0\\ w = (X^TX)^{-1}X^TY