x.1 Multiclass多分类问题
对于分类问题,往往指的是二分类问题,而对于二分类的decision boundary较为简单,而实际生活中会有很多问题是多分类问题,例如MNIST手写数字识别,
从特征空间上来看,二分类和多分类的区别在于边界函数的不同,但是表现在实际的神经网络的代码中,只是最后一层采用的激活函数不同,从sigmoid变成了softmax函数,即从将负无穷到正无穷映射到0,1变成了映射到一个总和为1的概率中。
请注意,激活函数层并没有可学习参数,一些ReLU变体可能有少量可学习参数。
我们来看一下将softmax和全连接层结合使用,在具体实现中,如果你有4个类别,则softmax会有四个可学习weight和bias,他们分别输出4个不同的数值向量a,将这四个输出的输出进行处理变为4个元素,总和为1的概率向量b,这里的概率向量b就是softmax最后的输出。但这里其实容易让人误导,即我们使用全连接层产生了4个输出向量a,我们将a变为b这个过程才叫softmax,softmax层本身并没有可学习参数。
我们再讲一个softmax的损失函数,即等于该类别正确时的-log,是MSE估计出来的,如下,
从神经网络上再来区分一下二分类和多分类,上面是二分类,下面是多分类,
在代码实现上,我们将Dense层和Softmax一块使用,但要注意softmax并没有可学习参数,
但是我们为何要将最后一层的总和一定要是1呢,不是1我们也能分类呀,而且精度更高,于是将最后一层换成Linear我们仍然可以多分类,