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

Когда дело доходит до глубокого обучения, становится ли современным технологиям легче внедрить глубокое обучение сегодня, чем это было, скажем, два года назад? Стоит ли вам беспокоиться о том, чтобы начать изучать машинное обучение сейчас, если у вас еще не было возможности изучить и использовать его в своих рабочих/личных проектах?

Ответы на оба эти вопроса, как я недавно понял, однозначно да, и современное состояние примерно в 100 раз лучше, чем то, что было 2 года назад. Откуда я это знаю? Что ж, несколько недель назад у меня была возможность повторить упражнение, которое я делал, когда знакомился с ML — подход с переносом обучения для обучения модели классификации изображений Дарт Вейдер и Эльза. Когда я проходил курс fast.ai под названием Практическое глубокое обучение для разработчиков, я наткнулся на простой подход к переносу обучения с использованием resnet34 (возможно, текущий уровень техники для классификации изображений). ) и я решил попробовать его на той же проблеме.

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

Вот только была одна проблема — точность была слишком высока. Это было близко к 99% даже с половиной изображений и половиной количества скрытых слоев (resnet18), поэтому я добавил бэтмена в микс, чтобы немного сгладить проблему. Еще одна итерация и 20 минут спустя (только с автоматически загруженными результатами поиска изображений Google) модель точно классифицировала три класса — даже изображения, которые были слишком сложными для более ранней модели. Код и шаги по загрузке набора данных находятся в этой записной книжке jupyter.

Ключевым выводом для меня было 100-кратное сокращение времени, затрачиваемого на всю эту итерацию, и простота создания чего-то подобного благодаря постоянным исследованиям и расцвету новых инструментов и сервисов (приветствую Gradient, colab и fastai! ). Таким образом, становится все проще включать обучение и логические выводы как функцию в любую область программного обеспечения, которая могла бы извлечь из этого пользу (даже в такое повсеместное явление, как, скажем, автодополнение кода).

Наконец, я настоятельно рекомендую курс fast.ai всем, кто хочет узнать, как применять глубокое обучение в своей области работы. Если вы хотите попробовать только один курс ДО, пусть это будет этот.