机器学习与计算机视觉入门项目——视频投篮检测(三)
在第二部分,我记录了实验中提取图像特征的HOG算子及其实现代码,我们接下来就要构造几个简单的分类器,对数据集的HOG特征来分类,实现进球/不进球的分类任务。
分类器的设计和选择
实验中要用到的分类模型主要有四个:
- logistic回归
- SVM支持向量机
- MLP多层感知机
- CNN卷积神经网络
构建分类器的过程中总有许多因素会对最终性能产生影响,比如数据的增广方式、模型的超参数、是否引入某个修正项等等。不同因素的组合会产生非常多的可选方案,因此我们采用交叉验证和绘制ROC曲线的形式来确定模型的最优超参数,并比较不同参数及不同模型的优劣。交叉验证和ROC曲线在随后都会讲到。
几种损失函数
函数名称 | 形式 |
---|---|
均方误差损失 | M S E = − 1 n ∑ i = 1 n ( y ^ i − y i ) 2 MSE=-\frac{1}{n} \sum_{i=1}^{n} (\widehat{y}_{i}-y_i)^2 MSE=−n1i=1∑n(y i−yi)2 y i y_i yi是数据的真实标签, y ^ i \widehat{y}_i y i是模型的输出结果 |
平均交叉熵损失 | − 1 m [ ∑ i = 1 m ∑ j = 0 1 1 { y ( i ) = j } l o g p ( y ( i ) = j ∣ x ( i ) ; θ ) ] -\frac{1}{m}[\sum_{i=1}^{m}\sum_{j=0}^{1}\ 1\{ y^{(i)}=j\}\ log \ p(y^{(i)}=j\mid x^{(i)};\theta)] −m1[i=1∑mj=0∑1 1{ y(i)=j} log p(y(i)=j∣x(i);θ)] 1 { ⋅ } 1\{ \cdot \} 1{ ⋅}是指示函数,当 y ( i ) = j y^{(i)}=j y(i)=j时函数值为1否则为0 |
0 − 1 0-1 0−1损失 | L 0 , 1 = ∑ i = 0 m I f ( x ( i ) ) ≠ y ( i ) L_{0,1}=\sum_{i=0}^{m}\ I_{f(x^{(i)})\ne y^{(i)}} L0,1=i=0∑m If(x(i))̸=y(i) I x I_x Ix也是指示函数,0-1损失相当于记录了模型分类出错的次数 |
负对数似然损失 | N L L ( θ , D ) = − ∑ i = 0 ∣ D ∣ l o g P ( Y = y ( i ) ∣ x ( i ) , θ ) NLL(\theta,D)=-\sum_{i=0}^{\mid D \mid}\ log\ P(Y=y^{(i)}\mid x^{(i)},\theta) NLL(θ,D)=−i=0∑∣D∣ log P(Y=y(i)∣x(i),θ) |
L 1 L1 L1正则化 | E ( θ , D ) = N L L ( θ , D ) + λ ∣ ∣ θ ∣ ∣ 1 E(\theta,D)=NLL(\theta,D)+\lambda\mid \mid \theta \mid \mid_1 E(θ,D)=NLL(θ,D)+λ∣∣θ∣∣1 ∣ ∣ θ ∣ ∣ p = ( ∑ j = 0 ∣ θ ∣ ∣ θ j ∣ p ) 1 p p = 1 \mid \mid \theta \mid \mid_p=(\sum_{j=0}^{\mid \theta\mid}\ \mid \theta_j \mid^p)^{\frac{1}{p}} \quad p=1 ∣∣θ∣∣p=(j=0 |