【笔记】白话机器学习的数学(一)--回归(理论,无代码,补充吴恩达2022课程部分内容)

文章介绍了机器学习中的线性回归模型,包括单变量一次函数回归的模型定义、最小二乘法作为目标函数以及梯度下降法用于参数学习。此外,还探讨了多项式回归和多变量回归(多重回归)的一般形式,并提到了随机梯度下降和小批量梯度下降在解决局部最优解问题上的应用。内容还包括学习率的调整和特征缩放等实践技巧。
摘要由CSDN通过智能技术生成

0.写在前面

研零开学前复习数学基础,偶然读到这本书感到醍醐灌顶。之前看过一些深入的课程并不能很好的理解故先将本书内容记录笔记方便随时复习基础数学知识。
这本书三四天就能读完,浅显易懂,十分推荐。博客大概会分四次把书中的第二、三、四、五章记完。本文也可以当作书中内容的提炼。
除了这本书之外也在看吴恩达的机器学习课程,或许也会加进去一些内容。至于代码会额外开帖子(本书第五章是代码内容,预计读完第五章结合吴恩达课程的openlab一起整理)(大概会更新的很慢 吧)
如果有朋友读完发现文中错误烦请评论区批评指正

应用教材的封面

1.单变量一次函数回归

1.1 问题引入

  • 问题:Web 广告和点击量的关系
  • 前提:投入的广告费越多,广告的点击量就越高,进而带来访问数的增加。
  • 图片描述
    投放广告费与网站点击量的关系
  • 任务:根据广告费预测点击量

1.2 模型定义

  • 思想:观察图像后根据一次函数拟合图像
    一次函数拟合图像
  • 函数定义 f θ ( x ) = θ 0 + θ 1 x f_{\theta }(x)=\theta _{0}+\theta _{1}x fθ(x)=θ0+θ1x
  • 机器学习目标:学习 θ 0 θ 1 \theta _{0} \theta _{1} θ0θ1的值成功构建能够拟合数据点的一次函数。

1.3 目标(成本)函数设置 最小二乘法

  • θ 0 θ 1 \theta _{0} \theta _{1} θ0θ1学习思想:随机初始化,过程中带入公式和数据进行计算,目标是计算得出的 f θ ( x ) f_{\theta }(x) fθ(x)与真实值y的差距最小。
  • 理想状况 y − f θ ( x ) = 0 y-f_{\theta }(x)=0 yfθ(x)=0
  • θ 0 = 1 , θ 1 = 2 \theta _{0}=1, \theta _{1}=2 θ0=1θ1=2时的图像表示
    在这里插入图片描述
  • 机器学习的目标函数----最小二乘法

E ( θ ) = 1 2 ∑ i = 1 n ( y ( i ) − f θ ( x ( i ) ) ) 2 E(\theta)=\frac{1}{2} \sum_{i=1}^{n}(y^{(i)}-f_{\theta }(x^{(i)}))^{2} E(θ)=21i=1n(y(i)fθ(x(i)))2

公式说明:上角标i意为第i个数据点;减法意为真实值(y)与预测值(f)的差距;平方计算用来防止差值正负抵消(后续还要算微分所以采用平方而不用绝对值之类);求和运算计算差距总和;乘以常数不影响函数最小点取值仅为后续运算方便使用。另外这个公式在吴恩达老师的课中除以了1/n防止数值过大。

  • 机器学习的目标----“最优化问题”:学习 f θ ( x ) f_{\theta }(x) fθ(x)中的 θ 0 和 θ 1 \theta _{0}和\theta _{1} θ0θ1使得 E ( θ ) E(\theta) E(θ)最小。
  • 最小二乘法定义
    在这里插入图片描述
    原文链接:最小二乘法详解(知乎)

1.4 参数学习方法 梯度下降法

  • 微分:微分用来计算变化的快慢程度。微分后的函数为导数。导数值为正原函数递增,导数值为负原函数递减。梯度方向为变化最快的方向(斜率最陡),梯度下降法也叫最速下降法。

  • 举例说明:想要找到关于x的函数g(x)的最小值,初始化x的值后计算g’(x)的值确定x接下来的移动方向。
    在这里插入图片描述

  • 定义参数更新公式
    x : = x − η d d x g ( x ) x:= x-\eta \frac{d}{dx}g(x) x:=xηdxdg(x)

公式说明:eta为学习率,影响收敛速度。减号表示向导数符号的反向移动。

