Назад

О задаче проектирования универсального конструктора нейронных сетей с возможностью экспорта и импорта моделей различных форматов

Д.А. Савельева1, А.В. Григорьев2

1 студент, Донецкий национальный технический университет, diana.saveleva.dos@gmail.com

2 доцент, Донецкий национальный технический университет, grigorievalvl@gmail.com

Аннотация: В статье проанализированы лучшие практики конструкторов нейронных сетей. Выделена проблематика редакторов нейронных сетей. Рассмотрены основные проблемы и форматы сохранения моделей нейронных сетей. Выделены основные требования для нового универсального конструктора нейронных сетей с возможностью экспорта и импорта моделей различных форматов.

Ключевые слова: нейронная сеть, JSON, конструктор, модель, YAML, HDF5.

Введение

В настоящее время технологии «искусственного интеллекта» набирают всё большую популярность. Нейронные сети – один из наиболее используемых методов реализации искусственного интеллекта. Они широко применяются при решении различного типа задач, особенно при неэффективности или невозможности применения обыкновенных алгоритмических решений.

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

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

Целью данной статьи является выявление требований к универсальному конструктору нейронных сетей с основным упором на поиск решения проблем импорта и экспорта готовых моделей нейронных сетей.

Анализ существующих конструкторов нейронных сетей

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

NeuroSolutions

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

Таблица 1 – Преимущества и недостатки NeuroSolutions
Преимущества Недостатки
Снабжен мощнейшим редактором визуального проектирования нейронных сетей, который позволяет создавать практически любые собственные нейронные структуры. Включено малое количество критериев обучения. Пользователю необходимо создавать внешние модули для применения нестандартных критериев обучения.
Снабжен встроенным генератором кода и средствами, позволяющими использовать внешние модули при проектировании и обучении нейронной сети. Реализовано малое количество методов обучения: алгоритм обратного распространения, сети Кохонена, самоорганизующиеся структуры.
Снабжен мощными и хорошо продуманными средствами визуализации.
Широкий спектр средств для организации обучающих выборок.

NeuralWorks Professional

NeuralWorks Professional - мощное средство моделирования искусственных нейронных сетей. Основной упор сделан на применение стандартных нейронных парадигм и алгоритмов обучения.

Таблица 2 – Преимущества и недостатки NeuralWorks Professional
Преимущества Недостатки
В пакете реализовано 28 стандартных нейронных парадигм. Отсутствие мощной системы предварительной обработки данных.
В пакете можно просмотреть корреляцию весов нейронной сети при обучении.
Снабжен встроенным генератором кода, поддерживающим компилятор Microsoft Visual C++.
Предоставляет возможность интегрирования внешних программных модулей, написанных пользователями.

NeuroShell 2

NeuroShell 2 является средой для создания, редактирования и обучения нейронных сетей. Данная система не считается универсальной. Она входит в состав пакета The AI Trilogy.

Таблица 3 – Преимущества и недостатки NeuroShell2
Преимущества Недостатки
Мощная система обмена данными между различными приложениями. Недостаточно продуманный интерфейс.
Имеет встроенный генератор исходного кода на языках Visual C и Visual Basic. Недостаточно продуманная система визуализации данных.
Нет возможности создания собственной архитектуры нейронной сети.
Нельзя использовать специфичные алгоритмы обучения и изменять критерии обучения нейронной сети.

Проблематика редакторов нейронных сетей

Функционально оптимальный (далее – универсальный) конструктор нейронных сетей должен включать все преимущества существующих пакетов, а также устранить недостатки посредством реализации соответствующих им функций в новом нейронном конструкторе.

На основании анализа пакетов сформируем актуальные проблемы конструкторов нейронных сетей и возможные способы их решения:

Требования к проектируемому конструктору нейронных сетей

