美文网首页
Softmax回归

Softmax回归

作者: 没天赋的学琴 | 来源:发表于2020-08-13 21:34 被阅读0次

   Softmax回归是一种用于多分类问题的模型,该模型可以看成是逻辑回归的拓展,因为其使用的损失函数也是cross-entropy loss(交叉熵),但与逻辑回归不同的是,其损失函数是一种多分类形式。

1. 模型

   Softmax回归也是一种线性模型,其模型表示:h_\theta(X) = \theta X^T \: (\theta \in R^{c \times n}, x \in R^{m \times n}) 然后在得到h_\theta(X)值的基础上,加入softmax函数\sigma(z)_j = {e^{z_j} \over \sum _{k=1} ^{K} {e^{z_k}}} \quad ,(j = 1, \cdots,c) 上式中的z_kh_\theta(X)中第k列的值。
   以上就是softmax回归的模型,实质上是先通过线性模型,将其转变为对于每一类的一个"分数",然后再利用softmax函数"分数"转变为一个离散分布。

2. 损失函数

   在Softmax回归中,选用的是cross-entropy loss(交叉熵),但使用的是其多分类形式:L(\theta) = - \sum _{i = 1} ^{C} {y_i log(p_i)} 式子中p=(p_1, p_2, \cdots, p_c)是通过模型计算关于x后的离散分布;y=(y_1, y_2, \cdots, y_c)代表x的真实分布,才用的是one-hot编码形式,即若x属于第j类,则y_j = 1,其余均为0。可以看出,逻辑回归其实是Softmax回归的一种特殊形式,属于二分类时候的一种形式。
   cross-entropy loss(交叉熵)的作用是,用于衡量两个分布之间差距,如上面就是衡量真实的分布y与模型计算的p,这两个分布间的差距。

3.迭代更新

   有了损失函数,接下来就可以通过梯度下降法,来最小化损失函数,从而求得模型的参数\theta。关于\partial L \over \ \partial \theta的推导,这里使用的是链式法则,关于单个样本x的推导:\begin{aligned} p_k = {e^{f_k} \over \sum_j {e^{f_j}}} &, L = -log(p_y) \\ {\partial L \over \partial f_y} & = p_y - 1 \quad (x对应的分类)\\ {\partial L \over \partial f_k} & = p_k \quad (x对应的分类) \end{aligned} 综上:\begin{aligned} {\partial L \over \partial f} & = p - [0, \cdots, 1, \cdots, 0]^T \\ f & = \theta x^T \\ {\partial f \over \partial \theta} & = x \\ {\partial L \over \partial \theta} & = {\partial L \over \partial f} {\partial f \over \partial \theta} = (p - [0, \cdots, 1, \cdots, 0]^T) \times x \end{aligned} 上述就是关于单个x\partial L \over \ \partial \theta的推导,而对于整个样本集X与上述类似,只需注意保持运算后的矩阵规模正确即可。下面的代码就是加入正则化后,模型的正向传播与计算导数的过程。

    N, D = X.shape

    scores = np.dot(X, W)
    e = np.exp(scores)
    prob = e / np.sum(e, axis=1, keepdims=True)
    loss = np.mean( -1 * np.log(prob[range(N), y]) ) + 0.5 * reg * np.sum(W ** 2)

    mask = np.zeros_like(scores)
    mask[range(N), y] = 1
    df = prob - mask
    dW = np.dot(X.T, df)
    dW /= N
    dW += reg * W

总结

   Softmax回归就是通过多条直线作为决策边界来划分整个解空间。通过线性函数来计算相应分类的得分,然后利用softmax函数来转换成相应的概率;在损失函数方面使用的是交叉熵损失函数,用来衡量两个分布之间的差距。

相关文章

  • Softmax 回归

    1 简述 Logistic回归模型是 softmax回归模型 k=2 的特例,softmax回归就是一般线性回归的...

  • logistic回归 Softmax回归

    logistic回归解决二分类问题 softmax回归解决多分类问题Softmax回归模型是logistic回归模...

  • TensorFlow HOWTO 1.4 Softmax 回归

    1.4 Softmax 回归 Softmax 回归可以看成逻辑回归在多个类别上的推广。 操作步骤 导入所需的包。 ...

  • mxnet:softmax回归模型 && softmax运算

    1.softmax回归模型 softmax回归跟线性回归⼀样将输⼊特征与权重做线性叠加。与线性回归的⼀个主要不同在...

  • MNIST练习——Softmax&卷积网络

    学习目标 Softmax 卷积网络 Softmax 简介 Softmax回归模型应用在多分类问题中,通过样本的特征...

  • tf.nn.softmax

    关于softmax的详细说明,请看Softmax。 通过Softmax回归,将logistic的预测二分类的概率的...

  • softmax回归

    softmax是逻辑回归的泛化算法 因为逻辑回归只能做二分类或者多个二分类 但是softmax可以直接做多分类 对...

  • softmax回归

    我们知道max,假如说我有两个数,a和b,并且a>b,如果取max,那么就直接取a,没有第二种可能。但有的时候我不...

  • Softmax回归

    SVM只选自己喜欢的男神,Softmax把所有备胎全部拉出来评分,最后还归一化一下 从名字上理解 上面一句话可谓是...

  • Softmax回归

    0-1回归的延拓,0-1回归是softmax回归输出个数为2的特殊情况 其代价函数 其梯度 特点:1.参数不独立2...

网友评论

      本文标题:Softmax回归

      本文链接:https://www.haomeiwen.com/subject/nkuqrktx.html