VC的一些理解
来源:互联网 发布:java实现一个迭代器 编辑:程序博客网 时间:2024/06/04 18:43
而容量就反映了一组函数集对样本的区分能力,容量越大,对应的一组函数集区分能力就越大;注意容量的大小跟这组函数集自由参数的多少是没有必然联系的(不确信这样说是否合适),因为函数集{y=sin(w*x+b),w,b(-R}的vc为即为无穷大。
还有一个应该注意的问题是:vapnik定义vc维是指能够找到N个样本可以被一组函数集打散(不是任意N个样本都满足这个条件)的最大N。比如说二维平面上空间上对于所有的线性分类面,能够找到3个点可以被线性分类面打散,但不是任意三个点都能够满足这个条件(是不是?很简单的,相信你能够找到这样的三个点)。再说说svm,说白了就是个线性分类面,不过是定义在高维特征空间上的,跟感知机算法相比就多了一个最大间隔,没别的,呵呵。(当然,暂时不考虑核函数映射问题)。那为啥最大间隔最好呢?vapnik用vc维解释这回事:所有把两类样本以d间隔分开的线性函数组成的集合,假如记为F(随便了,statistical learning theory中好像不是这样记的,忘了),那么d越大,函数集F的VC维就越小(vapnik的书有证明),d取极限情况不就是最大间隔超平面吗?那为何vc维越小越好呢,就是因为这时推广能力(或者说泛化能力,generalization,随呢咋叫)好。统计学习理论中被叫烂了的那个结构风险最小化就是说这个事的。简单的说就是推广能力有两个因素决定:训练错误和置信范围(置信范围这个叫法很土),也就是STL中一个很重要不等式右边两项,而结构风险最小化就是最小化前面那两个的和;对于svm,既然都被线性分开了,训练错误当然就是零了,那分类器的泛化性能就只由置信范围来决定了,而vc维越小,置信范围就越小了。
因此,svm就是在最小化经验风险的基础上从vc维最小的函数集里面选择函数,不是吗?(别忘了,vapnik也给什么是机器学习下了个定义,就是从一组函数集里面选择函数,就这么简单)我们当然也可以用别的方法寻找最好的函数,只要在寻找的时候记住结构风险最小,那我们就可能找到别的机器学习算法了。
- VC的一些理解
- VC维的理解
- vc维的理解
- VC维的理解
- vc维的理解
- vc的一些常见问题
- VC的一些技巧
- vc++的一些错误
- vc的一些书
- [VC++] 一些学习VC++的网站
- ajax的一些理解
- 堆栈的一些理解~~
- 一些琐碎的理解
- stdarg的一些理解
- const 的一些理解
- svm的一些理解
- moc 的一些理解
- 范式的一些理解
- Android Dimension转换算法原理分析
- PhotoView 的功能及优势
- The accurate bloom allowances of reishi mushrooms
- Linux下PS1、PS2、PS3、PS4使用详解
- iOS所有键盘类型
- VC的一些理解
- TabActivity,LocalActivityManager,TabHost,TabWidget深度分析
- 利用pktgen发包工具做性能测试
- Android4.0 Launcher拖拽原理分析(一)
- Log4j配置
- Objective-C中的instancetype和id区别
- go语言设计哲学
- HDU 2602 Bone Collector 之01背包
- hdu 1849 nim游戏