我必须将输入标准化为使用 sigmoid 激活函数的感知器吗?

机器算法验证 神经网络
2022-04-17 23:04:44

我正在建立一个神经网络。网络中的每个感知器都使用一个sigmoid激活函数。

我必须标准化我的输入(当前范围从 0 到 1200)吗?我问这个是因为 sigmoid 函数接近 1,因为它的输入接近无穷大。因此,如果我的输入不在 0 和 1 之间,恐怕 sigmoid 将始终返回 1。

1个回答

输入应该缩放到激活函数的所谓“有效范围”,或者换句话说,函数曲线的导数明显不为零的区域。这样做是为了使反向传播能够正常工作,因为它使用激活函数导数,而~ 0导数意味着对 NN 权重的极小(微不足道)变化(无学习)。对于 sigmoid,有效范围介于-sqrt(3)和之间sqrt(3)您可以将输入缩放到该范围。

另外,是的:sigmoid 将始终输出 中的值(0;1),因为这是 sigmoid 的范围。您需要将 NN 输出缩放到必要的范围。