02-13 Softmax回归

人工智能从入门到放弃完整教程目录:https://www.cnblogs.com/nickchen121/p/11686958.html

Softmax回归

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 \]

二、Softmax回归优缺点

2.1 优点

  1. 基于模型本身可以处理多分类问题

2.2 缺点

  1. 计算极其复杂

\(2^2\)

posted @ 2019-10-16 17:07  B站-水论文的程序猿  阅读(4604)  评论(0编辑  收藏  举报