ОДНОСЛОЙНЫЙ ПЕРСЕПТРОН PYTHON

Однослойный персептрон является простейшей формой нейронной сети, которая может использоваться для бинарной классификации. В Python его можно реализовать с помощью библиотеки NumPy. Для начала нужно подготовить данные и выбрать функцию активации.

import numpy as np

class Perceptron:
    def __init__(self, learning_rate=0.01, n_iters=1000):
        self.lr = learning_rate
        self.n_iters = n_iters
    def fit(self, X, y):
        self.weights = np.zeros(1 + X.shape[1])
        for _ in range(self.n_iters):
            for xi, target in zip(X, y):
               update = self.lr * (target - self.predict(xi))
               self.weights[1:] += update * xi
               self.weights[0] += update
    def net_input(self, X):
        return np.dot(X, self.weights[1:]) + self.weights[0]
    def predict(self, X):
        return np.where(self.net_input(X) >= 0.0, 1, -1)

В данном примере применяется пороговая функция в качестве функции активации. После подготовки данных и реализации класса Perceptron, можно начать обучать сеть.

X = np.array([[-2,4], [-1, 2.5], [0,1.6], [1,3], [2,4.5], [3,5]])
y = np.array([-1,-1,-1,1,1,1])
perceptron = Perceptron()
perceptron.fit(X, y)

После обучения можно проверить результаты классификации:

print(perceptron.predict(np.array([[2,1]]))) # -1
print(perceptron.predict(np.array([[1,5]]))) # 1

НЕЙРОСЕТЬ В 7 СТРОК - ВЫ ОРНЁТЕ

Нейронная сеть в 9 строк кода на Python

Замыкания в Python. Closure Python

Однослойный персептрон в MATLAB и на Python

НЕЙРОСЕТИ - самое понятное объяснение + пишем нейросеть с нуля.

Лекция 1. Нейронные сети. Теоретические результаты

BLGPG-1DA9F37A9ECF-24-09-19-20

Новые материалы: