假设我想预测一个二元类别{0, 1}。其中一个特征x是实数。神经网络能否生成一个模型,使得当a < x < b时(其中a和b是实数,且a < b),模型预测类别为1,否则预测类别为0?
一般来说,如果我们希望当x在(a1, b1) ∪ (a2, b2) ∪ (a3, b3) …中时预测类别1,其中a1 < b1 < a2 < b2 < a3 < b3…,神经网络是否能够实现这一目标?(使用的神经元/层数没有限制)
编辑:你能提供一个数值示例作为说明吗?
回答:
你可以使用一个1x2x1
的网络(输入层一个神经元,隐藏层两个神经元,输出层一个神经元)来学习a < x < b
。隐藏层的一个神经元代表a < x
,另一个代表x < b
。输出层的神经元是对隐藏层神经元的逻辑OR
操作。
要将此方法推广到N
对(a, b)
值,你需要在隐藏层至少有2 * N
个神经元。虽然在某些情况下(例如某些a
或b
值不唯一时)可以使用更少的隐藏层神经元,但在实践中,最好使用大于2 * N
的数量,并允许不必要的权重在学习过程中趋向于零。
你也可以使用多个隐藏层来学习更一般的情况,但使用多个隐藏层是否比单一隐藏层更好,可能取决于(a, b)
对的分布情况。