Softmax多分类(机器学习)

之前的逻辑回归只能进行二分类。

我们现在使用Softmax进行多分类。

假如我们有的y有4个可选结果(如优秀、良好、及格、不及格)。

x是我们的输入

z_{1} = \vec{w}_{1}\cdot \vec{x}+b_{1}

z_{2} = \vec{w}_{2}\cdot \vec{x}+b_{2}

z_{3} = \vec{w}_{3}\cdot \vec{x}+b_{3}

z_{4} = \vec{w}_{4}\cdot \vec{x}+b_{4}

上面的z是通过输入,计算出的在这4个维度上的“中间值”。

a_{1}=\frac{e^{z_{1}}}{e^{z_{1}}+e^{z_{2}}+e^{z_{3}}+e^{z_{4}}}=P(y=1|\vec{x})

a_{2}=\frac{e^{z_{2}}}{e^{z_{1}}+e^{z_{2}}+e^{z_{3}}+e^{z_{4}}}=P(y=2|\vec{x})

a_{3}=\frac{e^{z_{3}}}{e^{z_{1}}+e^{z_{2}}+e^{z_{3}}+e^{z_{4}}}=P(y=3|\vec{x})

a_{4}=\frac{e^{z_{4}}}{e^{z_{1}}+e^{z_{2}}+e^{z_{3}}+e^{z_{4}}}=P(y=4|\vec{x})

经过这样处理,可以得到预测值为各数的概率。

推广:

z_{j}=\vec{w}_{j}\cdot\vec{x}+b_{j}\\ a_{j}=\frac{e^{z_{j}}}{\sum_{k=1}^{N}e^{z_{k}}}=P(y=j|\vec{x})

接下来定义损失函数:

loss(a_{1},...,a_{N},y)=\left\{\begin{matrix} -loga_{1} ,if \quad y =1\\ -loga_{2} ,if \quad y =2 \\ ... \\-loga_{N} ,if \quad y =N \end{matrix}\right.

然后看一下Softmax在神经网络中的应用:

此时我们最后一层有10个神经元,那么输出向量也是10维的。

那么我们也应该有:
z^{[3]}_{1}=\vec{w}^{[3]}_{1}\cdot\vec{a}^{[2]}+b^{[3]}_{1}\\ a^{[3]}_{1}=\frac{e^{z^{[3]}_{1}}}{e^{z^{[3]}_{1}}+...e^{z^{[3]}_{10}}}=P(y=1|\vec{x})

以此类推。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 06:02:04       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 06:02:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 06:02:04       45 阅读
  4. Python语言-面向对象

    2024-07-21 06:02:04       55 阅读

热门阅读

  1. Jupyter Notebook与机器学习:使用Scikit-Learn构建模型

    2024-07-21 06:02:04       18 阅读
  2. C#面:ASP.NET Core项目如何设置IP地址和端口号

    2024-07-21 06:02:04       13 阅读
  3. 有关css的题目

    2024-07-21 06:02:04       15 阅读
  4. Go: IM系统接入ws进行消息发送以及群聊功能 (5)

    2024-07-21 06:02:04       14 阅读
  5. Perl编程秘籍:匿名数组与哈希的隐秘力量

    2024-07-21 06:02:04       15 阅读
  6. 寻茶索味,齐赴安康

    2024-07-21 06:02:04       13 阅读
  7. 实战:shell脚本练习

    2024-07-21 06:02:04       14 阅读
  8. Spring Boot 单元测试什么时候需要添加 @RunWith

    2024-07-21 06:02:04       23 阅读
  9. leetcode--链表类题目总结

    2024-07-21 06:02:04       15 阅读