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

В своей самой базовой форме нейронная сеть может быть представлена ​​линейной или логистической регрессией на одном персептроне.

Что такое линейная и логистическая регрессии?

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

Что такое Персептрон?

Единая функциональная единица нейронной сети — персептрон — это отдельный нейрон или вычислительная единица, которая получает данные из нескольких точек входа, вычисляет и дает один выход.

Какая черная магия происходит внутри персептрона?

А именно: Z = (W1*x1) + (W2*x2) + (W3*x3)+b.

W1, W2 и W3 называются весами. Это обучаемые параметры. b называется предвзятость. Это обучаемая произвольная константа, которая добавляет точку пересечения к кривой решения. Но эта простая формула создает проблему. Результат не всегда может быть линейным по отношению к данным.

Как избавиться от линейности?

На самом деле ответ на это довольно прост. Это называется функцией активации. Функция активации — это нелинейная непрерывная функция.

Окончательный результат Y вычисляется путем прохождения Z через функцию активации. Y’ = F(Z) . Это называется прямым распространением.

Когда и как мы обучаем нейронную сеть?

Теперь рассчитанный результат Y’ может совпадать или не совпадать с ожидаемым результатом Y. Это та часть, с которой начинается обучение. Основываясь на ожидаемом результате, мы формируем веса и смещения, чтобы мы могли Подогнать кривую решения к этому результату, помня о предыдущем результате.

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

Функцию потерь можно представить как функцию

После вычисления потерь пришло время оптимизировать кривую так, чтобы потери можно было минимизировать. Мы применяем алгоритм оптимизации под названием Градиентный спуск, который гласит:

Что такое обратное распространение?

Обратное распространение — это алгоритм, разработанный Джеффри Хинтоном. Он использует разницу между рассчитанным и ожидаемым результатом для расчета функции потерь. Затем он настраивает обучаемые параметры, чтобы они соответствовали кривой, чтобы минимизировать потери.

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

Что такое альфа?

Здесь альфа — это гиперпараметр (необучаемый параметр), называемый скоростью обучения. Скорость обучения — это, по сути, размер шага, который делается при движении к минимуму кривой потерь. Чем больше значение Alpha, тем больше размер шага, быстрее скорость сходимости, меньше точность и наоборот. Альфа выбирается между 0 и 1. Обычно значение, близкое к 0,001, выбирается как идеальное значение для скорости обучения.

Что такое Эпоха?

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

Как на самом деле работает градиентный спуск?

Функция потерь J является выпуклой функцией с минимумами. Обычно локальные минимумы также являются глобальными минимумами. Градиентный спуск побуждает веса давать выход, который минимизирует потери. Он побуждает веса двигаться в таком направлении, чтобы величина наклона функции потерь была минимальной. Отсюда и название «Градиентный спуск».

Как мы представляем множественные персептроны?

Очевидно, что расчеты начинают усложняться по мере увеличения количества слоев. Поэтому мы используем матрицы и векторы, чтобы сделать представления немного менее сложными. Мы представляем веса и смещения в каждом слое как векторы W и B, а входные данные — как вектор X. Поскольку мы используем несколько кортежей данных одновременно, мы складываем входные векторы рядом, чтобы сформировать входную матрицу.

Затем прямое распространение упрощается до:

Функция Loss и градиентный спуск выполняются одинаково.