softmax回归分析

3,148次阅读
没有评论

共计 3866 个字符,预计需要花费 10 分钟才能阅读完成。

softmax回归分析

Softmax是Logistic回归在多分类上的推广,即类标签y的取值大于等于2。假设有m个训练样本\( {(x(1),y(1)),(x(2),y(2)),\ldots,(x(m),y(m))} \),对于Softmax回归,其输入特征为:\(x(i) \in \Re_n+1 \),类标记为:\(y(i) \in {0,1,\ldots,k} \)。假设函数为对于每一个样本估计其所属的类别的概率\( p(y=j∣x) \),具体的假设函数为:
\[ h_\theta(x^{(i)})=\begin{bmatrix} p(y^{(i)}=1 \vert x^{(i)} ; \theta)\\p(y^{(i)}=2 \vert x^{(i)} ; \theta) \\p(y^{(i)}=3 \vert x^{(i)} ; \theta) \\ \vdots \\p(y^{(i)}=k \vert x^{(i)} ; \theta) \end{bmatrix} =\frac{1}{\sum_{j=1}^k e^{\theta^T_j x^{(i)}}}\begin{bmatrix} e^{\theta^T_1 x^{(i)}} \\e^{\theta^T_2 x^{(i)}} \\ \vdots \\ e^{\theta^T_k x^{(i)}}\end{bmatrix} \]

其中\( \theta\)表示的向量,且\( \theta_i \in \Re_n+1 \) 。则对于每一个样本估计其所属的类别的概率为:

\[ p(y^{(i)}=j \vert x^{{I}};\theta)=\frac{e^{\theta^T_j x^{(i)}}}{\sum_{l=1}^ke^{ \theta^T_l x^{(i)}}} \]
2.2、Softmax回归的代价函数
类似于Logistic回归,在Softmax的代价函数中引入指示函数I{⋅},其具体形式为:

\[ I(expression)= \begin{cases}
0,\quad if \quad expression=flase \\
1,\quad if \quad expression=true
\end{cases}
\]
那么,对于Softmax回归的代价函数为:
\[ J(\theta)=-\frac{1}{m} \Biggl[ \sum_{I=1}^m\sum_{j=1}^k I(y^{(i)}=j) log \frac{e^{\theta^T_j x^{(i)}}}{\sum_{l=1}^ke^{ \theta^T_l x^{(i)}}} \Biggr
] \]

2.3、Softmax回归的求解
对于上述的代价函数,可以使用梯度下降法对其进行求解,首先对其进行求梯度:

\[ \nabla_{\theta_j}J(\theta)=-\frac{1}{m} \sum_{I=1}^m \Biggl[ \sum_{j=1}^k \nabla_{\theta_j} I(y^{(i)}=j) log \frac{e^{\theta^T_j x^{(i)}}}{\sum_{l=1}^ke^{ \theta^T_l x^{(i)}}} \Biggr
] \]
已知,对于一个样本只会属于一个类别:
如果\( y^{i}=j\)则\( I(y^{i}=j)=1\)
\[ \begin{aligned}
\nabla_{\theta_j}J(\theta) &= -\frac{1}{m} \sum_{I=1}^m \Biggl[log \frac{e^{\theta^T_j x^{(i)}}}{\sum_{l=1}^ke^{ \theta^T_l x^{(i)}}} \Biggr] \\
&=-\frac{1}{m}\sum_{I=1}^m \Biggl[ \frac{\sum_{l=1}^ke^{ \theta^T_l x^{(i)}}}{e^{\theta^T_j x^{(i)}}} \cdot
\frac{e^{\theta^T_j x^{(i)}} \cdot x^{(i)} \cdot \sum_{l=1}^k e^{ \theta^T_l x^{(i)}}- e^{\theta^T_j x^{(i)}} \cdot x^{(i)} \cdot e^{\theta^T_j x^{(i)}}}{(\sum_{l=1}^k e^{ \theta^T_l x^{(i)}})^2} \Biggr] \\
&=-\frac{1}{m} \sum_{I=1}^m \Biggl[ \frac{\sum_{l=1}^k e^{ \theta^T_l x^{(i)}}-e^{ \theta^T_l x^{(i)}} }{\sum_{l=1}^k e^{ \theta^T_l x^{(i)}}} \cdot x^{(i)} \Biggr]
\end{aligned} \]
如果\( y^{i}=j\)则\( I(y^{i}=j)=0\)

