【问题标题】:Help understanding unipolar transfer function帮助理解单极传递函数
【发布时间】:2011-02-17 21:21:46
【问题描述】:
有一个问题我一直坚持使用以下单极传递函数公式:
f(net)= 1
__________
-net
1 + e
示例有以下内容:
out = 1
____________ = 0.977
-3.75
1 + e
我们如何得出 0.977?
什么是e?
【问题讨论】:
标签:
math
function
neural-network
algebra
【解决方案1】:
虽然事实上正确,但其他响应仅提供 e 的值并确认基础计算。这种类型的sigmoid functions 在神经网络中非常普遍,因此可能会欢迎一些额外的见解。
本质上是指数函数(e 的 x 次方),具有非常特征的曲线:
- 大部分平坦在零(实际上略高于零),从 - 无穷大到大约 -2
- 逐渐向垂直方向急转弯,大约在 -2 和 +4 之间
- 准“垂直”,值超过 150 并且越来越大,从 +5 到无穷大
因此指数曲线对于生成“S 形”函数非常有用;顺便说一句,“S”是希腊语中的 Sigma,它提供了“sigmoid”的词源。此类函数通常以问题中显示的公式为模式:
1/(1 + e^-x)
其中 x 是变量。通常,此类函数还包括旨在扩展范围(x 变化显着的输入区域)和/或修改此中间区域中的曲线的常数。
此类函数的结果是,直到输入的特定值,函数是准常数,然后,对于特定范围的输入,函数提供递增的输出,最后超过范围的上限值,函数是准常数。更详细地看,这种 Sigmoid 有一个拐点,它对应于输出变化率的反转,并且还标记了曲线的任一侧区域,其中变化相对而言是最慢的。
反过来,这样的 S 形曲线 (1) 对于归一化神经网络神经元的输出非常有用,或者更一般地说,对于在各种性质的过程中对各种数值进行归一化非常有用。直观地说,这些对应于底层神经元或设备的“sweet spot”或“sweet range”。
(1) 或者,也可能是“递减”形曲线,即具有基本恒定的高值的曲线,在中间范围内减小的值,以及此后的基本恒定的低值。
【解决方案2】:
'e'是自然对数函数的底,其值等于无穷级数1/n之和!对于 n 从 0 到无穷大。它在 C 标准库或 java Math 包中作为 exp() 函数提供。
如果你计算 1/(1+exp(-3.75)) 你会得到 0.977
【解决方案3】:
e 是Euler's number == 2.718281828....
如果你将 e 提高到 -3.75 次方,再加一,然后取反,你会得到精确的 0.977022630....