Полностью подключенная нейронная сеть

NLP
Полностью подключенная нейронная сеть

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

Во-первых, полностью связанная структура нейронной сети

Левая картинка на рисунке ниже — это простейшая сетевая структура полносвязной нейронной сети, крайний левый — входной слой, который отвечает за получение данных, последний — выходной слой, который получает выходные данные из этого слоя, крайний левый — входной слой, который отвечает за получение данных слой между ними является скрытым слоем. В полносвязной нейронной сети нет связи между нейронами в одном слое, и каждый нейрон в N-м слое связан со всеми нейронами в N-1-м слое, что означает полносвязный, N-1-й слой. слой нейронов, выход которого является входом нейрона N-го слоя. Каждое соединение имеет вес W, и эти веса являются параметрами модели (то есть тем, что модель хочет узнать).image.png

Узлы в структуре сети — это нейроны.Правый рисунок на рисунке выше — это простейший сетевой узел полносвязной нейронной сети.Нейроны — это основные единицы, составляющие сеть. Нейроны состоят из:

  • Вход: n-мерный вектор x
  • Линейное взвешивание
  • функция активации
  • вывод

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

2. Обратное распространение

Как нейронная сеть обучается и изучает вес w? Используемый здесь метод обучения — это алгоритм обратного распространения ошибки. Мы хотим рассмотреть две концепции.

(1) Функция потерь

Во-первых, функция потерь. Потеря - это потеря между выходным значением (прогнозируемым значением) нейронной сети и реальным значением, Функция потерь может быть выражена в виде формулы на рисунке ниже.Чтобы отрицательные потери и положительные потери не компенсировали друг друга, мы возводим каждую потерю в квадрат.Потеря представляет собой ошибку между фактическим значением и прогнозируемым значением, и квадрат используется чтобы выразить это значение не имеет никакого значения. Весь тренировочный процесс – это процесс непрерывного снижения Потери. Из упрощенного результата этой формулы мы видим, что A, B, C, D, E, F — все постоянные коэффициенты, а неизвестными являются w и b, то есть для того, чтобы минимизировать Loss, нам нужно решить лучший ж и б. Здесь для поиска наилучшего решения используется метод градиентного спуска.

image.png

(2) Метод градиентного спуска

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

Весь процесс решения называетсяобратное распространение градиента.

image.png

3. Ограничения полносвязных нейронных сетей

Ограничение полносвязной нейронной сети заключается в том, что чем сложнее структура сети, тем медленнее будет сходиться вся сеть. Предположим, что структура сети такая, как показано на верхнем правом рисунке на следующем рисунке: нам нужно получить 4 частных производных для скрытого слоя и выходного слоя и оплатить стоимость 3 последовательных умножений для вывода цепочки. Если уровень нашей сети глубже, то будет больше частных производных и умножений, а вычислительные затраты будут больше.Вероятно, сеть сформирует несколько сложных вложенных отношений, так что вся сеть будет сходиться очень медленно. Из-за ограничений полносвязных нейронных сетей в настоящее время появилось много сетей.

image.png