Помощь в написании студенческих работ
Антистрессовый сервис

Решение задачи распознания изображений реальных объектов базы CIFAR-10

РефератПомощь в написанииУзнать стоимостьмоей работы

Для всех слоев была задействована активационная функция гиперболического тангенса. Метод нахождения ошибки среднеквадратический, а для обучения использовался алгоритм Левенберга-Марквардта. Результат был сохранен в файл формата csv (по требованию создателей «соревнования») и отправлен как решение на сайт kaggle.com. Сайт принял данные и поместил полученное решение в таблицу лидеров. Шестой слой… Читать ещё >

Решение задачи распознания изображений реальных объектов базы CIFAR-10 (реферат, курсовая, диплом, контрольная)

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

Первой слой — входной. Он принимает изображения, как следствие имеет 3072 нейрона, по 1024 нейрона (32×32 пиксела) каждого канала цвета RGB.

Второй слой — сверточный, применяющий для свертки 6 ядер. Каждый нейрон на каждой из карт соединен с областью 5×5 на входном изображении. Размер одной карты — 28×28. Количество задействованных нейронов 4704, количество вычисляемых весов 456.

Третий слой, как и полагается — слой субдискретизации с шестью картами признаков по 14×14 размерности. Рецептивные поля 2×2, что значит каждый нейрон соединяется с областью этой размерности находящейся в той же позиции. Значения нейронов в этих полях усредняется и подается на вход. Итого задействовано 1176 нейронов и число обучаемых параметров 12.

Четвертый слой — снова сверточный. Этот слой состоит из 16 карт признаков размером 10×10. Рецептивное поле 5×5. Данный слой соединяется со вторым слоем по прописанному в коде инициализации сети принципу:

Принцип соединения четвертого слоя.

Рис. 4.1 Принцип соединения четвертого слоя

Суть выборочного соединения в том, чтобы избежать симметрии сети: различные карты признаков будут извлекать разные признаки из слоя субдискретизации, соединяясь с разными наборами карт, которых на предыдущем слое было 6. Итого только 6 слой будет соединен со всеми картами предыдущего слоя, остальные имеют связи с 3 и 4 картами признаков. Это не только позволяет эффективно обучать сеть, но и сокращает число связей, а их даже при такой архитектуре 156 000, при1600 активных нейронах и 1516 вычисляемых весах. [18].

Пятый слой — субдискретизации с 16 картами признаков размерностью 5×5. Рецептивное поле 2×2 на карте признаков четвертого слоя.400 нейронов, 2000 связей, 32 обучаемых веса.

Шестой слой — слой свертки, имеющий 120 карт признаков, представленных всего одним нейронов. По сути получается вектор и достигается полная связь с предыдущим слоем. 120 нейронов, 48 120 весов.

Седьмой слой — полносвязный. Это выходной слой, состоящий из 10 нейронов, сопоставляемых с одним из классов изображений. 1210 весов и столько же связей.

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

На данной топологии сеть обучалась сначала 20 периодов, а затем был запущен процесс дообучения еще на 30 эпох.

Полученный результат тренировки: 30,5170% ошибок на обучающей базе. Учитывая тот факт, что это алгоритм Л-М и прошло всего 50 эпох, можно предположить, что минимизироваться ошибка еще могла, однако было принято решение, что на данном этапе полученная точность приемлема. Запуск программы довольно сильно загружает CPU, поэтому дальнейшее получение 1−2 процентов точности, не стоят расходуемых ресурсов (перегрева системы).

Результаты обучения сети.

Рис 4.2 Результаты обучения сети.

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

Результат был сохранен в файл формата csv (по требованию создателей «соревнования») и отправлен как решение на сайт kaggle.com. Сайт принял данные и поместил полученное решение в таблицу лидеров.

Итог: 52 строчка LeaderBoard из 150 существующих зарегистрированных решений, с показателем точности в 60,87%.

Результат мог быть улучшен за счет большего количества итераций, а также других настроек сети и ее топологии, которых можно представить огромное количество. Однако, скорее всего, достичь первой позиции, имеющей 92,61% точности классификации, реализованное решение вряд ли способно.

Показать весь текст
Заполнить форму текущей работой