《图解机器学习-杉山将著》读书笔记---CH4

CH4 带有约束条件的最小二乘法

重点提炼

提出带有约束条件的最小二乘学习法的缘故:

 《图解机器学习-杉山将著》读书笔记---CH4

左图中可见:一般的最小二乘学习法有个缺点----对于包含噪声的学习过程经常会过拟合

右图:有了空间约束之后,学习到的曲线能避免过拟合,得到想要的学习结果(x-y关系)。  

带有约束条件的最小二乘学习法具体方法

1.部分空间约束的最小二乘学习法

① 公式

 《图解机器学习-杉山将著》读书笔记---CH4

在上面普通最小二乘学习法公式基础上添加一个约束条件: 《图解机器学习-杉山将著》读书笔记---CH4

② 对线性模型进行带有约束条件的最小二乘学习,得到参数theta

 《图解机器学习-杉山将著》读书笔记---CH4

③ 优点:只用了参数空间的一部分

④ 缺点:由于正交投影矩阵P的设置有很大的自由度,所以在实际应用中操作较难

2.L2约束的最小二乘学习法----圆形

① 公式

在普通最小二乘学习法公式基础上添加一个约束条件:《图解机器学习-杉山将著》读书笔记---CH4

这里用到的二范数,所以此种方法叫做L2,L2约束的最小二乘学习法是以参数空间的原点为圆心,在一定半径范围的圆内进行求解。

② 利用拉格朗日对偶问题,通过求最优解问题,得到参数theta

 《图解机器学习-杉山将著》读书笔记---CH4

③ 优点:比起部分空间约束的最小二乘学习法,L2约束的最小二乘学习法在操作上相对容易,避免了空间约束方法中有很大自由度去设置矩阵P

3.一般L2约束的最小二乘学习法----椭圆形

① 公式

在普通最小二乘学习法公式《图解机器学习-杉山将著》读书笔记---CH4基础上添加一个约束条件:《图解机器学习-杉山将著》读书笔记---CH4,可以把参数限制在椭圆形状的数据区域内

② 参数的解《图解机器学习-杉山将著》读书笔记---CH4

如何选择模型?

1.L2约束的最小二乘学习法中选择高斯核模型的参数影响:

带宽h太小

函数会呈锯齿状

带宽h太大

函数过于平滑

正则化参数太小

过拟合现象明显

正则化参数太大

结果趋于直线

 

 

 

 

 

 

所以要选择合适的带宽以及正则化参数

2.模型选择的含义

采用不同的输入训练样本,来决定机器学习算法中包含的各个参数值,叫做模型选择。

3.模型选择的一般流程

最重要的是第三步泛化误差,即对未知的测试样本求预测误差

 《图解机器学习-杉山将著》读书笔记---CH4

4.交叉验证法求泛化误差

① 提出原因:可以通过交叉验证求得最小的泛化误差,从而确定最佳的模型参数;交叉验证法可以对泛化误差进行较为精确的评估,防止强过拟合

② 思路:把训练样本的一部分拿出来作为测试样本

③ 算法流程:

 《图解机器学习-杉山将著》读书笔记---CH4

带有约束条件的最小二乘学习法结合交叉验证法,在实际应用中是非常有效的回归方法!

P33

通过运行代码学习

1.“对线性模型进行部分空间约束的最小二乘法学习,其中线性模型基函数是三角多项式

 《图解机器学习-杉山将著》读书笔记---CH4

公式中的约束矩阵P即代码中的PP,在这里是手动进行设置的,也可以通过后续ch13节中的pca基于数据进行设置。满足的条件是:

 《图解机器学习-杉山将著》读书笔记---CH4

《图解机器学习-杉山将著》读书笔记---CH4,其中第一行到第十一行这部分子矩阵上的对角线上值为1,其它都为0

普通最小二乘法学习结果

 《图解机器学习-杉山将著》读书笔记---CH4

受约束的最小二乘法学习结果

 《图解机器学习-杉山将著》读书笔记---CH4

与x-y训练数据做比较

 《图解机器学习-杉山将著》读书笔记---CH4

结果显示,通过约束设置,使得过拟合得到了一定程度的减轻。

《图解机器学习-杉山将著》读书笔记---CH4

P33

补充知识来理解书上内容

Matlab diag函数

X = diag(v):向量v在方阵X的主对角线上

例:

v=[1 2 3];
diag(v)

ans =

1 0 0
0 2 0
0 0 3

P36

通过运行代码学习

“对高斯核模型进行l2约束的最小二乘学习”

下面的kK分别是训练集以及测试集中的基函数《图解机器学习-杉山将著》读书笔记---CH4,这里因为用了高斯核,所以

 《图解机器学习-杉山将著》读书笔记---CH4

《图解机器学习-杉山将著》读书笔记---CH4

无约束的最小二乘法中,参数解《图解机器学习-杉山将著》读书笔记---CH4,所以有: 《图解机器学习-杉山将著》读书笔记---CH4

因此就得到了输出观测值:《图解机器学习-杉山将著》读书笔记---CH4

L2约束的最小二乘法中,参数解《图解机器学习-杉山将著》读书笔记---CH4,所以 《图解机器学习-杉山将著》读书笔记---CH4

 得到了L2约束后的输出观测值y

 《图解机器学习-杉山将著》读书笔记---CH4

 可视化结果:绿色是无约束的最小二乘法后输出的预测值y,红色是L2约束的最小二乘法输出的预测值y,蓝色圈是真实的训练数据的输出值y

