# Softmax Classifier笔记

> 2018年8月10日， 罗周杨

支持向量机(SVM)是两个最常用的分类器之一，另一个就是**Softmax classifier**，它和损失函数和SVM不一样。如果说逻辑回归分类器是二分类器，那么softmax就是多分类器。

不同于SVM把输出$f(x_{i};W)$作为分数（未经校准并且可能难以解释），softmax的输出是一个**归一化概率(normalized class probabilities)**。

Softmax使用**交叉熵(cross-entropy loss)** 代替了**hinge loss(即$\max(0,-)$函数）**。

**cross-entropy loss**公式如下：

$$L_{i}=-log(\frac{e^{f_{y_{i}}}} {\sum_{j} e^{f_{j}}})$$

或者写成：

$$L_{i}=-f_{y_{i}}+log\sum_{j}e^{f_{j}}$$

其中$f_{j}$表示第$j$个元素的分数$f$。

和Multiclass SVM classifier一样，对于整个数据集的损失定义为：

\begin{align}
L&=\frac{1}{N}\sum_{j}L_{i}+\lambda R(W) \\
 &=\frac{1}{N}\sum_{j}-log(\frac{e^{f_{y_{i}}}} {\sum_{j} e^{f_{j}}})+\lambda R(W)
\end{align}


## Softmax function

Softmax function的定义如下：

$$f_{j}(z)=\frac{e^{z_{j}}}{\sum_{k}e^{z_{k}}}$$

它对于真正的分数向量$z$压成一个(0,1)区间的值，这些值的和为1。

根据信息论，真实分布$p$和估计分布$q$之间的**交叉熵**定义为：

$$ H(p,q)=-\sum_{x}p(x)logq(x)$$

因此，Softmax分类器就是在最小化估计的类别概率（$p=\frac{e^{f_{y_{i}}}} {\sum_{j} e^{f_{j}}}$）和真实分布之间的交叉熵。

**疑问**：

* **交叉熵和softmax函数的更具体的解释**。

从概率论的角度，式子：

$$
P(y_{i}|x_{i};W)=\frac{e^{f_{y_{i}}}} {\sum_{j} e^{f_{j}}}
$$

可以解释成：正确类别y关于输入x和权重矩阵W的**概率**。

**疑问**:

* **概率论更加具体的解释**。


## SVM和Softmax的区别：




* Softmax提供的是每一个类别的"概率”，打上冒号是因为，这个“概率”直接影响于正则化参数$\lambda$的值。


c8514987cdad778450aecc7c647b776d1b430d2d
ipynb
Jupyter Notebook
softmax_classifier.ipynb
luozhouyang/machine-learning-notes
332bea905398891fed4a98aa139eac02c88cb5ae
Apache-2.0
2018-09-07T06:47:18.000Z
2022-01-25T06:14:41.000Z
softmax_classifier.ipynb
luozhouyang/machine-learning-notes
332bea905398891fed4a98aa139eac02c88cb5ae
Apache-2.0
2018-10-18T06:40:19.000Z
2019-11-16T01:48:39.000Z
softmax_classifier.ipynb
luozhouyang/machine-learning-notes
332bea905398891fed4a98aa139eac02c88cb5ae
Apache-2.0
2018-09-27T10:50:21.000Z
2022-01-25T06:20:23.000Z
Qwen/Qwen-72B
1. YES
2. YES