李宏毅机器学习深度学习课程第三讲Regression
简述
画外音,这一讲听完脑子里全是宝可梦哈哈哈哈哈哈哈。不过有一说一,李老师的课用来熟悉基本概念和符号语言(以及markdown和latex)真的太好了,对于我这种看电影似看完吴恩达老师课程的人来说。
这一章主要讲的就是Regression。
所谓Regression就是解决下面这个问题:
对 于 一 个 确 定 的 X → Y , 找 到 一 个 函 数 : f ^ ( x ) = y ^ 对于一个确定的X\to Y,找到一个函数:\\ \hat{f}(x)= \hat{y} 对于一个确定的X→Y,找到一个函数:f^(x)=y^
一般的过程:
1.选择模型;
2.损失函数评估
3,.最好的模型选择
选择模型
从 一 个 f u n c t i o n s e t : F = { f 1 , f 2 , . . . , f d } 中 选 择 函 数 模 型 进 行 拟 合 。 例 如 : 对 于 每 一 个 特 征 x i , 赋 予 权 重 向 量 w i , 以 及 最 终 的 b i a s 向 量 b , 得 到 线 性 模 型 : y ^ = b + ∑ i = 1 n w i x 从一个function \ set:\\F = \{{f}^{1}, {f}^{2},...,{f}^{d} \}中选择函数模型进行拟合。\\ 例如: 对于每一个特征{x}_{i},赋予权重向量{w}^{i},以及最终的bias向量b, 得到线性模型:\\ \hat{y}=b + \sum_{i=1}^n w_ix 从一个function set:F={f1,f2,...,fd}中选择函数模型进行拟合。例如:对于每一个特征xi,赋予权重向量wi,以及最终的bias向量b,得到线性模型:y^=b+i=1∑nwix
损失函数评估
有Training Data:
[ X n , Y n ] = [ x 0 , y 0 x 1 , y 1 . . . x n , y n ] [{X}^{n},{Y}^{n}] = \left[ \begin{matrix} {x}^{0},{y}^{0} \\ {x}^{1},{y}^{1} \\ ... \\ {x}^{n},{y}^{n} \end{matrix} \right] [Xn,Yn]=⎣⎢⎢⎡x0,y0x1,y1...xn,yn⎦⎥⎥⎤
对于损失函数
L
(
f
)
=
L
(
w
,
b
)
L(f)=L(w,b)
L(f)=L(w,b)
以线性模型的均方根误差为例为例:
∑
i
=
1
n
(
y
^
i
−
(
b
+
w
⋅
x
c
p
i
)
)
2
\sum_{i=1}^n {(\hat{y}^{i}-(b+w·x^{i}_{cp}))}^{2}
i=1∑n(y^i−(b+w⋅xcpi))2
模型选择+Gradient Descent
f ∗ = a r g m i n f L ( f ) {f}^{*} = \underset{f}{\mathrm{argmin}} L(f) f∗=fargminL(f)
w ∗ , b ∗ = a r g m i n w , b L ( w , b ) {w}^{*}, {b}^{*} = \underset{w,b}{\mathrm{argmin}}L(w, b) w∗,b∗=w,bargminL(w,b)
对于w的函数L(w),在L(w)可微分时即可以使用Gradient Descent,
数学过程描述:
对
于
w
∗
=
a
r
g
m
i
n
w
L
(
f
)
对于 w^{*} = \underset{w}{\mathrm{argmin}} L(f)
对于w∗=wargminL(f)
随 机 初 始 化 一 个 w 0 随机初始化一个{w}^{0} 随机初始化一个w0
计 算 d L d w ∣ w = w 0 定 义 学 习 率 η 更 新 : w 1 ← w 0 − η d L d w ∣ w = w 0 重 复 以 上 过 程 。 对 于 参 数 w 、 b , 更 新 优 化 的 方 式 会 变 成 : [ w 1 b 1 ] ← [ w 0 b 0 ] − η ∇ L 其 中 : ∇ L = [ ∂ L ∂ w ∣ w = w 0 ∂ L ∂ b ∣ b = b 0 ] 计算\quad \frac{\mathrm{d}L}{\mathrm{d}w}{|}_{w={w}^{0}}\\ 定义学习率\eta更新:\quad {w}^{1}\larr{w}^{0}-\eta{\frac{\mathrm{d}L}{\mathrm{d}w}{|}_{w={w}^{0}}}\\ 重复以上过程。\\ 对于参数w、b,更新优化的方式会变成: \left[ \begin{matrix} {w}^{1} \\ {b}^{1} \end{matrix} \right] \larr \left[ \begin{matrix} {w}^{0}\\ {b}^{0} \end{matrix} \right]-\eta{\nabla{L}}\\ 其中:\nabla{L}=\left[ \begin{matrix} \frac{\partial{L}}{\partial{w}}{|}_{w={w}^{0}} \\ \frac{\partial{L}}{\partial{b}}{|}_{b={b}^{0}} \end{matrix} \right] 计算dwdL∣w=w0定义学习率η更新:w1←w0−ηdwdL∣w=w0重复以上过程。对于参数w、b,更新优化的方式会变成:[w1b1]←[w0b0]−η∇L其中:∇L=[∂w∂L∣w=w0∂b∂L∣b=b0]
正则化
随着模型的复杂程度上升时,模型在训练集上的表现一般会越好。但当我们要评价一个模型时,会使用一个测试集来进行检验,这时候就会出现error比较大的情况,这便是模型的泛化能力。
模型出现这种问题这是有很多原因的,例如:
1.
可
能
是
因
为
未
选
择
到
合
适
的
特
征
:
x
h
i
d
d
e
n
2.
模
型
复
杂
度
过
高
导
致
过
拟
合
严
重
。
1.可能是因为未选择到合适的特征:{x}_{hidden}\\ 2.模型复杂度过高导致过拟合严重。
1.可能是因为未选择到合适的特征:xhidden2.模型复杂度过高导致过拟合严重。
这时候需要调整我们的模型,包括选择新的特征,以及使用正则化的方法,即在损失函数上增加一项,减小模型的复杂程度,使模型更加平滑,收到的影响更小,增加模型的鲁棒性:
L
=
∑
i
=
1
n
(
y
i
^
−
(
b
+
w
⋅
x
i
)
)
+
λ
w
2
L = \sum_{i=1}^{n}(\hat{{y}^{i}}-(b+w·{x}^{i}))+\lambda{{w}^{2}}
L=i=1∑n(yi^−(b+w⋅xi))+λw2
注:模型泛化能力的研究是研究泛化误差的概率上界来进行的,即泛化误差上界:
泛化误差上界具有以下特征:
1.
泛
化
误
差
上
界
与
样
本
容
量
相
关
,
样
本
量
N
↑
,
泛
化
误
差
上
界
→
0
2.
他
是
假
设
空
间
容
量
函
数
,
假
设
空
间
容
量
↑
,
泛
化
误
差
上
界
↑
1.泛化误差上界与样本容量相关,样本量N\uarr,泛化误差上界\to0\\ 2.他是假设空间容量函数,假设空间容量\uarr,泛化误差上界\uarr
1.泛化误差上界与样本容量相关,样本量N↑,泛化误差上界→02.他是假设空间容量函数,假设空间容量↑,泛化误差上界↑