cs229讲义_CS229 机器学习:有监督学习 线性回归和梯度下降

0 本文目录

1、有监督学习
2、线性回归  
3、求解方法:梯度下降
4、求解方法:正则方程
5、概率解释
6、局部加权线性回归
7、线性回归的代码实现

CS229 相关讲义:http://cs229.stanford.edu/notes2020fall/notes2020fall/cs229-notes1.pdf

1 有监督学习

符号定义:

:输入特征;
:目标变量;

:训练样本;
:训练集

:输入值的空间;
:输出值的空间

:样本数,
:特征维度(2018 年秋季学期符号定义,文章与此定义一致)。

:样本数,
:特征维度(2020 年秋季学期符号定义)。

对于监督学习问题,我们的目标是,给定一个训练集,来让机器学习一个函数

是一个与对应的真实
值比较接近的评估值。
被叫做
假设函数

回归问题:如果我们要预测的目标变量是连续的(比如根据房屋的面积,来确定房子的价格),这种学习问题就被称为回归问题。

分类问题:如果

只能取一小部分的离散的值(比如给定房屋面积,来确定这个房子是一个住宅还是公寓),这样的问题就叫做
分类问题。

2 线性回归算法简介

线性回归的假设函数为:

其中,

被叫做
权重,并规定截距

线性回归的代价函数为:

线性回归的学习目标:通过训练集找出使代价函数最小的一组参数

线性回归又被叫做普通最小二乘法

3 求解方法:梯度下降

3.1 梯度下降

梯度下降是⼀种求解最优化问题的迭代⽅法,具体步骤为:随机选取初始的

,不断使用下式更新
,一直到其收敛:

称为学习速率。这个算法是很自然的,因为它逐步重复朝向
降低最快的方向移动。

3.2 梯度推导

假设只有一个样本点

,得到梯度为:

将上述结果代回梯度下降公式,得到:

第二个公式通过数学变换将减号变成了加号, 方便之后与逻辑回归的结果作比较。

3.3 批量梯度下降、小批量梯度下降和随机梯度下降

  • 批量梯度下降:每次计算梯度都需要遍历所有的样本点,当样本量很大时, 计算速度会十分缓慢。
  • 小批量梯度下降:每次计算梯度都需要遍历一个子集的样本点。
  • 随机梯度下降:每次只考虑⼀个样本点,而不是所有样本点,计算速度会提高, 但是收敛过程会比较曲折, 可能无法精确收敛至最优值。

4 求解方法:正则方程

对于训练集,我们定义设计矩阵

如下:

因为

,我们可以得出:

此外,对于一个向量

,我们有
,因此可以得出:

先找

的导数:

所以为了使

最小,我们使其导数为
,得到
正则方程如下:

因此,线性回归的解析解

注意:不可逆问题可以通过伪逆计算或正则化处理解决。

5 概率解释

我们可以用概率模型来解释为什么线性回归要选择最小二乘函数作为代价函数。

假设存在一个数据中存在一个高斯噪声

,则模型可以表示为
,即:

我们定义概率为数据的概率,而参数的概率叫做似然:

又因为数据满足独立同分布,所以我们建立似然函数为

我们还以对任何严格递增的

的函数求最大值。如果我们不直接使用
,而是使用对数函数,来找
对数似然函数
的最大值,那这样对于求导来说就简单了一些:

因此,最大化

就是最小化:

这正是我们之前提出的最小二乘代价函数。从公式可以看出,

的选择并不依赖于
。此外,概率解释只是对最小二乘法的一种合理解释,其实还有其他的解释方法。

6 局部加权线性回归

6.1 欠拟合与过拟合

对于传统的线性回归,特征的选择极为重要,对于下面三幅图,我们称第一幅图的模型是欠拟合,第三幅图的模型则是过拟合

85ffe5c3dbf01cd923cd13d37d9835f4.png

可以看出,找到一个全局的线性模型去拟合整个训练集,并不是一件简单的事情,往往会引起欠拟合或是过拟合的发生。对于这种情况,我们提出了局部线性加权回归,这种方案可以使特征的选择的重要性降低。

6.2 算法思路

局部线性加权回归的思路是并不去拟合整个训练集来产生全局的模型,而是在每次预测时,只去拟合给定输入

附近的一小段训练集,无论全局训练集是怎样的一条分布曲线,在局部小段数据上,都可以用线性去逼近。具体步骤如下:
  1. 拟合
    来最小化
  2. 输出

这里

是非负
权重,一般取值如下:

为向量时表达式有所不同。可以看出,离给定输入越近的样本点权重越大,拟合程度越高。
称为
带宽参数,用来调整远近的度量。

6.3 参数学习与非参数学习

  • 参数学习算法有一组有限的、固定的参数,一旦完成拟合,只需要保存下参数值做预测,而不需要保存完整的训练集。传统的线性回归为参数学习算法。
  • 非参数学习算法由于参数不固定,所以需要保存完整的训练集来进行预测,而不仅仅是保存参数。局部加权线性回归为非参数学习算法。

7 线性回归的代码实现

注:代码实现不是 CS229 课程中的内容

  • 生成数据
#生成数据
  • 使用 sklearn 的线性回归函数
import 
  • 用最小二乘法求解线性回归
class 
  • 用梯度下降法求解线性回归
class 

参考

CS229 课程讲义:CS229: Machine Learning

CS229 讲义中文翻译:https://kivy-cn.github.io/Stanford-CS-229-CN/#/README

口仆的学习笔记中 CS229 部分:口仆的学习笔记

datawhale 机器学习: datawhalechina/team-learning

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值