前言:
这次的内容是Ng关于machine learning关于svm部分的一些笔记。以前也学过一些svm理论,并且用过libsvm,不过这次一听Ng的内容,确实收获不少,隐约可以看到从logistic model到svm model的过程。
基础内容:
使用linear模型进行分类时,可以将参数向量看成一个变量,如果代价函数用MSE表示,则代价函数的图形类似抛物线(以新的变量为自变量);如果代价函数用交叉对数公式表示时,则其代价函数曲线如下:
在Logistic回归中其代价函数可以表示为如下:
其中第一项是训练样本的误差,第二项是权值系数的惩罚项,λ为权值惩罚系数,其中的m为训练样本的个数,我们的目标是找到合适的θ使代价函数值最小,很明显这个优化过程和m无关。因此我们可以将m去掉,另外将权衡预测误差和权值惩罚的变量λ放在第一项的前面,并将其改为C时,其代价函数就变成了svm的代价函数了,公式如下:
其中的cost1和cost0函数表示当训练样本的标签为1和0时对应的代价函数。
svm分类器通常也叫做large margine分类器。它的目标不仅是找出训练样本的分界面,而且需要使得用该分界面分开的样本距离最大,因为从直观意义上来看,这样的分类器泛化能力会更强,而前面的linear模型和logistic模型分类器就不具备这种能力。
如果将svm中的代价函数中的C值取很大的话(成千上百),就可以让训练样本的准确率非常高,甚至可以将第一项的误差可以变为0,这时候的代价函数优化可以转换为:
但是C太大也不一定是好事,C太大的话可能会去严重的考虑每一个outliers,反而使得泛化能力变差,当然这些只是宏观上的理解,要做到精确的调整还是离不开数学的。
Ng在介绍svm的数学理论时复习了一个数学基础知识点:向量u和v的内积可以这样计算:u’v=p*||v||,其中p为向量v在向量u上的投影,可以为正或负。
当C很大时,此时目标函数变成了参数平方和的一半,我们要求这个目标函数值最小,且满足参数与每个样本之间的内积值要大(正样本时,该值需满足大于1,负样本时则满足小于-1),由上面的数学知识可以知道需保证每个样本在参数θ上的投影距离要大,满足上述要求的θ向量即我们所对应的分界面的法向量,对应的分界面为我们所求,这个也就是可以从几何上给出svm分类器通常叫做large margine分类器的原因。
下面来看kernel方法的引入,首先看一个非线性分类问题,如下图所示:
一般情况下我们会建立一个高维参数模型去拟合分界曲线,可以将图中右边模型公式中的x1,x2,x1x2,x1^2,x2^2等看做是原始样本的特征(这里的特征不再是简单的x1,x2了,而是它们乘积的各种组合等),参数θ仍然是我们需要学习的model参数。但是在svm理论框架中,我们需要用采用新的特征,将上面的x1,x2,x1x2,x1^2,x2^2…分别用f1,f2,f3…来表示,且新特征f的来源为:原始输入特征x与某个l(小写的L)的相似度,比如说:
因此此时在训练svm模型时,当标签为1时,需满足下面成立:
现在的问题就差该怎么确定L了,即:
在使用svm分类器时,一般的做法是将每个训练样本都当成一个l,而训练样本与每个l都可以计算一个f,因此假设有m个样本,每个样本x是n维的,则本来n维的特征x,现在变成了m维的新特征f了。因此此时svm的代价函数变成了:
有很多svm的变种,其中一部分代价函数的表达式主要为后面权值的惩罚项稍有不同。
使用svm库时需要调整不少参数,以高斯核为例,此时至少需要考虑的参数有C和σ,其中C为训练样本误差项的惩罚系数,该值太大时,会对训练样本拟合很好(bias小),但对测试样本效果就较差(variance大),即属于过拟合现象,反之亦然。σ为高斯函数的方差系数,该值过大时,学习到的新特征比较smoth,属于欠拟合现象,反之亦然。
在svm中不使用kernel的意思其实表示的是使用线性kernel,这一般适用于当输入样本的特征x维数n较大,而训练样本的个数m又较小的时候。而当n比较小,而m比较大时一般会采用非线性kernel,常见的有高斯kernel。
当然还可以使用其它的kernel,但是需要满足Mercer定理,不然的话在使用svm库对其优化时其过程不会收敛。常见的核还有多项式核,表达式为(x’*θ+contant)^degree,它有2个参数需要选择;String kernel(多用于文本处理),chi-sqare kernel,histogram interection kernel等。不过据Ng本人介绍,他自己一生中都是用高斯kernel,其它的kernel几乎没用过,因为不同的核在一般的分类问题中区别不大(特殊问题可能会有不同)。
最后需要注意的是在使用svm时一定要将训练样本数据的进行归一化。
相关推荐
这份笔记的目的是为了帮助读者深入理解机器学习和数据挖掘的基础知识,并提供实际操作的指导。 首先,我们来探讨机器学习。机器学习是人工智能的一个分支,其核心思想是通过让计算机从数据中自动学习规律,从而实现...
斯坦福大学2014年的机器学习课程是机器学习领域里极具影响力的课程之一,本课程内容广泛覆盖了机器学习、数据挖掘、统计模式识别等相关主题。以下是对该课程的个人笔记中涉及知识点的详细解读。 机器学习是人工智能...
- Octave:一种免费的数值计算软件,提供类似于MATLAB的环境,常用于机器学习和数据挖掘中的算法开发和实验。 在文档的个人笔记中,作者不仅记录了课程的主要内容,还提到了学习资源的获取、翻译过程、以及对课程的...
本课程总共需要10周时间,分为18节课,涵盖了机器学习、数据挖掘、统计模式识别等广泛的主题。课程中将使用大量的案例研究,并提供包括视频、PPT课件在内的丰富学习资源。作者黄海广作为中国海洋大学2014级博士生,...
这包括了解机器学习算法的构建,以及如何将算法用于智能机器人、文本理解、计算机视觉、医疗信息分析、音频处理和数据挖掘等领域。 课程的组织结构也是经过精心设计的。每一部分都包括案例研究,帮助学习者更好地...
机器学习的算法可以分为监督学习和无监督学习,它们在数据挖掘和统计模式识别方面有广泛的应用。 监督学习涉及到使用带标签的训练数据来训练模型,其中模型的性能能够通过已知的输出进行评估。参数算法如线性回归和...
结合个人笔记,学习者可以更全面地理解机器学习的理论基础和实际应用。 总的来说,这份学习资源为深入理解和掌握机器学习提供了丰富的材料。通过系统学习,读者可以逐步构建起自己的机器学习知识体系,从而在实际...
机器学习是当代信息技术领域中的核心议题之一,其主要研究计算机系统如何通过学习人类的学习行为来获得新的知识或技能,并在获取知识的基础上不断改进其性能。这一过程不依赖于传统的演绎推理,而是通过归纳和综合,...
《数据挖掘与机器学习》是中山大学数据科学与计算机学院开设的一门重要课程,旨在引导学生深入了解和掌握数据挖掘的基本理论和技术,以及机器学习的核心算法和应用。这门课程的课件是经过精心整理的,包含了丰富的...
从这段内容中,我们可以得知机器学习的基础知识,如何通过实际案例来应用机器学习,以及如何制作和维护个人学习笔记的过程。这种学习方法不仅有助于加深对机器学习知识的理解,还可以帮助学习者培养良好的学习习惯和...
笔记首先可能涵盖了机器学习的基础概念,包括监督学习、无监督学习和半监督学习。监督学习是机器学习的主流方法,其中最典型的是分类和回归问题,如逻辑回归和决策树。无监督学习则主要处理未标记数据,如聚类和关联...
在实际应用中,机器学习可以帮助我们解决各种问题,从构建智能机器人到文本理解、计算机视觉,再到医疗信息处理和数据挖掘。 【监督学习】 监督学习是机器学习的一种主要方法,它依赖于带有标签的训练数据。这些...
### 机器学习基础知识与关键技术 #### 一、课程概述与背景 **《机器学习个人笔记完整版v5.24-A4打印版》** 是基于斯坦福大学2014年的机器学习课程所编写的个人笔记。这门课程由著名机器学习专家吴恩达教授主讲,是...
因此,机器学习课程中还包括了丰富的案例研究,如构建智能机器人(感知与控制)、文本理解(搜索引擎优化、反垃圾邮件)、计算机视觉、医疗信息处理、音频分析和数据挖掘等领域。通过这些案例研究,学员能够了解如何...
本课程涵盖机器学习的基础知识和高级主题,包括学习算法在构建智能机器人(如感知与控制)、文本理解(如网络搜索与反垃圾邮件)、计算机视觉、医疗信息处理、音频处理和数据挖掘等方面的应用。课程利用大量的案例...
【机器学习个人笔记完整版v5.321】是一份详尽的笔记,记录了对斯坦福大学2014年机器学习课程的精髓理解。这份笔记由黄海广整理,旨在帮助学习者掌握该课程的主要内容。课程强调了机器学习在人工智能领域的核心地位,...
机器学习不仅用于理论研究,还被广泛应用于多个实际领域,如构建智能机器人(感知和控制)、文本理解(网络搜索和反垃圾邮件)、计算机视觉、医疗信息分析、音频处理和数据挖掘等。 知识点五:机器学习的实践操作 ...