我试图在python上构建NN,以解决输入X(a,b)和输出Y(c)的回归问题。
将泄漏的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
谢谢
答案 0 :(得分:0)
已经通过预处理数据解决了这个问题。