Softmax多分类器与Softmax层
softmax分类器
softmax分类器是logistics回归在多分类问题上的推广。
同线性回归一样,多分类问题一样需要对数据特征进行加权求和,即将数据维度乘以权重进行求和,之后将各类所得值除以总值。所得即为归一化概率(Normalized Probabilities)。
$z = \sum _ { i = 0 } ^ { m } w _ { i } x _ { i }$
$f ( x ) = \frac { 1 } { z ^ { 1 } + z ^ { 2 } + z ^ { 3 } } \left[ \begin{array} { c } { z ^ { 1 } } \ { z ^ { 2 } } \ { z ^ { 3 } } \end{array} \right]$
$f ( x ) = \frac { 1 } { \sum _ { j = 1 } ^ { 3 } \sum _ { i = 0 } ^ { m } w _ { i } ^ { j } x _ { i } ^ { j } } \left[ \begin{array} { c } { \sum _ { i = 0 } ^ { m } w _ { i } ^ { 1 } x _ { i } ^ { 1 } } \ { \sum _ { i = 0 } ^ { m } w _ { i } ^ { 2 } x _ { i } ^ { 2 } } \ { \sum _ { i = 0 } ^ { m } w _ { i } ^ { 3 } x _ { i } ^ { 3 } } \end{array} \right]$
而上述函$z$是线性的,这使得增长幅度有限,为此引入指数函数。指数函数作为单调函数对表达式本身的物理含义并无影响,却可以极大地放大数值。
$z = e ^ { \sum _ { i = 0 } ^ { m } w _ { i } x _ { i } }$
$f ( x ) = \frac { 1 } { \sum _ { j = 1 } ^ { k } \mathrm { e } _ { j } ^ { \sum _ { i = 0 } ^ { m } w _ { i } x _ { i } } } \left[ \begin{array} { c } { \mathrm { e } _ { 1 } ^ { \sum _ { i = 0 } ^ { m } w _ { i } x _ { i } } } \ { \mathrm { e } _ { 2 } ^ { \sum _ { i = 0 } ^ { m } w _ { i } x _ { i } } } \ { \vdots } \ { \mathrm { e } _ { i = 0 } ^ { \sum _ { i = 0 } ^ { m } w _ { i } x _ { i } } } \end{array} \right]$
此外,需要指出的是,对于softmax分类器,其代价函数不需要考虑所有的分类项的误差。因为各个分类项的误差之间时彼此依赖的(各分类项概率总和为1),所以只需要考虑概率最大的输出即可。
softmax层
softmax层与softmax分类器类似,都是最终输出分类概率,所以在分类问题的深度学习网络中常常作为最后一层使用。
值得一提的是,根据softmax分类器的特性,如果需要输出$N* 1$的概率向量(N个分类),则softmax的输入维度也必须为$N * 1$,因此需要在softmax层之前加入一个全连接层,将上一层的输出转换为$N * 1$维度。