Обзор

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

Почему именно глубокое обучение?

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

Еще один распространенный вопрос, который я вижу, - нейронные сети требуют огромной вычислительной мощности, так что стоит ли их использовать? Хотя в этом вопросе есть нюансы, вот краткий ответ - да!

Различные типы нейронных сетей в глубоком обучении, такие как сверточные нейронные сети (CNN), рекуррентные нейронные сети (RNN), искусственные нейронные сети (ANN) и т. Д., Меняют способ нашего взаимодействия с миром. Эти различные типы нейронных сетей лежат в основе революции глубокого обучения, обеспечивая работу таких приложений, как беспилотные летательные аппараты, беспилотные автомобили, распознавание речи и т. Д.

Естественно задаться вопросом - не могут ли алгоритмы машинного обучения сделать то же самое? Итак, вот две основные причины, по которым исследователи и эксперты предпочитают глубокое обучение машинному обучению:

  • Граница решения
  • Функциональная инженерия

Любопытный? Хорошо - позвольте мне объяснить.

1. Машинное обучение против глубокого обучения: граница принятия решений

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

Ввод - ›f (w1, w2… ..wn) -› Выход

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

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

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

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

2. Машинное обучение против глубокого обучения: разработка функций

Разработка функций - ключевой этап в процессе построения модели. Это двухэтапный процесс:

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

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

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

Различные типы нейронных сетей в глубоком обучении

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

  • Искусственные нейронные сети (ИНС)
  • Сверточные нейронные сети (CNN)
  • Рекуррентные нейронные сети (RNN)

Давайте подробно обсудим каждую нейронную сеть.

Искусственная нейронная сеть (ИНС) - что такое ИНС и почему вы должны ее использовать?

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

Как вы можете видеть здесь, ИНС состоит из 3-х уровней - входного, скрытого и выходного. Входной слой принимает входные данные, скрытый слой обрабатывает входные данные, а выходной слой производит результат. По сути, каждый слой пытается узнать определенные веса.

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

ИНС могут использоваться для решения проблем, связанных с:

  • Табличные данные
  • Данные изображения
  • Текстовые данные

Преимущества искусственной нейронной сети (ИНС)

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

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

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

Функция активации - это двигатель ИНС!

Проблемы с искусственной нейронной сетью (ИНС)

  1. При решении задачи классификации изображений с использованием ИНС первым шагом является преобразование двухмерного изображения в одномерный вектор перед обучением модели. У этого есть два недостатка:
  • Количество обучаемых параметров резко увеличивается с увеличением размера изображения.

В приведенном выше сценарии, если размер изображения составляет 224 * 224, то количество обучаемых параметров на первом скрытом слое всего с 4 нейронами составляет 602 112. Это здорово!

2. ИНС теряет пространственные особенности изображения. Пространственные особенности относятся к расположению пикселей на изображении. Я подробно остановлюсь на этом в следующих разделах.

3. Одна общая проблема всех этих нейронных сетей - исчезающий и увеличивающийся градиент. Эта проблема связана с алгоритмом обратного распространения. Веса нейронной сети обновляются с помощью этого алгоритма обратного распространения путем нахождения градиентов:

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

Теперь давайте посмотрим, как преодолеть ограничения ИНС, используя две разные архитектуры - рекуррентные нейронные сети (RNN) и сверточные нейронные сети (CNN).

Рекуррентная нейронная сеть (RNN) - что такое RNN и почему вы должны ее использовать?

Давайте сначала попробуем понять разницу между RNN и ANN с точки зрения архитектуры:

Ограничение цикла на скрытом уровне ИНС превращается в RNN.

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

Вам следует изучить приведенное ниже руководство, чтобы узнать больше о том, как RNN работают под капотом (и как создать такую ​​в Python):

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

  • Данные временных рядов
  • Текстовые данные
  • Аудиоданные

Преимущества рекуррентной нейронной сети (RNN)

  • RNN фиксирует последовательную информацию, присутствующую во входных данных, то есть зависимость между словами в тексте, делая прогнозы:

Как вы можете видеть здесь, вывод (o1, o2, o3, o4) на каждом временном шаге зависит не только от текущего слова, но и от предыдущих слов.

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

Как показано на рисунке выше, 3 весовые матрицы - U, W, V - это весовые матрицы, которые используются на всех временных шагах.

Проблемы с рекуррентными нейронными сетями (RNN)

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

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

Сверточная нейронная сеть (CNN) - что такое CNN и почему вы должны ее использовать?

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

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

Хотите узнать больше о сверточных нейронных сетях? Я рекомендую ознакомиться с приведенным ниже руководством:

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

Преимущества сверточной нейронной сети (CNN)

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

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

На изображении выше мы можем легко определить, что это человеческое лицо, посмотрев на определенные черты, такие как глаза, нос, рот и т. Д. Мы также можем увидеть, как эти особенности расположены на изображении. Это именно то, что CNN способны уловить.

  • CNN также следует концепции совместного использования параметров. Один фильтр применяется к разным частям ввода для создания карты признаков:

Обратите внимание, что карта характеристик 2 * 2 создается путем перемещения одного и того же фильтра 3 * 3 по разным частям изображения.

Сравнение различных типов нейронных сетей (MLP (ANN), RNN и CNN)

Здесь я суммировал некоторые различия между разными типами нейронных сетей:

Конечные заметки

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