1.5 公式推导

  • 1.3中定义了目标函数为
    E ( θ ) = 1 2 ∑ i = 1 n ( y ( i ) − f θ ( x ( i ) ) ) 2 E(\theta)=\frac{1}{2} \sum_{i=1}^{n}(y^{(i)}-f_{\theta }(x^{(i)}))^{2} E(θ)=21i=1n(y(i)fθ(x(i)))2
  • 1.4中定义了参数变化方法
    θ 0 : = θ 0 − η d E ( θ ) d θ 0 \theta_0:= \theta_0-\eta \frac{dE(\theta)}{d \theta_0} θ0:=θ0ηdθ0dE(θ)
    θ 1 : = θ 1 − η d E ( θ ) d θ 1 \theta_1:= \theta_1-\eta \frac{dE(\theta)}{d \theta_1} θ1:=θ1ηdθ1dE(θ)
  • 下面对 θ \theta θ值的具体变换进行公式推导
    E ( θ ) E(\theta) E(θ)是关于 θ \theta θ的复合函数,定义 u = E ( θ ) u=E(\theta) u=E(θ) v = f θ ( x ) v=f_\theta(x) v=fθ(x)
    则根据复合函数求导法则
    d u d θ = d u d v ⋅ d v d θ \frac{du}{d\theta} = \frac{du}{dv} \cdot \frac{dv}{d\theta} dθdu=dvdudθdv
    d u d v = d d v 1 2 ∑ i = 1 n ( y ( i ) − v ( i ) ) 2 \frac{du}{dv} =\frac{d}{dv} \frac{1}{2} \sum_{i=1}^{n}(y^{(i)}-v^{(i)})^{2} dvdu=dvd21i=1n(y(i)v(i))2
    = 1 2 ∑ i = 1 n d d v ( y ( i ) − v ( i ) ) 2 = \frac{1}{2} \sum_{i=1}^{n}\frac{d}{dv} (y^{(i)}-v^{(i)})^{2} =21i=1ndvd(y(i)v(i))2
    = 1 2 ∑ i = 1 n d d v ( y ( i ) 2 − 2 y ( i ) v ( i ) + v ( i ) 2 ) = \frac{1}{2} \sum_{i=1}^{n}\frac{d}{dv} (y^{(i)^2}-2y^{(i)}v^{(i)}+v^{(i)^2}) =21i=1ndvd(y(i)22y(i)v(i)+v(i)2)
    = 1 2 ∑ i = 1 n ( − 2 y ( i ) + 2 v ( i ) ) = \frac{1}{2} \sum_{i=1}^{n}(-2y^{(i)}+2v^{(i)}) =21i=1n(2y(i)+2v(i))
    = ∑ i = 1 n ( v ( i ) − y ( i ) ) = \sum_{i=1}^{n}(v^{(i)}-y^{(i)}) =i=1n(v(i)y(i))
    d v d θ 0 = d d θ 0 θ 0 + θ 1 x \frac{dv}{d\theta_0}= \frac{d}{d\theta_0}\theta_0+ \theta_1x dθ0dv=dθ0dθ0+θ1x
    = 1 =1 =1
    d v d θ 1 = d d θ 1 θ 1 + θ 1 x \frac{dv}{d\theta_1}= \frac{d}{d\theta_1}\theta_1+ \theta_1x dθ1dv=dθ1dθ1+θ1x
    = x =x =x
  • 把结果组合起来并带入 θ 0 和 θ 1 \theta_0和\theta_1 θ0θ1的更新公式中
    θ 0 : = θ 0 − η d E ( θ ) d θ 0 \theta_0:= \theta_0-\eta \frac{dE(\theta)}{d \theta_0} θ0:=θ0ηdθ0dE(θ)
    = θ 0 − η d u d v ⋅ d v d θ 0 = \theta_0-\eta \frac{du}{dv} \cdot \frac{dv}{d \theta_0} =θ0ηdvdudθ0dv
    = θ 0 − η ∑ i = 1 n ( v ( i ) − y ( i ) ) ⋅ 1 = \theta_0-\eta \sum_{i=1}^{n}(v^{(i)}-y^{(i)}) \cdot 1 =θ0ηi=1n(v(i)y(i))1
    = θ 0 − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) ⋅ 1 = \theta_0-\eta \sum_{i=1}^{n}(f_\theta(x^{(i)})-y^{(i)}) \cdot 1 =θ0ηi=1n(fθ(x(i))y(i))1

==============================================================================================
θ 1 : = θ 1 − η d E ( θ ) d θ 1 \theta_1:= \theta_1-\eta \frac{dE(\theta)}{d \theta_1} θ1:=θ1ηdθ1dE(θ)
= θ 1 − η d u d v ⋅ d v d θ 1 = \theta_1-\eta \frac{du}{dv} \cdot \frac{dv}{d \theta_1} =θ1ηdvdudθ1dv
= θ 1 − η ∑ i = 1 n ( v ( i ) − y ( i ) ) ⋅ x ( i ) = \theta_1-\eta \sum_{i=1}^{n}(v^{(i)}-y^{(i)}) \cdot x^{(i)} =θ1ηi=1n(v(i)y(i))x(i)
= θ 1 − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) = \theta_1-\eta \sum_{i=1}^{n}(f_\theta(x^{(i)})-y^{(i)}) \cdot x^{(i)} =θ1ηi=1n(fθ(x(i))y(i))x(i)

