Привет!

Знаете, чем я недавно занимался? Играем с чем-то, что называется трансферным обучением в наборе данных CIFAR-10! Я использовал модель DenseNet121, которая отлично обучена набору данных ImageNet. Это был взрыв, и лучшая часть? Результаты были убийственными! Давайте приступим.

Моя миссия

Представьте, что вам дали 60 000 крошечных цветных картинок, каждая размером всего 32x32 пикселя. Все эти изображения делятся на 10 классов, таких как собаки, грузовики и так далее. Ваша миссия, если вы решите ее принять, состоит в том, чтобы научить машину различать, что есть что. И это, мой друг, было моей миссией.

Начинать с нуля с моделями глубокого обучения очень сложно. Я имею в виду, у кого завалялся суперкомпьютер, верно? И тонны помеченных данных? Пфф. Ни у кого нет на это времени. Итак, я использовал крутой трюк, известный как трансферное обучение, и, черт возьми, это упростило задачу!

Подробности

Итак, вот как я это сделал. Я выбрал с полки модель DenseNet121, которая уже набила себе зубы в наборе данных ImageNet. Я использовал Keras, очень удобную библиотеку Python, в которой эта модель готова к работе.

Я добавил изображения CIFAR-10 в эту модель, добавив несколько дополнительных слоев в конце, чтобы отсортировать изображения по нашим 10 классам. Для обучения я использовал оптимизатор RMSprop — хитрую технику, которая подстраивает под нас скорость обучения. Я также использовал раннюю остановку и смоделированные контрольные точки — подумайте об этом как о сохранении игры в критические моменты, чтобы вы не потеряли весь свой прогресс, если что-то пойдет не так.

Покажи мне цифры!

Теперь все становится интереснее. Попотев в течение нескольких тренировочных раундов, я попал в самую точку! Мы говорим о высокой точности проверки, ребята. Просто показывает, что даже если DenseNet121 был обучен на других данных (ImageNet), он все равно разбил его с помощью CIFAR-10.

Итак, в чем дело?

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

Немного имени

Многое из того, что вы здесь читаете, исходит от меня, когда я изучал документы Keras API, учебные пособия по TensorFlow и целую кучу учебников и статей по машинному обучению.

Некоторые источники включают, но не ограничиваются:

Руководство по переносу обучения

C4W2L09 Перенос обучения

Перенос обучения и тонкой настройки

Приложения Keras