Artificial intelligence 为什么在使用反向传播时需要使用sigmoid函数?

Artificial intelligence 为什么在使用反向传播时需要使用sigmoid函数?,artificial-intelligence,neural-network,backpropagation,Artificial Intelligence,Neural Network,Backpropagation,为什么我们不能在计算权重时使用阶跃函数 weightChange = n * (t-o) * i Where, n: learning rate; t: target out; o: actual out; i: input 这适用于单层网络。我听说需要一个sigmoid来处理非线性问题,但为什么呢?sigmoid激活允许[0,1]中的实值数字的平滑曲线。通过这种方式,可以计算并调整错误,以便下次执行前馈时,它不仅输出整数,还输出来自[0,1]的预测。这样,您可以选择忽略哪个,接受哪个 你所

为什么我们不能在计算权重时使用阶跃函数

weightChange = n * (t-o) * i

Where, n: learning rate;
t: target out;
o: actual out;
i: input
这适用于单层网络。我听说需要一个sigmoid来处理非线性问题,但为什么呢?

sigmoid激活允许[0,1]中的实值数字的平滑曲线。通过这种方式,可以计算并调整错误,以便下次执行前馈时,它不仅输出整数,还输出来自[0,1]的预测。这样,您可以选择忽略哪个,接受哪个

你所描述的是一个二元神经元,这也是完全可以接受的。但是乙状结肠激活的神经元给你[0,1]的光谱

乙状结肠激活允许[0,1]的实数平滑曲线。通过这种方式,可以计算并调整错误,以便下次执行前馈时,它不仅输出整数,还输出来自[0,1]的预测。这样,您可以选择忽略哪个,接受哪个


你所描述的是一个二元神经元,这也是完全可以接受的。但是乙状结肠激活的神经元给了你[0,1]的光谱严格来说,你不需要乙状结肠激活功能。你需要的是一个可微函数,作为阶跃函数的近似值。作为sigmoid的替代方法,可以使用切线函数


对于多层感知器网络,简单感知器学习规则不提供根据给定的输出误差确定如何调整输出中几层的权重的方法。反向传播学习规则依赖于sigmoid函数是可微的这一事实,这使得能够表征相对于特定权重的变化的输出层误差的变化率,即使权重是远离输出的多层。请注意,当sigmoid的k参数趋于无穷大时,sigmoid接近阶跃函数,这是基本感知器中使用的激活函数

严格来说,你不需要乙状结肠激活功能。你需要的是一个可微函数,作为阶跃函数的近似值。作为sigmoid的替代方法,可以使用切线函数


对于多层感知器网络,简单感知器学习规则不提供根据给定的输出误差确定如何调整输出中几层的权重的方法。反向传播学习规则依赖于sigmoid函数是可微的这一事实,这使得能够表征相对于特定权重的变化的输出层误差的变化率,即使权重是远离输出的多层。请注意,当sigmoid的k参数趋于无穷大时,sigmoid接近阶跃函数,这是基本感知器中使用的激活函数

我了解它的作用,但为什么你不能将阶跃函数和感知学习算法应用于多层网络?我肯定它存在,但它们是不同类型的神经网络。我了解它的作用,但为什么你不能将阶跃函数和感知学习算法应用于多层网络?我很抱歉当然它是存在的,但是它们是不同类型的神经网络抱歉,也许我这里遗漏了一些东西,但是为什么感知器学习规则在计算权重更新时使用输入,而back prop需要输出的sigmoid导数?为什么输入对学习规则有效,而不是反向支持?当你说它表征了输出层的变化率时,仅仅使用当前节点的一个输出,它将如何准确地做到这一点?使用简单的感知器,输入到输出只有一条路径,因此输入乘以误差告诉你权重是增加还是减少。在MLP中,从每个输入到每个输出神经元有多条路径,因此简单的感知器更新规则不起作用。如果神经元的S形输出是y,那么导数就是y1-y。反向传播是因为您使用输出层的输出误差、sigmoid导数和上一层的输入更新输出层的权重,然后对每个上一层重复此操作,返回到输入层。对不起,也许我在这里遗漏了一些东西,但是为什么感知器学习规则在计算权重更新时使用输入,而back prop需要输出的sigmoid导数?为什么输入对学习规则有效,而不是反向支持?当你说它表征了输出层的变化率时,仅仅使用当前节点的一个输出,它将如何准确地做到这一点?使用简单的感知器,输入到输出只有一条路径,因此输入乘以错误会告诉你权重是增加还是减少 折痕在MLP中,从每个输入到每个输出神经元有多条路径,因此简单的感知器更新规则不起作用。如果神经元的S形输出是y,那么导数就是y1-y。反向传播是因为您使用输出层的输出误差、sigmoid导数及其来自前一层的输入更新输出层的权重,然后针对每个前一层对输入层重复此操作。