В этой статье я возвращаюсь к основам нейронных сетей!

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

Некоторая предыстория -

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

Нейронные сети в общих чертах представляют собой архитектуру модели, предназначенную для машинного обучения, в которой модель учится выполнять задачу, анализируя обучающие данные. Например, у вас есть изображения рукописного числа «4», и вы пометили их, используя их в качестве обучающих данных, ваша модель будет определять закономерности в рукописных изображениях при обучении и связывать их с числом «4». Если вы в следующий раз покажете изображение «5», если сможете сказать, что это не «4», простая классификация. Как и любая другая модель, такая как деревья решений, логистическая регрессия и т. д.

Тогда что делает их могущественными?

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

Что такое нейронные сети?

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

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

вы можете спросить, какие узлы/веса/пороги/слои и т. д. Я вас прикрыл.

Узлы — имеет несколько названий Нейрон/Персептрон/Узлы, все они указывают на базовую единицу нейронной сети. Каждый узел получает набор входных данных и значений смещения, при поступлении входных данных он умножается на значение веса.

Соединение — каждый узел может иметь соединения со своим входным слоем или внутри своего слоя. Передача входных данных с одного узла уровня на уровень получателя называется соединением.

Вход (x) — может быть выходом функции из узла или значением обучающего набора данных, полученным узлом. Каждый вход связан с соответствующим весом.

Вес (w) — представляет величину влияния входа на узел.

Функция активации f(z) — это нелинейное преобразование входных значений. Существуют различные типы функций, наиболее часто используемыми являются сигмовидная, Tanh, ReLU, SoftMax и т. д. Эти функции помогают ограничить входное значение диапазоном от 0 до 1.

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

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

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

Функция потерь/затрат — Функция для оценки отклонения оценочных значений от фактических значений. Эффективность нейронной сети зависит от оптимизации функции потерь и общего значения потерь (Error). Функция потерь зависит от варианта использования, который мы пытаемся решить, для регрессии мы можем думать о MSE, классификации, затем об энтропии и т. д.

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

Размер пакета — если вы используете keras/TensorFlow и т. д., вы, должно быть, видели, как используется пакет, это количество обучающих примеров за один проход вперед/назад. Чем выше размер пакета, тем больше места в памяти.

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

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