【问题标题】:Is there any difference between an activation function and a transfer function?激活函数和传递函数之间有什么区别吗?
【发布时间】:2014-11-21 08:58:40
【问题描述】:
【问题讨论】:
标签:
machine-learning
artificial-intelligence
neural-network
matlab
【解决方案1】:
我还引用了wikipedia 的内容:“通常每个节点的总和都是加权的,并且总和通过称为激活函数或传递函数的非线性函数传递。 p>
至少在机器学习方面,我读过的所有书籍都可以互换使用它们。
-
激活函数现在几乎只使用了
-
传递函数主要用于较旧的(80/90 年代)书籍中,当时机器学习并不常见,并且大多数读者具有电气工程/信号处理背景。
总结一下
- 更喜欢术语激活函数
- 如果其他人对它们进行区分,请让他们澄清他们的意思
【解决方案2】:
经过一些研究,我在"Survey of Neural Transfer Functions", from Duch and Jankowski (1999) 中发现:
transfer_function = activation function + output function
IMO 这个术语现在很有意义,因为我们需要一个值(信号强度)来验证它,神经元将被激活,然后从中计算输出。而整个过程所做的就是将信号从一层传输到另一层。
两个函数决定了神经元处理信号的方式。这
激活函数决定了神经元接收到的总信号。激活函数的值通常是标量,而
参数是向量。第二个函数决定神经元的
信号处理是输出函数 o(I),在标量上操作
激活和返回标量值。通常是挤压
函数用于将输出值保持在指定范围内。
这两个函数共同决定了神经元的值
输出信号。激活和输出的组成
函数称为传递函数 o(I(x))。
【解决方案3】:
我认为图表是正确的,但在术语上并不准确。
传递函数包括图表中的激活函数和传递函数。图中所谓的传递函数通常称为网络输入函数。净输入函数只对输入添加权重并计算净输入,通常等于输入的总和乘以给定的权重。激活函数,可以是sigmoid、step等函数,应用于网络输入生成输出。
【解决方案4】:
Transfer 函数来自名称转换,用于转换目的。另一方面,激活函数检查输出是否满足某个阈值并输出零或一。非线性传递函数的一些示例是 softmax 和 sigmoid。
例如,假设我们有连续的输入信号 x(t)。这个输入信号通过传递函数H(s)转换成输出信号y(t)。
Y(s) = H(s)X(s)
如上所示,转移函数H(s) 通过转换将输入X(s) 的状态更改为新的输出状态Y(s)。
仔细观察 H(s) 表明它可以表示神经网络中的权重。因此,H(s)X(s) 只是输入信号与其权重的乘积。然后将给定层中的几个输入权重对相加,形成另一层的输入。这意味着神经网络任何层的输入只是其输入和权重的传递函数,即线性变换,因为输入现在由权重变换。但在现实世界中,问题本质上是非线性的。因此,为了使输入数据非线性,我们使用称为激活函数的非线性映射。激活函数是一种决策函数,用于确定特定神经特征的存在。它映射在 0 和 1 之间,其中 0 表示该特征不存在,而 1 表示该特征存在。不幸的是,权重发生的微小变化并不能反映在激活值中,因为它只能取 0 或 1。因此,非线性函数必须在此范围内是连续且可微的。
实际上,在输出激活之前,您首先计算 sigmoid,因为它是连续的和微分的,然后将其用作激活函数的输入,该函数检查 sigmoid 的输出是否高于其激活阈值。神经网络必须能够接受从 -infinity 到 +positiveinfinity 的任何输入,但在某些情况下它应该能够将其映射到介于 {0,1} 或 {-1,1} 之间的输出 - 因此需要激活函数.
【解决方案5】:
我也是机器学习领域的新手。据我了解...
传递函数:
传递函数计算净重,所以你需要修改你的代码或计算它需要在传递函数之前完成。您可以使用适合您任务的各种传输函数。
激活函数:用于计算阈值,即您的网络何时给出输出。如果您的计算结果大于阈值,它将显示输出,否则不显示。
希望这会有所帮助。