如何从神经网络获取实值连续输出?


14

到目前为止,在我所见过的大多数神经网络示例中,都使用该网络进行分类,并使用S型函数对节点进行变换。但是,我想使用神经网络来输出连续的实际值(实际上,输出通常在-5到+5范围内)。

我的问题是:

1. Should I still scale the input features using feature scaling? What range?
2. What transformation function should I use in place of the sigmoid?

我希望最初实现它来描述这些层类型的 PyBrain 。

所以我在想应该有3个都是线性层的图层开始(输入,隐藏和输出层)?那是合理的方法吗?还是可以在-5到5的范围内“拉伸” S型函数?


1
确定可以使用S型 。例如从逻辑函数开始,乘以10,然后减去5 ...[-][-55]
塞贝莱特人对SX不满意,2012年

您有避免使用两个隐藏层的特殊原因吗?这似乎是从神经网络获取实值连续输出的最简单方法。“具有两个隐藏层的网络可以将任何功能近似于任意精度”(在Mitchell机器学习课文幻灯片26的注释中提到:cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/ www / mlbook / ch4.pdf
克里斯·西莫卡特

@ChrisSimokat:不,但是到目前为止我所读的大部分内容都建议将单个隐藏层作为一个合理的起点。单个隐藏层网络可以不能实现任何功能吗?
2012年

1
@ChrisSimokat:也许我想念一些东西,但是我认为单层隐藏层不等于“单层感知器”,不是吗?
用户

1
不,您没有丢失任何东西,但我显然没有足够地对此感到抱歉。
克里斯·西莫卡特

Answers:


12

1。是否仍应使用要素缩放来缩放输入要素?什么范围

扩展不会使任何事情变得更糟。阅读Sarle的神经网络的常见问题解答:主题:是否应该对数据进行规范化/标准化/重新缩放?

2。我应该使用什么转换函数来代替Sigmoid?

您可以将逻辑S形或tanh用作激活函数。没关系 您不必更改学习算法。您只需要将训练集的输出缩放到输出层激活功能的范围(或),并且在训练网络时,就必须缩放您的网络的输出。网络到。您真的不需要更改任何其他内容。[01个][-1个1个][-55]


将神经网络输出缩放到[-5,5]范围的正确方法是什么?
用户

3
要将元素缩放到间隔您必须计算。Ë[一种b][Cd]Ë-一种b-一种d-C+C
alfa 2012年

2
但是由于sigmoid是非线性的,因此使用均匀分布采样来获取sigmoid的值,我们可能会得到接近1或接近0的值。这意味着我们必须学习我们的网络才能更加谨慎地选择中间值。乙状结肠+洁牙真的是一个不错的选择吗?
Smarty77 '18年

0

免责声明:提出的方法对于连续值不可行,但我确实认为Smarty77在项目决策中具有一定的分量,这为利用重新缩放的S型函数提供了一个很好的观点。本质上,S形函数会产生概率,该概率描述了采样成功率(即,具有这些特征的100张照片中有95张成功成为“狗”)。描述的最终结果是二进制结果,使用“二进制交叉熵”进行的训练描述了分离完全相反的结果的过程,该过程固有地阻碍了中间结果。输出的连续体仅在此处用于根据样本数量进行缩放(即0.9761的结果表示,在显示那些或类似三叉戟的10000个样本中,9761是“狗”),但每个结果本身仍必须视为二进制且不能任意粒度。因此,不应将其误认为是实数,并且在这里可能不适用。尽管我不确定网络的利用率,但我将标准化输出向量wrt本身。这可以通过softmax完成。这也将需要来自网络的11个线性输出(箱)(每个输出-5至+5一个),每个类别一个。它将为任何一个“ bin”提供正确答案的保证值。这种架构可以使用一键编码进行训练,其中1表示正确的bin。然后可以用某种方式来解释结果,例如贪婪策略或概率抽样。但是,要将其重铸为连续变量,每个索引的确定性可以用作在数字线上放置标记的权重(类似于S型单元的行为),但这也突出了主要问题:如果网络相当确定,结果为-2或+3,但绝对可以肯定,+ 1是可行的结果吗?谢谢您的考虑。祝您项目顺利。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.