首页 文章

神经网络的阈值处理

提问于
浏览
0

我为AND门实现了一个神经网络,有2个输入单元,2个隐藏单元和1个输出单元 . 我使用40个输入训练神经网络200个时期,学习率为0.03 . 当我尝试为训练的神经网络测试AND输入时,它给出了输出为:

  • 0,0 = 0.295(预期0)

  • 0,1 = 0.355(预期0)

  • 1,0 = 0.329(预期0)

  • 1,1 = 0.379(预计1个)

这不是网络预期的输出 . 但是,如果我将阈值设置为0.36并将所有值设置为高于0.36为1并保持为0,则神经网络输出每次都是预期的 . 我的问题是: Is applying a threshold to the output of the network necessary in order to generate expected outputs like in my case ?

1 回答

  • 0

    例如,阈值不是必需的,但可以帮助更好地分类 .

    在你的情况下,也许你可以设置0.1的阈值为0,0.9为1.当你的输出低于0.1时,我们可以认为它是0,如果输出高于0.9,那么它是1 .

    Therefore ,设置一个0.36的阈值只是因为 that 测试示例它起作用,是一个 really bad 的想法 . 因为0.36远离我们想要的输出1 . 并且因为它可能(将)不适用于所有测试数据 .

    您应该考虑代码问题 .

    这不是最初的问题,但这里有一些想法:
    1.看看每个eopch的训练准确性 . 如果它慢慢学习,提高你的学习率,并可能在几个时代后减少它 .
    2.如果准确度没有变化,请查看您的Back probagation算法
    3.查看数据集并确保输入和输出正确
    4.确保您的重量是随机初始化的
    5. AND门可以用线性NN求解,没有隐藏层 . Myabe尝试删除隐藏的图层?

相关问题