\[ \begin{aligned}
\nabla_{\theta_j}J(\theta) &= -\frac{1}{m} \sum_{I=1}^m \Biggl[log \frac{e^{\theta^T_j x^{(i)}}}{\sum_{l=1}^ke^{ \theta^T_l x^{(i)}}} \Biggr] \\
&=-\frac{1}{m}\sum_{I=1}^m \Biggl[ \frac{\sum_{l=1}^ke^{ \theta^T_l x^{(i)}}}{e^{\theta^T_j x^{(i)}}} \cdot
\frac{- e^{\theta^T_j x^{(i)}} \cdot x^{(i)} \cdot e^{\theta^T_j x^{(i)}}}{(\sum_{l=1}^k e^{ \theta^T_l x^{(i)}})^2} \Biggr] \\
&=-\frac{1}{m} \sum_{I=1}^m \Biggl[ \frac{-e^{ \theta^T_l x^{(i)}} }{\sum_{l=1}^k e^{ \theta^T_l x^{(i)}}} \cdot x^{(i)} \Biggr]
\end{aligned}
\]
最终的结果为:
\[ -\frac{1}{m} \sum_{I=1}^m \Biggl[ x^{(i)}(I{Y^{(i)}=j }-p(Y^{(i)}=j \vert x^{(i)};\theta) ) \Biggr] \]
注意,此处的θj表示的是一个向量。通过梯度下降法的公式可以更新:

\[ \theta_j :=\theta_j-\alpha \nabla_{\theta_j}J(\theta) \]
5、Softmax回归中的参数特点
在Softmax回归中存在着参数冗余的问题。简单来讲就是参数中有些参数是没有任何用的,为了证明这点,假设从参数向量θj中减去向量ψ,假设函数为:

\[ \begin{aligned}
p(Y^{(i)} =j \vert x^{(i)};\theta)&=\frac{-e^{ (\theta_j-w)^T x^{(i)}}} {\sum_{l=1}^k e^{ (\theta_j-w)^T x^{(i)}}} \\
&=\frac{e^{ (\theta_j)^T} e^{ (-\theta_w)^T} x^{(i)}} {\sum_{l=1}^k e^{ (\theta_j)^T} e^{ (-\theta_w)^T} x^{(i)}} \\
&=\frac{-e^{ (\theta_j)^T x^{(i)}}} {\sum_{l=1}^k e^{ (\theta_j)^T x^{(i)}}}
\end{aligned}
\]
从上面可以看出从参数向量θj中减去向量ψ对预测结果并没有任何的影响,也就是说在模型中,存在着多组的最优解。

为了是算法能够尽可能简单,保留所有的参数,但是对代价函数加入权重衰减来解决参数冗余的问题,权重衰减即对参数进行正则化。

如对参数进行L2正则约束,L2正则为:
\[ \frac{\lambda}{2}\sum_{I=1}^k \sum_{j=0}^n \theta_{ij}^2 \]
此时,代价函数为:

\[ J(\theta)=-\frac{1}{m} \Biggl[ \sum_{I=1}^m\sum_{j=1}^k I(y^{(i)}=j) log \frac{e^{\theta^T_j x^{(i)}}}{\sum_{l=1}^ke^{ \theta^T_l x^{(i)}}} \Biggr
]+\frac{\lambda}{2}\sum_{I=1}^k \sum_{j=0}^n \theta_{ij}^2 \]
其中,λ>0,此时代价函数是一个严格的凸函数。

对该函数的导数为:

\[ \nabla_{\theta_j}J(\theta)=-\frac{1}{m} \sum_{I=1}^m \Biggl[ x^{(i)}(I({Y^{(i)}=j) }-p(Y^{(i)}=j \vert x^{(i)};\theta) ) \Biggr]+\lambda \theta_j \]
5、Softmax与Logistic回归的关系
Logistic回归算法是Softmax回归的特征情况,即k=2时的情况

6、多分类算法和二分类算法的选择
有人会觉得对于一个多分类问题,可以使用多个二分类来完成,对于多分类问题是直接选择多分类的分类器还是选择多个二分类的分类器进行叠加,在UFLDL中,作者给出了这样的解释:取决于类别之间是否互斥。

对于一个多分类的问题,是直接选择多分类器直接计算还是选择多个二分类器进行计算取决于问题中类别之间是否互斥。

是互斥的 –> Softmax回归
不是互斥的 –> 多个独立的Logistic回归

正文完
请博主喝杯咖啡吧!
post-qrcode
 
admin
版权声明:本站原创文章,由 admin 2018-03-01发表,共计3866字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码