我是机器学习中学习神经网络的新手。当我计算像AND / OR / NOT这样的布尔函数的激活函数时,不需要Hidden Layer
但是XOR / XNOR等等布尔函数需要Hidden Layer
来计算激活函数。为什么? (我在谷歌搜索,但不能清楚地了解这一点)。隐藏层中的number of neuron
是否与输入神经元的数量相关?
答案 0 :(得分:4)
如果简单地隐藏图层添加额外的输入转换,这对于单层网络来说是不容易实现的(实现它的方法之一是为您的输入添加某种非线性)。第二层添加了额外的转换,可以完成更复杂的任务。如果要谈论AND / OR / NOT,它们被认为是线性可分离的任务。 看看显示AND值的图片(三个点是假的)。可以使用一行将真值与假值分开,这可以通过没有隐藏层的神经网络来完成。但是如果要谈论XOR / XNOR,你需要两条线,两条线可以通过神经网络构建,具有两层并具有非线性激活功能。黄线表示可以用神经网络完成分离。
答案 1 :(得分:3)
实际上,如果我们具有更多的隐藏层,则将为数据集获得良好的预测值和最佳准确性。因此,隐藏层中的每个节点都会从数据集中获取一个或多个特征,并且它将应用权重和激活函数,直到获得良好的预测值为止。并且它使用向后传播来更新权重。
向后传播意味着这里是最小化成本函数,并在您找到成本函数的一分钟后立即获得,这是您的最终神经网络,这意味着您的权重已进行调整,并且已找到此数据集的最佳权重您已经开始接受培训,并且已经准备好进入测试阶段或应用程序阶段。
答案 2 :(得分:0)
更简单地说:例如,如果您的输出是非线性(XOR),则需要一个隐藏层。但是,如果您确实添加了一个,则您将非常致力于非线性输出函数(Sigmoid),并且需要将反向传播纳入算法中。隐藏层权重主要通过反向传播例程进行调整,这是网络获得解决非线性问题的能力的地方。一个描述非线性的思想示例:您有一个音量控制旋钮,标记为1到10。数字越大,声音越大。但是,如果我们有一个将音量从1增加到5,然后开始将音量从6减少到10的控件,那将是非线性神经网络可以解决的非线性函数。