Искусственные нейронные сети (ИНС), или нейронные сети - это программный механизм, предназначенный для машинного обучения аналитических систем. С помощью нейронных сетей автоматизируется выявление закономерностей при работе этих систем с однотипными данными.
Подробнее о нейронных сетях, их создании на Python и применении в Data Mining будет рассказано в предложенной статье.
Структура и виды нейронных сетей
Нейронные сети - это структура, состоящая из:
- искусственных нейронов - элементарных взаимосвязанных единицами ИНС;
- синапсов - путей для обмена нейронов сигналами;
- сигналов - информации, которая перемещается между нейронами.
Нейроны внутри сети организуются в слои (их может быть три и более), среди которых выделяются два специальных слоя:
- слой ввода - точка входа в ИНС;
- слой вывода - результат работы ИНС.
В зависимости от типа передачи данных внутри нейросетей их разделяют на:
- нейронные сети прямого распространения и перцептроны, передающие информацию напрямую от входа к выходу и служащие преимущественно в качестве базы для моделирования сетей с более сложной архитектурой;
- нейронные сети с обратной связью - в таких сетях сигнал может передаваться не только в направлении «вход-выход», но и возвращаться на вход.
В Data Mining одними из самых востребованных считаются следующие разновидности нейронных сетей:
- рекуррентные ИНС, в которых связи между элементами имеют направленную (ориентированную) последовательность. Рекуррентные нейронные сети являются по своему типу сетями прямого распространения и применяются для распознавания и обработки текстовых данных и речи, например, в голосовых помощниках и программах перевода;
- сверточные нейронные сети, предназначенные для распознавания изображений любых размеров. Такие сети формируются из объемных трехмерных нейронов, которые соединяются между собой так называемым рецептивным слоем. Соседние слои нейронов связаны между собой механизмом пространственной локализации, а обработка информации выполняется в нейросети специальными нелинейными фильтрами.
Нейросети могут работать с:
- таблицами;
- изображениями;
- аудио- и видеофайлами;
- текстами;
- временными рядами (собранными в разные моменты времени данными о значениях различных параметров).
Основные направления использования искусственных нейронных сетей - это распознавание информации (в первую очередь), классификация (распределение данных по параметрам), предсказание определенных событий (например, повышения спроса на определенные товары).
Создание нейронных сетей на Python
Создавать нейронные сети можно с помощью различных встроенных Python-библиотек, наиболее популярными из которых являются:
- Theano. Эта фундаментальная библиотека содержит множество инструментов для быстрой и высокоточной обработки данных, совместима с различными версиями языка Python и имеет механизмы для оптимизации кодов, в том числе для самопроверки и юнит-тестирования;
- TensorFlow. Данная библиотека позволяет создавать и обучать многоуровневые нейронные сети специально для обработки большого количества данных;
- Keras. Этой библиотекой пользуются, когда необходимо разработать нейросети прямого распространения и сети с обратной связью для распознавания речи.
Обучение созданию нейронных сетей на Python возможно для всех желающих в рамках профессиональной подготовки по курсу «Инструментальные средства бизнес-
аналитики», которую проводит ВШБИ НИУ ВШЭ. Записаться на обучение по данному курсу можно на нашем сайте.