Аннотация: В статье проанализированы лучшие практики конструкторов нейронных сетей. Выделена проблематика редакторов нейронных сетей. Рассмотрены основные проблемы и форматы сохранения моделей нейронных сетей. Выделены основные требования для нового универсального конструктора нейронных сетей с возможностью экспорта и импорта моделей различных форматов.
Ключевые слова: нейронная сеть, JSON, конструктор, модель, YAML, HDF5.
В настоящее время технологии «искусственного интеллекта» набирают всё большую популярность. Нейронные сети – один из наиболее используемых методов реализации искусственного интеллекта. Они широко применяются при решении различного типа задач, особенно при неэффективности или невозможности применения обыкновенных алгоритмических решений.
Нейронные сети моделируют работу нервной системы человека, впоследствии перенимая основную её черту – способность к самообучению с учетом предыдущего опыта. Инструменты создания и применения нейронных сетей совершенствуются, а появление ошибок сводится к минимуму.
Конструктор нейронных сетей - многофункциональный инструмент, среда разработки, обучения и тестирования нейронных сетей различного типа. Использование конструктора нейронных сетей в первую очередь направлено на формирование различных структур и конфигураций нейронных сетей.
Целью данной статьи является выявление требований к универсальному конструктору нейронных сетей с основным упором на поиск решения проблем импорта и экспорта готовых моделей нейронных сетей.
Проведем анализ существующих конструкторов нейронных сетей и нейронных пакетов для выявления недостатков и достоинств данного типа программного обеспечения.
NeuroSolutions - многофункциональный инструмент, разработанный специально для проектирования нейронных сетей. По оценкам специалистов является лучшим пакетом для взаимодействия с нейронными сетями.
| Преимущества | Недостатки |
|---|---|
| Снабжен мощнейшим редактором визуального проектирования нейронных сетей, который позволяет создавать практически любые собственные нейронные структуры. | Включено малое количество критериев обучения. Пользователю необходимо создавать внешние модули для применения нестандартных критериев обучения. |
| Снабжен встроенным генератором кода и средствами, позволяющими использовать внешние модули при проектировании и обучении нейронной сети. | Реализовано малое количество методов обучения: алгоритм обратного распространения, сети Кохонена, самоорганизующиеся структуры. |
| Снабжен мощными и хорошо продуманными средствами визуализации. | |
| Широкий спектр средств для организации обучающих выборок. |
NeuralWorks Professional - мощное средство моделирования искусственных нейронных сетей. Основной упор сделан на применение стандартных нейронных парадигм и алгоритмов обучения.
| Преимущества | Недостатки |
|---|---|
| В пакете реализовано 28 стандартных нейронных парадигм. | Отсутствие мощной системы предварительной обработки данных. |
| В пакете можно просмотреть корреляцию весов нейронной сети при обучении. | |
| Снабжен встроенным генератором кода, поддерживающим компилятор Microsoft Visual C++. | |
| Предоставляет возможность интегрирования внешних программных модулей, написанных пользователями. |
NeuroShell 2 является средой для создания, редактирования и обучения нейронных сетей. Данная система не считается универсальной. Она входит в состав пакета The AI Trilogy.
| Преимущества | Недостатки |
|---|---|
| Мощная система обмена данными между различными приложениями. | Недостаточно продуманный интерфейс. |
| Имеет встроенный генератор исходного кода на языках Visual C и Visual Basic. | Недостаточно продуманная система визуализации данных. |
| Нет возможности создания собственной архитектуры нейронной сети. | |
| Нельзя использовать специфичные алгоритмы обучения и изменять критерии обучения нейронной сети. |
Функционально оптимальный (далее – универсальный) конструктор нейронных сетей должен включать все преимущества существующих пакетов, а также устранить недостатки посредством реализации соответствующих им функций в новом нейронном конструкторе.
На основании анализа пакетов сформируем актуальные проблемы конструкторов нейронных сетей и возможные способы их решения:
Важной функцией универсального конструктора нейронных сетей является умение экспортировать и импортировать модели различных форматов. Наиболее известные форматы для экспорта и импорта моделей нейронных сетей – HDF5, YAML, JSON.
Формат JSON - это простой формат файла для иерархического описания данных. За счёт своей лаконичности в сравнении с XML формат JSON может быть более подходящим для сериализации сложных структур.
{
"keras_version": "2.0.7",
"backend": "theano",
"config": [
{
"config": {
"dtype": "float32",
"activation": "relu",
"use_bias": true,
"trainable": true,
"name": "dense_1",
"units": 12
},
"class_name": "Dense"
}
]
}
Формат YAML, язык сериализации данных, используется для спецификации модели. Keras предоставляет возможность описать любую модель, используя формат YAML.
backend: theano
class_name: Sequential
config:
- class_name: Dense
config:
activation: relu
batch_input_shape: !!python/tuple [null, 5]
bias_initializer:
class_name: Zeros
config: {}
dtype: float32
kernel_initializer:
class_name: RandomUniform
config: {maxval: 0.05, minval: -0.05, seed: null}
name: dense_1
trainable: true
units: 12
use_bias: true
Формат HDF5 (h5) - формат файлов, разработанного для хранения большого объема цифровой информации. Данный формат является наиболее популярным, так как выполняет сохранение всей модели с помощью одной функции.
model.h5 ├── model_weights │ ├── dense_1 │ │ ├── bias:0 │ │ └── kernel:0 │ └── dense_2 │ ├── bias:0 │ └── kernel:0 └── model_config (JSON конфигурация модели)
Форматы сохранения нейронных сетей – необходимая составляющая приложения, работающего с нейронными структурами. Они используются для хранения созданных моделей, передачи данных между различными приложениями.
Важную функцию форматы нейронных сетей выполняют в приложениях оптимизации и синтеза нейронных сетей. Так, приложения генетической оптимизации или синтеза нейронных сетей предполагают автоматическую генерацию нейронной сети по заданным параметрам.
Предлагается сделать доступной пользователю функции выбора из существующих форматов или - задание собственного формата, в котором необходимо сохранить нейронную сеть.
Одной из наиболее перспективных задач является создание универсального формата сохранения моделей. Важной чертой такого формата является сохранение не только структуры нейронной сети, но и её весов. Сохранение модели и ее весов должно быть доступно как после завершения обучения нейронной сети, так и в процессе ее обучения.
В данной статье был проведен анализ существующих конструкторов нейронных сетей: NeuroSolutions, NeuralWorks Professional, NeuroShell2. Также были рассмотрены проблемы сохранения моделей нейронных сетей, изучены основные форматы сохранения моделей нейронных сетей: JSON, YAML, HDF5.
Вследствие анализа выделены основные и расширенные требования к проектируемому конструктору нейронных сетей. Была достигнута цель данной статьи - выявление требований к универсальному конструктору нейронных сетей с основным упором на поиск решения проблем импорта и экспорта готовых моделей нейронных сетей.
На данном этапе можно приступить к реализации некоторых перечисленных требований с основным упором на решение проблем импорта и экспорта готовых моделей нейронных сетей.
Keywords: neural network, JSON, constructor, model, YAML, HDF5.