OvR,OvO和softmax

来源:9-8 OvR与OvO

BarackBao

2019-05-02

请问老师,您讲的使用RogisticRegression进行多分类问题使用OvR或者OvO,这两种方式和softmax函数有关系吗,主要是我不太清楚softmax的原理,我只知道它可以进行多分类

写回答

2回答

liuyubobobo

2019-05-02

OvR,OvO都是使用建立多个二分类模型的方式,来解决多分类问题。在这个问答里,我又基于OvR的流程,进行了叙述:http://coding.imooc.com/learn/questiondetail/107030.html

可以看到,对于OvR来说,k分类问题,需要训练k个模型。(k > 2)


但是softmax是使用1个模型,解决多分类问题。


但是,当k == 2是,softmax就是逻辑回归。所以,你会看到说,softmax是逻辑回归在多酚类问题上的推广。不过,softmax解决多分类问题的本质和OvO,OvR不一样。一个是单模型,一个是综合多模型:)


具体softmax的原理,不在这个课程的范畴,通常介绍神经网络或者深度学习的课程都会介绍:)


继续加油!:)

0
1
BarackBao
非常感谢!
2019-05-03
共1条回复

lemonlxn

2019-10-15

老师好,我有一个关于逻辑回归多分类,multi_class=“multinomial”时,关于softmax 的理解,您看看我的整体理解是否准确,如果觉得不属于该课程内容可忽略。

softmax的计算方法如下


import numpy as np

def softmax(output):
    return np.exp(output) / np.sum(np.exp(output))

//img1.sycdn.imooc.com/szimg/5da5b5e00990acf900000000.jpg

我想请问下,softmax中的output是不是各神经元的输出。

即 4处的output z4 = w41 * o1 + w42 * o2 + w43 * o3 (o1,o2,o3代表是结点1,2,3往后传的输入)

同理可求得 z5,z6


所以经过softmax 后的

s_4 是不是等于  s_4 = e^z4 / (e^z4+e^z5+e^z6)

s_5 是不是等于  s_5 = e^z5 / (e^z4+e^z5+e^z6)

s_6 是不是等于  s_6 = e^z6 / (e^z4+e^z5+e^z6)

请问这里的s_4,s_5,s_6是不是概率呀?

那么是不是np.max(s_4,s_5,s_6) 哪个值大,那它就属于哪个类别?

###########

额外补充,通过交叉熵,选择最优模型

当逻辑回归为多分类的时候

input = sigmoid(W.T.dot(X)) # 神经元输入   

output = softmax(y)            # 概率 ?

Loss = -yln(output)             # 交叉熵损失函数

不断迭代,求出使Loss最小的模型

0
0

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程