Рубрика:
Наука и технологии
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ШУСТОВ И.С., Калужский филиал ФГБОУ ВО «Московский государственный технический университет им. Н.Э. Баумана (национальный исследовательский университет)», Калуга, e-mail: fn1-kf@mail.ru
БЕЛОВ Ю.С., Калужский филиал ФГБОУ ВО «Московский государственный технический университет им. Н.Э. Баумана (национальный исследовательский университет)», Калуга
Возможности авторского нейросетевого фреймворка SkyNeural по созданию, конфигурированию и обработке данных в различных нейросетвых парадигмах
Данная статья посвящена описанию возможностей нового авторского нейросетевого фреймворка SkyNeural. В свете развития нейросетевых технологий и их повсеместного распространения важно качественно обучать людей необходимым навыкам в конфигурировании сетей. Фреймворк SkyNeural ставит перед собой задачу в интуитивно понятной форме научить пользователя конфигурировать нужные ему сети, а также предоставить функционал для решения широкого круга задач. Благодаря разделению на фреймворк и движок SkyNeural позволяет пользователю использовать созданные и настроенные нейронные сети по своему усмотрению без необходимости обучить конечного пользователя обращению снепосредственно фреймворком. Разработка сети происходит в графической среде разработки, где все необходимое представлено в виде объектов с широким спектром возможной настройки. Фреймворк охватывает вопросы создания инастройки от отдельных нейронов до сложнейших архитектур, таких как сверточные и комбинированные сети для распознавания образов и генерации изображений. В статье на примере показан ход работы над созданием и настройкой простейшей сети для распознавания изображений цифр. На данном примере показаны широкие возможности в пред- и постобработке данных, настройке сетей, а также настройки обучения сетей. Фреймворк реализует множество подходов кобучению различных архитектур, в том числе оригинальные уникальные методы обучения
Введение
На данный момент нейросетевые технологии получают все большее распространение во всех сферах деятельности человека. Они позволяют выполнять те операции, которые недоступны для классических алгоритмов или же их применение не оправданно из-за низкого качества, высокой стоимости и сложности разработки или скорости работы.
Постепенное увеличение мощностей мобильных компьютеров, таких как ноутбуки, телефоны или даже очки дополненной реальности, позволяют сейчас предоставить преимущества использования нейросетей большому кругу пользователей. Значительная их часть может быть незнакома или же знакома в незначительной мере со сферой информационных технологий и принципами функционирования нейронных сетей.
Так, например, в работе [1] приводится пример оптимизации работы нейросети на графическом процессоре с целью максимально ускорить выполнение задач, чтобы как можно большее число людей смогли воспользоваться возможностями распознавания образов нейросетями. В работе [2] сети находят такое применение, как определение возраста по фотографии, а в [3] – в весьма сложной и важной задаче анализа кардиограммы. При этом, как показано в [4], в части задач классические методы могут дать сбой.
Постепенно приложения с использованием нейронных сетей становятся все более общеупотребительными. Список доступных архитектур сетей, как и их возможностей и применений, расширяется [5]. Этот процесс схож с тем, какпостепенно увеличивалась область применения персональных компьютеров от корпоративных майнфреймов до персональных многоцелевых компьютеров. Вполне вероятна ситуация, когда в ближайшем будущем огромное количество задач будет требовать некоторого знания в использовании искусственных нейронных сетей, как совсем недавно от большого количества людей потребовались навыки владения компьютером. При наличии должного обучения и инструментария любой человек сможет сконструировать нейросеть под свои нужды или как минимум будет с большим пониманием ситуации обращаться за более профессиональной помощью, искать на рынке приложения, необходимые для решения конкретной задачи.
Цель
Для решения подобных задач в настоящее время в КФ МГТУ им. Баумана разрабатывается новый нейросетевой фреймворк SkyNeural. Целью разработки является создание удобной и понятной среды работы с искусственными нейронными сетями, которая бы позволила достаточно быстро обучить новичка основам работы с нейронными сетями и предоставила пользователю функционал, достаточный для решения проблем обработки данных пользователя, таких, например, какописаны в работах [6-7].
Основными задачами данного фреймворка являются:
- предоставление пользователю удобного, интуитивно понятного графического интерфейса для построения нейронных сетей любой сложности: от нескольких нейронов до сложных комбинированных архитектур;
- предоставление широкого спектра инструментов для обучения сети и измерений ее показателей;
- предоставление функционала автоматической конвертации сконструированной нейронной сети в отдельный исполняемый файл, позволяющий пользоваться возможностями построенной сети и без фреймворка;
- поставка в комплекте обучающих примеров.
Реализация этих возможностей позволит пользователям во время обучения освоить принципы функционирования нейронных сетей в доступной для далекого от сферы ИТ человека форме, что позволит ему создавать собственные приложения.
Материалы и методы
Система SkyNeural включает в себя две подсистемы: непосредственно фреймворк и движок. Движок представляет собой приложение, позволяющее запускать сконфигурированные нейронные сети на исполнение. Интерфейс программы, представленный на рис. 1, не несет лишней нагрузки, что позволяет сконцентрироваться непосредственно на необходимых задачах: загрузки сети, настройка входных и выходных данных.
Рисунок 1. Окно движка
На рис. 1 можно увидеть сконфигурированную и загруженную нейронную сеть, изображенную в окне справа. Слева представлен список точек ввода информации, так называемых поставщиков данных. В таблице необходимо настроить источники данных. После чего единственное, что остается сделать, – нажать на кнопку запуска сети на исполнение.
Больший интерес представляет собой сам фреймворк, основное окно которого можно видеть на рис. 2. Так как разработка продолжается, представленный на рисунке интерфейс будет подвергнут нескольким стадиям переработки для того, чтобы добиться простоты использования и интуитивной понятности. На данный момент основной принцип работы с фреймворком – графический. Большая часть операций так или иначе связана с графическими объектами, расположенными в объектной области, и взаимодействием с ними посредством контекстного меню.
Рисунок 2. Основное окно фреймворка
Основными элементами проекта в данном фреймворке являются:
- «Поставщик данных». На рис. 1 он представлен в виде черных поставленных друг на друга дисков, однако цвет можно настраивать. Этот элемент служит для загрузки данных из внешних файлов и сохранения данных обратно надиск. Первый этап преобразования данных для последующей передачи в сеть.
- «Устройство ввода» – объект, служащий для второго этапа преобразования данных. Представляет собой зеленый параллелепипед с дисками слева и миниатюрой сети справа. Служит для перераспределения поступающих данных наподсети проекта и прочие элементы, а также для первичной обработки данных. Позволяет перебросить часть информации на другие подсети, произвести другие математические или логические преобразования до подачи информации непосредственно в сеть. Для подсетей служит первым входным слоем нейронов.
- Непосредственно подсети – нейронные сети различных архитектур. На данном этапе реализованы следующие архитектуры сети: многослойный перцептрон, глубокая сверточная сеть, разверточная сеть и долгая краткосрочная память.
- «Устройства вывода» – представляет собой зеленый параллелепипед с миниатюрами сетей слева и диском справа. Служит для сбора выходных данных с подсетей и прочих элементов и перенаправления их на соединенные с ним «поставщики данных» для сохранения информации в них.
- «Стандартный учитель» – представляет собой синий параллелепипед с миниатюрами дисков «поставщиков данных» вверху и миниатюрами сетей внизу. Служит для настройки проведения обучения сетей по различным алгоритмам. На данный момент реализованы алгоритмы Хебба, Розенблата, Уидроу-Хоффа, обратного распространения ошибки.
- «Учитель генеративного обучения» – служит для настройки и проведения обучения по авторскому генеративному статистическому алгоритму обучения, который является уникальным и применяется только во фреймворке SkyNeural.
- «Исполнитель» – служит для запуска выбранных сетей на исполнение. Позволяет выбрать сочетание текущих наборов данных, поступающих на «входные устройства», а также выбирать из всех объектов проекта те, что будут выполнены.
- «Сетевой соединитель» – служит для настройки нейронных связей между подсетями. На рис. 1 представлен в виде двух темно-синих прямоугольников с красной биркой справа внизу. Доступна настройка вплоть до отдельного синапса: места подключения и вес.
Результаты и их обсуждение
Рассмотрим использование фреймворка на примере создания сети для распознавания цифр.
Так как это тестовый пример, можно ограничиться следующими данными: цифры следует распознавать с изображения размером 7 на 5 пикселей, само изображение является черно-белым, причем фон черный.
Выборка представлена десятью изображениями цифр, свойства которых описаны в специальном конфигурационном файле с расширением .csv.
На рис. 3 представлена настройка загрузки данных в «поставщик данных» для более сложного примера, так как загрузка данных для задачи распознавания цифр проста и не раскрывает большей части возможностей.
Рисунок 3. Настройка загрузки данных
Фреймворк предоставляет широкий набор настройки преобразования входных данных. Так, например, данные можно разбить на вход, выход и неиспользуемые данные.
Имеется возможность указать, что характеристика в данном столбце – путь к файлу изображения, цветного или в оттенках серого.
Данные можно обработать для того, чтобы они были представлены как метка класса или кластера, или же, в случае непрерывного значения, разбить область всех значений данной величины на несколько подобластей, которым будут присвоены свои метки класса. В дальнейшем данная величина будет приводиться к одной из меток класса.
Также данные сразу можно разделить на несколько выборок: обучающую, тестовую и валидационную. На рис. 3 внизу в поле после загрузки появится таблица, содержащая статистические данные о загруженной информации, а также некоторые рекомендации по архитектуре и количеству нейронов в сети.
Следующим шагом является создание самой нейронной сети. Для этого следует добавить на основном рабочем поле фреймворка требуемую сеть, в данном случае MLP, и вызвать окно настройки. Так как задача не представляет собой особой сложности, можно создать всего два слоя: входной 7 на 5 нейронов и выходной – 10 нейронов с логистической функцией активации. После чего следует создать межслоевой соединитель. При визуализации нейронов желтым указаны те нейроны, к которым идут связи от выделенного нейрона, красным – тот нейрон, значения веса синапса с которым в данный момент выводятся в окне настройки.
Следующим шагом является создание «устройства ввода», настройка которого сводится к созданию так называемых ложных нейронов, которые призваны в удобной форме связать совокупность исходных данных и соответствующие входы подсетей. В некотором роде «устройство ввода» является входом для сети в целом, перераспределяя различные данные внутри разных подсетей. К примеру, если требуется обработать каждый из трех потоков изображения по отдельности, необходимо создать лишь одно «устройство ввода» и три подсети.
Для связи «устройства ввода» и сети в проект следует добавить сетевой соединитель.
Окно настройки сетевого соединителя содержит точную настройку синаптических связей между заданными слоями указанных сетей. Оно служит для тонкой настройки соединения нейронов двух разных объектов, в данном случае «устройства ввода» и перцептрона. Для текущей задачи следует установить соединение «один-к-одному» для прямой передачи данных от одного нейрона «устройства ввода» к одному-единственному геометрически связанному нейрону сети.
Функционал позволяет настроить соединения вплоть до слоя и нейрона. Это может быть полезно для вывода информации из внутренних слоев сети с целью обнаружения свойств внутренней активности нейронов в сети.
Предпоследними шагами создания рабочей сети является создание и настройка «устройства вывода» и второго сетевого соединителя.
«Устройство вывода» также позволяет широко настроить преобразования данных на выходе, что позволяет, к примеру, сразу преобразовать десятиразмерный вектор выхода к метке класса и выводить для пользователя сразу метку.
Также оно позволяет преобразовать неструктурированный вывод сети в упорядоченную форму, удобную для просмотра и чтения конечным пользователем.
Последнее, что необходимо для работы сети, – обучение. Все обучение вынесено в отдельный объект – «учитель». После создания «учителя» и добавления «поставщика данных», MLP и «устройства вывода» к обучаемым объектам следует открыть окно настройки обучения, представленное на рис. 4.
Рисунок 4. Окно настройки «учителя»
«Учитель» представляет собой удобный способ настройки соответствия входных и выходных данных, параметров обучения и проведения непосредственно самого обучения. На данный момент «учитель» является универсальным объектом, позволяющим регулировать обучение по большей части основных методов обучения сетей, представленных в работе [8].
Две верхние таблицы используются при обучении с «учителем» и служат для соотнесения выхода сети с тем потоком данных, в котором находится обучающая информация.
Нижняя левая таблица используется для отслеживания точности определения объектов каждого класса, центральная таблица служит для настройки масштабирующего коэффициента при сильной неравномерности обучающей выборки поколичеству объектов разного класса.
Верхнее правое поле служит для вывода графика общей ошибки сети от эпохи обучения.
В дальнейшем возможности настройки и регулирования обучения будут только увеличиваться.
После проведения обучения следует сохранить обученную нейронную сеть. Если потребуется провести обработку данных, соответствующих описанным выше, необходимо только загрузить уже готовую сеть в движок и указать конфигурационный файл. Если структура файла соответствует использованной при создании сети, движок запустит сеть на выполнение. Останется только получить результат в указанном файле.
Заключение
С течением времени большое распространение получают программы с использованием нейросетевых технологий. Широкий спектр потребностей пользователей становится возможным покрыть при помощи этих технологий. Поэтому постепенно будет увеличиваться запрос на доступное средство личного пользования, позволяющее создавать рабочие нейросети под свои нужды. Именно данную цель преследует фреймворк SkyNeural. С течением разработки данный фреймворк должен стать удобным, практичным и, главное, понятным и доступным пользователю с минимальными навыками работы с сетями инструментом создания нейросетевых приложений под свои нужды.
- Шустанов А.В. Использование ГПУ в задаче классификации дорожных знаков при помощи сверточных нейронных сетей // Сборник трудов III международной конференции и молодежной школы «Информационные технологии инанотехнологии» (ИТНТ-2017). – Самара: Новая техника, 2017. – С. 1684-1689.
- Федотов Д.В., Попов Е.А., Охорзин В.А. Оптимизация структуры сверточной нейронной сети с помощью самоконфигурируемого эволюционного алгоритма в одной задаче идентификации. // «Сибирский журнал науки и технологий», № 4, 2015 г. URL: https://cyberleninka.ru/article/n/optimizatsiya-struktury-svertochnoy-neyronnoy-seti-s-pomoschyu-samokonfiguriruemogo-evolyutsionnogo-algoritma-v-odnoy-zadache (дата обращения: 03.05.2018).
- Каюмов Э.М. Автоматическое выделение признаков в сигналах кардиограмм в задаче выявления болезней сердца. // МГУ имени М.В.Ломоносова, Москва, 2017 г. URL: http://www.machinelearning.ru/wiki/images/6/67/2017_417_KayumovEM.pdf.
- Вершинин В.Е., Гришунов С.С., Логинова М.Б. Моделирование процессов распознавания и классификации многомерных объектов пересекающихся классов на основе представлений теории нечетких множеств. // Электронный журнал: наука, техника и образование», № 1, 2016 г. – С. 120-133.
- Казичкина П.С., Белов Ю.С. Разработка системы классификации движения человека на основе сети Джордана. // Электронный журнал: наука, техника и образование, № CB1, 2017 г. – С. 125.
- Гришанов К.М., Рыбкин С.В. Тестирование сверхточной нейронной сети в задачах машинного зрения. // Электронный журнал: наука, техника и образование, № 2, 2017 г. – С. 186-193.
- Гришанов К.М., Белов Ю.С. Модель сверточной нейронной сети в задачах машинного зрения. // Электронный журнал: наука, техника и образование, № СВ1, 2017 г. – С. 100-106.
- Созыкин А.В. Обзор методов обучения глубоких нейронных сетей // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика, № 3, 2017 г. URL: https://cyberleninka.ru/article/n/obzor-metodov-obucheniya-glubokih-neyronnyh-setey (дата обращения: 03.05.2018).
Ключевые слова: искусственные нейронные сети, фреймворк, SkyNeural, распознавание образов.
Possibilities of the author's neural network framework SkyNeural for creating, configuring and processing data in various neural network paradigms
Shustov I.S., Kaluga branch of FSBEI of HE "Moscow State Technical University. N.E. Bauman (National Research University), Kaluga, e-mail: fn1-kf@mail.ru
Belov Yu.S., Kaluga branch of FSBEI of HE "Moscow State Technical University. N.E. Bauman (National Research University), Kaluga
Abstract: This article is devoted to the description of the possibilities of the new author neural network framework SkyNeural. Because of the development of neural network technologies and their widespread distribution, it is important to train people qualitatively in the necessary skills in configuring networks.
The SkyNeural framework sets itself the task in an intuitive way to teach the user how to configure the necessary networks, as well as provide functionality for a wide range of tasks.
Thanks to the division into the framework and the engine, SkNeural allows the user to use the created and configured neural networks at their own discretion without having to train the end user to handle the direct framework.
The development of the network takes place in a graphical development environment, where everything necessary is represented in the form of graphic objects with a wide range of possible settings. The framework covers the creation and configuration of individual neurons to complex architectures, such as convolutional and combined networks for pattern recognition and image generation. In the article, the example shows the progress of creating and configuring a simple network for recognizing digits. This example shows a wide range of possibilities in pre- and post-processing of data, setting up networks, as well as setting up network learning. The framework implements many approaches to learning different architectures, including. original unique methods of teaching.
Keywords: artificial neural networks, frameworks, SkyNeural, pattern recognition.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|