Bilinear classifiers for visual recognition_NIPS09

Bilinear模型作为linear模型的泛化版本,一般是为了提升模型的表达能力,但是这篇文章是反过来的:作者把参数$W$分解为一些低秩矩阵,也即“因子”【factor】的积,进而减少参数数量,防止过拟合。

具体得说,原本线性SVM的模型是
\begin{equation} \label{eq:1}
L(W)=\frac{1}{2}Tr(W^TW)+C\sum_nmax(0,1-y_nTr(W^TX_n)
\end{equation}
$X \in R^{n_y*n_x*n_f}$, $n_y$和$n_x$是空间维度,$n_f$是特征维度。为简化讨论,下面固定$n_f=1$
通过对W进行低秩分解【这里的秩的约束通过$W_x$和$W_y$的秩不会超过$d$来体现】
\begin{equation}
W=W_yW^T_x,\ where\ \ W_y\in R^{n_y*d}, W_x\in R^{n_x*d}
\end{equation}
这样子对$W$进行分解后的Bilinear SVM可以重新写成
\begin{equation}
L_(W_y, W_x)=\frac{1}{2}Tr(W_xW_y^TW_yW_x^T)+C\sum_nmax(0, 1-y_nTr(W_xW_y^TX_n))
\end{equation}
然而这个形式不好优化,我们得把它写成像公式$\ref{eq:1}$的形式,即
\begin{equation}
L(\tilde{W}_y, W_x)=\frac{1}{2}Tr(\tilde{W}_y^T\tilde{W}_y)+C\sum_nmax(0,1-y_nTr(\tilde{W}_y^T\tilde{X}_n))\\
where\ \tilde{W}_y=W_yA^{\frac{1}{2}}, \tilde{X}_n=X_nW_xA^{-\frac{1}{2}}, A=W_x^TW_x
\end{equation}
这是一个biconvex的目标函数,可以用coordinate descent来解
如果现在有$M$个任务,每个任务都有不同的数据,那么我们限定所有的任务共享相同的参数空间,即
\begin{equation}
L(W)=\frac{1}{2}\sum_mTr(W^{T}W)+\sum_mC_m\sum_nmax(0, 1-y_n^mTr(W^{T}X_n^m))
\end{equation}
这个模型还可以扩展成Multilinear的模型
其他的SVM模型,如Structural SVM,也可以写成这种形式

实验


作者使用了行人检测的数据集INRIA-MOTION[1]类的数据集UCF-Sports[2],使用的是HOG特征和流特征flow feature[1]

[1] Human detection using oriented histograms of flow and appearance
[2] Action MACH a spatio-temporal Maximum Average Correlation Height filter for action recognition