为什么神经网络中需要隐藏层?

why need Hidden Layer in Neural Network?

我刚开始学习机器学习中的神经网络。当我计算像 AND/OR/NOT 这样的布尔函数的激活函数时,不需要 Hidden Layer 但 XOR/XNOR 等等布尔函数需要 Hidden Layer 来计算激活函数。为什么? (我在 google 中搜索,但无法清楚了解)。隐藏层中是否有 number of neuron 依赖于输入神经元的数量??

如果简单地说,隐藏层会添加额外的输入转换,这对于单层网络来说不容易实现(实现它的方法之一是在输入中添加某种非线性)。第二层添加了额外的转换,可以处理更复杂的任务。如果说 AND/OR/NOT 它们被认为是线性可分离的任务。 查看显示 AND 值的图片(三个点表示错误)。可以用一条线将真值与假值分开,这可以在没有隐藏层的神经网络的帮助下完成。但是如果要讲XOR/XNOR就需要两条线,两条线可以用两层非线性激活函数的神经网络来构造。黄线表示可以用神经网络完成的分离。

更简单地说:例如,如果您的输出是 non-linear (XOR),则您需要一个隐藏层。但是,如果您确实添加了一个,那么您几乎完全致力于 non-linear 输出函数 (Sigmoid),并且需要将反向传播合并到您的算法中。隐藏层权重主要由 back-prop 例程调整,这就是网络获得解决 non-linearity 能力的地方。一个描述 non-linearity 的想法示例:您有一个音量控制旋钮,标有 1 到 10。数字越大,声音越大。但是,如果我们有一个将音量从 1 增加到 5,然后开始将音量从 6 减少到 10 的控件,那将是 non-linear 神经网络可以解决的 non-linear 函数。

实际上,如果我们有更多的隐藏层,那么我们将获得数据集的良好预测值和最佳准确度。因此,隐藏层中的每个节点都将从数据集中获取一个或多个特征,并将应用权重和激活函数,直到我们获得良好的预测值。它使用反向传播来更新权重。

这里的反向传播意味着最小化成本函数,一旦你找到成本函数的一分钟,即你的最终神经网络,这意味着你的权重已经调整并且你已经找到了最佳权重您开始训练并准备好进入测试阶段或应用阶段的这个数据集。