ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2.单变量线性回归

2022-07-23 17:00:48  阅读:171  来源: 互联网

标签:frac 变量 梯度 回归 下降 线性 theta partial 函数


1. 一元线性回归(模型描述)

常用符号:

m : 训练样本的数量

x : 输入变量/特征

y : 输出变量/预测的目标变量

(x, y): 表示一个训练样本

$$(x^{(i)}, y^{(i)})$$ : 表示特殊训练样本/第i个训练样本

监督学习的工作过程:

2. 代价函数

在线性回归中我们要解决的是一个最小化的问题

Idea: 选择模型参数 \(\theta_0, \theta_1\), 使得对于任意的训练样本 (x, y), \(h_\theta\) 尽可能接近 y

线性回归的整体目标函数:

\[minimize_{\theta_0,\theta_1} \frac{1}{2m}\sum_{i=1}^m(h_\theta(x^i)-y^i)^2 \\ h_\theta(x^i) = \theta_0 + \theta_1x^{(i)} \]

代价函数:

数学定义:

\[J(\theta_0, \theta_1) = \frac{1}{2m}\sum_{i=1}^m(h_\theta(x^i)-y^i)^2 \\ minimize_{\theta_0,\theta_1} J(\theta_0, \theta_1) \]

代价函数也被称作平方误差函数,有时也被称为平方误差代价函数

平方误差代价函数可能是解决回归问题最常见的手段了

3. 代价函数理解

为了更好地使代价函数 \(J(\theta_i)\) 可视化,先使用一个简化的 假设函数,即让 \(\theta_0 = 0\)

4.代价函数理解2

代价函数越小,\(\theta_0, \theta_1\) 对应的假设函数确定的模型与 训练集中的数据拟合得越好

5. 梯度下降

梯度下降算法可以用于 代价函数以及更一般函数的 最小化

问题概述:

我们有一个函数 \(J(\theta_0, \theta_1)\), 也许这是一个线性回归的, 也许是一个需要最小化的其他函数

我们需要一个算法,来最小化函数 \(J(\theta_0, \theta_1)\)

梯度下降的思路:

1.开始给定 \(\theta_0, \theta_1\) 一些初始值, 初始值是什么其实并不重要,但通常的选择是将 \(\theta_0, \theta_1\) 初始化为0 (Start with some \(\theta_0, \theta_1\))

2.Keep changing \(\theta_0, \theta_1\) to reduce \(J(\theta_0, \theta_1)\) until we hopefully end up at a minimum

梯度下降算法的定义:

进行梯度下降的时候一定要同时更新 $$\theta_0, \theta_1$$

6. 梯度下降理解

1. α 学习率

α(学习率),永远是一个正数,控制我们以多大的幅度更新参数 \(θ_j\)

如果 α 太小,梯度下降会很慢

如果 α 太大,梯度下降可能会越过最低点,甚至无法收敛或者发散

2. 偏导数

如果 \(θ_1\) 已经处在一个局部最优点,你认为下一步梯度下降会怎样?

局部最优点的导数是 0 ,如果已经在局部最优点,\(θ_1\)将不再改变

即使学习速率 α 保持不变,梯度下降法也可以收敛到局部最低点

在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小的幅度;

这是因为当我们接近局部最低点时,根据定义,在局部最低点的导数等于零,所以

当我们接近局部最低点时,导数值会自动变得越来越小;

所以梯度下降将自动采取较小的幅度,这就是梯度下降的运行方式。

7. 线性回归 梯度下降

将梯度下降应用到线性回归中:将梯度下降和代价函数结合,得到线性回归算法,它可以用直线模型拟合数据

梯度下降算法:

repeat until convergence {
\(\theta_j := \theta_j - α \frac{\partial}{\partial J(\theta_j)}J(\theta_0, \theta_1)\)

\((for \quad j=1 \quad and \quad j=0)\)

}

线性回归模型:

\[h_\theta = \theta_0 + \theta_1x \\ J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 \]

将梯度下降应用到最小化方差代价函数中,关键是导数项

推导过程:

\[\frac{\partial}{\partial \theta_j}J(\theta_0, \theta_1) \\ = \frac{\partial}{\partial \theta_j}\frac{1}{2m} \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 \\ =\frac{\partial}{\partial \theta_j}\frac{1}{2m} \sum_{i=1}^{m}(\theta_0 + \theta_1x - y^{(i)})^2 \]

\[j=0:\frac{\partial}{\partial \theta_0}J(\theta_0, \theta_1) = \frac{1}{m} \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)}) \\ j=1:\frac{\partial}{\partial \theta_1}J(\theta_0, \theta_1) = \frac{1}{m} \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})*x^{(i)} \\ \]

线性回归算法:

repeat until convergence {

\[\theta_0 := \theta_0 - α \frac{1}{m} \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)}) \\ \theta_1 := \theta_1 - α \frac{1}{m} \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})*x^{(i)} \]

}

同时更新 \(\theta_0, \theta_1\)

说明: 线性回归的代价函数,是一个弓形函数,术语叫做凸函数,这个函数没有局部最优解,
只有一个全局最优解。当计算这种代价函数的梯度下降时,只要时使用梯度下降,
它总是会收敛到全局最优

Batch梯度下降算法,意味着每一步梯度下降,我们都历遍了整个训练集的样本。
所以在梯度下降中,当计算偏导数时,我们计算总和。在每一个单独的梯度下降
中,我们最终计算m个训练样本的总和。

标签:frac,变量,梯度,回归,下降,线性,theta,partial,函数
来源: https://www.cnblogs.com/cloudinwind/p/machining_linear.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有