全部笔记的汇总贴:《百面机器学习》-读书笔记汇总
没有最好的分类器,只有最合适的分类器。随着神经网络模型日趋火热,深度学习大有一统江湖之势,传统机器学习算法似乎已经彻底被深度学习的光环所笼罩。然而,深度学习是数据驱动的,失去了数据,再精密的深度网络结构也是画饼充饥,无的放矢。在很多实际问题中,我们很难得到海量且带有精确标注的数据,这时深度学习也就没有大显身手的余地,反而许多传统方法可以灵活巧妙地进行处理。
一、支持向量机
支持向量机(Support Vector Machine,SVM)是众多监督学习方法中十分出色的一种,几乎所有讲述经典机器学习方法的教材都会介绍。
- ★★★☆☆ 在空间上线性可分的两类点,分别向SVM分类的超平面上做投影,这些点在超平面上的投影仍然是线性可分的吗?
凸优化理论中的超平面分离定理(Separating Hyperplane Theorem,SHT)更加轻巧地解决。该定理描述的是,对于不相交的两个凸集,存在一个超平面,将两个凸集分离。对于二维的情况,两个凸集间距离最短两点连线的中垂线就是一个将它们分离的超平面。
- ★★★☆☆ 是否存在一组参数使SVM训练误差为0(高斯核为例)?
SVM的预测公式可以写为 f ( x ) = ∑ i = 1 m α i y ( i ) K ( x ( i ) , x ) + b K ( x , z ) = e − ∣ ∣ x − z ∣ ∣ 2 γ 2 f(x)=\sum_{i=1}^m\alpha_iy^{(i)}K(x^{(i)},x)+b\\K(x,z)=e^{-||x-z||^{\frac2{\gamma^2}}} f(x)=i=1∑mαiy(i)K(x(i),x)+bK(x,z)=e−∣∣x−z∣∣γ22其中 ( ( x ( 1 ) , y ( 1 ) ) , ⋯ , ( x ( m ) , y ( m ) ) ) ((x^{(1)},y^{(1)}),\cdots,(x^{(m)},y^{(m)})) ((x(1),y(1)),⋯,(x(m),y(m)))为训练样本,而 { α 1 , ⋯ , α m , b } \{\alpha_1,\cdots,\alpha_m,b\} { α1,⋯,αm,b}以及高斯核参数 γ \gamma γ为训练样本的参数。不考虑两点在同一位置,所以对于任意的 i ≠ j i\neq j i=j,有 ∣ ∣ x ( i ) − x ( j ) ∣ ∣ > ε ||x^{(i)}-x^{(j)}||>\varepsilon ∣∣x(i)−x(j)∣∣>ε。
我们可以对任意 i i i,固定 α i = 1 \alpha_i=1 αi=1以及 b = 0 b=0 b=0,只保留参数 γ \gamma γ,则有, f ( x ) = ∑ i = 1 m α i y ( i ) K ( x ( i ) , x ) + b = ∑ i = 1 m y ( i ) K ( x ( i ) , x ) = ∑ i = 1 m y ( i ) e − ∣ ∣ x − x ( i ) ∣ ∣ 2 γ 2 f(x)=\sum_{i=1}^m\alpha_iy^{(i)}K(x^{(i)},x)+b\\=\sum_{i=1}^my^{(i)}K(x^{(i)},x)\\=\sum_{i=1}^my^{(i)}e^{-||x-x^{(i)}||^{\frac2{\gamma^2}}} f(x)=i=1∑mαiy(i)K(x(i),x)+b=i=1∑my(i)K(x(i),x)=i=1∑my(i)e−∣∣x−x(i)∣∣γ22
将任意 x ( j ) x^{(j)} x(j)代入, f ( x ( j ) ) = ∑ i = 1 m y ( i ) e − ∣ ∣ x ( j ) − x ( i ) ∣ ∣ 2 γ 2 f(x^{(j)})=\sum_{i=1}^my^{(i)}e^{-||x^{(j)}-x^{(i)}||^{\frac2{\gamma^2}}} f(x(j))=i=1∑