Увеличьте производительность вашей модели с помощью искусственных нейронных сетей. Прохождение в Tensorflow!

Искусственная нейронная сеть (ИНС)

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

Алгоритм ИНС принимает на вход только числовые и структурированные данные. Для приема неструктурированных и нечисловых форматов данных, таких как изображение, текст и речь, используются сверточные нейронные сети (CNN) и рекурсивные нейронные сети (RNN) соответственно. В этом посте мы сосредоточимся только на искусственных нейронных сетях.

Биологические нейроны против искусственных нейронов

Структура биологических нейронов и их функции

  • Дендриты получают входящие сигналы.
  • Сома (тело клетки) отвечает за обработку входных данных и несет биохимическую информацию.
  • Axon имеет трубчатую структуру, отвечающую за передачу сигналов.
  • Синапс находится на конце аксона и отвечает за соединение других нейронов.

Структура искусственных нейронов и их функции

  • Однослойная нейронная сеть называется перцептроном. Многослойный перцептрон называется Искусственные нейронные сети.
  • Нейронная сеть может иметь любое количество слоев. Каждый слой может иметь один или несколько нейронов или единиц. Каждый из нейронов связан с каждым нейроном. У каждого слоя также могут быть разные функции активации.
  • ИНС состоит из двух фаз: Прямое распространение и Обратное распространение. Прямое распространение включает в себя умножение весов, добавление смещения, применение функции активации к входным данным и ее распространение вперед.
  • Шаг обратного распространения - самый важный шаг, который обычно включает в себя поиск оптимальных параметров для модели путем распространения в обратном направлении слоев нейронной сети. Для обратного распространения ошибки требуется функция оптимизации, чтобы найти оптимальные веса для модели.
  • ИНС можно применять как к задачам регрессии, так и к задачам классификации, соответствующим образом изменяя функции активации выходных слоев. (Сигмоидальная функция активации для бинарной классификации, функция активации Softmax для мультиклассовой классификации и функция линейной активации для регрессии).

Почему нейронные сети?

  • Традиционные алгоритмы машинного обучения, как правило, работают на одном уровне при увеличении размера данных, но ИНС превосходит традиционные алгоритмы машинного обучения, когда размер данных огромен, как показано на графике ниже.
  • Обучение функциям. ИНС пытается учиться иерархически, поэтапно, слой за слоем. По этой причине нет необходимости явно выполнять проектирование функций.
  • Нейронные сети могут обрабатывать неструктурированные данные, такие как изображения, текст и речь. Когда данные содержат неструктурированные данные, используются алгоритмы нейронной сети, такие как CNN (сверточные нейронные сети) и RNN (рекуррентные нейронные сети).

Как работает ИНС

Работа ИНС может быть разбита на два этапа:

  • Прямое распространение
  • Обратное распространение

Прямое распространение

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

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

  • Цель функции активации - внести в данные нелинейность. Введение нелинейности помогает выявить сложные закономерности, лежащие в основе. Он также используется для масштабирования значения до определенного интервала. Например, функция активации сигмовидной кишки масштабирует значение от 0 до 1.

Логистическая или сигмовидная функция

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

Функция Тань

  • Tanh - это краткая форма слова гиперболический тангенс. Функция Tanh масштабирует значения от -1 до 1.

Функция ReLU

  • ReLU (выпрямленное линейное устройство) выводит то же число, если x ›0, и выводит 0, если x‹ 0.
  • Это предотвращает проблему исчезающего градиента, но при обратном распространении создает проблему взрыва градиента. Проблема взрывного градиента может быть предотвращена путем ограничения градиентов.

Функция Leaky ReLU

  • Leaky ReLU очень похож на ReLU, но когда x ‹0, он возвращает (0,01 * x) вместо 0.
  • Если данные нормализованы с помощью Z-Score, они могут содержать отрицательные значения, и ReLU не сможет их рассмотреть, но дырявый ReLU преодолевает эту проблему.

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

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

Доступные функции оптимизации:

  • Градиентный спуск
  • Оптимизатор адама
  • Градиентный спуск с импульсом
  • RMS Prop (среднеквадратическое значение)

Цепное правило исчисления играет важную роль в обратном распространении. Приведенная ниже формула обозначает частичное дифференцирование потерь (L) по весам / параметрам (w).

Небольшое изменение весов «w» влияет на изменение значения «z» (∂𝑧 / ∂𝑤). Небольшое изменение значения «z» влияет на изменение активации «a» (∂a / ∂z). Небольшое изменение активации «a» влияет на изменение функции потерь «L» (∂L / ∂a).

Терминология:

Метрики

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

Эпоха

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

Гиперпараметры

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

В этой модели ИНС используются следующие гиперпараметры:

  • Количество слоев
  • Количество единиц / нейронов в слое
  • Функция активации
  • Инициализация весов
  • Функция потерь
  • Метрическая
  • Оптимизатор
  • Количество эпох

Кодирование ИНС в Tensorflow

Загрузите предварительно обработанные данные

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

  • MICE Imputation
  • Преобразование журнала
  • Преобразование квадратного корня
  • Порядковое кодирование
  • Целевое кодирование
  • Нормализация Z-показателя

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

Ссылка на блокнот

Нейронная архитектура

  • Модель ИНС, которую мы собираемся использовать, состоит из семи слоев, включая один входной слой, один выходной слой и пять скрытых слоев.
  • Первый слой (входной) состоит из 128 единиц / нейронов с функцией активации ReLU.
  • Второй, третий и четвертый уровни состоят из 256 скрытых единиц / нейронов с функцией активации ReLU.
  • Пятый и шестой уровень состоит из 384 скрытых блоков с функцией активации ReLU.
  • Последний слой (выходной слой) состоит из одного единственного нейрона, который выводит массив с формой (1, N), где N - количество функций.

Найдите это сообщение в моем блокноте Kaggle: https://www.kaggle.com/srivignesh/introduction-to-ann-in-tensorflow

Ссылки:

[1] Эндрю Нг, Специализация глубокого обучения.

Свяжитесь со мной в LinkedIn, Twitter!

Удачного глубокого обучения!

Спасибо!