写在前面
这篇文章将从3个角度:加权、模版匹配与几何来理解最后一层全连接+Softmax。掌握了这3种视角,可以更好地理解深度学习中的正则项、参数可视化以及一些损失函数背后的设计思想。
全连接层与Softmax回顾
深度神经网络的最后一层往往是全连接层+Softmax(分类网络),如下图所示,图片来自StackExchange。
先看一下计算方式:全连接层将权重矩阵与输入向量相乘再加上偏置,将\(n\)个\((-\infty, +\infty)\)的实数映射为\(K\)个\((-\infty, +\infty)\)的实数(分数);Softmax将\(K\)个\((-\infty, +\infty)\)的实数映射为\(K\)个\((0, 1)\)的实数(概率),同时保证它们之和为1。具体如下:
\[\hat{\mathrm{y}} = softmax(\mathrm{z}) = softmax(\mathrm{W}^{T} \mathrm{x} + \mathrm{b}) \]
其中,\(\mathrm{x}\) 为全连接层的输入,\(W_{n \times K}\) 为权重,\(\mathrm{b}\)为偏置项,\(\hat{\mathrm{y}}\)为Softmax输出的概率,Softmax的计算方式如下:
\[softmax(z_j) = \frac{e^{z_j}}{\sum_K e^{z_j}} \]
若拆成每个类别的概率如下:
\[\hat{y_j} = softmax(z_j) = softmax(\mathrm{w}_{j} \cdot \mathrm{x} + b_j) \]
其中,\(\mathrm{w}_{j}\)为图中全连接层同一颜色权重组成的向量。
该如何理解?
下面提供3个理解角度:加权角度、模版匹配角度与几何角度
加权角度
加权角度可能是最直接的理解角度。
通常将网络最后一个全连接层的输入,即上面的\(\mathrm{x}\),视为网络从输入数据提取到的特征。
\[z_j = \mathrm{w}_{j} \cdot \mathrm{x} + b_j = w_{j1} x_1 + w_{j2} x_2 + \dots + w_{jn} x_n + b_j \]
将\(\mathrm{w}_{j}\)视为第\(j\)类下特征的权重,即每维特征的重要程度、对最终分数的影响程度,通过对特征加权求和得到每个类别的分数,再经过Softmax映射为概率。
模板匹配
也可以将\(\mathrm{w}_{j}\)视为第\(j\)类的特征模板,特征与每个类别的模板进行模版匹配,得到与每个类别的相似程度,然后通过Softmax将相似程度映射为概率。如下图所示,图片素材来自CS231n。
如果是只有一个全连接层的神经网络(相当于线性分类器),将每个类别的模板可以直接可视化如下,图片素材来自CS231n。
如果是多层神经网络,最后一个全连接层的模板是特征空间的模板,可视化需要映射回输入空间。
几何角度
仍将全连接层的输入\(\mathrm{x}\)视为网络从输入数据提取到的特征,一个特征对应多维空间中的一个点。
如果是二分类问题,使用线性分类器\(\hat{y} = \mathrm{w} \cdot \mathrm{x} + b\),若\(\hat{y}>0\)即位于超平面的上方,则为正类,\(\hat{y}