本课程来自深度之眼,部分截图来自课程视频以及李航老师的《统计学习方法》第二版。
换了新老师:DODO,跟我读:都都
后面无监督部分的老师是:谈晨
公式输入请参考:在线Latex公式
本节内容都基本学过大概记录一下
前言
任务简介:理解统计学习方法的一些基本概念。
第1章是对统计学习中基本思想、基本概念以及常见问题类型的介绍。其中涉及的一些特定的技术不用深究。需要重点理解的内容是模型过拟合的含义、模型泛化能力两部分,另外掌握极大似然估计和梯度下降法的原理和思想。
学习目标:
0.观看导论,初步了解统计学习方法
1.理解模型过拟合产生的原因以及造成的影响。
2.理解机器学习的评价标准:模型的泛化能力。
3.熟悉极大似然估计和提督下降法基本思想和求解方法。
带苹果的是重点
监督学习
监督学习的实现步骤(原文P4-5):
- 得到一个有限的训练数据集合
- 确定模型的 假设空间,也就是所有的备选模型
- 确定模型选择的准则,即学习的策略
- 实现求解最优模型的算法
- 通过学习方法选择最优模型
- 利用学习的最优模型对新数据进行预测或分析
用图表示为:
上图中的数学表达:
训练集:
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}
T={(x1,y1),(x2,y2),...,(xN,yN)}
实例
x
x
x的特征向量:
x
=
(
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
n
)
)
T
x=(x^{(1)},x^{(2)},...,x^{(n)})^T
x=(x(1),x(2),...,x(n))T
就是样本,这个样本有
n
n
n个维度。
模型:
1)决策函数
Y
=
f
(
X
)
Y=f(X)
Y=f(X)
预测形式
y
=
f
(
x
)
y=f(x)
y=f(x)
2)条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)
预测形式
a
r
g
max
y
P
(
y
∣
x
)
arg\underset{y}{\max}P(y|x)
argymaxP(y∣x)
统计学习的三要素
1.模型(假设空间):
决策函数
F
=
{
f
∣
Y
=
f
θ
(
X
)
,
θ
∈
R
n
}
F=\{f|Y=f_{\theta}(X),\theta\in R^n\}
F={f∣Y=fθ(X),θ∈Rn}
我们的空间是三维的,在空间当中的每一个坐标都代表着空间当中的一个点。啊那么假设空间可以想象成生活当中的一个三维空间,整个空间里头的每一个点就是一个假设,就是一个模型,所有的这个函数都在这个空间当中,就好像把世界上所有的函数全都塞到了一个箱子里。那么这个箱子它就叫假设空间,从小到大见过没见过的函数都可以在这个假设空间中找到。
这里的函数是有参数
θ
\theta
θ决定的。
条件概率分布
F
=
{
P
∣
P
θ
(
Y
∣
X
)
,
θ
∈
R
n
}
F=\{P|P_\theta(Y|X),\theta\in R^n\}
F={P∣Pθ(Y∣X),θ∈Rn}
2.策略:
假设空间有这么大,我们如何去找到这个模型呢?怎么去确定
θ
\theta
θ那些参数呢?
答:可以用损失函数。整体的流程是这样子的,模型一开始什么也不会,里面所有的参数都是随机的。数据输进去后,模型很可能会给我们一些错误的答案,就像小孩一样,不懂他就瞎猜一个答案,那么我们要告诉他正确答案,同时要让他这个和错误的答案进行一个比较,让他知道当前的这个错误的答案和正确答案差距还有多少。
也就首先第一个我们要告诉模型,他当前预测错了。
第二个我们要告诉模型,预测错的偏差有多大,要弥补这个差距,这个差距怎么去量化呢?就是用损失函数。常见损失函数有:
0-1损失函数
L
(
Y
,
f
(
X
)
)
=
{
1
,
Y
≠
f
(
X
)
0
,
Y
=
f
(
X
)
L(Y,f(X))=\begin{cases} &1, Y\neq f(X) \\ & 0,Y=f(X) \end{cases}
L(Y,f(X))={1,Y=f(X)0,Y=f(X)
这个损失函数不好,就好像在你小的时候写作业,老师告诉你错了,你不知道有错在哪了,让你自己猜。
平方损失函数
L
(
Y
,
f
(
X
)
)
=
(
Y
−
f
(
X
)
)
2
L(Y,f(X))=(Y-f(X))^2
L(Y,f(X))=(Y−f(X))2
绝对损失函数
L
(
Y
,
f
(
X
)
)
=
∣
Y
−
f
(
X
)
∣
L(Y,f(X))=|Y-f(X)|
L(Y,f(X))=∣Y−f(X)∣
对数损失函数
L
(
Y
,
f
(
X
)
)
=
−
log
P
(
Y
∣
X
)
L(Y,f(X))=-\log P(Y|X)
L(Y,f(X))=−logP(Y∣X)
有了损失函数,下面要评估模型距离真实的标签差距有多大。第一个是经验风险最小化,就是把整个数据集每个样本都去跑一遍,对于每一个样本计算一个loss,然后用所有样本的loss去求一个平均值,如果这个值越大的话,代表从整体趋势上来说模型离真实的标签还比较远,如果这个值它比较小,说明模型啊挺符合数据的真实情况。
min
f
∈
F
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
\underset{f\in F}{\min}\cfrac{1}{N}\sum_{i=1}^N L(y_i,f(x_i))
f∈FminN1i=1∑NL(yi,f(xi))
还有一个结构风险最小化,它其实是加了一个正则项,防止过拟合
min
f
∈
F
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
\underset{f\in F}{\min}\cfrac{1}{N}\sum_{i=1}^N L(y_i,f(x_i))+\lambda J(f)
f∈FminN1i=1∑NL(yi,f(xi))+λJ(f)
3.算法
挑选一个合适的算法,使得可以求解最优模型
模型评估与选择
训练误差
1
N
∑
i
=
1
N
L
(
y
i
,
f
^
(
x
i
)
)
\cfrac{1}{N}\sum_{i=1}^N L(y_i,\hat f(x_i))
N1i=1∑NL(yi,f^(xi))
测试误差
1
N
′
∑
i
=
1
N
′
L
(
y
i
,
f
^
(
x
i
)
)
\cfrac{1}{N'}\sum_{i=1}^{N'} L(y_i,\hat f(x_i))
N′1i=1∑N′L(yi,f^(xi))
这里涉及到:训练集、测试集、验证集、过拟合几个概念,很简单,略过。
正则化与交叉验证
正则化Regularization就是防止模型过于复杂。例如可以用来约束模型的参数不能多,比方说100个参数,那么我要求30个参数一定要是0,那么我最后这个模型其实只有70个参数。另外一个例子就是约束模型的参数值不能过大,如果某个参数过大,说明这个参数对整体模型起到至关重要的作用,那么这个参数有可能会对整体的效果产生一个很剧烈的影响。这样是不好的,加入正则项后就会强制要求所有的模型参数都要非常小,不能有某个参数突然特别的大。
那么所以说它比方说某些政策下,它会强制要求所有的模型参数都要非常小,不能有某个参数突突然特别的大,啊那么每个节点对于整体的贡献都会变得小是吧?那么整体上来说也会变得保险,这个呢就是择校。
交叉验证cross validation:如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分别为训练集(training set)、验证集(validation set)和测试集(test set)。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。
1.简单交叉验证
2.S折交叉验证
3.留一交叉验证
泛化能力
定理1.1(泛化误差上界)对二类分类问题,当假设空间是有限个函数的集合
F
=
{
f
1
,
f
2
,
…
,
f
d
}
F=\{f_1,f_2,…,f_d\}
F={f1,f2,…,fd}时,对任意一个函数
f
∈
F
f\in F
f∈F,至少以概率
1
−
δ
,
0
<
δ
<
1
1-\delta,0<\delta<1
1−δ,0<δ<1,以下不等式成立:
R
(
f
)
≤
R
^
(
f
)
+
ϵ
(
d
,
N
,
δ
)
R(f)\leq\hat R(f)+\epsilon(d,N,\delta)
R(f)≤R^(f)+ϵ(d,N,δ)
其中
ϵ
(
d
,
N
,
δ
)
=
1
2
N
(
log
d
+
log
1
δ
)
\epsilon(d,N,\delta)=\sqrt{\cfrac{1}{2N}(\log d+\log\cfrac{1}{\delta})}
ϵ(d,N,δ)=2N1(logd+logδ1)
不等式左端
R
(
f
)
R(f)
R(f)是泛化误差,右端即为泛化误差上界。
不等式人话解释:泛化误差(也是期望风险
R
(
f
)
=
E
[
L
(
Y
,
f
(
X
)
)
]
R(f)=E[L(Y,f(X))]
R(f)=E[L(Y,f(X))])必然是小于等于训练误差(也就是经验风险,
R
^
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
^
(
x
i
)
)
\hat R(f)=\cfrac{1}{N}\sum_{i=1}^N L\left(y_i,\hat f(x_i)\right)
R^(f)=N1∑i=1NL(yi,f^(xi)),就是每个样本丢模型算出来的结果和真实值的误差和的平均值)加上一个很小的
ϵ
\epsilon
ϵ。
这里的证明就省略了,因为这个定理的要求比较苛刻:假设空间是有限个函数的集合,这个通常是不可能的,假设空间一般都包含无限个函数。
生成模型与判别模型
生成模型:出现联合分布(分子)的一定是生成模型
P
(
Y
∣
X
)
=
P
(
X
,
Y
)
P
(
X
)
P(Y|X)=\cfrac{P(X,Y)}{P(X)}
P(Y∣X)=P(X)P(X,Y)
判别模型:直接求条件概率
f
(
X
)
或
P
(
Y
∣
X
)
f(X)或P(Y|X)
f(X)或P(Y∣X)
通俗的例子:
如何知道女孩子的姓名呢?
生成方法:
我要是把她爸妈建模出来,直接问她爸妈不就行了吗?
判别方法:
她叫小红的概率是多少?她叫小刘的概率是多少?。。。
三大问题
分类问题
TP一将正类预测为正类数;
FN一将正类预测为负类数;
FP一将负类预测为正类数;
TN-将负类预测为负类数。
评价指标(evaluation metric)
精确率:预测为正类的样本中有多少被分对了
P
=
T
P
T
P
+
F
P
P=\cfrac{TP}{TP+FP}
P=TP+FPTP
召回率:在实际正类中,有多少正类被模型发现了
R
=
T
P
T
P
+
F
N
R=\cfrac{TP}{TP+FN}
R=TP+FNTP
可以这样理解:
红圈代表模型的预测结果,黄圈代表真实结果,绿色代表模型预测对的部分。
精确率就是绿色部分占红圈的比例;召回率就是绿色部分占黄圈的比例
通常希望红圈与黄圈重合,但是不可能,因此二者只能做trade of。
因此用F1值来衡量模型:
2
F
1
=
1
P
+
1
R
F
1
=
2
T
P
2
T
P
+
F
P
+
F
N
\cfrac{2}{F_1}=\cfrac{1}{P}+\cfrac{1}{R}\\ F_1=\cfrac{2TP}{2TP+FP+FN}
F12=P1+R1F1=2TP+FP+FN2TP
标注问题
输入:
x
=
(
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
n
)
)
T
x=\left (x^{(1)},x^{(2)},...,x^{(n)}\right )^T
x=(x(1),x(2),...,x(n))T
输出:
y
=
(
y
(
1
)
,
y
(
2
)
,
.
.
.
,
y
(
n
)
)
T
y=\left (y^{(1)},y^{(2)},...,y^{(n)}\right )^T
y=(y(1),y(2),...,y(n))T
常见的有任务有序列标注
分词:
回归问题
输出为连续值,经典就是ng的房价预测
总结
1.统计学习路线:设计模型->训练->预测
2.监督学习与非监督学习的联系与区别
3.统计学习三要素:模型、策略、算法
4.模型的评估:训练误差、验证误差、测试误差
5.正则化与交叉验证
6.泛化能力:泛化误差上界
7.生成模型与判别模型的联系与区别
8.分类问题:准确率、精确率、召回率、F1值
9.标注问题:序列标注
10.回归问题:输出为连续值