目录
- Softmax回归
- 一、Softmax回归详解
- 1.1 让步比
- 1.2 不同类之间的概率分布
- 1.3 目标函数
- 1.4 目标函数最大化
- 二、Softmax回归优缺点
- 2.1 优点
- 2.2 缺点
Softmax回归属于多分类\(c_1,c_2,\ldots,c_k\)模型,它通过估计某个样本属于\(k\)个类别的各自的概率达到多分类的目的。它是逻辑回归的一般形式,即当\(k=2\)的时候退化为逻辑回归。
一、Softmax回归详解1.1 让步比
由于softmax回归更多的是逻辑回归的多分类形式,此处只给出softmax的定义及公式。
让步比可以理解成有利于某一特定事件的概率,可以定义为
\[{\frac{p}{1-p}} \]
在已知二分类问题的情况下每个分类的概率分别为\(\hat{y_i}\)和\(1-\hat{y_i}\),可以定义logit函数,即让步比的对数形式(log-odds)为
\[\begin{align} \log{it}(\hat{y_i}) & = \log{\frac{p(y=1|x,\omega)}{p(y=0|x,\omega)}} \\ & = \log{\frac{\hat{y_i}}{1-\hat{y_i}}} \\ & = \log{\frac{{\frac{1}{1+e^{-\omega^Tx}}}}{{\frac{-\omega^Tx}{1+e^{-\omega^Tx}}}}} \\ & = \omega^Tx \end{align} \]
其中\(\log{it}(p)\)函数等于事件发生的概率除以不发生的概率取对数,即表示特征值和对数概率之间的线性关系。
1.2 不同类之间的概率分布
现在假设有一个\(k\)元分类模型,即样本的输出值为\(c_1,c_2,\ldots,c_k\),对于某一个实例预测为\(c_i\)样本的概率总和为\(1\),即
\[\sum_{i=1}^k p(y=i|x,\omega) =1 \]
该\(k\)元分类模型依据让步比的对数形式可以得到
\[\begin{align} & \ln{\frac{p(y=1|x,\omega)}{p(y=k|x,\omega)}} = {\omega_1^T}x \\ & \ln{\frac{p(y=2|x,\omega)}{p(y=k|x,\omega)}} = {\omega_2^T}x \\ & \cdots \\ & \ln{\frac{p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} = {\omega_{k-1}^T}x \\ & \ln{\frac{p(y=k|x,\omega)}{p(y=k|x,\omega)}} = {\omega_{k}^T}x = 0 \\ \end{align} \]
通过对上述公式化简可得
\[\begin{align} & {\frac{p(y=1|x,\omega)}{p(y=k|x,\omega)}} = e^{{\omega_1^T}x} \\ & {\frac{p(y=2|x,\omega)}{p(y=k|x,\omega)}} = e^{{\omega_2^T}x} \\ & \cdots \\ & {\frac{p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} = e^{{\omega_{k-1}^T}x} \\ \end{align} \]
\[\begin{align} e^{{\omega_1^T}x}+e^{{\omega_1^T}x}+\cdots+e^{{\omega_{k-1}^T}x} & = \sum_{i=1}^{k-1} e^{{\omega_i^T}x} \\ & = {\frac{p(y=1|x,\omega)}{p(y=k|x,\omega)}} + {\frac{p(y=2|x,\omega)}{p(y=k|x,\omega)}} + \cdots + {\frac{p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} \\ & = {\frac{p(y=1|x,\omega)+p(y=2|x,\omega)+\cdots+p(y=k-1|x,\omega)}{p(y=k|x,\omega)}} \\ & = {\frac{1-p(y=k|x,\omega)}{p(y=k|x,\omega)}} \\ \end{align} \]
既得\(p(y=k|x,\omega)={\frac{1}{1+\sum_{i=1}^{k-1} e^{{\omega_i^T}x}}}\)
通过\(p(y=k|x,\omega)\)即可推出\(p(y=j|x,\omega)={\frac{e^{{\omega_j^T}x}}{1+\sum_{t=1}^{k-1} e^{{\omega_t^T}x}}} \quad j=1,2,\ldots,k-1\),因此可以得到\(k\)元分类模型的\(k\)个类的概率分布为
\[p(c=k|x,\omega)= \begin{cases} {\frac{e^{{\omega_j^T}x}}{1+\sum_{t=1}^{k-1} e^{{\omega_t^T}x}}} \quad j=1,2,\ldots,k-1 \quad if类别为1,2,\ldots,k-1 \\ {\frac{1}{1+\sum_{i=1}^{k-1} e^{{\omega_i^T}x}}} \quad if类别为k \\ \end{cases} \]
1.3 目标函数
上一节基于\({\omega_k^T}x=0\)计算出每个分类的概率,然而现实中往往\({\omega_k^T}x\neq0\),可以使用上一节的推导过程假设\({\omega_k^T}x\neq0\)则可以推导出\(k\)元分类模型的\(k\)个类的概率分布为
\[p(c=k|x,\omega)={\frac{e^{{\omega_j^T}x}}{\sum_{t=1}^{k} e^{{\omega_t^T}x}}} \quad j=1,2,\ldots,k \]
通过上述\(k\)个类别的概率分布可得似然函数
\[\begin{align} L(\omega) & = \prod_{i=1}^m \prod_{k=1}^k p(c=k|x_i,\omega)^{{y_i}_k} \\ & = \prod_{i=1}^m \prod_{k=1}^k ({\frac{e^{({\omega_k^T}x_i)}}{\sum_{t=1}^k e^{{\omega_t^T}x_i}}})^{y_ik} \end{align} \]
通过似然函数即可得对数似然函数即目标函数(注:该目标函数与交叉熵损失函数的形式一致,二元逻辑回归可以理解为交叉熵损失函数两个类变量的特殊形式,Softmax回归可以理解成交叉熵损失函数的多个类变量的特殊形式,交叉熵为
\[\begin{align} J_m(\omega) & = \log{L(\omega)} \\ & = \sum_{i=1}^m\sum_{k=1}^k {y_i}_k ({\omega_k^T}x_i - \log\sum_{t=1}^k e^{({\omega_t^T}x_i)}) \end{align} \]
1.4 目标函数最大化
由于Softmax回归和逻辑回归都可以使用梯度上升法使得目标函数最大化,并且方式一样,因此此处只给出目标函数对参数的偏导。
\[{\frac{\partial{J(\omega)}}{\partial\omega_k}}=\sum_{i=1}^m ({y_i}_k-p({y_i}_k|x_i,\omega_k))x_i \]
2.1 优点
- 基于模型本身可以处理多分类问题
2.2 缺点
- 计算极其复杂
\(2^2\)