概述
文章目录
- 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=1∑10(y^n−(b+w⋅xcpn))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=y−f′(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=1∑10(y^n−(b+w⋅xcpn))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)
∂w∂L=n=1∑10(y^n−(b+w⋅xcpn))(−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)
∂b∂L=n=1∑10(y^n−(b+w⋅xcpn))(−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. 线性回归中的梯度下降所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复