ML1 单变量线性回归

ML1 单变量线性回归,第1张

文章目录
    • 有监督学习与无监督学习
      • 1.有监督学习
      • 2.无监督学习
    • 代价函数
    • 梯度下降算法
      • 1.数学定义
      • 2.同步更新
      • 3.偏微分导数项
    • 线性回归算法
      • 推导过程
      • 凸函数

⏰本节内容:有监督学习与无监督学习,代价函数,梯度下降算法,线性回归

有监督学习与无监督学习 1.有监督学习

⚡给机器大量的数据集,该数据集中包含正确的答案,然后机器根据数据集拟合出一条曲线

  • 分类

预测离散输出,例如:预测肿瘤的良性、恶性

  • 回归

预测连续的输出,例如:预测房价走势

2.无监督学习

🔥有一个数据集,里面没有任何标签/或者相同的标签,机器在这组数据集中找规律,并归纳总结

  • 聚类

例如:音频分离(如人声和背景声的分离)、百度新闻归档

代价函数

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

J(θ0, θ1):误差平方代价函数

hθ(x) :拟合函数,就是你预测的函数

h θ ( x ) = θ 0 + θ 1 x J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 h_{\theta}(x)=\theta_{0}+\theta_{1} x \ J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} hθ(x)=θ0+θ1xJ(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2

代价函数三维图,以θ0, θ1为x、y坐标轴

梯度下降算法

梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数 J ( θ 0 , θ 1 ) J(\theta_{0}, \theta_{1}) J(θ0,θ1) 的最小值

  1. 随机θ0, θ1分配初值
  2. 不断改变,找到正确的θ0、θ1,使得J(θ0, θ1)最小

梯度下降背后的思想是:开始时我们随机选择一个参数的组合 ( θ 0 , θ 1 , . . . . . . , θ n ) \left( {\theta_{0}},{\theta_{1}},......,{\theta_{n}} \right) (θ0,θ1,......,θn),计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到找到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。

1.数学定义

θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) ( f o r j = 0 a n d j = 1 ) \quad \theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) \quad (for j=0 and j=1 ) θj:=θjαθjJ(θ0,θ1)(forj=0andj=1)

  • :=:赋值运算符,a:=b相当于取b的值赋给a;

    🔓为什么不用a=b?

    🔑答:在教学视频中,a=b被认为是真假判断,声明a=b是对的。所以我们不能写a=a+1,因为这永远都是错的

  • α:学习率,用来控制我们在梯度下降的幅度,α越大,梯度下降的越快

2.同步更新

✅梯度下降算法应满足同步更新的条件,即θ0, θ1应同时改变,如图1️⃣

❌图2️⃣则是先计算了θ0,然后再用新的θ0去计算θ1

所以图1和图2区别在于,temp1的值不同

3.偏微分导数项

α ∂ ∂ θ j J ( θ 0 , θ 1 ) \alpha\frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) \quad αθjJ(θ0,θ1)

在这里, ∂ ∂ θ j J ( θ 0 , θ 1 ) \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) \quad θjJ(θ0,θ1)是梯度函数的斜率,乘以α则表示梯度变化幅度

所以当θ1已经处在一个局部最优点时,它所在点的曲线斜率为0,即 ∂ ∂ θ j J ( θ 0 , θ 1 ) = 0 \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right)=0 θjJ(θ0,θ1)=0

此时由 θ 1 : = θ 1 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) \quad \theta_{1}:=\theta_{1}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) θ1:=θ1αθjJ(θ0,θ1)得:

θ 1 : = θ 1 \theta_{1}:=\theta_{1} θ1:=θ1,θ1不会变化,如下图:

🚀注意:α永远是正数

  • α过小

不断拟合,去努力接近最低点,这样就需要很多步才能到达最低点,耗费大量时间,它会需要很多步才能到达全局最低点

  • α过大

拟合的时候左右横跳,难以达到最低点,反而远离最低点了,所以,如果 a a a太大,它会导致无法收敛,甚至发散


所以斜率不断减小,梯度下降的幅度也不断减少,这样就可以无限逼近于最低点

例如:品红色👉绿色👉红色👉蓝色👉最低点

因为曲线在下降的时候是不断变缓的,所以它的斜率也不断减小,你可以看到越靠近最低点,不同颜色的点就越密集

线性回归算法

使用梯度下降算法,去求误差代价函数的最小值

推导过程

