栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

ML1 单变量线性回归

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ML1 单变量线性回归

文章目录
    • 有监督学习与无监督学习
      • 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 \ Jleft(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​+θ1​xJ(θ0​,θ1​)=2m1​i=1∑m​(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}} Jleft(theta_{0}, theta_{1}right) quad (for j=0 and j=1 ) θj​:=θj​−α∂θj​∂​J(θ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 ) alphafrac{partial}{partial theta_{j}} Jleft(theta_{0}, theta_{1}right) quad α∂θj​∂​J(θ0​,θ1​)

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

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

此时由 θ 1 : = θ 1 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) quad theta_{1}:=theta_{1}-alpha frac{partial}{partial theta_{j}} Jleft(theta_{0}, theta_{1}right) θ1​:=θ1​−α∂θj​∂​J(θ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 \ Jleft(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},使Jleft(theta_{0}, theta_{1}right) rightarrow m i n ? \ Jleft(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 Jleft(theta_{0}, theta_{1}right)}{d theta_{0}} \ frac{d Jleft(theta_{0} cdot theta_{1}right)}{d theta_{0}}=frac{1}{2 m} sum_{n=1}^{m} 2left(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} 2left(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 Jleft(theta_{0}, theta_{1}right)}{d theta_{1}} \ frac{d Jleft(theta_{0}, theta_{1}right)}{d theta_{1}}=frac{1}{2 m} sum_{n=1}^{m} 2left(theta_{0}+theta_{1} x_{i}-y^{i}right) cdot x_{i} \ frac{d jleft(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​+θ1​xJ(θ0​,θ1​)=2m1​∑n=1m​(hθ​(xi)−yi)2求θ0​,θ1​,使J(θ0​,θ1​)→min?J(θ0​,θ1​)=2m1​∑n=1m​(θ0​+θ1​xi​−yi)2θ0​=θ0​−a⋅dθ0​dJ(θ0​,θ1​)​dθ0​dJ(θ0​⋅θ1​)​=2m1​∑n=1m​2(θ0​+θ1​xi​−yi)1=m1​∑n=1m​(θi​+θ1​xi​−yi)θ0​=θ0​−a⋅2m1​⋅∑n=1m​2(θ0​+θ1​xi​−yi)=θ0​−ma​∑n=1m​(θ0​+θ1​xi​−yi)θ1​=θ1​−a⋅dθ1​dJ(θ0​,θ1​)​dθ1​dJ(θ0​,θ1​)​=2m1​∑n=1m​2(θ0​+θ1​xi​−yi)⋅xi​dθ1​dj(θ0​,θ1​)​=m1​∑n=1m​(θ0​+θ1​xi​−yi)xi​θ1​=θ1​−ma​∑n=1m​(θ0​+θ1​xi​−yi)xi​​

凸函数

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/834543.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号