Глубокое обучение 101: Персептрон

Краткое введение: -

Это контролируемый линейный классификатор (двоичный). Это однослойная нейронная сеть.

История:

Алгоритм перцептрона был детищем Фрэнка Розенблатта, разработанным в Корнеллской авиационной лаборатории при финансовой поддержке Управления военно-морских исследований США. Его первой реализацией было программное обеспечение, работающее на IBM 704. Впоследствии оно было повторно реализовано в виде специально созданного оборудования под названием «персептрон Mark 1». Он был разработан с целью выполнения задач классификации изображений.

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

Почему это важно?

Персептрон был одной из первых реализаций нейронных сетей. Он был вдохновлен базовым пониманием человеческого мозга. Он заложил одну из основ современной нейронной сети.

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

Структура:

Структура персептрона проста. Он имеет один входной слой и один выходной слой.

Примечание. Но общее количество слоев равно одному, поскольку входной слой просто передает входные данные выходному слою (на входном слое не выполняются математические операции).

X1, X2, …, Xn — входы, W1, W2, …., Wn — веса, Y — выход, n — количество входов. В выходном слое вычисляется сумма NET (Z), и эта сумма передается в функцию активации (такую ​​как сигмоид) для получения вывода.

В целом структура состоит из четырех частей.

1. Входы (X1, X2, …, Xn)

2. Веса (W1, W2, Wn) и смещение (b)

3. ЧИСТАЯ СУММА (Z)

4. Активационная функция (σ)

Работает:

Персептрон — это двоичный классификатор. Он сопоставляет входы (X1, X2, …, Xn) с выходом Ŷ. Ŷ выводит значение 0 или 1. 0 означает один класс/метку, а ноль означает другой.

Примечание. Чтобы сначала выполнить это сопоставление, нейронная сеть сначала обучается, чтобы она могла запоминать значения весов.

Этот тип сети может использоваться для ряда приложений классификации. Например, найдите двоичный выход 3 входных ворот. Посмотрите этот пример как реализацию на python во второй части поста.

Обучение:

Переход вперед и проход назад.

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

Переход вперед

1) Сначала входы (X1, X2, …, Xn) передаются на входной слой.

2) Веса инициализируются случайным образом. (W1, W2, …, Wn ) (со значением от 0 до 1)

3) Для каждого узла входные данные (X) и веса (W) умножаются, и пусть это значение равно K.

4) Чистая стоимость (σ) рассчитывается путем суммирования K для всех входных узлов.

5) Чистое значение передается функции активации (например, Sigmoid), которая выводит значение от 0 до 1.

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

Примечание. Веса действуют как блок памяти нейронной сети.

Обратный проход.

Ошибка рассчитывается по формуле.

Где Y — фактическое значение Ŷ — прогнозируемое значение.

Примечание. Теперь нам нужно уменьшить эту ошибку и приблизить прогнозируемое значение к фактическому значению. Персептрон использует правило под названием «Правило обучения персептрона» для обновления весов.

1) Сначала вычисляется ошибка.

2)Далее рассчитывается по формуле.

3) Смещение обновляется с помощью формулы.

Где μ — скорость обучения, ẽ — ошибка, Xi — входные данные, i — номер узла.

3) Шаги с 1 по 3 повторяются до тех пор, пока не будет достигнута сходимость.

Конвергенция.

При Y-Ŷ = 0 (близком к нулю) достигается сходимость. Веса и смещения установлены правильно. Таким образом, нейронная сеть обучилась.

Как теперь используется эта модель?

Теперь, используя обученную модель, входные значения передаются входному слою, и нейронная сеть выполняет один проход вперед с этим значением в качестве входных данных(как описано в разделе Процесс обучения — шаги вперед с 1 по 5.) и результат Ŷ прогнозируется.

Например, в случае использования персептрона в качестве вентиля И. Делаем следующее.

  • Сначала обучите модель, используя входы и выходы логического элемента И.
  • Где X1, X2, X3 — входы, а Y — выход (метка «Выход»). Это обучающие данные, с помощью которых мы обучаем нейронную сеть.

Для предсказания значений.

  • Мы передаем X1, X2, X3 (входы) обученной нейронной сети, и прогнозируется значение Y, которое является выходом логического элемента И.