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

Пытаться узнать о машинном обучении - это разочарование. Могу ли я как-то использовать YOLO, Keras, Tensorflow, PyTorch или их все вместе? И даже если вы разберетесь с докторской диссертацией, вам все равно придется освоить еще три дисциплины, чтобы заставить ее работать в продакшене; DevOps, программирование и счетные дисциплины.

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

Самая важная вещь для правильной работы машинного обучения - это тренировочные данные.

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

Что такое тренировочные данные?

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

Инструменты для преобразования этих данных в работающую модель машинного обучения существуют сегодня и просты в использовании. Вам не нужно ехать в Беркли, чтобы ими пользоваться, вам просто нужно немного разбираться в компьютерах.

Очевидно, где еще волшебство?

Магия.

Откуда пришли письма с примерами 2000? ТЫ! Совершенно верно, любой может создать набор данных, немного потрудившись, немного сосредоточившись и имея возможность следовать нескольким простым соглашениям, которые я изложу ниже после того, как закончу говорить об этом потрясающем моменте.

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

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

Что ж, все, что вам нужно сделать, это просмотреть электронные письма вашей компании и поместить примеры спама в одну папку и примеры отсутствия спама в другую.

Я согласен, это немного утомительно, но в конце концов оно того стоит, потому что то, что вы делаете, - ЗОЛОТО! ВЫ ОСНОВНО ЗАРАБАТЫВАЕТЕ ЗОЛОТО !!

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

* Под убийством я подразумеваю заплатить много денег.

Подводя итог, можно сказать, что у этого есть две причины;

  1. Модели машинного обучения работают лучше всего, когда они подготовлены к решению конкретной проблемы и не являются слишком обобщенными. Это все равно, что пытаться использовать молоток вместо отвертки для винта. Человек, думающий о проблеме, которую он пытается решить, и построение специально подобранного обучающего набора для этого - лучший способ добиться успеха с вашей моделью.
  2. Все меньше и меньше возможностей для обобщенных моделей машинного обучения, которые могут изменить ситуацию для бизнеса, поэтому им необходимо создавать модели на основе собственных наборов данных, которых некоторые компании могут не иметь или не знать, как получить.

А как насчет визуальных данных?

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

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

Но в меньших масштабах вы можете сделать это самостоятельно и стать мастером машинного обучения! Вот несколько простых рекомендаций, чтобы начать работу;

Руководящие указания

  1. Для классификации у вас должен быть сбалансированный набор данных. Это означает, что если у вас 1000 писем со спамом, вам также понадобится 1000 писем, не относящихся к спаму. Допустимое отклонение от минимального до нулевого, то есть не пытайтесь избежать наказания с помощью 1300 спама и 700 не-спама - я знаю 🧐
  2. У вас должен быть очень чистый набор данных. Это означает, что электронные письма со спамом не помечаются как не спам и наоборот. Неправильные метки удивительно сбивают с толку вашу модель. Я заметил, что точность увеличилась на 20% и более после тщательной очистки набора данных.
  3. Будьте случайными. Если можете, выберите случайную выборку спама и обычных писем. Не начинайте с начала истории электронной почты и двигайтесь в обратном направлении. Если вы сделаете это, вы можете обучить модель тому, как будет выглядеть ИСПОЛЬЗУЕМЫЙ спам, а не тому, как он выглядит сегодня.
  4. Контекст имеет значение. Если вы обучаете модель обнаруживать людей в холле вашего офиса с помощью камеры видеонаблюдения, используйте примеры изображений с той же камеры, одни с людьми, а другие без них. Вы должны тренировать модель на том, что НЕ людьми, так же, как вы обучаете ее на том, что есть люди. Имеет ли это смысл? Если нет ... ну ... я не знаю, что это сообщение в блоге, поэтому я не могу прямо ответить на ваши вопросы. Двигаемся дальше…
  5. Последовательность имеет значение. Когда я создавал набор данных фейковых новостей, мне все время приходилось начинать все сначала, потому что я постоянно менял свое мнение о том, что считать фейковыми новостями; сатира? Сообщения в блоге? части мнения? Проведите где-нибудь линию на песке и придерживайтесь ее на протяжении всего процесса.
  6. Проверка. Выделите 20% тренировочного набора данных и не тренируйте с ним свою модель. Используйте 80% для обучения модели, а 20% - для последующего тестирования вашей модели, чтобы увидеть, насколько хорошо она работает. И убедитесь, что вы выбрали эти 20% случайным образом.

Выводы

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

До свидания!