Основные требования:

  1. Система должна предоставлять возможность создания нейронной матрицы связей;
  2. Система должна предоставлять возможность удаления нейронных слоёв, нейронов, нейронных матриц связи;
  3. Система должна предоставлять возможность настройки параметров каждого слоя для многослойных сетей;
  4. Система должна предоставлять возможность обучения нейронных сетей различного типа;
  5. Система должна предоставлять возможность тестирования обученной нейронной сети;
  6. Система должна предоставлять возможность масштабирования входных и выходных данных;
  7. Система должна уметь визуализировать входные и выходные данные в виде графиков и диаграмм;
  8. Система должна иметь встроенный генератор кода;
  9. Система должна предоставлять возможность сохранения шаблона созданной нейронной структуры;
  10. Система должна иметь мощную систему предварительной обработки данных;
  11. Система должна предоставлять возможность импорта готовых входных данных из Microsoft Access, Microsoft Excel, текстовых или CSV файлов;
  12. Система должна предоставлять возможность экспорта результирующих данных в Microsoft Access, Microsoft Excel, текстовый или CSV файлы;
  13. Система должна предоставлять возможность совместной разработки нескольким пользователям;
  14. Система должна иметь комплект готовых алгоритмов, моделей нейронных сетей и данных для их обучения;
  15. Система должна уметь решать задачи классификации, регрессии, уменьшения размерности или кластеризации;
  16. Система должна содержать обширную элементную базу для моделирования нейронных сетей различных типов.

Расширенные требования:

  1. Система должна иметь открытый исходный код;
  2. Система должна предусматривать загрузку пользователем внешних модулей в общую библиотеку модулей пакета;
  3. Система должна предоставлять возможность создания различных типов нейронных сетей;
  4. Система должна предоставлять возможность настройки параметров обучения, поддержки классических нейросетевых моделей и алгоритмов обучения;
  5. Система должна предоставлять возможность разметки исходных данных;
  6. Система должна поддерживать режим отладки при обучении, тестировании нейронных сетей;
  7. Система должна предоставлять возможность оптимизации обучения сети;
  8. Система должна иметь мощный редактор визуального проектирования нейронной сети;
  9. Система должна поддерживать инструмент статистического анализа и прогнозирования;
  10. Система должна предоставлять возможность рандомизирования нейронной сети;
  11. Система должна осуществлять импорт и экспорт моделей нейронных сетей в формате HDF5, JSON, YAML;
  12. Система должна предоставлять возможность выбора и минимизации функции ошибки;
  13. Система должна предоставлять возможность просмотра оценки обучения нейронной сети;
  14. Система должна предоставлять возможность создания нейронных структур с неограниченным количеством элементов;
  15. Система должна предоставлять возможность подбора размера и архитектуры нейронной сети на основании размера пользовательского набора данных и типа решаемой проблемы.

Форматы сохранения нейронных сетей

Важной функцией универсального конструктора нейронных сетей является умение экспортировать и импортировать модели различных форматов. Наиболее известные форматы для экспорта и импорта моделей нейронных сетей – HDF5, YAML, JSON.

Формат JSON

Формат JSON - это простой формат файла для иерархического описания данных. За счёт своей лаконичности в сравнении с XML формат JSON может быть более подходящим для сериализации сложных структур.

Рисунок 1 – Модель, сохраненная в формате 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

Формат YAML, язык сериализации данных, используется для спецификации модели. Keras предоставляет возможность описать любую модель, используя формат YAML.

Рисунок 2 – Модель, сохраненная в формате 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

Формат HDF5 (h5) - формат файлов, разработанного для хранения большого объема цифровой информации. Данный формат является наиболее популярным, так как выполняет сохранение всей модели с помощью одной функции.

Рисунок 3 – Модель, сохраненная в формате 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.

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

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

Список литературы

  1. Цаунит А. Н. Перспективы развития и применения нейронных сетей // Молодой ученый. – 2021. – № 23 (365). – С. 114–117.
  2. Аггарвал Ч. Нейронные сети и глубокое обучение : учебный курс. – 2-е изд. – М. : Вильямс, 2020. – 752 с.
  3. Хайкин С. Нейронные сети: полный курс / пер. с англ. Н. Н. Куссуль, А. Ю. Шелестова. – 2-е изд. – М. : Вильямс, 2008. – 1103 с.
  4. Каллан Р. Основные концепции нейронных сетей / пер. с англ. А. Г. Сивака. – М. : Вильямс, 2001. – 287 с.
  5. Денисов С. В., Иванов С. Ю. Конструктор нейронных сетей // Новые информационные технологии в автоматизированных системах. – 2014. – С. 86–92.
  6. Круглов В. В., Борисов В. В. Искусственные нейронные сети. Теория и практика. – 2-е изд. – М. : Горячая линия – Телеком, 2002. – 382 с.
  7. Джулли А., Пал С. Библиотека Keras – инструмент глубокого обучения. Реализация нейронных сетей с помощью библиотек Theano и TensorFlow / пер. с англ. А. А. Слинкина. – М. : ДМК Пресс, 2018. – 304 с.

Keywords: neural network, JSON, constructor, model, YAML, HDF5.