Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##
- # Пример перцептрона с его обучением
- ##
- import numpy as np
- # Текущий вес перцептрона
- w = np.array([0,0,0])
- # Примеры и правильные ответы для этих примеров
- examples = np.array([[1,1,0.3], [1,0.4, 0.5], [0, 0.7, 0.8]])
- def Target(ex):
- if ex[1] == 1 and ex[2] == 0.3:
- return 1
- elif ex[1] == 0.4 and ex[2] == 0.5:
- return 1
- elif ex[1] == 0.7 and ex[2] == 0.8:
- return 0
- #
- # Функция нужна для предсказания значения
- #
- def Predict(example):
- sum = example[0]*w[0]+example[1]*w[1]+example[2]*w[2]
- print("Пример ", example)
- print("Сумма ", sum)
- if (sum > 0):
- return 1
- else:
- return 0
- #
- # Алгоритм обучения
- #
- perfect = False
- while not perfect:
- perfect = True
- for e in examples:
- # Для всех примеров, которые мы составили для тренировки
- # Если предсказанное значение для этого примера не равно
- # целевому значению этого примера, то нейрон что-то классифицировал
- # не идеально
- if Predict(e) != Target(e):
- perfect = False
- # В первом случае:
- # Если мы предсказали 0 и ошиблись,
- # то значит правильным ответом должна быть единица
- # т.е. мы должны прибавить к нашим весам значение нашего примера
- if Predict(e) == 0:
- w = w + e
- # В другом случае тоже самое, но наоборот
- else:
- w = w - e
- print("Новык веса ", w)
- print("Финальные веса ", w)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement