我是在学习TensorFlow第一个实践案例《识别手写数字》里面发现简单的多分类问题解决办法SoftMax回归,这一名词的。
为什么对多分类算法如此寡闻?
因为我们大多学习了二分类之后,就想当然的觉得,可以构建多个二分类模型,比如A、B、C三类,建立A|其他类;B|其他类;C|其他类;来进行多分类预测。
拿A|其他类 这个二分类问题来说,可能更加适合 类别B与类别C有种相关性的场景(如果你的四个类别如下:人声音乐、舞曲、影视原声、流行歌曲,那么这些类别之间并不是互斥的。例如:一首歌曲可以来源于影视原声,同时也包含人声 。)
如果A、B、C相互独立呢?这时候我们可以选择SoftMax回归算法。(后面会讲,其他K=2时,SoftMax就退化为Logistic Regression了)
原理浅析:
多分类问题,我们要对每个样本,预测其属于K个类别的K个概率,然后选择一个最大的,作为其分类。
定义1: 样本Xi 属于各个类别概率的 假设函数:
可以发现,我们要学习k(n+1)个参数!
损失函数:
下面我们证明LR是SoftMax的一个特例:
在实际求解的过程中,通常会结合权重衰减,来求解。
参考链接:
http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92