我是靠谱客的博主 开朗雪碧,最近开发中收集的这篇文章主要介绍李宏毅机器学习 Regression1. Regression2. Example Application3. Step4. 梯度下降存在的问题5. 线性回归中的梯度下降,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 1. Regression
  • 2. Example Application
  • 3. Step
    • 3.1 Step1:模型
    • 3.2 Step2:函数的评估标准
    • 3.3 Step3:最优函数
  • 4. 梯度下降存在的问题
  • 5. 线性回归中的梯度下降
    • 5.1 单变量到多变量
    • 5.2 正则化

1. Regression

Regression(回归)的思想可以解决生活中的很多难题。比如根据过去的股票价格和时下的新闻资讯(NLP),从而预测未来的股票价格。比如自动驾驶,根据路况、车况、天气等因素,预测车辆行进的方向(方向盘的方向)和速度(油门和刹车)。比如进行商品推荐,根据用户过去的购买、收藏、浏览、评论、记录,从而判断新商品用户购买的概率。一句题外话,在实际工业界中,量化交易(股价预测)、自动驾驶、个性化推荐可能并不是按照回归的思想来做的。
在这里插入图片描述

2. Example Application

任务是预测宝可梦进化后的战斗力。
下图中公式中上标表示的是第nth 个样本,下标表示的是不同的特征。 x c p x_{cp} xcp示的是宝可梦进化前的CP值(这里cp14,表示的是这个妙蛙种子进化前的cp值为14)。 x s x_s xs表示的是宝可梦的品种。 x h p x_{hp} xhp表示的是宝可梦的hp(hit point,生命值)。 x w x_{w} xw表示的是宝可梦的weight。 x h x_{h} xh表示的是宝可梦的height。
在这里插入图片描述
在这里插入图片描述

3. Step

3.1 Step1:模型

模型指的是一组函数的集合(function set),其中函数的输入是宝可梦的特征x(各个参数),输出是宝可梦进化后的CP值(y)。

我们采用最简单的模型(线性模型),并且假设因变量只有一个,即宝可梦进化前的cp值,则表达式为 y = b + w ⋅ cdot x c p x_{cp} xcp。其中w和b均有无穷多种选择,所以函数空间中函数的取值(二元组)也为无穷多个。但是某些取值显然是不合理的,例如图中的 f 3 f_3 f3就是和进化前的 x c p x_{cp} xcp成反比的。

对单变量模型进行泛化,生成多变量线性模型,表达式为y = b + ∑ sum w i x i w_ix_i wixi。其中 x i x_i xi表示的是每个特征的取值, w i w_i wi表示的是每个特征对应的权重,b表示的是偏置(bias)。

在这里插入图片描述

3.2 Step2:函数的评估标准

由于函数空间中函数数量众多,如果没有一个评估标准,我们则无法选择到最优函数。
这里的模型评估标准的作用对象是训练数据。即在函数空间中选择某一个函数,然后使用评估标准函数对预测后的结果进行评估,从而得到函数的优劣。

在这里插入图片描述
在这里插入图片描述
在机器学习中,评估标准的专业术语称为损失函数(Loss Function)或者目标函数。在线性回归中,使用的是平方误差或者均方误差来作为损失函数。
L ( f ) = L ( w , b ) = ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) 2 L(f) = L(w, b) = sum_{n=1}^{10} (hat {y}^{n} - (b +wcdot x_{cp}^n ))^2 L(f)=L(w,b)=n=110(y^n(b+wxcpn))2
其中 y ^ hat {y} y^表示的是真实值,后者表示的是预测值。公式是对每个样本的误差求平方和。

在这里插入图片描述
下图中使用等高线图表示出哪些函数区域的效果较好(误差较小),哪些函数区域的效果较差(误差较大)。
在这里插入图片描述

3.3 Step3:最优函数

从理论上来说,如果存在评估标准和函数空间,就可以使用穷举法选择出最优函数。但实际上来说,这是不可取的(宇宙毁灭之时也可能计算不完)。所以我们需要在有限时间内(而且不能太慢),求出最优函数。

我们把问题进行转化,把求最优函数问题转化为最优化问题。
在这里插入图片描述
求最优化问题有两种思路:一种是解析解,一种是使用梯度下降(迭代法)。课程只介绍了梯度下降法。

