Python 二进制与非二进制隐藏层输出

Python 二进制与非二进制隐藏层输出,python,neural-network,Python,Neural Network,我正试图准确地理解如何在python中实现一个基本的神经网络,它将使用遗传算法进行无监督学习,并且遇到了一个我能够找到的文献没有解决的小问题 假设我有一个2个值的输入,在应用所有权重/偏差的情况下传递给3个神经元隐藏层。在我确定它是否被触发后,我现在发送什么?我是从我的sigmoid发送输出还是发送完全停止/启动。换句话说,我对隐藏层2的输出是二进制的还是非二进制的 有人能用我们选择其中一个的原因来解释这一点吗?这实际上取决于您的网络设计,但没有输入必须是二进制的限制。事实上,你不会经常遇到这种

我正试图准确地理解如何在python中实现一个基本的神经网络,它将使用遗传算法进行无监督学习,并且遇到了一个我能够找到的文献没有解决的小问题

假设我有一个2个值的输入,在应用所有权重/偏差的情况下传递给3个神经元隐藏层。在我确定它是否被触发后,我现在发送什么?我是从我的sigmoid发送输出还是发送完全停止/启动。换句话说,我对隐藏层2的输出是二进制的还是非二进制的


有人能用我们选择其中一个的原因来解释这一点吗?

这实际上取决于您的网络设计,但没有输入必须是二进制的限制。事实上,你不会经常遇到这种情况。对于输出层,可以轻松明确地确定输出的类型,例如,如果您有一个分类器将此答案分类为垃圾邮件或非垃圾邮件,那么输出(单个神经元的输出层)将是二进制的。如果你有一个识别手写数字的神经网络,那么最好有一个10个神经元的输出层,每个神经元的输出层给出输入图像是数字之一的概率[0,9]

对于其他层(隐藏层和输入层),输出可以是任何内容,大多数情况下它不是二进制的

编辑

我想我有点误解了你的问题,而且你可能没有在谈论这个问题

所以如果你不考虑这些(在大多数情况下),当你说一个神经元已经激发,你的意思是它的输出是1(二进制高),否则是0,所以是二进制的

我是从sigmoid发送输出,还是发送完全停止/启动

sigmoid函数在神经网络中使用的方式(带权重)试图使计算输出为二进制结果,因此基本上两个选项的含义相同。这是有区别的,但通常NNs会尽量避免乙状结肠(或相关神经元)输出一些无法很好地近似于0或1的值的区域。移动该神经元输入的权重,以便该神经元给出明确的0或1

还要注意的是,虽然不了解sigmoid(和tanh)并不好,但出于实际目的,Leaky ReLU或maxout是更好的选择

建议:
你也可以找到Andrew Ng、Andrej Karpathy等有帮助的演讲(视频和笔记)。

这确实取决于你的网络设计,但是没有这样的限制,即输入必须是二进制的。事实上,你不会经常遇到这种情况。对于输出层,可以轻松明确地确定输出的类型,例如,如果您有一个分类器将此答案分类为垃圾邮件或非垃圾邮件,那么输出(单个神经元的输出层)将是二进制的。如果你有一个识别手写数字的神经网络,那么最好有一个10个神经元的输出层,每个神经元的输出层给出输入图像是数字之一的概率[0,9]

对于其他层(隐藏层和输入层),输出可以是任何内容,大多数情况下它不是二进制的

编辑

我想我有点误解了你的问题,而且你可能没有在谈论这个问题

所以如果你不考虑这些(在大多数情况下),当你说一个神经元已经激发,你的意思是它的输出是1(二进制高),否则是0,所以是二进制的

我是从sigmoid发送输出,还是发送完全停止/启动

sigmoid函数在神经网络中使用的方式(带权重)试图使计算输出为二进制结果,因此基本上两个选项的含义相同。这是有区别的,但通常NNs会尽量避免乙状结肠(或相关神经元)输出一些无法很好地近似于0或1的值的区域。移动该神经元输入的权重,以便该神经元给出明确的0或1

还要注意的是,虽然不了解sigmoid(和tanh)并不好,但出于实际目的,Leaky ReLU或maxout是更好的选择

建议:
你也可以找到Andrew Ng、Andrej Karpathy等有帮助的演讲(视频和笔记)。

你说的“完全停止/开始”是什么意思?就像1或0一样。因此,我在第一个隐藏层上有一个神经元,它的值为0.65(在我的乙状结肠折叠之后),它高于我的阈值,所以我触发神经元。输出是1,还是0.65?为什么?你所说的“完全停止/启动”是什么意思?如1或0。因此,我在第一个隐藏层上有一个神经元,它的值为0.65(在我的乙状结肠折叠之后),它高于我的阈值,所以我触发神经元。输出是1,还是0.65?为什么?我了解输入和输出设计规范,我主要想知道隐藏层输出,而不是最终层输出。也就是说,您希望在隐藏层上使用二进制输出有什么原因吗?这只是我的假设,但我相信在隐藏层上有一个非二进制输出将允许总体上获得更好的结果。我理解输入和输出设计规范,我主要想知道的是隐藏层输出,而不是最终的层输出。也就是说,您希望在隐藏层上使用二进制输出有什么原因吗?这只是我的假设,但我相信在隐藏层上有一个非二进制输出将允许总体上获得更好的结果。