可见红色部分即L2参数约束后,有效防止了过拟合。

 《图解机器学习-杉山将著》读书笔记---CH4

 P36

补充知识来理解书上内容

Matlab repmat函数

 《图解机器学习-杉山将著》读书笔记---CH4

 Matlab eye函数

eye(n)会生成n*n的矩阵,且正对角线上都是1,其它都是0

 《图解机器学习-杉山将著》读书笔记---CH4

 P42

通过运行代码学习

“对高斯核模型的l2约束的最小二乘学习法进行交叉验证---得到最小的泛化误差---从而选择最佳的高斯核模型参数

带宽h设为0.030.33三种可能;正则化参数lameda设为0.00010.1100三种可能

 《图解机器学习-杉山将著》读书笔记---CH4

 把50训练集平均分为m=5等份

 《图解机器学习-杉山将著》读书笔记---CH4

 下面这步之后,训练集还是被平分为5份,只是顺序全部随机化了

 《图解机器学习-杉山将著》读书笔记---CH4

《图解机器学习-杉山将著》读书笔记---CH4

 1.当h=0.03

(1)对编号为234540个作为训练集得到参数,再得到编号为1作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

① Lameda=0.0001时计算误差

② Lameda=0.1时计算误差

③ Lameda=100时计算误差

(2)对编号为134540个作为训练集得到参数,再得到编号为2作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

④ Lameda=0.0001时计算误差

⑤ Lameda=0.1时计算误差

⑥ Lameda=100时计算误差

(3)对编号为124540个作为训练集得到参数,再得到编号为3作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

⑦ Lameda=0.0001时计算误差

⑧ Lameda=0.1时计算误差

⑨ Lameda=100时计算误差

(4)对编号为123540个作为训练集得到参数,再得到编号为4作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

⑩ Lameda=0.0001时计算误差

11 Lameda=0.1时计算误差

12 Lameda=100时计算误差

(5)对编号为123440个作为训练集得到参数,再得到编号为5作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

 13 Lameda=0.0001时计算误差

14 Lameda=0.1时计算误差

15 Lameda=100时计算误差

2.当h=0.3

(1)对编号为234540个作为训练集得到参数,再得到编号为1作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

 16 Lameda=0.0001时计算误差

17 Lameda=0.1时计算误差

18 Lameda=100时计算误差

(2)对编号为134540个作为训练集得到参数,再得到编号为2作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

19 Lameda=0.0001时计算误差

20 Lameda=0.1时计算误差

21 Lameda=100时计算误差

(3)对编号为124540个作为训练集得到参数,再得到编号为3作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

22 Lameda=0.0001时计算误差

23 Lameda=0.1时计算误差

24 Lameda=100时计算误差

(4)对编号为123540个作为训练集得到参数,再得到编号为4作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

 25 Lameda=0.0001时计算误差

26 Lameda=0.1时计算误差

27 Lameda=100时计算误差

(5)对编号为123440个作为训练集得到参数,再得到编号为5作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

28 Lameda=0.0001时计算误差

29 Lameda=0.1时计算误差

30 Lameda=100时计算误差

3.当h=3

(1)对编号为234540个作为训练集得到参数,再得到编号为1作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

31 Lameda=0.0001时计算误差

32 Lameda=0.1时计算误差

33 Lameda=100时计算误差

(2)对编号为134540个作为训练集得到参数,再得到编号为2作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

34 Lameda=0.0001时计算误差

35 Lameda=0.1时计算误差

36 Lameda=100时计算误差

(3)对编号为124540个作为训练集得到参数,再得到编号为3作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

37 Lameda=0.0001时计算误差

38 Lameda=0.1时计算误差

39 Lameda=100时计算误差

(4)对编号为123540个作为训练集得到参数,再得到编号为4作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

40 Lameda=0.0001时计算误差

41 Lameda=0.1时计算误差

42 Lameda=100时计算误差

(5)对编号为123440个作为训练集得到参数,再得到编号为5作测试集的y,再计算泛化误差《图解机器学习-杉山将著》读书笔记---CH4

43 Lameda=0.0001时计算误差

44 Lameda=0.1时计算误差

45 Lameda=100时计算误差

 所有循环经历后得到的误差:是一个3*3*5的矩阵

 《图解机器学习-杉山将著》读书笔记---CH4

 求5组训练集上的泛化误差均值,并选出其中最小误差值

 《图解机器学习-杉山将著》读书笔记---CH4

 得到对应的最佳参数h=0.3lameda=0.1,计算最佳参数时的参数,以及真正测试集的输出结果,可视化拟合结果:

 《图解机器学习-杉山将著》读书笔记---CH4

 P42

补充知识来理解书上内容

Matlab floor函数

 《图解机器学习-杉山将著》读书笔记---CH4

 Matlab randperm函数

 《图解机器学习-杉山将著》读书笔记---CH4

《图解机器学习-杉山将著》读书笔记---CH4

 Matlab 中数值关系符号

 《图解机器学习-杉山将著》读书笔记---CH4

 Matlab mean函数

mean (A, 3) 是对矩阵A中第三维求均值

Matlab min函数

min(A,[],2)返回一个列向量,其第i个元素是A矩阵的第i行上的最大值