dev*_*ium 26 artificial-intelligence neural-network
如何设置神经网络,使它们接受并输出连续范围的值而不是离散值?从我几年前做过的神经网络课程回忆起,激活函数将是一个sigmoid,它产生一个介于0和1之间的值.如果我希望我的神经网络产生一个真正有价值的标量,我该怎么做?我想也许如果我想要一个0到10之间的值,我可以将该值乘以10?如果我有负值怎么办?这是人们通常做什么或有其他方式吗?输入怎么样?
谢谢
Nat*_*ohl 28
神经进化领域的大部分工作涉及使用具有连续输入和输出的神经网络.
有几种常见的方法:
常规sigmoid http://natekohl.net/media/sigmoid-reg.gif 陡峭的sigmoid http://natekohl.net/media/sigmoid-steep.gif
没有规则要求输出(*)是任何特定的功能.实际上,我们通常需要在给定节点中实现的函数末尾添加一些算术运算,以便扩展和以其他方式将输出强制转换为特定形式.
使用全有或全无输出和/或0.0到1.0标准化输出的优点是它使事情更容易处理,并且还避免溢出等问题.
(*)"输出"在这里可以理解为网络内的给定节点(神经元)或整个网络的输出.
如Mark Bessey所示,输入[对整个网络]和[网络]的输出通常接收一些过滤/转换.正如在此回复和Mark的评论中暗示的那样,最好在网络的"隐藏"层中具有规范化/标准节点,并根据输入和/或输出的需要应用一些归一化/转换/离散化.网络; 然而,这种实践仅仅是实用性的问题,而不是一般的神经网络的必要要求.