Автор:Чернобай Д.С., Гудаев О.А
Источник:Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ - 2023) - 2023 / Сборник материалов XIV международной научно-технической конференции. — Донецк, ДонНТУ — 2023, Том 1, с. 97-101.
Чернобай Д.С., Гудаев О.А. Рассматривается проектирование нейросетевого приложения на базе сверточной нейронной сети. Будет представлена подробная концептуальная модель нейросетевого приложения, так же будут представлено поведение программы с помощью диаграмм в нотации UML и спроектирована модель архитектуры сверточной нейронной сети
Искусственные нейронные сети находят своё применение в различных сферах, включая и сферу общественной безопасности. Благодаря современным компьютерным технологиям имеются широкие возможности для использования нейронных сетей в задачах распознавания потенциальных угроз, будь то лица, находящиеся в розыске, либо различного рода предметы, которые могут стать орудиями противоправных действий [3].
Свёрточные нейронные сети завоевали популярность в компьютерном зрении из-за их экстраординарно хорошего качества работы на задачах классификации изображений. На сегодняшний день они являются одной из самых популярных архитектур в глубоком обучении [4, 5].
Свёрточная нейронная сеть – это нейронная сеть, в которой вместо общей операции умножения на матрицу, по крайней мере в одном слое, используется свёртка [1]. Свёртка – это операция над двумя функциями вещественного аргумента.
Чтобы реализовать нейросетевое приложение по распознаванию цветных прямоугольников необходимо заняться его проектированием, а также построением модели архитектуры сверточной нейронной сети.
Разработка сверточной нейронной сети (НС) начинается с изучения предметной области. В данном случае нужно изучить предметную область – распознавание цветных прямоугольников для более корректной реализации программы и спроектировать программу с помощью UML диаграмма
Для построения концептуальной модели НС была выбрана диаграмма Mind Map. На рисунке 1 представлена ментальная карта НС по распознаванию цветных прямоугольников от которой выступают 3 ветви составных частей: «Разработка модели НС», «Обучение НС» и «Разработка моделей нейросетевого распознавания».
Рисунок 1 – Ментальная карта разработки НС
На рисунке 2 представлено разбиение ветви «Разработка модели НС» на подветви «Входные данные», «Сверточные слои», «Пулинговые слои», «Полносвязный слой» и «Выходные данные». Данная ветвь указывает из каких элементов будет состоять разрабатываемая сверточная нейронная сеть.
Рисунок 2 – Разбиение ветви «Разработка модели НС»
На рисунке 3 представлено разбиение ветви «Обучение НС» на такие подветки как «Подготовка данных», «Обучение» и «Тестирование»
Рисунок 3 – Разбиение ветви «Обучение НС»
На рисунке 4 представлено разбиение подветви «Подготовка данных» на такие компоненты как «Единое расширение», «Единый размер» и «Применение фильтров».
Рисунок 4 – Разбиение подветви «Подготовка данных»
На рисунке 5 представлено разбиение ветви «Разработка моделей нейросетевого распознавания» на такие компоненты как «Модель обучения» и «Модель тестирования».
Рисунок 5 – Разбиение ветви «Разработка моделей нейросетевого распознавания»
Далее нужно определить, какой функционал будет доступен. Это можно изобразить с помощью UML диаграммы вариантов использования, которая представлена на рисунке 6.
Из данной диаграммы можно наблюдать, что доступны возможности обучения, тестирования и просмотра результатов НС.
Просмотр результатов подразумевает под собой результатов следующего вида: просмотр результатов обучения и просмотр обучения тестирования
Рисунок 6 – UML диаграмма вариантов использования
С помощью диаграммы компонентов можно наблюдать визуализацию структуры исходного кода программной системы, спецификации исполняемого варианта программной системы, а также обеспечения многократного использования фрагментов кода.
Диаграммы компонентов изображенная на рисунке 7 показывает, как выглядит модель системы на физическом уровне. На диаграмме изображены компоненты программного обеспечения и связи между ними.
Из данной диаграммы видно, что структура программного кода взаимосвязана, т.к. для начала пользователю необходимо обучить нейронную сеть на заранее подготовленной выборке, после протестировать её и вывести результаты.
Рисунок 7 – UML диаграмма компонентов
Программирование нейронной сети начинается, в первую очередь, с построения самой модели нейронной сети. В данном случае была выбрана архитектура свёрточной нейронной сети. На рисунке 8 можно наблюдать результат моделирования свёрточной нейронной сети.
Первым делом в нейронную сеть загружаются входные данные в виде изображения. Оно в свою очередь разбивается на 3 канала, из которых состоит, что является 0 уровнем.
Рисунок 8 – Модель свёрточной нейронной сети
После происходит процесс создания карт свертки и пулинга в количестве 64 штук, это является 1 уровнем. На уровнях 2 и 3 происходит точно такие же операции, только карты находятся в количестве 192 и 384 соответственно. После последней стадии пулинга данные преобразовываются в вектор для полносвязного слоя и рассчитывается на основе данного вектора выходные данные – присутствует ли необходимый цветной прямоугольник или нет.
В работе была представлено проектирование концептуальной модели, диаграмм в нотации UML, а также модель архитектуры сверточной нейронной сети. На основе спроектированных аспектов необходимо будет разработать нейросетевое приложение.