Современные технологии развиваются очень быстро и прогресс не стоит на месте, совершенствуются методы интеллектуального анализа данных, активно внедряется компьютерное зрение в государственные проекты, такие как видеофиксация нарушений ПДД; в коммерческие проекты, например, торговые площадки, где система сама классифицирует категорию продаваемого товара по загруженной фотографии.
В статье описана разработка программы, построенной на основе нейронной сети, которая была обучена методом обратного распространения ошибки, для классификации автомобиля, продаваемого на торговой площадке по типу кузова.
Для реализации программы использовалась библиотека Keras [1], работающая совместно с библиотекой TensorFlow [2], позволяющая разработать нейронную сеть, которая осуществляет классификацию автомобилей.
Данная работа выполнена в рамках курсового проекта по дисциплине «Machine Learning. Обучающиеся технические системы», научный руководитель – д.ф.-м.н., профессор Воронова Л.И.
Введение
Технологии машинного обучения в современном мире используются во всевозможных отраслях и популярность технологий, связанных с машинным обучением, увеличивается с каждым годом. Машинное обучение - процесс, в результате которого компьютеры способны показать поведение, которое в них не было явно запрограммировано [3]. Одним из методов машинного обучения являются нейронные сети, они используются в чатботах на различных интернет - ресурсах, в программах по оценке качества обслуживания клиентов, где применяются методы распознавания голоса, на торговых площадках, таких как Авито. На торговых площадках используется одно из наиболее перспективных применений нейронных сетей – компьютерное зрение (CV). Оно позволяет интерпретировать изображение в понятный для машины язык, после чего машина может проанализировать изображение. Благодаря данной технологии камеры видеонаблюдения могут распознать лицо человека, это помогает при поимке преступников. Камеры, фиксирующие нарушения ПДД также используют технологии компьютерного зрения, распознавая номер нарушителя. Системы контроля за очередями—еще один пример использования компьютерного зрения [4]. На Авито, загрузив изображение продаваемого товара, нейронная сеть классифицирует изображение к одной из категорий продажи с достаточно высокой точностью, например, загрузив фотографию автомобиля, вам сразу предложат разместить объявление в категорию «Авто». Актуальность работы заключается в углублении существующей классификации товаров на торговых площадках на примере классификации автомобилей по типу кузова.
Постановка задачи
Задача заключается в дополнении функционала, реализованного на торговых площадках, а именно в расширении глубины классифицирования товара по загруженному изображению. Сейчас система, при поданном на вход изображении автомобиля может определить, что это автомобиль, но углубленной классификации, например, какой тип кузова у данного автомобиля, на торговых площадках не встречается. Задача, решение которой описана в данной статье, заключается в реализации программы, которая будет углублять классификацию автомобилей, а именно классифицировать авто по типу кузова на «седаны», «джипы» и «спорткары».
Существует большое количество классификаторов машинного обучения, одним из самых важных является разделение на обучение с учителем и обучение без учителя. Под «учителем» здесь понимается сама идея вмешательства человека в обработку данных. При обучении с учителем имеются данные, на основании которых нужно что-то предсказать, и некоторые гипотезы. При обучении без учителя имеются только данные, свойства которых необходимо найти. [5]
Наша нейронная сеть, классифицирующая изображения, обучаются «с учителем». В нашей сети это реализуется следующим образом:
Изображения для обучения, проверки и тестирования сортируются по папкам в соответствии с классом, к которому они относятся.
В каталоге первого уровня создаются папки, сортирующие изображения на train, validation, test.
В каталоге второго уровня (в папках train, validation, test) изображения распределяются по папкам в соответствии с принадлежностью к какому-либо классу, то есть в каждой из папок первого уровня содержится 3 папки второго уровня – jeep, sedan, sport. Количество изображений распределено между train, validation и test в процентном соотношении: 70%, 15%, 15%.
Модель нейронной сети
Проектируемая сеть имеет структуру персептрона, на вход подается цветное изображение размером 100 на 100 пикселей, поэтому во входном слое 30000 нейронов (100*100*3). Так как изображение цветное и пиксель может быть либо red, либо green, либо blue. Выходной слой состоит из трех нейронов, так как изображение относится к одному из трех классов («седаны», «джипы» и «спорткары»). Используется два скрытых слоя нейронной сети, состоящих из 25 нейронов, так как изначально сеть была обучена с одним скрытым слоем, но показала плохой результат при тестировании, поэтому было принято решение добавить еще один скрытый слой. Больше двух скрытых слоев не нужно в рамках решения данной задачи, так как повышается вероятность получить переобучение нейронной сети. На всех слоях, кроме выходного слоя используется функция активации ReLU, на последнем слое используется sigmoid. Модель нейронной сети можно увидеть на рисунке 1.
Рисунок 1. Модель нейронной сети при n = 30000, n1 = 25
Обучение и оценка точности нейронной сети
Обучение происходит методом обратного распространения ошибки. Цель обучения — найти набор весов и смещений, который минимизирует функцию потери. Вывод нейронной сети дается формулой:
Расчет функции потери производится следующим образом:
При обучении модели видно, как уменьшается функция потери, что можно увидеть на рисунке 2.
Рисунок 2. Процесс обучения нейронной сети методом обратного распространения ошибки
Программа реализована на основе набора данных (датасета), собранного из случайных изображений, скаченных с Яндекса. Для обучения используется 300 изображений (по 100 изображений на каждый класс), 30 изображений на проверку и 30 изображений на тестирование.
Датасет содержит в себе изображения автомобилей кузова джип, седанов и спорткаров. Преимущественно ракурс фотографии сбоку автомобиля. Пример изображений, используемых для обучения, можно увидеть на рисунке 4.
Рисунок 4. Пример изображений из датасета(джип, седан, спорткар)
Точность на обучающей выборке на последнем этапе обучения составляла 94,29%. Точность на тестовой выборке составила 75%.
Тестирование разработанной нейронной сети
Тесты производились на изображении взятом из тестовой выборки изображений. На вход подаются изображения автомобилей. На выходе программа в текстовом виде предоставляет результат классификации. На рисунках 5-7 отображается работоспособность программы.
Рисунок 5. Пример работы программы при поданном на вход изображении джипа
Рисунок 6. Пример работы программы при поданном на вход изображении спорткара
Рисунок 7. Пример работы программы при поданном на вход изображении седана
Также тест проводился на изображениях взятых из интернет – ресурсов по продаже автомобилей, где программа показала отличный результат.
Выводы
В данной статье описано решение поставленной задачи – углубление классификации товаров для торговых площадок на примере классификации автомобилей по типу кузова. Поставленная задача была решена, программа идентифицирует кузов автомобиля с точностью более 75%. При проведении тестирования работоспособность программы была оценена положительно. В дальнейшем планируется доработка данной программы, добавление новых выходных классов и увеличение количества изображений в датасете, для улучшения точности предсказания.
Список литературы и источников информации
Открытая библиотека машинного обучения Keras [Электронный ресурс]. – URL: https://keras.io/ (Дата обращения: 18.12.2018).
Открытая библиотека машинного обучения TensorFlow [Электронный ресурс]. – URL: https://www.tensorflow.org/ (дата обращения: 19.12.2018).
Arthur, Samuel (1959-03-03). "Некоторые исследования в Машинном Обучении используя игру шашек". IBMJournal 3 (3): 210–229.
Толкачев А.М., Тутова Н.В. Применение нейронных сетей для автоматического распознавания живой очереди в супермаркете: [Электронный ресурс] // X Международная студенческая научная конференция «Студенческий научный форум – 2018». URL: https://files.scienceforum.ru/pdf/2018/5196.pdf. (Дата обращения: 4.01.2019).
ХайкинС. Нейронныесети: полныйкурс = Neural Networks: A Comprehensive Foundation. 2-е изд. — М.: Вильямс, 2006. — 1104 с.