コード例 #1
0
np.random.seed(101)


def func(x, form=0):
    if form == 0:
        return x + 1.0
    if form == 1:
        return x * x + x + 1.0


xd = np.random.randn(100)
yd = func(xd, form=1)

nn = NeuralNetwork(sizes=[1, 5, 1], activation_function="sigmoid")
y = nn.eval(1.0)
print y
gamma = np.random.randn(nn.n) * 0.2

for j in range(10000):
    nn.set_from_array(gamma)
    dJdgamma = np.zeros_like(gamma)
    J = 0.0
    for i in range(len(xd)):
        xin = xd[i]
        yeval = nn.eval(xin)
        #print yeval
        J += (yeval - yd[i])**2
        dydgamma = nn.dydgamma(xin, gamma)
        dJdgamma += 2.0 * (yeval - yd[i]) * dydgamma
    gamma = gamma - dJdgamma / np.abs(dJdgamma) * 0.001