- 有监督学习与无监督学习
- 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+θ1xJ(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
代价函数三维图,以θ0, θ1为x、y坐标轴
梯度下降算法梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数 J ( θ 0 , θ 1 ) J(theta_{0}, theta_{1}) J(θ0,θ1) 的最小值
- 随机θ0, θ1分配初值
- 不断改变,找到正确的θ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,因为这永远都是错的
-
α:学习率,用来控制我们在梯度下降的幅度,α越大,梯度下降的越快
✅梯度下降算法应满足同步更新的条件,即θ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+θ1xJ(θ0,θ1)=2m1∑n=1m(hθ(xi)−yi)2求θ0,θ1,使J(θ0,θ1)→min?J(θ0,θ1)=2m1∑n=1m(θ0+θ1xi−yi)2θ0=θ0−a⋅dθ0dJ(θ0,θ1)dθ0dJ(θ0⋅θ1)=2m1∑n=1m2(θ0+θ1xi−yi)1=m1∑n=1m(θi+θ1xi−yi)θ0=θ0−a⋅2m1⋅∑n=1m2(θ0+θ1xi−yi)=θ0−ma∑n=1m(θ0+θ1xi−yi)θ1=θ1−a⋅dθ1dJ(θ0,θ1)dθ1dJ(θ0,θ1)=2m1∑n=1m2(θ0+θ1xi−yi)⋅xidθ1dj(θ0,θ1)=m1∑n=1m(θ0+θ1xi−yi)xiθ1=θ1−ma∑n=1m(θ0+θ1xi−yi)xi
凸函数线性回归的代价函数曲线通常都是一个碗状的,这被称为凸函数/弓函数,这个函数只有全局最优解,而没有局部最优解,可以视作是三维的二次函数



