Введение
В этой статье мы обсудим машинное обучение, также известное как экспертные системы, и то, как их можно использовать для прогнозирования.
Структуру любого приложения машинного обучения можно разделить на шесть основных задач или шагов. Давайте подробнее рассмотрим каждый из них и выясним, почему они необходимы для создания эффективных приложений машинного обучения.
Банк данных
Первый Jar в ML — это данные. Это какой-то сюрприз? Данные — это топливо, на котором работает машинное обучение. Получив данные, мы сделаем с ними четыре вещи.
- Очистка данных — включает в себя поиск отсутствующих значений, дубликатов и выбросов, а также определение того, структурированы ли данные и имеют ли они правильный формат.
- Кодировка - набор данных. Все алгоритмы машинного обучения работают с числовыми данными. Если у нас есть категориальные данные, мы должны преобразовать их в числовые данные, то есть кодирование.
- Разделение — данные делятся на обучающие (70–80%) и тестовые (20–30%) данные. Алгоритм ML будет разработан с использованием обучающих данных, и он будет оцениваться с использованием тестовых данных. Данные для обучения и тестирования выбираются случайным образом.
- Масштабирование. Данные должны быть в одном масштабе для определенных алгоритмов машинного обучения. На этом этапе все объекты данных масштабируются до одинакового масштаба. Стандартный метод масштабирования — это одностороннее масштабирование.
Банка задач
У нас есть данные. Что вы собираетесь делать с этими данными теперь? Далее идет банка задач. Задача заключается в том, чего мы пытаемся достичь с помощью машинного обучения, избегая человеческих интерпретаций. Баночка задач включает обучение с учителем, обучение без учителя и обучение с подкреплением.
- Обучение под наблюдением — эквивалентно наличию учителя, который предоставляет вам помеченные примеры, на которых вы можете учиться. Считайте, что это похоже на изучение названий различных фруктов. Ваш учитель может показать вам изображения фруктов и назвать их, например, «это яблоко» или «это банан». Затем, основываясь на том, что вы узнали, ваш учитель может показать вам новые изображения фруктов и попросить вас идентифицировать их.
- Неконтролируемое обучение. Это похоже на поиск шаблонов в данных, не зная, что это за шаблоны. Подумайте о том, чтобы рассортировать кучу разноцветных шариков без каких-либо этикеток или инструкций. Если вы заметили, что некоторые шарики похожи по цвету или размеру, вы можете решить сгруппировать их вместе.
- Обучение с подкреплением — похоже на обучение домашнего питомца. Попробуйте научить собаку сидеть по команде. Когда собака сядет, вы можете вознаградить ее лакомством. Со временем собака усваивает, что сидение приносит вознаграждение, и каждый раз начинает сидеть без угощения.
Банку с моделью
В банке модели каждая задача может быть связана с математическим решением, объясняющим взаимосвязь между вводом и выводом. и это математическое решение обеспечивается моделью, созданной с использованием алгоритмов. Мы не знаем, какова реальная связь между входом и выходом. С другой стороны, наши машины будут давать наилучшую оценку взаимосвязи между входной и целевой переменной.
Модель линейной регрессии
где y обозначает прогнозируемую цель, x обозначает особенности, а m и c обозначают параметры.
Jar функции потери
У нас были параметры m и c в предыдущей банке. В этом банке должны быть выбраны наилучшие значения параметров, чтобы получить уменьшенную функцию потерь и окончательную точность.
Мы попытаемся вычислить функцию потерь. Функция потерь — это разница между фактическими и прогнозируемыми выходными данными из приближения нашей модели. Когда у нас есть меньшая функция потерь, производительность нашей модели улучшается.
У нас есть различные варианты функций потерь, такие как потеря квадратной ошибки, потеря кросс-энтропии, дивергенция KL и т. д.
Алгоритм обучения
Цель обучающей банки — найти параметры с наименьшими потерями в моих обучающих данных.
Чтобы предсказать выпуск и вычислить наименьшую сумму потерь, мы используем различные комбинации параметров. Этот процесс будет повторяться до тех пор, пока мы не достигнем точки минимума с очень низкой функцией потерь, что указывает на то, что наш машинный прогноз также близок к исходным значениям.
Существует множество алгоритмов оптимизации для поиска наилучших параметров.
Несколько примеров: градиентный спуск, метод адаптивной скорости обучения (Адаград, Адам), оптимизация нулевого порядка.
Банку оценки
Мы оценим производительность нашей модели машинного обучения после того, как алгоритм обучения изучит доступные данные и определит, какие параметры имеют наименьшую функцию потерь.
Мы оцениваем производительность модели на основе точности. Он указывает, какая часть нашей модели «правильный прогноз по сравнению с общим прогнозом» была правильной.
На этом этапе мы обучаем нашу модель известным целевым значениям и оцениваем производительность, используя данные проверки. Мы готовы развернуть нашу модель для производства, как только мы достигнем максимальной точности.
Заключение
Эти шесть банок машинного обучения используются в качестве пошагового руководства по разработке хорошо обученной модели с низким уровнем ошибок и высокой эффективностью. Он используется для принятия выгодных бизнес-решений или для понимания деятельности компании.
Я опубликую отдельную статью о Task Jar, Model Jar, Loss Function Jar и алгоритме обучения, в которой будет больше технических терминов.