gpt4 book ai didi

python - 我们什么时候不需要激活函数?

转载 作者:行者123 更新时间:2023-12-03 23:06:04 24 4
gpt4 key购买 nike

我写了一个非常基本的 tensorflow 模型,我想在其中预测一个数字:

import tensorflow as tf
import numpy as np


def HW_numbers(x):
y = (2 * x) + 1
return y

x = np.array([1.0,2.0,3.0,4.0,5.0,6.0,7.0], dtype=float)
y = np.array(HW_numbers(x))

model = tf.keras.models.Sequential([tf.keras.layers.Dense(units=1,input_shape=[1])])
model.compile(optimizer='sgd',loss='mean_squared_error')
model.fit(x,y,epochs = 30)

print(model.predict([10.0]))
上面的代码工作正常。但是如果我在 Dense 层中添加一个激活函数,预测就会变得很奇怪。我试过“relu”、“sigmoid”、“tanh”等。
我的问题是,为什么会这样?激活函数在那个扰乱预测的单层中到底做了什么?
我用过 Tensorflow 2.0

最佳答案

您的网络仅由一个神经元组成。因此,它在没有激活函数的情况下所做的是将您的输入与神经元权重相乘。这个权重最终会收敛到 2.1 左右。

  • 但与 relu 作为激活函数,只有正数会通过您的网络传播。因此,如果您的神经元权重初始化为负数,您将始终获得零作为输出。因此,使用 relu,您有 50:50 的机会获得好的结果。
  • 带激活函数 tanh sigmoid ,神经元的输出分别限制为 [-1,1] 和 [0, 1],因此您的输出不能超过 1。

  • 所以对于这么小的神经元网络,这些激活函数与问题不符。

    关于python - 我们什么时候不需要激活函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62641394/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com