ПРИМЕНЕНИЕ НЕЙРОННОЙ СЕТИ ДЛЯ КЛАССИФИКАЦИИ БЫТОВОЙ ТЕХНИКИ - Студенческий научный форум

XII Международная студенческая научная конференция Студенческий научный форум - 2020

ПРИМЕНЕНИЕ НЕЙРОННОЙ СЕТИ ДЛЯ КЛАССИФИКАЦИИ БЫТОВОЙ ТЕХНИКИ

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

В статье описывается архитектура и реализация нейронной сети, задача которой является определение бытовой техники. Для разработки нейронной сети было принято решение использовать Персептрон.

Для реализации был использован объектно-ориентированный язык Python [1] версии 3.6 с применением таких библиотек как Keras [2], TensorFlow [3], numpy [4], matplotlib [5]. Благодаря им есть возможность создавать нейронные сети, для осуществления классификации бытовой техники.

Данная работа выполнена в рамках курсового проекта по дисциплине «Machine Learning. Обучающиеся технические системы», научный руководитель - д.ф.-м.н., профессор Воронова Л.И. [6].

Введение

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

Машинное обучение (Machine Learning) – это обширный подраздел искусственного интеллекта, изучающий методы построения алгоритмов, способных обучаться [7].

В современном мире данная область является одной из самых перспективных в сфере IT технологий, которая очень активно развивается. Использование нейронных сетей в машинном обучении позволяет решать широкий круг задач обработки и анализа данных.
Области применения очень разнообразные: строительство, бизнес, медицина, безопасность, машиностроение, робототехника, наука и другие. Алгоритмы машинного обучения активно внедряют крупные корпорации, являющиеся лидерами в области IT-технологий, например, Google, Microsoft, Apple.

В данной работе был представлен пример использования нейронной сети для распознавания различной бытовой техники.

Архитектура нейронной сети

Для разработки нейронной сети можно использовать персептрон. Персептрон — это простейший вид нейронной сети [8]. В разрабатываемой сети на вход будет подаваться изображение, на котором присутствует фигура. Результатом работы сети должна быть информация о том, к какому классу относится фигура, представленная на изображении. Для решения данной задачи использована модель многослойного персептрона с двумя скрытыми слоями. Входной слой состоит из n нейронов, где n – количество пикселей изображения (n=5625). Первый и второй скрытые слои содержат m и k нейронов соответственно, где m = 256 и k = 256. Выходной слой содержит 5 нейронов, что соответствует количеству классов изображений. Архитектура разрабатываемой сети представлена на рисунке 1.

Рисунок 1. Архитектура разрабатываемой нейронной сети

Реализацию нейронной сети для распознавания изображений решено проводить с использованием языка программирования Python[1], поскольку в нём есть необходимые библиотеки для реализации поставленной задачи:

tensorflow [2] - открытая программная библиотека для машинного обучения, разработанная компанией Google для решения задач построения и тренировки нейронной сети с целью автоматического нахождения и классификации образов, достигая качества человеческого восприятия;

keras [3] - библиотека с открытым исходным кодом, которая позволяет создавать нейронные сети. Нацелена на оперативную работу с сетями глубинного обучения;

numpy [4] - это расширение, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами;

matplotlib [5] - библиотека для графической визуализации данных.

Описание набора данных

Набор данных (DataSet) был собран из множества картинок, найденных в Интернете. Таким образом, был подготовлен DataSet бытовой техники, включающий в себя три класса объектов для обучения нейронной сети, такие как холодильники, плиты и чайники.
Необходимо подготовить набор данных следующим образом: в каталогах test, train и validation создать новые каталоги, но уже с названием классов. Так, например, внутри каталога train будет четыре подкаталога: «xolod», «chay», «plita», куда будут загружены изображения. Соответственно изображения холодильников помещаются в папку «xolod», изображения чайников в папку «chay» и, наконец, изображения плит в папку «plita». Аналогичным образом поступаем и с каталогами test и validation. Пример каталога с подкаталогом «chay» представлен на рисунке 2.

Рисунок 2. Фрагмент DataSet

Результаты реализации нейронной сети

В ходе использования разработанного алгоритма и теоретических знаний был протестирован набор данных.

При обучении программа выдала результат определение прибора на тестовых данных 73.33%(рисунок 3).

Рисунок 3. Результат в ходе обучения.

Далее было протестировано несколько изображений, где из 10 различных изображений было определено 9 верно и 1 результат был неверен. На рисунке 4 и 5 представлен результат с верным и неверным выводом.

Рисунок 4. Результат верного определения изображения

Рисунок 5. Результат неверного определения изображения

Этот неверное определение было связано с тем, что DataSet был недостаточно большим, то есть для более точного определения, DataSet должен быть в несколько раз больше.

Далее проверим независимые изображения по результату обучения разработанной нейронной сети. Результат одного из тестированных представлен на рисунке 6.

Рисунок 6. Результат тестирование изображения

Выводы

В данной статье была представлена архитектура разработанной нейронной сети для предсказывания изображений. Были подобраны DataSet для обучения сети.

Исходя из исходных данных был разработан алгоритм работы программы для обучения и тестирования изображения.

Представлены результаты выполнения программы с использованием DataSet для бытовых приборов, которую можно считать успешным. Таким образом, можно сделать вывод, что обучение и тестирование прошло корректно с положительным результатом. Данная нейронная сеть может быть использована не только для определения бытовой техники, но и других вещей, для этого требуется подготовить необходимый набор данных.

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

Programming language Python // Python [Электронныйресурс]. – https://www.python.org/

Открытая библиотека машинного обучения TensorFlow // TensorFlow [Электронный ресурс]. – https://www.tensorflow.org/

Keras: The Python Deep Learning library // Keras [Электронныйресурс]. – https://keras.io/

NumPy // NumPy [Электронный ресурс]. – http://www.numpy.org/

Matplotlib // matplotlib [Электронный ресурс]. – https://matplotlib.org/

Л.И. Воронова, В.И. Воронов. Machine Learning: Регрессионные методы интеллектуального анализа данных: учебное пособие – МТУСИ, 2017 – 81 с.

Воронов В.И., Воронова Л.И., Генчель К.В. Применение параллельных алгоритмов в нейронной сети для распознавания жестового языка // Актуальные проблемы инфотелекоммуникаций в науке и образовании (АПИНО 2018). VII Международная научно-техническая и научно-методическая конференция. Сборник научных статей. В 4-х томах. Под редакцией С.В. Бачевского. – СПб.: СПбГУТИ им. проф. М.А. Бонч-Бруевича, 2018. – С. 207-212.

Глава 4. Персептроны // neuralnet [Электронный ресурс]. –://neuralnet.info/chapter/персептроны/

Просмотров работы: 17