开始学习机器学习有一段时间了,一开始认为做应用的只知道简单的理论就够了,因此更加倾向于学习《机器学习实战》、《集体智慧编程》这类书籍,在学习了一段时间后,尤其是看了一段时间斯坦福大学的公开课以后,有一种强烈的欲望想要去学习机器学习中的数学,但是迫于自身数学能力不是很强,啃起《统计学习方法》这本书来,还是有一定难度的。只作为一个笔记,以后可以温故而知新。
在真正开始学习之前,其实统计学习方法中还是有一些基本概念需要理解的,在书中第一章。
基本概念
基本模型:
其中:
这是一种线性分类模型,属于判别模型。
定义:假设输入空间(特征空间)是 χ⊆Rn ,输出空间为 y={+1−1 ,输入表示实例的特征向量,对应于输入空间的点;输出表示实例的类别。由输入空间到输出空间的如下函数:
学习策略
目的:找出一个线性可分的超平面,定义一个损失函数,求 ω 和 b ,并将损失函数极小化。
损失函数的选取:
- 自然选择是误分类点的个数,但是这个函数并不是参数的连续可导函数,不易于优化;
可以选择误分类点到超平面的距离,即:
1∥ω∥|ω⋅x+b|,∥ω∥为ω的L2范数 推导过程:
对于任何误分类点来说:−yi(ω⋅xi+b)>0,1∥ω∥|ω⋅x+b|=−1∥ω∥yi(ω⋅xi+b),
因此,所有误分类点到超平面的距离之和为:L(ω,b)=−1∥ω∥∑xi∈Myi(ω⋅xi+b),M为所有的误分类点。
L(ω,b) 即为感知机模型的损失函数。学习算法
现在的问题变成了求解 L(ω,b) 的最优化问题。在这里有两种形式:原始形式和对偶形式。
原始形式
描述:给定数据集 T={(x1,y1),(x2,y2)⋅⋅⋅(xn,yn)} 。其中, xi∈X=R , yi∈Y={+1,−1}.i=1,2,3⋅⋅⋅,N ,求参数 ω,b ,使其成为以下最优化问题的解:
minw,bL(ω,b)=−∑xi∈Myi(ωxi+b),其中 M 为误分类点的集合。随机梯度下降法:建议查阅相关资料。
求解(求梯度):
对于
ω 求偏导:▽ω(ω,b)=−∑xi∈Myixi,
对于 b 求偏导:▽b(ω,b)=−∑xi∈Myi 随机选取误分类点 (xi,yi), 对于 ω,b 进行更新:
ω←ω+ηyixi,b←b+ηyi,其中, η 表示为步长或者学习率,控制梯度下降的速度。综上所述,感知机学习算法的原始形式表述如下:
输入:训练数据集 T={(x1,y1),(x2,y2)⋅⋅⋅(xn,yn)} ,其中, xi∈X=R , yi∈Y={+1,−1}.i=1,2,3⋅⋅⋅,N ;学习率 η(0<η≤1) ;
输出: ω,b ;感知机模型 f(x)=sign(ω⋅x+b) 。
步骤:
- 选取初值 ω0,b0 ;
- 在训练集中选取数据 (xi,yi) ;
- 如果
yi(ω⋅xi+b)≤0:
ω←ω+ηyixi,b←b+ηyi
- 转至step2,直到训练集中没有误分类点。
对偶形式
不想写了。。。。。。。