Я неправильно разбираюсь в цепей нейронной сети? Предсказания иногда кажутся случайнымиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Я неправильно разбираюсь в цепей нейронной сети? Предсказания иногда кажутся случайными

Сообщение Anonymous »

Я пытаюсь создать нейронную сеть с 2 уровнями (1 -е имеет 2 нейрона, 2 -й имеет 1 нейрон), который просматривает список из 4 чисел, и если первые и третьи числа равны 1, то ответ должен быть 1 , в других случаях = 0. < /p>
Я вообще не использую библиотеки Framework, просто случайные, чтобы сделать случайные веса, а Numpy yo - средняя потери квадрата. Я знаю, что если я не устанавливаю семян -рандомизатора, он всегда будет случайным, но мои ответы слишком случайные. < /P>
У меня есть тестовый набор данных, где должен быть первый и последний список 1 и 2 -й и 3 -й - 0: < /p>
x2 = [
[1, 0, 1, 0], # answer: 1
[1, 0, 0, 0], # answer: 0
[0, 1, 1, 0], # answer: 0
[1, 0, 1, 1] # answer: 1
]
< /code>
Но каждый раз, когда я запускаю код, ответ на 1 -й и 2 -й список является более случайным, чем 3 и 4 -е. Иногда ответ на 2 -й больше, чем первым.err3 = y1 - neuron3.activate(pY3)
err1 = y1 - pY1
err2 = y1 - pY2
neuron1.w[k] += x1[k] * numpy.mean(err3 ** 2) * err1 * lr
neuron2.w[k] += x1[k] * numpy.mean(err3 ** 2) * err2 * lr
#(x1 is training dataset, is list index and [k] is list element index)
< /code>
to: < /p>
neuron1.w[k] += x1[k] * numpy.mean(err3 ** 2) * numpy.mean(err1 ** 2) * lr
neuron2.w[k] += x1[i][k] * numpy.mean(err3 ** 2) * numpy.mean(err2 ** 2) * lr
< /code>
Но у меня есть ошибки oveflow.import random
import math
import numpy

class Neuron:
def __init__(self, weightsC):
self.w = []
for i in range(weightsC):
self.w.append(random.random())

def activate(self, x):
return max(0, x)

def predict(self, px):
value = 0
for i in range(len(self.w)):
value += px[i] * self.w[i]
return value

'''def train(self, count, x, y, lr=0.1):
print("\tTraining Start:")
for i in range(count):
print("EPOCH:", i)
for j in range(len(x)):
py = self.predict(x[j])
print("pY:", py)
err = y[j] - self.activate(py)
print("err:", err)
for k in range(len(self.w)):
self.w[k] += err * x[j][k] * lr
print("w[k]", self.w[k])'''

x1 = [
[0, 0, 0, 0],
[1, 0, 1, 0],
[1, 1, 0, 1],
[0, 1, 1, 0],
[1, 1, 0, 0],
[1, 0, 1, 1],
[1, 1, 1, 0]
]

y1 = [0, 1, 0, 0, 0, 1, 1]

x2 = [
[1, 0, 1, 0],
[1, 0, 0, 0],
[0, 1, 1, 0],
[1, 0, 1, 1]
]

pY1 = []
pY2 = []
pY3 = []

if __name__ == "__main__":
lr = 0.001

neuron1 = Neuron(4)
neuron2 = Neuron(4)
neuron3 = Neuron(2)
print("w1 = ", neuron1.w)
print("w2 = ", neuron2.w)
print("w3 = ", neuron3.w)

for l in range(1000):
#print("EPOCH = ", l)
for i in range(len(x1)):
pY1.append(
neuron1.activate(
neuron1.predict(x1[i])
)
)
#print("layer1_pred1 = ", pY1[i])

pY2.append(
neuron2.activate(
neuron2.predict(x1[i])
)
)
#print("layer1_pred2 = ", pY2[i])

layer1_pred = [pY1[i], pY2[i]]
pY3.append(
neuron3.predict(
layer1_pred
)
)
#print("layer2_pred1 = ", pY3[i])

err3 = y1[i] - neuron3.activate(pY3[i])
#print("err3 = ", err3)

for j in range(len(neuron3.w)):
neuron3.w[j] += layer1_pred[j] * numpy.mean(err3 ** 2) * lr

err1 = y1[i] - pY1[i]
#print("err1 = ", err1)
err2 = y1[i] - pY2[i]
#print("err2 = ", err2)

for k in range(len(neuron1.w)):
neuron1.w[k] += x1[i][k] * numpy.mean(err3 ** 2) * err1 * lr
for k in range(len(neuron2.w)):
neuron2.w[k] += x1[i][k] * numpy.mean(err3 ** 2) * err2 * lr

pY1 = pY2 = pY3 = []

print("testing")
for item in x2:
pred1 = neuron1.activate(neuron1.predict(item))
pred2 = neuron2.activate(neuron2.predict(item))
print(neuron3.predict([pred1, pred2]))


Подробнее здесь: https://stackoverflow.com/questions/794 ... -sometimes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Я неправильно разбираюсь в цепей нейронной сети? Предсказания иногда кажутся случайными
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Макрос для создания цепных цепей и IFS
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Sslhandshakeexception - Проверка цепей цепочки не удалась, как решить?
    Anonymous » » в форуме Android
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Идея предсказания названий книг
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Проблемы онлайн-предсказания/генерации Vertex AI: я получаю 404 на конечной точке клиентской библиотеки по умолчанию и к
    Anonymous » » в форуме Php
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»