2 softmax 回归

作者: 水之心 | 来源:发表于2018-12-04 15:14 被阅读2次

softmax Regression 是解决多分类任务的模型。设有数据集 \{ x^{(1)}, x^{(2)}, \ldots, x^{(m)} \},对于每一个样本 x^{(i)} \in \mathbb{R}^ny^{(i)} \in \{1, 2, \ldots, c\}。令 \theta = \begin{pmatrix} w \\ b \end{pmatrix}\overline{X} = \begin{pmatrix} \overline{x}^{(1)} \\ \overline{x}^{(2)} \\ \vdots \\ \overline{x}^{(m)} \end{pmatrix},其中 \overline{x}^{(i)} = \left(x^{(i)}1 \right)

设每个样本的条件概率估计为

h_{\theta}(\overline{x}^{i}) = \begin{bmatrix} P(y^{(i)} = 1| \overline{x}^{(i)}; \theta) \\ P(y^{(i)} = 2| \overline{x}^{(i)}; \theta)\\ \vdots\\ P(y^{(i)} = c| \overline{x}^{(i)}; \theta)\\ \end{bmatrix} = \frac{1}{\sum_{j=1}^k e^{\theta_j^T \overline{x}^{(i)}}} \begin{bmatrix} e^{\theta_1^T \overline{x}^{(i)}} \\ e^{\theta_2^T \overline{x}^{(i)}} \\ \vdots\\ e^{\theta_c^T \overline{x}^{(i)}} \\ \end{bmatrix}

其 python 代码实现很简单:

def softmax(X):
    exp = np.exp(X)
    # 假设 exp 是矩阵,这里对行进行求和,并要求保留 axis 1,
    # 就是返回 (nrows, 1) 形状的矩阵
    partition = exp.sum(axis=1, keepdims=True)
    return exp / partition

softmax Regression 模型的损失函数不适合使用 \ell_2 损失函数,此时使用交叉熵损失函数。将 y^{(i)} 转换为 one-hot 编码形式:

y^{(i)} = t \Leftrightarrow y^{(i)}_k = \begin{cases} 1 & k = t\\ 0 & k \neq t \end{cases}

其中,k,t \in \{1, 2, \ldots, c\}。这样,{\boldsymbol y^{(i)}} = (y^{(i)}_1, y^{(i)}_2, \dots, y^{(i)}_c) 便可表示 y^{(i)} 的概率形式。这样,我们便可定义两个概率分布的“距离”:

H({\boldsymbol y^{(i)}}, {\boldsymbol y^{(i)}}) = - \sum_{j=1}^c y_j^{(i)} \log \hat{y}_j^{(i)}

由于向量 {\mathbb y^{(i)}} 中元素的特性,当一个样本中仅仅包含一个对象时上面的交叉熵我们可以化简为

H({\boldsymbol y^{(i)}}, \boldsymbol{\hat{y}^{(i)}}) = - \log \hat{y}_t^{(i)}

其中,t 表示 {\mathbb y^{(i)}}t 位置元素为 1,下面我们使用 y^{(i)} 代替 t

对于所有样本,交叉熵损失函数定义为

\ell(\boldsymbol{\Theta}) = \frac{1}{m} \sum_{i=1}^m H\left(\boldsymbol y^{(i)}, \boldsymbol {\hat y}^{(i)}\right ),

其中\boldsymbol{\Theta}代表模型参数。同样地,如果每个样本只有一个标签,那么交叉熵损失可以简写成\ell(\boldsymbol{\Theta}) = -(1/m) \sum_{i=1}^m \log \hat y_{y^{(i)}}^{(i)}。从另一个角度来看,我们知道最小化\ell(\boldsymbol{\Theta})等价于最大化\exp(-m\ell(\boldsymbol{\Theta}))=\prod_{i=1}^m \hat y_{y^{(i)}}^{(i)},即最小化交叉熵损失函数等价于最大化训练数据集所有标签类别的联合预测概率。

相关文章

  • Softmax 回归

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

  • 2 softmax 回归

    softmax Regression 是解决多分类任务的模型。设有数据集 ,对于每一个样本 ,。令 ,,其中 。 ...

  • 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回归模型应用在多分类问题中,通过样本的特征...

  • MXNet学习—简单模型实现

    一.线性回归模型实现 二.Softmax回归实现 三.多层感知机模型 四.L2正则化 五.dropout实现

  • 机器学习中的模型

    离散数据:分类连续数据:回归是看y值 1.knn 笔记 2.线性回归 笔记 3.逻辑回归 笔记 4.softmax...

  • tf.nn.softmax

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

  • softmax回归

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

网友评论

    本文标题:2 softmax 回归

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