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

  • распознавание изображений (например, лица или общие изображения)
  • распознавание речи (т. е. транскрипция, распознавание голоса, распознавание настроения в голосе)
  • обработка естественного языка (классификация текста в электронной почте как спама или мошеннических страховых требований)
  • автономные транспортные средства

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

Обучение с учителем и обучение без учителя

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

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

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

Архитектура — упрощение!

Нейронные сети состоят из:

  • слои
  • узлы
  • веса
  • функции активации
  1. Данные передаются на уровень ввода, состоящий из узлов. Каждый узел содержит отдельную информацию о данных (например, изображение или текст).
  2. Узел объединяет ввод данных с набором весов, которые либо усиливают, либо ослабляют ввод (какой ввод наиболее полезен?).
  3. Произведения входных данных каждого узла и присвоенного ему веса затем суммируются и передаются через функцию активации, чтобы определить, в какой степени этот сигнал должен продвигаться дальше по сети. Если этот сигнал активирован, он будет передаваться на следующий скрытый слой.
  4. Шаг 3 будет продолжаться для каждого слоя, пока не будет достигнут выходной слой. После выходного слоя произойдет другая функция активации, и будет получен прогноз. Вы выбираете количество скрытых слоев, через которые проходят данные.

Общие идеи и примечания

Скрытые узлы и скрытые слои:

  1. Вы выбираете количество скрытых узлов и слоев, но они определяют сложность вашей модели. Слишком много любого из них может привести к переобучению ваших данных, что сделает вашу модель недостаточно обобщенной, чтобы быть эффективной на новых данных (данных, на которых вы не обучали свою модель).
  2. Чем больше скрытых слоев, тем больше узнаётся общая сложность взаимосвязей внутри данных.
  3. Чем больше скрытых узлов, тем больше отношений изучается.
  4. В выходном слое может быть несколько узлов (несколько ассоциаций или классов).

Функции активации:

  1. Функция активации — это функция преобразования, применяемая к выходным данным слоя.
  2. Активации в скрытых слоях обеспечивают преобразование, которое позволяет нейронной сети изучать более сложные взаимосвязи по мере прохождения вычислений по сети.
  3. Активации выходного слоя определяют, какую форму примут наши прогнозы (многоклассовую или бинарную).
  4. Если ваши выходные данные имеют тип регрессии, вам не нужно преобразовывать выходные данные, поскольку вы прогнозируете количество (в отличие от вероятности между 0 и 1). Однако решение проблем регрессии может быть не идеальным с использованием глубокого обучения!

Типичные функции активации:

Сигмоид

  • варьируется от 0 до 1
  • часто используется в качестве выходной активации для моделей двоичной классификации (данные относятся к одному из двух классов?).
  • больше не используется на скрытых слоях

Выпрямленная линейная единица (ReLU)

  • наиболее распространенная активация для скрытых слоев
  • не активируется, пока не будет достигнут некоторый порог

Гиперболический тангенс (tanh)

  • варьируется от -1 до +1
  • иногда используется как активация скрытого слоя, но обычно работает не так хорошо, как ReLU
  • иногда используется как активация вывода для двоичной классификации

Софтмакс

  • варьируется от 0 до 1 для каждого элемента (выходного узла) и в сумме составляет 1
  • расширение сигмоиды для мультиклассовой классификации
  • используется в качестве выходной активации для мультиклассовой классификации

Нейронные сети: нужно ли вам глубокое обучение для решения вашей проблемы?

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

Спасибо за чтение и удачи в дальнейшем погружении в глубокий мир глубокого обучения!