机器学习课堂笔记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会变得很高,容易出现过拟合现象
- 机器学习课堂笔记7
- 机器学习课堂笔记1
- 机器学习课堂笔记2
- 机器学习课堂笔记3
- 机器学习课堂笔记4
- 机器学习课堂笔记5
- 机器学习课堂笔记6
- 机器学习课堂笔记8
- 机器学习课堂笔记(一)
- 机器学习课堂笔记(二)
- 机器学习课堂笔记(三)
- 机器学习课堂笔记(四)
- 机器学习课堂笔记(五)
- 机器学习课堂笔记(六)
- 机器学习课堂笔记(七)
- 机器学习课堂笔记(八)
- 机器学习课堂笔记(九)
- 机器学习课堂笔记(十)
- caffe中出现loss等于nan
- 欢迎使用CSDN-markdown编辑器
- Java中getResourceAsStream的用法
- ES6第一章关于let和const不得不说的故事
- 多线程Future+Callable实现并发查询
- 机器学习课堂笔记7
- QT中sql事务提交
- J2EE开发时的包命名规则
- Change
- 迭代器(Iterator)详解
- java poi 读取Excel
- 去除input里的空格
- 解决“画中画”
- 二维数组中的查找