当前位置:   article > 正文

Softmax多分类(机器学习)

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})

以此类推。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/860943
推荐阅读
相关标签
  

闽ICP备14008679号