Сети прямого распространения, DFF, часто называют нейронными сетями прямого распространения, FNN, или многослойными персептронами, MLP.

Думайте о них как о базовой нейронной сети. Есть некоторые другие разновидности, такие как Recurrent, RNN и Convolutional, CNN, к которым мы обратимся, но сначала изучим FNN. Другие нейронные сети расширяют FNN, так что, как и во всем, чем сильнее ваша основа, тем лучше ваше понимание будет в долгосрочной перспективе.

По своей сути FNN пытается аппроксимировать некоторую функцию;

Например, для классификатора функция:

… Пытается сопоставить ввод x с категорией y. Мы немного расширим это определение следующим образом:

В стандартной математике или статистике ; указывает, что ввод - x, а \\theta указывает фиксированный параметр, который также использует функция. Здесь мы хотим сказать, что тета символизирует параметры или веса, которые мы должны изучить, чтобы иметь возможность аппроксимировать реальную функцию:

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

Но нейронные сети мы обычно рисуем боком, и у них будет узел для соединения с каждым следующим узлом, например:

Итак, вышеупомянутая нейронная сеть состоит из двух слоев. Первый слой с 3 узлами, а второй с 5 узлами. Мы игнорируем узлы ввода и вывода, так как это всего лишь пример.

Назовем первый слой:

… И второй слой:

… Тогда вся сеть становится:

Если бы у нас было 3 слоя, это было бы так:

Глубина сети в первом случае равнялась 2, а в последнем - 3. Глубина глубокого обучения исходит из этой идеи.

Во время обучения мы стремимся сделать нашу сеть максимально приближенной к реальной функции:

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

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

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

Термин «нейронные» происходит от того факта, что эти сети слабо основаны на том, как работают нейроны. Где каждый слой представлен вектором, а элемент вектора можно рассматривать как нейрон.

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

Хотя это отличная аналогия. Лучший способ думать о FNN - это думать о них как о машинах аппроксимации функций, которые предназначены для статистического обобщения.

Давайте перейдем к техническим вопросам…

Один из способов двигаться дальше - подумать о линейных моделях, а затем подумать о том, как их улучшить.

Несколько хороших черт линейных моделей:

  • Мы знаем, что они работают
  • Они довольно эффективны
  • Их легко понять

Несколько недостатков:

  • Возможности модели ограничены линейными функциями.

Чтобы использовать линейные функции для представления нелинейных функций, мы начинаем с ввода:

… Затем мы применяем к нему нелинейное преобразование:

Тогда возникает вопрос, как выбрать нашу функцию трансформации:

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

Трюк с ядром

Вкратце, ядро ​​- это вычислительный трюк, который экономит время вычислений, это математический ярлык, который помогает нам пропустить вычисления в более высоком измерении.

Формально ядро:

… Где f - это функция, которая преобразует x и y из n в m размеры, обычно m намного больше, чем n.

Самый простой способ вычислить это - сначала сопоставить его с более высоким измерением для обоих, а затем вычислить скалярное произведение, но ответ - скаляр. Итак, вот где возникает "хитрость" ...

Скажем, f переходит от линейного к квадрату… Затем вместо отображения квадрата пространства сначала для обоих. Мы просто возьмем скалярное произведение x и y, а затем возведем в квадрат. И ответ тот же. Вот и все.

Назад к нейронным сетям с прямой связью

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

Мы можем использовать 3 подхода:

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

Вот модель:

… Который становится:

… Этот phi определяет скрытый слой нейронной сети. Параметры w сопоставляют phi с желаемым выходом.

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

Общий подход аналогичен использованию здесь алгоритмов машинного обучения:

  • Выбор оптимизатора
  • Выбор функции стоимости
  • Форма выходных единиц
  • Скрытый слой требует выбора функции активации

Следующий…



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

Чтобы просмотреть содержание и дополнительную информацию, нажмите здесь.

использованная литература

Адамс, Р. А. (2017). Исчисление. Прентис Холл.

Франсуа, К. (2018). Глубокое обучение с использованием Python и Keras. MITP-Verlags GmbH & Co. KG.

Гудфеллоу И. (2017). Глубокое обучение. MIT Press.

Николсон, К. (2009). Линейная алгебра с приложениями.

Саттон, Р. С. (2018). Обучение с подкреплением. Книга Брэдфорда.

Вакерли, Д. Д. (2007). Математическая статистика с приложениями. Бельмонт, Калифорния: Образование Нельсона.

(нет данных). Первый курс линейной алгебры - открытая библиотека учебников. Получено 24 февраля 2020 г. с сайта https://open.umn.edu/opentextbooks/textbooks/a-first-course-in-linear-algebra-2017.