Искусственные нейронные сети (ИНС)

Один нейрон (или персептрон), который имеет вход и выход, называется логистической регрессией. Искусственные нейронные сети (ИНС) представляют собой группу из нескольких нейронов на каждом уровне сети. Эти ИНС также называются нейронными сетями с прямой связью, потому что они обрабатывают входные данные в прямом направлении.

На рисунке выше мы видим три слоя: входной, скрытый и выходной. По сути, каждый слой пытается выучить определенные веса.

  1. Входной слой: принимает данные в качестве входных данных
  2. Скрытый слой: обработка входных данных и получение функций из данных.
  3. Выходной слой: производит результаты

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

Преимущества ИНС

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

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

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

Проблемы с ИНС:

Существуют некоторые проблемы, связанные с ИНС, описанными ниже.

  1. Классификация изображений может быть решена с помощью ИНС, то есть путем преобразования 2D-изображений в 1D-векторы перед процессом обучения. Это имеет следующие два недостатка.

  • Если размер изображения увеличивается, количество обучаемых параметров также увеличивается, например, в приведенном выше сценарии изображение размером 224 * 224 для 4 скрытых слоев дает 602 112, и это огромное число.
  • Еще одним недостатком преобразования 2D-изображений в ID-векторы является то, что изображение может потерять пространственные характеристики, то есть расположение пикселей. Мы не будем подробно обсуждать это здесь, так как это не является предметом данной темы.

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

3. ИНС нельзя использовать для последовательных данных, поскольку она не может собирать полезную информацию в последовательных данных, которые представляют собой последовательности слов в предложении.

Нейронная сеть с прямой связью или ИНС в PyTorch.
Ниже приведен код Pytorch для простой нейронной сети с прямой связью. Как видно, в этом примере используется один скрытый слой, есть один скрытый слой, мы также можем использовать больше скрытых слоев, но просто не забудьте поместить relu под каждым скрытым слоем, чтобы создать неактивный слой. -линейность.

Рекуррентные нейронные сети — RNN

Определение RNN в Википедии:
Рекуррентная нейронная сеть (RNN) — это класс «искусственных нейронных сетей, в которых соединения между узлами образуют ориентированный граф вдоль временной последовательности.»
но простыми словами, мы можем сказать, что
« циклическое ограничение на скрытом слое ИНС превращается в RNN

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

RNN в Pytorch:

Простая языковая модель в PyTorch, которая принимает три слова и предсказывает четвертое слово, выглядит так. Функция forward использует три активации для трех слов:

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

Чтобы лучше понять код, перейдите по ссылке ниже.

https://colab.research.google.com/github/fastai/fastbook/blob/master/12_nlp_dive.ipynb#scrollTo=_qbdmYcG8u0p

Преимущества RNN

  • RNN в основном используются для задач обработки естественного языка (NLP), которые в основном представляют собой много текста. Поэтому RNN должны фиксировать зависимость между словами в предложении или текстовом корпусе при прогнозировании.

В приведенной выше анимации выходные данные O1, O2, O3, O4 зависят от каждого предыдущего слова, а не только от текущего слова, l что означает, что информация о каждой последовательности слов фиксируется.

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

На рисунке выше представлены три матрицы весов, т. е. U, V, W, которые используются слоями по временным шагам.

Проблемы с RNN

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

Как вы можете видеть здесь, вычисление градиента на последнем временном шаге исчезает, когда он достигает первого временного шага.

Чтобы узнать больше статей о машинном обучении и глубоком обучении, подпишитесь и похлопайте в знак признательности. Мир!