Softmax

作者: 水之心 | 来源:发表于2018-11-16 17:17 被阅读0次

    Softmax

    我们令 z =(z_1, z_2, \cdots, z_k)^T \in \mathbb{R}^k, 定义 softmax 函数为

    h_j(z) = \frac{e^{z_j}}{\sum_{i=1}^m e^{z_i}}

    这样,h(z) = (h_1(z), \cdots, h_k(z))^T

    Softmax Regression 算法是 Logistic Regression 算法在多分类上的推广,下面考虑 k 分类问题。假设我们有 m 个样本 D = \{(x_i, y_i)\}_i^m, 令 X = (x_1, x_2, \cdots, x_m)^T, y = (y_1, y_2, \cdots, y_m)^T, 其中 x_i \in \mathbb{R}^n, y_i \in \{0, 1, \cdots, k-1\}。将 y_i 使用 one-hot 编码形式,仍然记作 y_i, (比如 y_i = j 便可将 y_i 改写为一个 k 维列向量,该列向量中的除了位置 j 处的元素为 1外,其余元素均为 0). 这样 y_i \in \mathbb{R}^k, Y = (y_1, \cdots, y_m)^T \in \mathbb{R}^{m \times k}

    存在仿射映射 f: \mathbb{R}^n \rightarrow \mathbb{R}^k, 满足 f(x) = Wx + b. 其中 W \in \mathbb{R}^{k \times n}, b \in \mathbb{R}^k. 对于 D 中的 m 个样本,我们可以定义其样本估计所属类别的条件概率为 (j = 0, 1, \ldots, k-1)

    P(y_i = j|x_i;W, b) = h_j(z_i)

    其中,z_i = f(x_i). 令 H = (h(z_1), \cdots, h(z_m))^T

    根据极大似然估计算法,可定义 Softmax Regression 的损失函数 (交叉熵) 为

    \begin{aligned} J(W, b) &= - \frac{1}{m} \displaystyle \sum_{i=1}^m \sum_{j=1}^k (y_i)_j \log(h_j(z_i)) \\ &= - \frac{1}{m} \mathbf{1}_m^T \cdot (Y \odot \log(H)) \cdot \mathbf{1}_n \end{aligned}

    其中 (y_i)_j 表示 y_i 的第 j 个元素,\mathbf{1}_m 表示长度为 m 的全一列向量。\log(H) 指的是对 H 中的每个元素求 \log 的操作。

    相关文章

      网友评论

        本文标题:Softmax

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