Top.Mail.Ru
Истории

Шесть советов для начинающих специалистов по машинному обучению

Истории
Дарья Сидорова
Дарья Сидорова

Редактор направления «Истории»

Дарья Сидорова

Пользователь Medium Крис И., fullstack-разработчик и специалист по данным, три года изучал машинное обучение и создавал на его базе приложения в рамках стартапа. Крис признает: в процессе он не раз совершал ошибки и потерял много времени. Он поделился шестью советами на основе своего опыта, которые будут полезны начинающим специалистам по МО.

Шесть советов для начинающих специалистов по машинному обучению
  1. Истории
Автор: Дарья Сидорова

Откажитесь от обучения без учителя (unsupervised learning)

Это метод обучения моделей по немаркированным данным, обычно задействующий кластеризацию. В теории с его помощью можно обнаружить неизвестные ранее закономерности. В свою очередь, при обучении с учителем (supervised learning) модель изучает отношения между входными данными и помеченными выходными данными.

Несмотря на то, что этот метод  рекомендуют многие эксперты со степенью PhD в ИИ, часто обучение без учителя не приносило никакого результата. В случае Криса, оно всегда уступало человеческой интуиции. И хотя у этого метода, вероятно, есть множество способов применения, но работа будет нелегкой и и затратной с точки зрения времени. Поэтому лучше набрать больше опыта и вернуться к нему позже.

Не используйте нейронные сети

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

У этой модели есть несколько недостатков, которые будут особенно заметны начинающим.

  • Замедляет итерацию. Кривая обучения — это функция скорости, определяющая время перехода к новому этапу. Как правило, нейросети обучаются дольше традиционных моделей. А значит, у вас будет меньше времени на итерации.
  • Требует много данных. При их недостатке можно столкнуться с переобучением модели: она будет хорошо работать на обучающей выборке, но плохо справляться с остальными примерами. Обычно массивный объем данных есть лишь у многолетних компаний. Но даже в таком случае он, вероятно, будет немаркированным.
  • Предлагает бесчисленное количество параметров. Логистическая регрессия имеет ограниченное число комбинаций гиперпараметров, а вот нейронную сеть можно настраивать бесчисленным количеством способов. Вы с большей вероятностью запутаетесь, чем найдете решение.
  • Скорее всего, традиционной модели МО будет достаточно. Для создания минимально жизнеспособного продукта подойдет готовая модель из библиотеки Scikit-learn. Конечно, недели настройки нейросети могут подарить пару дополнительных баллов по оценке f1. Однако в начале работы это не стоит затраченных усилий.
  • Трудно найти наставника. Практически каждый способен объяснить, как нейронные сети работают на высоком уровне. Однако лишь у нескольких есть опыт решения реальных проблем с их помощью. Поэтому вам, вероятно, придется разбираться самостоятельно.

В целом, не стоит полностью избегать нейросетей — лучше использовать их на более поздних этапах.

Структурируйте все проблемы в двоичной классификации

Максимально упростите обучение модели. Легче всего это сделать с помощью двоичной классификации. Такая модель будет выводить 1 или 0 в зависимости от того, есть ли на фотографии, например, собака или нет. Многоклассовая классификация возвращает 0, 1, 2 или 3 с учетом того, кто представлен на фото: собака, кошка, попугай или эму.

Начни бизнес с RB.RU: 7 писем для старта

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

Настройте гиперпараметры

Это настройки на уровне модели, например коэффициент скорости обучения. По умолчанию они редко бывают оптимальными.

Однако ручная настройка требует много времени, поэтому лучше воспользоваться автоматизированным инструментом: GridSearchCV, TPOT и т. д. Хранить эксперименты можно в облаке.

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

Установите сроки для попыток, а не для результатов

Машинное обучение — это не разработка ПО. Невозможно предсказать, сколько времени потребуется для решения проблемы и решаема ли она в целом.

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

Документируйте эксперименты

Спустя полгода вы будете благодарны себе за это. Информацию можно занести в электронную таблицу и отметить в ней следующее:

  • выбор модели/архитектуры;
  • гиперпараметры;
  • примерное описание данных (источник, размер, дата, особенности и т. д.);
  • результаты (точность, оценка f1 и прочие);
  • ссылка на снимок данных (по возможности);
  • комментарии и выводы.

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

Кроме того, заметки в ходе работы и периодическое подведение итогов придают сил, помогают увидеть закономерности и развивать интуицию. Именно это сделает вас опытным специалистом в долгосрочной перспективе.

Источник.

Фото на обложке: Besjunior / Shutterstock

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Какой бизнес выгодно открыть сегодня? Советы серийного предпринимателя
  2. 2 Как создать уникальный продукт в перенасыщенной нише
  3. 3 Пять причин интегрировать машинное обучение в бизнес
  4. 4 Словарь: чем различаются машинное и глубокое обучение
7 писем для старта
Начни бизнес с RB.RU
Подписаться