UFLDL之softmax回归

UFLDL之softmax回归

参考资料:UFLDL教程tornadomeet的博客
个人代码:github地址

主成份分析与白化

softmax回归算法简介

softmax回归是一种监督学习算法,该模型是logistic回归模型在多分类问题上的推广。多分类问题中,类标签 \(y\) 可以取两个以上的值(如手写数字识别0~9共10个种类的数字)。
假设共有 \(k\) 个类,对于给定的测试输入\(x\),softmax回归输出一个\(k\) 维的向量(向量元素和为1),向量每个元素对应了每个类别的概率。

softmax回归的数学表达

softmax的假设、代价函数与导数

softamx的假设形式为:

\[h_\theta(x^{(i)}) = \left[ \begin{matrix} p(y^{(i)} = 1 | x^{(i)}; \theta) \\ p(y^{(i)} = 2 | x^{(i)}; \theta) \\ \vdots \\ p(y^{(i)} = k | x^{(i)}; \theta) \end{matrix} \right] = \frac{1}{ \sum_{j=1}^{k}{e^{ \theta_j^T x^{(i)} }} } \left[ \begin{matrix} e^{ \theta_1^T x^{(i)} } \\ e^{ \theta_2^T x^{(i)} } \\ \vdots \\ e^{ \theta_k^T x^{(i)} } \\ \end{matrix} \right] \]

其中,\(\theta_1, \theta_2, \ldots, \theta_k \in \Re^{n+1}\)是模型的参数。矩阵前的公共项是为了对概率分布进行归一化,使得所有概率之和为1。

规定\(1\{\cdot\}\)为示性函数,满足:\(1\{值为真的表达式\} = 1\),考虑正则项,则其代价函数为:

\[J(\theta) = - \frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=1}^{k} 1\left\{y^{(i)} = j\right\} \log \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)} }} \right] + \frac{\lambda}{2} \sum_{i=1}^k \sum_{j=0}^n \theta_{ij}^2 \]

其中第一项可以认为是logistic回归代价函数的推广。由上述公式,可以得到利用梯度下降算法时候,导数表达式为:

\[\nabla_{\theta_j} J(\theta) = - \frac{1}{m} \sum_{i=1}^{m}{ \left[ x^{(i)} \left( 1\{ y^{(i)} = j\} - p(y^{(i)} = j | x^{(i)}; \theta) \right) \right]} + \lambda*\theta_j \]

参数冗余问题

由于指数函数的存在,softmax回归有一个冗余数据集,查看下式:

\[p(y^{(i)} = j | x^{(i)} ; \theta) = \frac{e^{(\theta_j-\psi)^T x^{(i)}}}{\sum_{l=1}^k e^{ (\theta_l-\psi)^T x^{(i)}}} = \frac{e^{\theta_j^T x^{(i)}} e^{-\psi^Tx^{(i)}}}{\sum_{l=1}^k e^{\theta_l^T x^{(i)}} e^{-\psi^Tx^{(i)}}} = \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)}}} \]

可见,从\(\theta_j\)中减去\(\psi\)不会影响函数的预测结果,这说明softmax回归模型存在冗余参数集。正则项可以帮助解决这一问题,另外,可以使\(\theta_j\)的每个元素减去\(\theta_j\)值当中的最大元素,从而限定最大项必须为零。

softmax和logistic对比

在Coursera公开课笔记中,提到logistic回归可以通过建立 \(k\) 个独立的二元分类器来解决多分类问题。softmax回归的特点在于:一是模型更加简化,二是 \(k\) 维向量的和为1,这说明了softmax各个类别是互斥的。
因此对于多分类问题,若问题的各个类别之间有交叉关系,则要使用logistic建立多个二元分类器而不是使用softmax。

posted @ 2016-11-07 12:28  lity99  阅读(607)  评论(0编辑  收藏  举报