首页 > 解决方案 > 成本函数神经网络

问题描述

以下代码是我尝试根据输入数据预测某个数字的神经网络(1 个隐藏层)的实现。

由于我试图预测连续值输出,因此我在输入层使用 sigmoid 函数,在输出层使用恒等函数

def propagate(X,y,w1,b1,w2,b2,alpha,ite):
    assert(X.shape[0] == 11)
    assert(y.shape[0] == 1)
    assert(X.shape[1] == y.shape[1])
    m = X.shape[1]
    J = np.zeros(shape=(ite,1))
    iteNo = np.zeros(shape=(ite,1))
    for i in range(1,ite+1):
        z1 = np.dot(w1,X) + b1
        a1 = sigmoid(z1)
        z2 = np.dot(w2,a1) + b2

        dz2 = (z2-y)/m
        dw2 = np.dot(dz2,a1.T)
        db2 = np.sum(dz2, axis=1, keepdims=True)
        dz1 = np.dot(w2.T,dz2)*derivative_of_sigmoid(z1)
        dw1 = np.dot(dz1,X.T)
        db1 = np.sum(dz1, axis=1, keepdims=True)

        w2 = w2 - (alpha*dw2)
        b2 = b2 - (alpha*db2)
        w1 = w1 - (alpha*dw1)
        b1 = b1 - (alpha*db1)

        iteNo[i-1] = i
        J[i-1] = np.dot((z2-y),(z2-y).T)/(2*m)

    print(z2)    
    return w1,b1,w2,b2,iteNo,J

我已经尝试了这两种方法(使用特征归一化和缩放&没有),但我的成本函数在迭代次数(Plotted J)方面变化如下。 在 x 轴上:迭代次数,在 y 轴上:错误 * 10^12

请帮忙!

标签: pythonneural-networkdata-science

解决方案


推荐阅读