Аннотация:

В этой статье показаны этапы обучения сверточной нейронной сети для классификации набора данных CIFAR 10 с использованием архитектуры ResNet50.

Введение:

Набор данных CIFAR-10 состоит из 60000 цветных изображений 32x32 в 10 классах, по 6000 изображений в каждом классе. Есть 50000 обучающих изображений и 10000 тестовых изображений.

Мы хотим обучить набор данных CIFAR 10 и получить модель с точностью проверки 87% или выше.

Создание новой модели с самого начала требует времени и ресурсов, поэтому мы будем использовать трансферное обучение с архитектурой Resnet для получения высокой точности.

Материал и методы:

Чтобы классифицировать набор данных Cifar10, мы продолжим с помощью трансферного обучения. Мы выбираем архитектуру, которая достаточно надежна для выполнения этой работы. Поэтому мы выбираем архитектуру Resnet50.

Действительно, эта модель стала победителем конкурса ImageNet в 2015 году, поэтому мы считаем, что будет полезно классифицировать набор данных Cifar10.

Чтобы обучить модель на новом наборе данных выше, изменилась архитектура для всего, кроме части ResNet 50.

Мы начали с предварительной обработки данных X_train, Y_train, X_test и Y_test и заморозили большинство слоев, оставив активными только последние 30.

Входное изображение Cifar10 имеет размер 32 x 32, поэтому мы помещаем первый слой в качестве лямбда-слоя, который масштабирует данные до нужного размера, чтобы мы могли передавать их через слои ResNet.

Затем изображения проходят через ResNet, мы сглаживаем наш обработанный ввод и пропускаем его через 2 плотных слоя (со 128 и 64 нейронами соответственно).

Каждый слой предварительно имеет пакетную нормализацию и отсев перед последним слоем с softmax и 10 нейронами.

Мы также использовали обратный вызов ModelCheckpoint в сочетании с обучением с помощью model.fit() для сохранения модели (в файле контрольных точек) через некоторый интервал, чтобы модель можно было загрузить позже, чтобы продолжить обучение из сохраненного состояния.

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

Результаты:

Сначала мы получили точность 94% без замораживания данных с помощью Keras версии 2.3, используя среду Colab с ускорением TPU.

Потом попробовали версию 1.12 и пусть не зависло только 30 слоев.

Версия 1.12 Tensorflow не поддерживает ускорение TPU в COlab. На это ушло более 60 часов, поэтому мы решили установить GPU-ускорение в свой личный ноутбук.

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

Обсуждение:

Эти результаты позволяют сделать вывод, что:

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

Благодарности:

Яблагодарю г-на Мохамеда Амина Бен Амора, управляющего кампусом Холбертонской школы и профессора математики, за предоставление адекватных ресурсов и рекомендаций в ходе этого проекта.

Благодарности:

Яблагодарю г-на Мохамеда Амина Бен Амора, управляющего кампусом Холбертонской школы и профессора математики, за предоставление адекватных ресурсов и рекомендаций в ходе этого проекта.

Процитированная литература:

Эндрю Дабидин. 05.09.2019. Перенос обучения с использованием ResNet50 и CIFAR-10.

Эндрю Дэбидин. 05.09.2019. Трансферное обучение и визуализация (CNN).

Викас Гупта, Анастасия Мурзова.02.06.2018.Keras Tutorial: Тонкая настройка с использованием предварительно обученных моделей. https://www.learnopencv.com/keras-tutorial-fine-tuning-using-pre-trained-models/?fbclid=IwAR0heSpdb_mp8AQwNQOEdrT-MX8TOA4WlR6kizkkA4JxZQPeahb7cXCcP6g

Дипанджан (ди-джей) Саркар.14/11/2019. Полное практическое руководство по переносу обучения с помощью реальных приложений в глубокое обучение.

https://towardsdatascience.com/a-comprehensive-hands-on-guide-to-transfer-learning-with-real-world-applications-in-deep-learning-212bf3b2f27a?gi=e84e491b0bd3

fchollet.15/04/2020.Передача обучения и тонкой настройки.

https://keras.io/guides/transfer_learning/

Приложения:

Эта модель была протестирована с помощью Google Colab, поскольку она предоставляет необходимые ресурсы, такие как GPU и TPU, а также большой объем памяти для проведения обучения, поскольку ее тестирование на обычном компьютере требует больших вычислительных ресурсов.