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

CH3 最小二乘学习法

重点提炼

提出最小二乘学习法的缘故:

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

最小二乘学习法公式

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

对不同模型进行最小二乘法学习,得到最小二乘公式中的参数theta

1.线性模型

《图解机器学习-杉山将著》读书笔记---CH3  代入3.1公式,对参数求偏导,偏导=0时误差J有极值,此时  《图解机器学习-杉山将著》读书笔记---CH3

① 延伸1:线性模型中的基函数可以是三角多项式

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

② 延伸2:加权最小二乘学习法

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

2.核模型

《图解机器学习-杉山将著》读书笔记---CH3计算参数的方法与线性模型一样,只是把线性模型中的基函数置换成: 《图解机器学习-杉山将著》读书笔记---CH3

如果基函数是n*b的矩阵,且这两个值非常大时的处理方式----随机梯度法

1.nb很大导致的问题:内存不足

2.使用随机梯度法的前提:最小二乘学习公式中的J是凸函数,否则不能得到全局最优的最小二乘法参数解

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

3.随机梯度法的流程

 《图解机器学习-杉山将著》读书笔记---CH3这里的J还是最小二乘学习公式中的J,只是这里我们不再直接套用公式:《图解机器学习-杉山将著》读书笔记---CH3得到最小二乘的参数解,而是采用随机梯度法的方法得到最小二乘法中的参数。

4.随机梯度法提出的缘由:

不断迭代,使得现在参数与目标参数的差值无线接近一个很小的值,即3.3公式中的diata要趋向于0.

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

5.随机梯度法的收敛速度:由步幅以及diata值决定,要合理调整这些参数值。

P24

通过运行代码学习

“对线性模型进行最小二乘法学习,其中线性模型基函数是三角多项式”

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

在服务器这个地址下运行matlab

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

输入书上代码..........

变量解释:

1

x: 50*1的列向量,值域[-3,3],从小到大排列

X:1000*1的列向量,值域[-3,3],从小到大排列

xX是自己设置的,x是训练数据的输入,X是测试数据的输入,501000可以看成是样本数目

2

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

r50*1列向量,值域是随机的,y是训练数据的目标输出值

xy都是用来训练得到参数的

3

p: 50*1的列向量,初始化1

P:1000*1的列向量,初始化1

赋值三角函数值后:

p: 50*31的矩阵《图解机器学习-杉山将著》读书笔记---CH3      P:1000*31的矩阵《图解机器学习-杉山将著》读书笔记---CH3

pPxX对应的基函数

这里的基函数可以看成是n(样本数)*b(参数个数)的矩阵

4

由理论知识得:通过x的目标函数以及x的基函数p,可以得到p\y结果就是要求的最小二乘法中的参数t,当参数t得到之后,就能满足最小二乘法的式子最小,即能够保证最接近目标函数输出值,噪声最小

5

得到参数后,又有了测试数据的X,知道基于X值的基函数P,通过P与参数t,得到测试数据的输出值F=P*t

6

绘图

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

绿色线表示的是测试集;蓝色圆圈表示的是训练集;用训练集对线性模型进行最小二乘法学习,得到最小二乘法参数,其中线性模型基函数是三角多项式。用同样的参数,同样的基函数对应的线性模型,得到测试输出结果。所以yF的包络是一样的。

P30

通过运行代码学习

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

部分与p24代码类似;用训练数据xy得到最小二乘的参数t,其中c用随机的xi;得到t之后,要用测试数据的X与参数得到测试集的预测值F,其中k中的c用训练数据x

迭代次数o不同,收敛结果也不同:

for o=1:1 《图解机器学习-杉山将著》读书笔记---CH3for o=1:50《图解机器学习-杉山将著》读书笔记---CH3for o=1:50000《图解机器学习-杉山将著》读书笔记---CH3

 P24

补充知识来理解书上内容

1)绘图基本matlab语言

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

2)Matlab 输入help plot可以查到 这些画图参数的意义

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

 

3)Matlab中的/\区别

 

对于标量的运算来说
a/b 相当于a除以b
b\a 相当于ba
对于矩阵运算来说,一个矩阵的逆矩阵,相当于普通运算的倒数,所以
a/b 相当于a乘以b的逆
b\a 相当于b的逆乘以a

 

P25

补充知识来理解书上内容

矩阵正交性指的是矩阵与矩阵的转置相乘=单位矩阵

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

P30

补充知识来理解书上内容

1)

 《图解机器学习-杉山将著》读书笔记---CH3所以这里的代码中c用随机的xi来表示

2)Matlab rand*n表示取n数之内的随机数;Matlabceil表示取整