h θ ( x ) = θ 0 + θ 1 x J ( θ 0 , θ 1 ) = 1 2 m ∑ n = 1 m ( h θ ( x i ) − y i ) 2 求 θ 0 , θ 1 , 使 J ( θ 0 , θ 1 ) → m i n ? J ( θ 0 , θ 1 ) = 1 2 m ∑ n = 1 m ( θ 0 + θ 1 x i − y i ) 2 θ 0 = θ 0 − a ⋅ d J ( θ 0 , θ 1 ) d θ 0 d J ( θ 0 ⋅ θ 1 ) d θ 0 = 1 2 m ∑ n = 1 m 2 ( θ 0 + θ 1 x i − y i ) 1 = 1 m ∑ n = 1 m ( θ i + θ 1 x i − y i ) θ 0 = θ 0 − a ⋅ 1 2 m ⋅ ∑ n = 1 m 2 ( θ 0 + θ 1 x i − y i ) = θ 0 − a m ∑ n = 1 m ( θ 0 + θ 1 x i − y i ) θ 1 = θ 1 − a ⋅ d J ( θ 0 , θ 1 ) d θ 1 d J ( θ 0 , θ 1 ) d θ 1 = 1 2 m ∑ n = 1 m 2 ( θ 0 + θ 1 x i − y i ) ⋅ x i d j ( θ 0 , θ 1 ) d θ 1 = 1 m ∑ n = 1 m ( θ 0 + θ 1 x i − y i ) x i θ 1 = θ 1 − a m ∑ n = 1 m ( θ 0 + θ 1 x i − y i ) x i {\Large \mathsf{\mathcal{\begin{array}{l} h_{\theta}(x)=\theta_{0}+\theta_{1} x \ J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{n=1}^{m}\left(h_{\theta}\left(x^{i}\right)-y^{i}\right)^{2} \ 求 \theta_{0}, \theta_{1},使J\left(\theta_{0}, \theta_{1}\right) \rightarrow m i n ? \ J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{n=1}^{m}\left(\theta_{0}+\theta_{1} x_{i}-y^{i}\right)^{2} \ \theta_{0}=\theta_{0}-a \cdot \frac{d J\left(\theta_{0}, \theta_{1}\right)}{d \theta_{0}} \ \frac{d J\left(\theta_{0} \cdot \theta_{1}\right)}{d \theta_{0}}=\frac{1}{2 m} \sum_{n=1}^{m} 2\left(\theta_{0}+\theta_{1} x_{i}-y^{i}\right) 1=\frac{1}{m} \sum_{n=1}^{m}\left(\theta_{i}+\theta_{1} x_{i}-y^{i}\right) \ {\color{Red} \theta_{0}=\theta_{0}-a \cdot \frac{1}{2 m} \cdot \sum_{n=1}^{m} 2\left(\theta_{0}+\theta_{1} x_{i}-y^{i}\right)=\theta_{0}-\frac{a}{m} \sum_{n=1}^{m}\left(\theta_{0}+\theta_{1} x_{i}-y^{i}\right)} \ \theta_{1}=\theta_{1}-a \cdot \frac{d J\left(\theta_{0}, \theta_{1}\right)}{d \theta_{1}} \ \frac{d J\left(\theta_{0}, \theta_{1}\right)}{d \theta_{1}}=\frac{1}{2 m} \sum_{n=1}^{m} 2\left(\theta_{0}+\theta_{1} x_{i}-y^{i}\right) \cdot x_{i} \ \frac{d j\left(\theta_{0}, \theta_{1}\right)}{d \theta_{1}}=\frac{1}{m} \sum_{n=1}^{m}\left(\theta_{0}+\theta_{1} x_{i}-y^{i}\right) x_{i} \ {\color{Red} \theta_{1}=\theta_{1}-\frac{a}{m} \sum_{n=1}^{m}\left(\theta_{0}+\theta_{1} x_{i}-y^{i}\right) x_{i}} \end{array}\mathbb{}} } } hθ(x)=θ0+θ1xJ(θ0,θ1)=2m1n=1m(hθ(xi)yi)2θ0,θ1,使J(θ0,θ1)min?J(θ0,θ1)=2m1n=1m(θ0+θ1xiyi)2θ0=θ0adθ0dJ(θ0,θ1)dθ0dJ(θ0θ1)=2m1n=1m2(θ0+θ1xiyi)1=m1n=1m(θi+θ1xiyi)θ0=θ0a2m1n=1m2(θ0+θ1xiyi)=θ0man=1m(θ0+θ1xiyi)θ1=θ1adθ1dJ(θ0,θ1)dθ1dJ(θ0,θ1)=2m1n=1m2(θ0+θ1xiyi)xidθ1dj(θ0,θ1)=m1n=1m(θ0+θ1xiyi)xiθ1=θ1man=1m(θ0+θ1xiyi)xi

凸函数

线性回归的代价函数曲线通常都是一个碗状的,这被称为凸函数/弓函数,这个函数只有全局最优解,而没有局部最优解,可以视作是三维的二次函数

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/728904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存