开门见山,softmax是logistic回归在多分类问题上的升级版
多分类问题的y值
对于二分类问题,我们用y=0或1就可以加以区分。对与C分类问题,我们用一个(C,1)的矩阵代表y值,例如对于一个3分类问题:[[0], [1], [0]]代表该物体属于第二类
我们在logistic回归中,y_hat表示元素为1的可能性,因此对于softmax,输出的第i行数值代表着该物体为第i类的可能性。所以我们可以推断出的性质是:softmax的y_hat加和应当等于1
softmax函数
我们令输入为一个(C,1)数组Z
令t[i] = exp(Z[i])
第 i 个输出为 a[i] = t[i] / sum(t[x])
可以看出a[i]的sum为1
对于logistic回归,sigmoid函数为
1 / (1 + exp(-z))
可以写作 exp(z)/ (exp(0)+ exp(z))
我们可以把logistic回归看成一个输入为z,另一个输入一直为0的softmax,似乎可以看出二者的一些联系。
在实现过程中,我们假设训练集X是n维的,应当先利用Z = WX +b 计算出一个C维的Z,然后利用softmax函数求出y_hat
直观结果
由下图可知softmax回归也是线性的,每一个分割线都为直线
使用多层神经网络再套上softmax函数应当可以解决非线性的多分类问题