(и когда их использовать)

Нейронные сети (NN) - это основа многих современных моделей машинного обучения (ML), которые слабо имитируют нейроны человеческого мозга для распознавания закономерностей из входных данных. В результате на протяжении многих лет было разработано множество типов топологий нейронных сетей, построенных с использованием различных типов слоев нейронных сетей.

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

Четыре наиболее распространенных типа слоев нейронной сети: Полностью связанный, Свертка, Деконволюция и Рекуррент и ниже. вы узнаете, что это такое и как их можно использовать.

Полностью связанный слой

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

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

Примеры использования

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

Гиперпараметры, обычно связанные с полностью подключенными слоями

  • Функция активации
  • Количество нейронов
  • Выбывать

Слой свертки

Слой свертки - важный тип слоя в CNN. Чаще всего он используется для обнаружения функций в изображениях, в которых он использует фильтр для сканирования изображения, по несколько пикселей за раз, и выводит карту характеристик, которая классифицирует каждая найденная функция.

Фильтр (иногда называемый ядром) представляет собой набор n-мерных весов, которые умножаются на входные данные, где размеры фильтра совпадают с размерами входных данных (например, два измерения при работе с 2D-изображениями). Фильтр описывает вероятности того, что данный образец пикселей представляет объект. Таким образом, количество весов фильтра (то есть размер фильтра) меньше входного, и умножение, выполняемое процессом свертки слоя, выполняется на «участках» изображения, которые соответствуют размеру фильтра.

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

Примеры использования

  • Анализ изображений для распознавания и классификации изображений.

Гиперпараметры, обычно связанные со слоем свертки

  • Размерность
  • Размер патча
  • Шаг
  • Количество карт объектов для создания
  • Стратегия заполнения
  • Активировать функцию
  • Выбывать
  • Объединение

Слой деконволюции

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

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

  • Изображения с повышением разрешения

Гиперпараметры, обычно связанные со слоем деконволюции

  • Размерность
  • Шаг
  • Количество карт объектов для создания
  • Стратегия заполнения
  • Активировать функцию
  • Выбывать

Рекуррентный слой

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

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

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

Гиперпараметры, обычно связанные с повторяющимся слоем

  • Размерность
  • Тип рекуррентной нейронной сети (LSTM, GRU или стандартный слой RNN)
  • Последовательность возврата
  • Выбывать

Вывод

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

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