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

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

  • Gmail классифицирует электронные письма на спам или нет.
  • Исправление грамматических и орфографических ошибок, как в Grammarly.
  • Самоуправляемые автомобили, такие как Тесла.
  • Интерактивные боты, которые помогают людям, как в Discord.
  • Обнаружение фейковых новостей.

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

Жизненный цикл машинного обучения

Процесс построения модели машинного обучения разбит на 10 этапов:

  1. Сбор данных
  2. Предварительный анализ данных
  3. Очистка данных
  4. Фильтрация данных
  5. Разработка функций
  6. Выбор модели
  7. Обучение модели
  8. Тестирование модели
  9. Тюнинг
  10. Предсказание

Сбор данных

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

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

Предварительный анализ данных

Хотя это не так распространено, или некоторые могут не рассматривать это как самостоятельный шаг, его ценность намного выше, чем кажется. Фундаментальное правило модели заключается в том, что она должна быть непредвзятой, что означает, что собранных данных должно быть почти одинаковое количество для всех классов, которые у нас есть. В противном случае модель будет давать необъективные результаты. Кроме того, рассмотрение того, как распределяются данные, может изменить ход построения модели, особенно при работе с большими данными. Это даст лучшее представление о том, как следует очищать и фильтровать данные. Визуализация данных даст много информации, которую не следует воспринимать небрежно.

У визуализации данных есть свои инструменты, такие как использование R или Python. Наиболее распространенное использование — отображение данных на гистограммах или круговых диаграммах и т. д.…

Очистка данных

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

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

Фильтрация данных

Фильтрация данных — это то, с чего мы начинаем упорядочивать очищенные данные по их классам, например связывать все данные из одного класса в пакете слов. Мы также разделяем наш набор данных в основном на два тестовых набора данных, которые будут представлять собой небольшую часть данных, которые помогут проверить, правильно ли построена модель, которую я построил. Учебный набор данных будет иметь более значительную часть набора данных, поэтому мы можем обучить машину как можно большему количеству данных, которые у нас есть. Тем не менее, мы можем использовать еще один набор данных, называемый набором данных для разработки, который будет даже меньше, чем набор данных для тестирования, и позже он поможет мне настроить модель.

Разработка функций

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

Выбор модели

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

Обучение модели

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

Тестирование модели

После обучения модели мы используем ее в наборе данных для тестирования, чтобы проверить ее производительность. Набор тестовых данных считается невидимыми для модели данными, поэтому после того, как он их классифицирует, мы сможем оценить его прогнозы и рассчитать их точность. Здесь мы можем решить, проходит ли модель или ее нужно рефакторить. Если его точность низкая, это приведет к нескольким возможностям, по которым результаты будут неверными, либо к неправильному выбору модели, либо к слабым функциям, либо даже к некорректной очистке данных. А если точность будет высокой, мы успешно построим модель.

Тюнинг

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

Предсказание

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

Заключение

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