1.6 公式总结一览

  • 函数定义: f θ ( x ) = θ 0 + θ 1 x f_{\theta }(x)=\theta _{0}+\theta _{1}x fθ(x)=θ0+θ1x
  • 机器学习目标函数:
    E ( θ ) = 1 2 ∑ i = 1 n ( y ( i ) − f θ ( x ( i ) ) ) 2 E(\theta)=\frac{1}{2} \sum_{i=1}^{n}(y^{(i)}-f_{\theta }(x^{(i)}))^{2} E(θ)=21i=1n(y(i)fθ(x(i)))2
  • 参数更新函数推导结果:
    θ 0 = θ 0 − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) ⋅ 1 \theta_0= \theta_0-\eta \sum_{i=1}^{n}(f_\theta(x^{(i)})-y^{(i)}) \cdot 1 θ0=θ0ηi=1n(fθ(x(i))y(i))1 θ 1 = θ 1 − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) \theta_1= \theta_1-\eta \sum_{i=1}^{n}(f_\theta(x^{(i)})-y^{(i)}) \cdot x^{(i)} θ1=θ1ηi=1n(fθ(x(i))y(i))x(i)

2.多项式回归

在这里插入图片描述
当第一步设置的用来拟合的函数为高次函数,可以将 f θ f_\theta fθ表示成一般化的式子。
如果此时想定义一个二次函数
在这里插入图片描述
其他部分不变
在这里插入图片描述
参数更新函数就可以写成
在这里插入图片描述

3.多重回归(多变量一般化)

当影响目标值变化的变量为多个的时候,例如现在定义问题如下:
考虑广告版面的大小也对点击量会产生影响,设广告费为 x1、广告栏的宽为 x2、广告栏的高为 x3
则有
在这里插入图片描述
若有多个变量则可以写为
在这里插入图片描述
该式子可以用向量进行一般化表示:
在这里插入图片描述
f ( x ) = θ T ⋅ x f(x) = \theta^{T}\cdot x f(x)=θTx

\theta向量转置后变成(1*n)的矩阵与(n*1)的矩阵做点积,点积结果为相应元素相乘再相加,即与上式相同。

一般化对第j个 θ \theta θ的更新公式为
θ j = θ j − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i ) \theta_j= \theta_j-\eta \sum_{i=1}^{n}(f_\theta(x^{(i)})-y^{(i)}) \cdot x_j^{(i)} θj=θjηi=1n(fθ(x(i))y(i))xj(i)

4.随机梯度下降(解决局部最优解问题)

4.1 随机梯度下降

一般化回归问题的参数更新公式带入了所有的训练数据进行求和,随机梯度下降的随机意为随机抽取数据。例如如果随机选择第k个训练数据对参数进行计算更新,那么公式会像这样:
θ j = θ j − η ( f θ ( x ( k ) ) − y ( k ) ) ⋅ x j ( k ) \theta_j= \theta_j-\eta(f_\theta(x^{(k)})-y^{(k)}) \cdot x_j^{(k)} θj=θjη(fθ(x(k))y(k))xj(k)
公式与原公式的区别在于去掉了求和的步骤,(x,y)训练数据为第k个。
通过对训练数据的随机选取可以解决局部最优解的问题。
(至于理由书中并没有细说,我暂时也解释不好,等看到了好的解释再回来补充)

4.2 小批量梯度下降 mini batch

另外也可以随机选取一个训练数据的子集K,那么单次参数更新公式就会像这样:
θ j = θ j − η ∑ k ϵ K ( f θ ( x ( k ) ) − y ( k ) ) ⋅ x j ( k ) \theta_j= \theta_j-\eta \sum_{k\epsilon K}(f_\theta(x^{(k)})-y^{(k)}) \cdot x_j^{(k)} θj=θjηkϵK(fθ(x(k))y(k))xj(k)

5.思路总结

机器学习中回归问题的思想:

  1. 定模型,定参数
  2. 明确机器学习的目标函数
  3. 明确参数的变化方式
  4. 定义超参数进行学习

6. 其他(从吴恩达机器学习课程补充几点)

6.1 学习率调整

  • 经验谈:从0.0001开始设置每次提高三倍观察损失函数曲线/设置阈值自动停止训练
    (0.0001 0.0003 0.001 0.003 0.01 0.03…)

  • 关于损失函数曲线:
    ① 若学习率很小,损失曲线仍上升:代码bug,且极有可能参数更新的减号写成了加;
    ② 损失曲线时高时低,整体呈下降趋势: 学习率偏大,可适当调小;
    ③ 损失函数单调下降,但速度很慢:学习率偏小,可适当放大。

6.2 特征缩放

训练数据的不同变量的定义域可能相差很多,如果不做处理直接训练:
在这里插入图片描述
会导致的后果:
loss会反复横跳,且找导全局最低点的时间会变长。
在这里插入图片描述

解决方法(特征缩放方法):
① 除以最大值(方便快捷简单暴力)
在这里插入图片描述
② 均值归一化(μ是平均值)
在这里插入图片描述
处理完的数据在坐标中是分散在0上下左右的。
③Z-score 归一化(σ是标准差)
在这里插入图片描述

-1. 链接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值