【问题标题】:Why do I get good accuracy with IRIS dataset with a single hidden node?为什么使用单个隐藏节点的 IRIS 数据集可以获得良好的准确性?
【发布时间】:2016-08-26 07:32:30
【问题描述】:

我有一个带有反向传播训练器的神经网络的最小示例,在 IRIS 数据集上对其进行测试。我从 7 个隐藏节点开始,效果很好。

我将隐藏层中的节点数降低到 1(预计会失败),但惊讶地发现准确率上升了。

我在 azure ml 中设置了实验,只是为了验证它不是我的代码。同样的,单个隐藏节点的准确率达到 98.3333%。

谁能给我解释一下这里发生了什么?

【问题讨论】:

    标签: machine-learning neural-network backpropagation azure-machine-learning-studio


    【解决方案1】:

    只需添加 DMlash 的非常好的答案:只需对一个属性使用三个简单的规则,甚至可以以非常高的准确率 (96%) 预测 Iris 数据集:

    If Petal.Width = (0.0976,0.791] then Species = setosa
    If Petal.Width = (0.791,1.63]   then Species = versicolor
    If Petal.Width = (1.63,2.5]     then Species = virginica
    

    一般来说,神经网络是一个黑盒子,你永远不知道它们在学习什么,但在这种情况下,反向工程应该很容易。可以想象,它学到了类似上面的东西。

    以上规则是通过OneR package找到的。

    【讨论】:

    • TBH 在具有单个隐藏节点的网络中没有多少黑盒。在训练中,整个错误通过该单个节点反向传播。
    【解决方案2】:

    首先,众所周知,各种分类模型在 Iris 上产生了令人难以置信的好结果(Iris 非常可预测);例如,参见here

    其次,我们可以观察到 Iris 数据集中的特征相对较少。此外,如果您查看dataset description,您会发现其中两个特征与课程结果高度相关。

    这些相关值是线性的、单一特征的相关性,这表明人们最有可能应用线性模型并观察到良好的结果。神经网络是高度非线性的;随着隐藏节点和隐藏层数量的增加,它们变得越来越复杂,并捕获越来越多的非线性特征组合。

    考虑到这些事实,(a) 一开始的特征很少,(b) 与类有很高的线性相关性,都将指向一个不太复杂的线性函数作为适当的预测模型 - - 通过使用单个隐藏节点,您几乎是在使用线性模型。

    还可以注意到,在没有任何隐藏层(即只有输入和输出节点)的情况下,使用逻辑传递函数时,这相当于逻辑回归。

    【讨论】:

    • 只是为了正确起见-您不能通过矩阵求逆来解决逻辑回归。您混淆了线性回归(可以通过这种方式解决)和逻辑回归(无法解决)
    • @lejlot 你是对的;我的错。我已修改我的答案以反映您的评论。
    猜你喜欢
    • 2019-01-01
    • 2019-11-15
    • 2020-08-23
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多