2020机器学习线性模型(1)

作者: zidea | 来源:发表于2020-01-18 20:41 被阅读0次
machine_learning.jpg

线性模型

今天我们来讨论一下线性模型,之前已经了解到线性模型来做回归问题,所谓回归问题就是根据给定样本数据训练出一个线性模型,然后用这个线性模型来估计新样本的值。通常模型都是下面样子
h_{\theta} = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \dots + \theta_n x_n

监督学习中样本通常都是这个样,是一个 n 维特征的向量和 y 是样本的标签。在回归问题中 y 是具体数值而在分类问题中 y 是表示样本所属的类别。

准备数据

D = \{ (x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\dots, (x^{(n)},y^{(n)}) \} x^{(i)} \in \mathbb{R}^n

定义模型

我们要求就是\theta 线性方程的参数,通常表示
\theta = \{ \theta_0, \theta_1, \dots, \theta_n \}^T
这里\theta_0 表示偏置。

目标函数

通过计算样本点到线性模型(直线或超平面)距离来评估我们模型对数据拟合程度,较少每一个点到线距离是我们的目标,我们目标就是让目标函数(也叫损失函数)取值最小,这里用\hat{y} - y 的作为点到线距离,大家可能会有疑问点到直线距离不是从点引一条直线的垂线,其实他们是等价的问题,并不是求距离的问题而是减少距离的优化问题。

一旦我们确定 \theta 确定,无论点到直线距离是点通过引用垂线来作为距离,还是用于估计 y 减去真实值 y 都是等同。

之前我们都是通过梯度下降方式来
\theta_j = \theta_j + \alpha \frac{\partial L}{\partial \theta_j}
通过通过不断迭代来优化参数 \theta 来找到最优解。这是之间我们做回归问题的一般步骤。

这是之前通过回归我们已经了解到了线性模型,今天我们来系统学习线性模型。

最小二乘法

在线性问题中,我们找到一条直线来拟合样本,通过一条直线来拟合数据,然后计算点到直线距离来评估

D = \{ (x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\dots, (x^{(n)},y^{(n)}) \} x^{(i)} \in \mathbb{R}^n

h_{\theta} = \theta_0 x_0 + \theta_1 \theta1 + \dots + \theta_n x_n

将我们问题用线性方程组来表示

\begin{aligned} \theta_0 x_0 + \theta_1 x_1^{(1)} + \theta_2 x_2^{(1)} + \cdots + \theta_n x_n^{(1)} = y_n^{(1)} \\ \theta_0 x_0 + \theta_1 x_1^{(2)} + \theta_2 x_2^{(2)} + \cdots + \theta_n x_n^{(2)} = y_n^{(2)} \\ \vdots \\ \theta_0 x_0 + \theta_1 x_1^{(N)} + \theta_2 x_2^{(N)} + \cdots + \theta_n x_n^{(N)} = y_n^{(N)} \\ \end{aligned}
现在尝试用用矩阵形式来表示这个线性方程组,矩阵 A 表示我们样本,每一行表示一个样本,这里有 N 个样本,小写 n 表示每一个样本的特征数量。
A = \begin{bmatrix} 1 & x_1^{(1)} & x_2^{(1)} & \dots & x_n^{(1)} \\ 1 & x_1^{(2)} & x_2^{(2)} & \dots & x_n^{(2)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_1^{(N)} & x_1^{(N)} & \dots & x_n^{(N)} \\ \end{bmatrix}
在 A矩阵中第一列是作为 \theta_0(截距)准备的样本的一个特征。
这里 \theta 是 (n+1) * 1 的参数矩阵,那么表示标签 y 是 N * 1 的向量
A_{N \times (n+1)} \theta_{(n+1) \times 1} = y_{N \times 1}
\sum_{i=1}^N (h_{\theta}(x^{(i)}) - y^{(i)})^2
有了矩阵表示形式,我们就可以用矩阵形式来表示我们损失函数

S = \min ||A \theta - Y||^2
这里我们对矩阵进行求模,然后进行化简,详细推导过程如下。
\begin{aligned} = (A\theta - Y)^T(A\theta - Y) \\ = (\theta^TA^T - Y^T)(A\theta - Y) \\ = \theta^TA^TA\theta - \theta^TA^TY - Y^TA\theta +Y^TY\\ = \theta^TA^TA\theta - 2\theta^TA^TY +Y^TY \end{aligned}
这里\theta^TA^TYY^TA\theta 是标量,那么我么看为什么他们是标量\theta^T1 \times (n+1) 的向量而A是(n+1) \times N 乘积结果就是1 \times N 向量乘以 N \times 1 所以 \theta^TA^TY 是一个标量。

\frac{\partial S}{\partial \theta} = 0

\frac{\partial S}{\partial \theta} = \frac{\partial( \theta^TA^TA\theta - 2 \theta^TA^TY + Y^TY)}{\partial \theta}

有关矩阵求导大家已经了解到有以下公式
\frac{\partial X^T}{\partial X} = 1
然后我们可以开始对矩阵求\theta的偏导,化简得到下面公式
\frac{\partial S}{\partial \theta} = \frac{\partial (\theta^TA^TA\theta) }{\partial \theta} - 2A^TY

这一部分\frac{\partial (\theta^TA^TA\theta) }{\partial \theta} 是求导的难点,接下来我们重点就是攻克这部分求导。

有关矩阵求导我们先介绍一个公式
\frac{d(u^Tv)}{d(x)} = \frac{du^T}{dx} v + \frac{dv^T}{dx} u
这里 u v 是关 x 的函数,我们在线性代数已经学习过有关矩阵求导,上面就是对矩阵进行求导中一个公式,在接下来对到中我们会用这个公式,如果大家还不了解可以回去看看线性代数。

\frac{d(X^TX)}{dx} = \frac{dX^T}{dx} X + \frac{dX^T}{dx} X = 2X
进一步来看我们引入方阵 B 注意这里是方阵然后我们 BX 看成一个整体来解决下面问题。
\frac{d(X^TBX)}{dx} = \frac{dX^T}{dx} BX + \frac{dX^TB^T}{dx} X = (B + B^T)X
我们知道A^TA 是一个方阵,这样我们问题就好解决了。我们通过上面推导等式
\frac{\partial \theta^TA^TA\theta}{\partial \theta} = (A^TA + AA^T)\theta = 2 A^TA\theta

wechat.jpeg

相关文章

  • 2020机器学习线性模型(1)

    线性模型 今天我们来讨论一下线性模型,之前已经了解到线性模型来做回归问题,所谓回归问题就是根据给定样本数据训练出一...

  • Task4模型调参

    学习目标 了解常用的机器学习模型,并掌握机器学习模型的建模与调参流程 内容介绍 线性回归模型:线性回归对于特征的要...

  • Python机器学习基础教程学习笔记(5)——线性模型(回归)

    Python机器学习基础教程学习笔记(5)——线性模型(回归) 1 线性回归处理wave数据集 1.1 wave数...

  • 2019-02-17

    机器学习系列 机器学习100天 机器学习第1天:数据预处理 机器学习第2天:简单线性回归模型 机器学习第3天:多元...

  • 西瓜书学习笔记-线性模型

    线性模型 1 基本形式 线性模型形式简单、易于建模,却蕴含这机器学习的一些重要思想。**许多功能强大的非线性模型可...

  • 线性回归模型

    参考:1.使用Python进行线性回归2.python机器学习:多元线性回归3.线性回归概念 线性回归模型是线性模...

  • 2019-10-29

    Day2 简单线性回归模型 机器学习入门--简单线性回归机器学习算法之线性回归算法 导入库matplotlib 绘...

  • Python机器学习之线性模型

    一、线性模型基本概念  线性模型不是指某一个模型,而是一类模型。在机器学习领域,常用的线性模型包括,线性回归、岭回...

  • 2-线性模型

    算法简介 线性模型是在机器学习实战中广泛使用的一类模型。线性模型利用输入特征的线性函数(linear functi...

  • 2020机器学习线性模型(3)

    在实际中我们是无法找到一条完美线性模型取拟合所以的样本点,我们总是近视找到一条线性模型来拟合所有点。现在我们哪一个...

网友评论

    本文标题:2020机器学习线性模型(1)

    本文链接:https://www.haomeiwen.com/subject/ejklzctx.html