AI-For-Beginners/translations/ru/lessons/3-NeuralNetworks/03-Perceptron
localizeflow[bot] 7a7aeb92a1 chore(i18n): sync translations with latest source changes (chunk 1/1, 203 changes) 2026-01-30 01:10:04 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 1/1, 203 changes) 2026-01-30 01:10:04 +00:00
Perceptron.ipynb 🌐 Update translations via Co-op Translator 2025-12-12 20:42:50 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 203 changes) 2026-01-30 01:10:04 +00:00

README.md

Введение в нейронные сети: Перцептрон

Тест перед лекцией

Одной из первых попыток создать что-то похожее на современную нейронную сеть была работа Фрэнка Розенблатта из Корнельской аэрокосмической лаборатории в 1957 году. Это была аппаратная реализация под названием "Mark-1", предназначенная для распознавания простых геометрических фигур, таких как треугольники, квадраты и круги.

Фрэнк Розенблатт Перцептрон Mark 1

Изображения с Википедии

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

Потенциометр — это устройство, позволяющее пользователю регулировать сопротивление в цепи.

В то время газета The New York Times писала о перцептроне: эмбрион электронного компьютера, который [ВМС] ожидают, сможет ходить, говорить, видеть, писать, воспроизводить себя и осознавать свое существование.

Модель перцептрона

Предположим, у нас есть N признаков в модели, тогда входной вектор будет иметь размер N. Перцептрон — это модель бинарной классификации, то есть он может различать два класса входных данных. Мы будем считать, что для каждого входного вектора x выход нашего перцептрона будет либо +1, либо -1, в зависимости от класса. Выход вычисляется по формуле:

y(x) = f(wTx)

где f — это ступенчатая функция активации.

Обучение перцептрона

Чтобы обучить перцептрон, нам нужно найти вектор весов w, который классифицирует большинство значений правильно, то есть приводит к минимальной ошибке. Эта ошибка E определяется критерием перцептрона следующим образом:

E(w) = -∑wTxiti

где:

  • сумма берется по тем точкам обучающих данных i, которые приводят к неправильной классификации,
  • xi — входные данные, а ti — это либо -1, либо +1 для отрицательных и положительных примеров соответственно.

Этот критерий рассматривается как функция весов w, и его нужно минимизировать. Часто используется метод градиентного спуска, при котором мы начинаем с начальных весов w(0), а затем на каждом шаге обновляем веса по формуле:

w(t+1) = w(t) - η∇E(w)

Здесь η — это так называемая скорость обучения, а ∇E(w) обозначает градиент E. После вычисления градиента мы получаем:

w(t+1) = w(t) + ∑ηxiti

Алгоритм на Python выглядит следующим образом:

def train(positive_examples, negative_examples, num_iterations = 100, eta = 1):

    weights = [0,0,0] # Initialize weights (almost randomly :)
        
    for i in range(num_iterations):
        pos = random.choice(positive_examples)
        neg = random.choice(negative_examples)

        z = np.dot(pos, weights) # compute perceptron output
        if z < 0: # positive example classified as negative
            weights = weights + eta*weights.shape

        z  = np.dot(neg, weights)
        if z >= 0: # negative example classified as positive
            weights = weights - eta*weights.shape

    return weights

Заключение

В этом уроке вы узнали о перцептроне, который является моделью бинарной классификации, и о том, как его обучать, используя вектор весов.

🚀 Задание

Если вы хотите попробовать создать свой собственный перцептрон, попробуйте эту лабораторную работу на Microsoft Learn, которая использует Azure ML designer.

Тест после лекции

Обзор и самостоятельное изучение

Чтобы увидеть, как можно использовать перцептрон для решения учебной задачи, а также реальных задач, и продолжить обучение — перейдите в ноутбук Perceptron.

Вот интересная статья о перцептронах.

Задание

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