【问题标题】:backpropagation neural network with discrete output具有离散输出的反向传播神经网络
【发布时间】:2011-09-20 23:53:14
【问题描述】:

我正在研究具有三层反向传播网络的 xor 示例。当输出层有 sigmoid 激活时,(1,0) 的输入可能会给出 0.99 的期望输出 1,而 (1,1) 的输入可能会给出 0.01 的期望输出 0。

但是,如果希望输出是离散的(0 或 1)怎么办,我是否只需将阈值设置在 0.5 之间?这个阈值是否需要像任何其他权重一样进行训练?

【问题讨论】:

    标签: neural-network backpropagation


    【解决方案1】:

    做没有阈值的训练,即。通过使用神经元网络输出的内容计算示例的错误,而不对其进行阈值处理。

    另一个小细节:您使用诸如 sigmoid 之类的传递函数? sigmoid 函数返回 [0, 1] 中的值,但 0 和 1 是渐近线,即。 sigmoid 函数可以接近这些值,但永远无法达到它们。这样做的结果是你的神经网络不能准确地输出 0 或 1 !因此,使用 sigmoid 乘以略高于 1 的因子可以纠正此问题。此处讨论了反向传播的这一点和其他一些实际方面http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf

    【讨论】:

      【解决方案2】:

      嗯,你当然可以在输出神经元之后设置一个阈值,使 0.5 之后的值为 1,反之亦然,所有低于 0.5 的输出都为零。我建议不要使用离散化阈值隐藏连续输出,因为 0.4 的输出比 0.001 的值更“零”,并且这种差异可以为您提供有关数据的有用信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-03
        • 2012-02-21
        • 2011-01-05
        • 1970-01-01
        • 1970-01-01
        • 2018-05-17
        • 2014-01-15
        相关资源
        最近更新 更多