为什么能够使用梯度下降法?本质上是从微分的定义出发的。
Δ y = f ′ ( x 0 ) ⋅ Δ x Delta y = f^{'}(x_0)cdot Delta x Δy=f(x0)Δx
Δ y = f ( x + x 0 ) − f ( x ) Delta y = f(x + x_{0}) - f(x) Δy=f(x+x0)f(x)
如果导数为正、而且 Δ x Delta x Δx为正,则y就会增加。而我们要使y减小,所以使得 y = y − f ′ ( x 0 ) ⋅ Δ x y = y - f^{'}(x_0) cdot Delta x y=yf(x0)Δx
注意上述公式是在 Δ x Delta x Δx极其小的情况下才满足。在机器学习中,我们将 Δ x Delta x Δx称作为学习率,一般取0.01或者0.001。

在这里插入图片描述
在这里插入图片描述
我们把单个参数推广到多个参数中。其中 ∇ L nabla L L指代的是梯度函数。
在这里插入图片描述
下图为梯度下降的直观图。
在这里插入图片描述

4. 梯度下降存在的问题

1.局部最优化点。2.鞍点。
在这两种类型的点中,导数为0,则无法继续进行迭代,停留在当前点中。
在这里插入图片描述

5. 线性回归中的梯度下降

由于线性回归中的损失函数为凸函数,所以不存在局部最优点。
在这里插入图片描述
线性回归的对应的偏导数,如下所示:
L ( w , b ) = ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) 2 L(w,b) = sum_{n=1}^{10}(hat y^n - (b + w cdot x_{cp}^n))^2 L(w,b)=n=110(y^n(b+wxcpn))2
∂ L ∂ w = ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) ( − x c p n ) frac{partial L}{partial w}= sum_{n=1}^{10}(hat y^n - (b + w cdot x_{cp}^n))(-x_{cp}^n) wL=n=110(y^n(b+wxcpn))(xcpn)
∂ L ∂ b = ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) ( − 1 ) frac{partial L}{partial b}= sum_{n=1}^{10}(hat y^n - (b + w cdot x_{cp}^n))(-1) bL=n=110(y^n(b+wxcpn))(1)
在这里插入图片描述
使用测试数据对模型进行评价
在这里插入图片描述
是否存在更好的函数,使得训练数据和测试数据的评估误差都变小呢?根据泰勒公式,任何形式的函数都可以近似表示为若干个多项式函数之和。而我们现在使用的是线性函数,尝试使用多项式函数降低数据误差。

二 次 函 数 二次函数
在这里插入图片描述
三 次 函 数 三次函数
在这里插入图片描述
四 次 函 数 四次函数
在这里插入图片描述
在这里插入图片描述
五 次 函 数 五次函数 在这里插入图片描述
由上述的结果可知,到四次函数的时候,训练和测试综合效果最好,而五次函数中虽然训练误差最小,但是测试误差很大,此时为过拟合。

在下图中,由于高幂次函数空间包括了低幂次函数空间。虽然幂次的上升,会使得训练数据的误差不断减小,但是可能也会使得测试数据的误差急剧增加。
在这里插入图片描述
在这里插入图片描述

5.1 单变量到多变量

之前的模型只考虑了宝可梦进化前的cp值。如果我们添加其他因变量,如宝可梦的种类。就可以使用开关函数。
在这里插入图片描述
在这里插入图片描述
可使用 δ 函 数 delta函数 δ来实现宝可梦品种的选择。
在这里插入图片描述
加入宝可梦品种作为自变量以后,即使是线性模型,训练和测试误差都很小。
在这里插入图片描述
可以考虑把宝可梦的体重、身高、HP都加入到自变量中。
在这里插入图片描述

把宝可梦品种加入到自变量中,如果使用二次函数进行拟合,就会出现过拟合的现象。
在这里插入图片描述

5.2 正则化

正则化的公式如下所示,需要注意的是正则化项不包括偏置项。
在这里插入图片描述
正则化公式中的 λ lambda λ取值越大,会使得函数越平滑。这是由于 λ lambda λ的值越大,在尽量使损失函数变小的前提下,就会使得w越小,w越小就会使得函数越平滑。

λ lambda λ本质上表示的是惩罚项,惩罚项过大可能就会影响学习的效果,因为惩罚项过大,就会导致参数空间变的比较小,所以最终结果一般,如下图所示:
在这里插入图片描述

最后

以上就是开朗雪碧为你收集整理的李宏毅机器学习 Regression1. Regression2. Example Application3. Step4. 梯度下降存在的问题5. 线性回归中的梯度下降的全部内容,希望文章能够帮你解决李宏毅机器学习 Regression1. Regression2. Example Application3. Step4. 梯度下降存在的问题5. 线性回归中的梯度下降所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部