zoukankan      html  css  js  c++  java
  • 使用Softmax回归将神经网络输出转成概率分布

    神经网络解决多分类问题最常用的方法是设置n个输出节点,其中n为类别的个数。对于每一个样例,神经网络可以得到一个n维数组作为输出结果。数组中的每一个维度(也就是每一个输出节点)对应一个类别,通过前向传播算法得到的输出层每个维度值代表属于这个类别的可能性大小。
        也就是说,任意事件发生的概率都在0和1之间,且总有某一个事件发生(概率的和为1)。如果将分类问题中“一个样例属于某一个类别”看成一个概率事件,那么训练数据的正确答案就符合一个概率分布。如何将神经网络前向传播得到的结果也变成概率分布呢?Softmax回归就是一个非常常用的方法。
        Sofemax回归本身可以作为一个学习算法来优化分类结果,它只是神经网络中的一层额外的处理层,将神经网络的输出变成了一个概率分布,下图展示了加上了Softmax回归的神经网络结构图。

                             通过softmax层将神经网络输出变成一个概率分布

    假设原始的神经网络输出为y1, y2, …, yn,那么经过Softmax回归处理之后的输出为:

    从以上公式中可以看出,原始神经网络的输出被用作置信度来生成新的输出,而新的输出满足概率分布的所有要求。这个新的输出可以理解为经过神经网络的推导,一个样例为不同类别的概率分别是多大。这样就把神经网络的输出也变成了一个概率分布,从而可以通过交叉熵来计算预测的概率分布和真实答案的概率分布之间的距离了。

    下面我们通过一个浅层神经网络来描述此过程,如下图所示:

    我们可以将此过程写成一个等式:

    我们可以将上述过程向量化,将其转成矩阵相乘和向量相加,这样有助于提高运算效率。

    参考


    1、tensorflow上关于softmax的介绍

  • 相关阅读:
    debug 调试原理理解
    Hadoop开发第4期---分布式安装
    Hadoop日记Day18---MapReduce排序分组
    Hadoop日记Day17---计数器、map规约、分区学习
    Hadoop日记Day16---命令行运行MapReduce程序
    Hadoop日记Day15---MapReduce新旧api的比较
    Hadoop日记Day14---MapReduce源代码回顾总结
    Hadoop日记Day13---使用hadoop自定义类型处理手机上网日志
    Hadoop日记Day12---MapReduce学习
    Hadoop日记Day7---HDFS的WED端口
  • 原文地址:https://www.cnblogs.com/eczhou/p/7860483.html
Copyright © 2011-2022 走看看