- 有监督学习与无监督学习
- 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=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}} J\left(\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 ) \alpha\frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) \quad α∂θj∂J(θ0,θ1)
在这里, ∂ ∂ θ j J ( θ 0 , θ 1 ) \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) \quad ∂θj∂J(θ0,θ1)是梯度函数的斜率,乘以α则表示梯度变化幅度
所以当θ1已经处在一个局部最优点时,它所在点的曲线斜率为0,即 ∂ ∂ θ j J ( θ 0 , θ 1 ) = 0 \frac{\partial}{\partial \theta_{j}} J\left(\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}} J\left(\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 \ 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)=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
凸函数线性回归的代价函数曲线通常都是一个碗状的,这被称为凸函数/弓函数,这个函数只有全局最优解,而没有局部最优解,可以视作是三维的二次函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)