机器学习课堂笔记7

来源:互联网 发布:win10装mac虚拟机 编辑:程序博客网 时间:2024/04/30 01:03

1,机器什么时候可以学习

2,为什么机器可以学习

3,机器怎么学习

4,机器怎么样才能学得更好


总结学习过的线性模型

机器学习课堂笔记中涉及的线性模型有三种:线性分类,线性回归,逻辑回归。

这三者的共同点是他们本质上都是对输入X做线性变换,类似于向量内积:

s=W*X 其中s可以看做是由输入X与系数W内积产生的分数

他们的不同点在于:

1,假设空间不同,线性分类、线性回归、逻辑回归分别编号1、2、3的化,h1(x)=sign(s), h2(x)=s, h3(x)=theta(s)=exp(s)/(1+exp(s))

2,对错误的衡量error function不同。假设对于而非类问题,y属于{-1,+1},对三种线性模型的错误函数做一些代数变换后:

Ein1=if(sign(ys)<>1,1,0), 是不连续的,NP Hard问题,难以优化;

Ein2=(ys-1)^2是二次凸函数,有明确的方程式可解;

Ein3=ln(1+exp(-ys))(cross entropy),是平滑凸函数,可用梯度下降法求解;

画出三种error function的图如下:

(scaled ce=log2(1+exp(-ys))),这样变换是为了保证ce始终大于等于0/1错误

由于0/1错误(即线性二元分类错误)始终小于等于平方错误或sce,因此线性回归和逻辑回归是可以用来做分类问题的(只要他们的Ein够小,就能保证分类的错误也够小)

随机梯度下降法

梯度下降法的一个问题是:在第t步,为了找到合适的更新方向,需要计算所有样本的梯度,所以计算时间是O(N)级别的。为了简化计算节省时间,可以使用随机梯度下降法。随机梯度下降每一步只计算一个随机点(xn,yn)的梯度,然后将其反方向作为更新方向。其思想是


那么在随机梯度进行了N步以后,可以认为0均值的noise项已经趋近于0,那么平均的真实梯度就约等于平均的随机梯度了

随机梯度下降法对于大数据计算,或者数据是单笔输入(如online learning,无法成批输入数据)是比较适用的,但由于它引入了随机概念,所以会不稳定。而且随机梯度下降法的停止条件不同于梯度下降:因为其永远不会计算是否所有方向的梯度都为0(那样需要在第t步计算所有N个点,和随机梯度的思想矛盾),所以只能设置足够大的T,让其循环T次后停止


多分类问题的解决方法

方法1,将多分类问题拆分为多个2分类问题:

例如一共有K=4类,标签1,2,3,4. 可以做4次2分类,将数据设置为(1,非1),(2,非2)...进行训练。训练时可使用软分类的算法(如逻辑回归)输出概率,然后对样本取概率最大的类作为最后分类结果。

缺点:正负样本不均衡情况。如果类别特别多,例如K=100,而且各类别样本比较平均,就会发生分类器倾向于始终判负的情况。例如有10个样本标签是1,90个是非1,分类器即使最后判定所有类别都是非1,其正确率也是90%

方法2,将多分类问题拆分为多个2分类问题,并均衡样本:

类似方法1的案例,共K=100个类别。每次二分类时,不是将类别1和所有类别非1的样本进行训练,而是选出两组不同标签样本训练,例如(类比1,类别2)。这样会训练出多个分类器(100中取2的组合数)。预测新样本时,所有分类器一起预测,并取类别票数最多的样本作为样本分类结果:


非线性模型

线性模型的输入都是一次式,在数据非线性可分时不能很好地降低Ein,这可以理解为假设集合H中的假设数量不够多。当增加H的假设数量是,可以引入多项式,对原来的输入空间进行非线性转化:


理论上,转化可以是任意高维的空间,但是这要付出很大的计算上的代价,同时dvc会变得很高,容易出现过拟合现象






原创粉丝点击