【问题标题】:NaN in regression neural network回归神经网络中的 NaN
【发布时间】:2020-10-24 03:18:46
【问题描述】:

我试图在 python 上构建一个 NN 来解决输入 X (a,b) 和输出 Y(c) 的回归问题。 使用leaky Relu 作为隐藏层的激活函数和输出层的线性函数。经过 3-4 次迭代后,nn 似乎会因极大/极小的数字而爆裂,并导致 NaN。 我使用的衍生物如下。也许有人可以帮助我 - 是我的数学问题还是我应该在 nn 之前做更多的工作来标准化 X 和 Y?

    dW2 = -2*(np.dot(dZ2,A1.transpose()))/m
    db2 = -2*(np.sum(dZ2, axis = 1, keepdims = True))/m
    drel = lrelu(Z1)
    dZ1 = (np.dot(W2.transpose(),dZ2))*(drel)
    dW1 = (np.dot(dZ1,X.transpose()))/m
    db1 = (np.sum(dZ1, axis = 1, keepdims = True))/m

在哪里

    Z1 = np.dot(W1,X)+b1
    A1 = np.where(Z1 > 0, Z1, Z1 * 0.01)
    Z2 = np.dot(W2,A1)+b2
    A2 = Z2*1
    cost = np.sum(np.square(Y-A2))/m

和Relu导数:

def lrelu(rel):
    alpha = 0.01
    drel = np.ones_like(rel)
    drel[rel < 0] = alpha
    return drel

谢谢

【问题讨论】:

    标签: python neural-network regression relu


    【解决方案1】:

    已经通过预处理数据解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2019-01-27
      • 2021-09-13
      • 1970-01-01
      • 2020-05-12
      • 2018-04-30
      • 2015-12-21
      • 2018-05-08
      • 1970-01-01
      • 2022-11-07
      相关资源
      最近更新 更多