最近重新复习机器学习和深度学习相关的知识点,从XGBoost到SVM,再到CRF和Batch Normalization等,这些知识放在平时都知道是什么意思,都知道有什么用途;但是到了真正要说出它原理的时候,又说不出个所以然来,所以特此整理下,方便后续学习和知识梳理添加。
一、SVM原理
在理解SVM原理的时候,主要分三点理解,分别是:超平面、对偶问题、核函数。
超平面表示的是SVM分类的基础原理,对偶是对这个超平面计算过程的一个补充,而核函数则是在计算超平面是的一种优化方式。
超平面
首先拿二维的情况举个例子,如上图,假设有两种样本数据,代表着两种类型,这时候存在着一条线(二维情况下),可以把两个数据集分割开来,这就完成了分类的问题。
那更深入的挖一下,这样的线可能有很多条,那哪一条才是最优的那条线,具有比较好的泛化能力,可以笔记好的应对噪声?
从几何角度来说,两样本到超平面的间隔越大,抗干扰能力越强,所以最佳超平面就是以最大间隔把样本分开的超平面,也称之为最大间隔超平面。
其实也就是要先找到两侧离超平面最近的样本点,求出其到超平面的距离之和,即
。然后不同超平面,
不同,为了找到最佳超平面,我们需要最大化