Часть 1-ИНС

Этот пост посвящен искусственной нейронной сети (ИНС) с точки зрения непрофессионала, чтобы получить общий обзор, за которым следует простая реализация демонстрации сквозного конвейера, которая доступна в части 2. Мы не будем сосредотачиваться или исследовать математику. за функциональностью ИНС.

Что такое искусственная нейронная сеть?

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

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

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

На приведенном ниже рисунке есть 1 входной слой с 4 входными блоками, 2 скрытых слоя, первый скрытый слой с 4 нейронами, второй - с 3 нейронами и, наконец, 1 выходной слой с 2 ​​выходными блоками.

Первоначально нейрон складывает значения каждого нейрона из предыдущего слоя, к которому он подключен. На рисунке ниже нейрон имеет 3 входа. Эти 3 значения будут умножены на веса и сложены (w1, w2, w3). Веса - это значения, определяющие силу между двумя нейронами. Это ценности, которые будут изменены в процессе обучения. Затем значение смещения будет добавлено к предыдущему суммированию. После всех этих суммирований нейрон применяет к значению функцию активации.

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

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

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

На изображении ниже показан непрерывный конвейер процесса машинного обучения.

Часть 2 - Демонстрация ИНС

Набор данных

Описание

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

Набор данных для вышеупомянутой проблемы был получен из набора данных

Особенности / Атрибуты

Это исследование включает в себя двоичную переменную платежа по умолчанию (Да = 1, Нет = 0) в качестве переменной ответа.
В этом исследовании, на основе которого был получен набор данных, в качестве независимых переменных использовались следующие 23 функции.

Подробная информация о функциях / атрибутах следующая:

Реализация

Импортировать данные

Изначально данные были импортированы из файла Excel. Для этого использовалась библиотека Pandas.

Количество целевых меток

Затем был произведен подсчет каждой целевой метки из образцов.

Это изображение показывает, что данные несбалансированы. В наборе данных соотношение 3: 1. Набор данных смещен в сторону отрицательного класса.

Применить случайную подвыборку

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

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

Разделить надписи и объекты

Затем набор данных следует разделить на метки и объекты. Ярлыки - это целевой класс, а функции - это атрибуты, используемые для их прогнозирования.

Разделить набор данных на обучающий набор и тестовый набор

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

Укажите размер теста 20%, а оставшиеся 80% - для обучения.

Применить нормализацию к объектам

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

Выбор основных компонентов

Большое количество функций в наборе данных является одним из факторов, влияющих на производительность и время обучения алгоритма обучения. Чтобы преодолеть этот анализ основных компонентов (PCA), выполняется выбор основных компонентов в данных обучения и данных тестирования. PCA - это метод уменьшения размерности для выбора лучших функций, отвечающих за максимальную дисперсию выходных данных.

На изображении выше показаны основные компоненты при сохранении 95% дисперсии. PCA выбрало только 15 из 24 функций.

Импортировать классификатор и обучить набор данных

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

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

Оценка эффективности

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

Отчет о классификации

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

* Точность

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

* Отзывать

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

* F1-оценка

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

* Служба поддержки

Это дает количество выборок набора данных для класса

Кривая AUC-ROC

AUC - Кривая ROC - это показатель производительности. ROC - это кривая вероятности, а AUC - степень меры отделимости. Чем выше AUC, тем лучше прогноз модели и лучше модель разделяет случай по умолчанию и случай, отличный от случая по умолчанию.
Значение AUC для ANN составляет 77,87%

Матрица путаницы

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

Заключение

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

Полную реализацию вышеуказанного приложения можно посмотреть в моем репозитории GitHub.

Для получения дополнительных сведений см. Следующее,