неправильный рассчет ошибки нейросети

Я написал нейросеть. постоянно выдается одно и та же значение ошибки нейросети. нейросеть необучается. Как решить эту проблему? В зарание спасибо вот код.

import random
db = [0, 0, 0, 0, 1, 1, 1, 0, 1]
s = []
n = [0, 0, 0, 0, 0]
ps = []
i = 0
error1 = 0 
while i <= 6:
    s.append(random.randint(-50, 50)/10)
    i += 1
i = 0
while i <= 8:
    n[0] = db[i]
    i += 1
    n[1] = db[i]
    i += 1
    n[2] = n[0]*s[0]+n[1]*s[1]
    n[3] = n[0]*s[2]+n[1]*s[3]
    n[4] = n[2]*s[4]+n[3]*s[5]
    error = db[i]-n[4]
    if error < 0:
        error1 = error1+(-error)
    else:
        error1 = error1+error
    i += 1
perror = error1
ps = s
print(perror)
while perror > 0.5:
    i1 = random.randint(0, 5)
    s[i1] = s[i1]+random.randint(-1, 1)/10
    while i <= 8:
        n[0] = db[i]
        i += 1
        n[1] = db[i]
        i += 1
        n[2] = n[0]*s[0]+n[1]*s[1]
        n[3] = n[0]*s[2]+n[1]*s[3]
        n[4] = n[2]*s[4]+n[3]*s[5]
        error = db[i]-n[4]
        if error < 0:
            error = (-error)
            error1 = error1+error
        else:
            error1 = error1+error
        if error1 <= perror:
            perror = error1
            ps = s
            s = ps
        else:
            s = ps
        i += 1
    print(perror)
print(s)
input()

Ответы (1 шт):

Автор решения: Tehnorobot

Я не уверен, но скорее всего ошибка в том, что вы не меняете ключевые значения для выходов модели нейронной сети.

У вас данные строчки не используются, но скорее всего должны, исходя из вашего кода:

i1 = random.randint(0, 5)
s[i1] = s[i1]+random.randint(-1, 1)/10

Далее после этих строк идёт цикл while, где используются те же значения переменных: db[i] - > error - > error1 - > perror

→ Ссылка