到目前为止,我们已经学过一个分类模型了,那就是逻辑回归。我们知道逻辑回归这个模型很好的解决了二元分类问题,遇到多元分类的情况,逻辑回归虽然也能解决,但是稍显笨拙了一点,尤其特征多的情况下,不但运算量大,还要等价成多个二元分类问题,处理起来的复杂程度也会加大。
之前几讲介绍了神经网络的基础知识和如何理解神经网络,所以神经网络肯定有他的强大之处,今天介绍一下神经网络解决多元分类的主要思路。
当我们有不止两个种类时(也就是y=1,2,3….),比如以下这种情况,如果我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,那么在输出层我们应该有4个值。例如,第一个值为1或用于预测是否是行人,第二个值为1或用于判断是否为汽车,第三个值为1或用于判断是否是摩托车,第四个值为1或用于判断是否是卡车。
假设我们的输入向量x有三个维度,两个中间层,输出层4个神经元分别用来表示4类,也就是每一个数据在输出层都会出现[a b c d]T,且a,b,c,d中仅有一个为1,表示当前类。下面是该神经网络的可能结构示例:
那么神经网络算法的输出结果为四种可能情形之一:
所以我们只要判断输出的结果到底是哪一种就可以进行分类了,以上就是神经网络解决多分类的思路。
另外根据我目前的经验,输出层出现[a b c d]T,且a,b,c,d中仅有一个为1这种情况好像不多见,一般都是a+b+c+d = 1,也就是总概率和为1,要想得出到底属于哪一类,那就看a,b,c,d四个值哪个更大了,而且要是按照这种形式输出的话,输出层的激活函数是Softmax,而不是Sigmoid,事实上在真实的神经网络计算过程中,很少用Sigmoid做激活函数,因为会出现梯度不可控的情况,其实Softmax多分类器的原理就是基于此。
祝您的机器学习之旅愉快!
本文参考资料:斯坦福吴恩达老师的机器学习讲义,图片直接来自讲义;
领取专属 10元无门槛券
私享最新 技术干货