美文网首页
回归(三):Softmax回归

回归(三):Softmax回归

作者: 阿圆的一亩三分地 | 来源:发表于2019-01-23 15:12 被阅读45次

回归(三)

Softmax回归

二分类到多分类问题

在Logistic回归中,我们处理的是二分类的问题。我们假定事件y=1​的对数几率满足线性模型,得到y=1​的概率函数满足sigmoid函数的形式。在使用模型预测的时候,如果求出y=1​的概率大于0.5,就预测y=1​;否则就预测y=0​。即:

ln\ odds(y=1) = ln\frac{p}{1-p} = \theta^Tx \Rightarrow p = \frac{1}{1+e^{-\theta^Tx}}

y = \begin{cases}1\quad p>0.5\\ 0\quad otherwise \end{cases}

如果碰到多分类问题呢?先以三分类为例;假设有三个类别1, 2, 3,那么我们就可以做三次logistic回归,假定有n个特征值,我们可以定义:

z_1 = \theta_{11}x_1 + \theta_{12}x_2 + \theta_{12}x_3 + ...+\theta_{1n}x_n

z_2 = \theta_{21}x_1 + \theta_{22}x_2 + \theta_{22}x_3 + ...+\theta_{2n}x_n​

z_3 = \theta_{31}x_1 + \theta_{32}x_2 + \theta_{32}x_3 + ...+\theta_{3n}x_n

那么y = 1,2,3的概率分别为:

p(y = 1) = \frac{1}{1+e^{-z_1}}​

p(y = 2) = \frac{1}{1+e^{-z_2}}​

p(y = 3) = \frac{1}{1+e^{-z_3}}

这就做了三次logistic回归。然后比较三者的概率大小。那么是否能够直接使用某种方法,通过一次回归就得到属于每个类别的概率呢?

假设现在我们已经求出了y = 1,2,3的概率,分别为p_1, p_2, p_3。那么p_1, p_2, p_3一定满足:

  • (1)p_i的越大,则事件y=i的可能性越大
  • (2)\sum p_i = 1

显然,z_1, z_2, z_3是满足条件(1)的,要让概率和为零,只需要对z_1, z_2, z_3做一个归一化操作。最简单的就是p_i = \frac{z_i}{\sum z_i},但是这种处理虽然简单也易于理解,但是在之后的一些处理如求导的操作中比较麻烦。

使用softmax回归处理多分类问题

数学可以得到,ln(e^x+e^y)可以用来近似地表示max(x, y),通常这么做是因为ln(e^x + e^y)相对于max(x, y)更容易求偏导和微分。这里我们对上面的归一化做一些修改,不再是简单地除以所有z_i的和,我们对z_i重新赋予含义:

z_1 = \frac{exp(\theta^T_1x)}{\sum_{k=1}^3 exp(\theta_k^T x)}​

z_2 = \frac{exp(\theta^T_2x)}{\sum_{k=1}^3 exp(\theta_k^T x)}​

z_3 = \frac{exp(\theta^T_3x)}{\sum_{k=1}^3 exp(\theta_k^T x)}

拓展到K分类的问题,第k类的参数为\vec \theta_k,组成二维矩阵\theta_{k\times n}。那么:

p(c = k|x; \theta) = \frac{exp(\theta^T_k x)}{\sum_{l=1}^Kexp(\theta^T_lx)}, k = 1,2,3, ...,K

同样可以计算似然函数,对数似然和求随机梯度:

似然函数:L(\theta) = \prod_{i=1}^m \prod_{k=1}^Kp(c=k|x^{(i)};\theta)^{y_k^{(i)}} = \prod_{i=1}^m \prod_{k=1}^K\left( \frac{exp(\theta^T_kx^{(i)})}{\sum_{l=1}^K exp(\theta_l^T x^{(i)})} \right)^{y^{(i)}_k}​

对数似然:J_m(\theta) = ln L(\theta) = \sum_{i=1}^m\sum_{k=1}^K y^{(i)}_k\centerdot\left( \theta^T_kx^{(i)} - ln\sum^K_{l=1}exp(\theta^T_lx^{(i)}) \right)\\ J(\theta) = \sum_{k=1}^K y_k\centerdot\left( \theta^T_kx - ln\sum^K_{l=1}exp(\theta^T_lx) \right)

随机梯度:\frac{\partial J(\theta)}{\partial \theta_k} = (y_k - p(y_k|x;\theta))\centerdot x

公式中的y_k​采用one-hot编码,对于训练数据如果y = k​,则有:

y_i = \begin{cases} 1\quad i=k\\ 0 \quad otherwise \end{cases}

这样,使用模型预测时得到的K维列向量中,每一个维度的数值就可以表征属于对应类别的概率。

相关文章

  • 回归(三):Softmax回归

    回归(三) Softmax回归 二分类到多分类问题 在Logistic回归中,我们处理的是二分类的问题。我们假定事...

  • 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回归跟线性回归⼀样将输⼊特征与权重做线性叠加。与线性回归的⼀个主要不同在...

  • softmax回归

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

  • softmax回归

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

  • Softmax回归

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

  • Softmax回归

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

  • Softmax回归

    Softmax回归是一种用于多分类问题的模型,该模型可以看成是逻辑回归的拓展,因为其使用的损失函数也是cross-...

网友评论

      本文标题:回归(三):Softmax回归

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