Обучение с учителем: обзор и показатели модели

Добро пожаловать обратно в гонку RuPaul по машинному обучению, где мы используем силу сопротивления, чтобы понять основы машинного обучения! В прошлой статье мы узнали все о HTML и парсинге веб-страниц и использовали их для создания набора данных изображений взлетно-посадочной полосы из 14-го сезона RuPaul’s Drag Race. Наша цель — использовать эти данные для создания некоторых компьютерных моделей, способных отличать Тутс от Ботинок, или, другими словами, определять, является ли наряд модным. Мы говорили о двух основных жанрах машинного обучения — контролируемом и неконтролируемом — а также о том, что вообще означает для машины «обучение».

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

Разделение обучения/тестирования и компромисс смещения/дисперсии

Основой всего контролируемого обучения является разделение обучения/тестирования, когда мы делим данные на то, что мы будем использовать для обучения модели, и то, что мы будем использовать, чтобы увидеть, насколько хорошо она работает. Это действительноважный шаг. Мы хотим дать модели как можно больше информации, но если мы используем все данные, которые у нас есть, только для ее обучения, то у нас не останется ничего, чтобы увидеть, насколько хорошо она справляется. Если мы протестируем ее на тех же изображениях с подиумов, на которых она обучалась, она показала бы себя идеально, но это не значит, что она сможет сказать, является ли другой нарядом Toot/Boot. Это похоже на то, когда учебное пособие точно такое же, как настоящий тест: единственное, что вам нужно сделать, чтобы сдать экзамен, — это запомнить ответы. И, поверьте, если компьютеры и хороши в чем-то, так это в запоминании вещей, поэтому нам нужно отложить небольшую часть данных, чтобы посмотреть, действительно ли наша прекрасная модель чему-нибудь научилась . Затем мы посмотрим, насколько ее обоснованные догадки или прогнозы соотносятся с реальными ответами.

Обучение модели на слишком большом количестве данных только для того, чтобы она плохо справилась с определением того, что такое Toot или Boot на некоторых новых данных, называется переоснащением. С другой стороны, если мы не дадим ей достаточно данных, как, черт возьми, она собирается учиться? Эта небольшая головоломка называется компромисс между смещением и отклонением. Если у модели высокая предвзятость, это означает, что она не получила достаточно данных для достаточного обучения. Если у нее высокая дисперсия, это означает, что мы ее немного переобучаем.

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

Метрики классификации

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

  • Точно положительный: модель догадывается, что это Тут, и она права!
  • Истинно отрицательно: модель догадывается, что это Ботинок, и она права!
  • Ложное срабатывание: модель предполагает, что это Тут, но на самом деле это Ботинок.
  • Ложноотрицательный: модель предполагает, что это сапоги, но на самом деле это Toot.

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

Для целей этого примера все желтые наряды — это настоящие Туты, а все красные наряды — настоящие Ботинки. Желтые наряды с левой стороны (то, что модель считает Тутс) — это истинные срабатывания, а красные наряды — ложноположительные. Справа все наоборот: красные наряды — это истинные негативы, а желтые — ложноотрицательные. Нам нужны стандартизированные способы суммирования всех этих видов неправильных классификаций (ложных положительных и отрицательных результатов), которые мы получаем в нашей модели. Три наиболее распространенных способа проверки: точность, точность и отзыв.

Точность: процент истинно положительных и отрицательных результатов от всех прогнозов.

  • Сколько из всех нарядов модель правильно определила как Тутс/Ботинки?

Точность: процент истинных положительных результатов от всех истинных и ложных положительных результатов.

  • Из всех нарядов, которые, по мнению модели, были Тутами, какой процент на самом деле принадлежит Тутам?

Отзыв: процент истинно положительных результатов от всех истинно положительных и ложноотрицательных результатов.

  • Из всех нарядов, которые на самом деле были Тутс, какой процент, по мнению модели, принадлежит Тутсу?

Я нарисовал еще несколько иллюстраций (рис. 2a-c), чтобы показать это на практике, потому что никогда не понимал эти понятия без рисунка.

Если вы все еще этого не понимаете, это на вас, потому что эти рисунки просто фантастические. (Шучу, я должен переучиваться каждую неделю.)

В любом случае, почему мы используем именно эти показатели? Ну, они помогают нам понять разные части наших данных. Ничего страшного, если наша модель допускает некоторые ошибки — почти невозможно сделать все правильно. Однако иногда мы хотим убедиться, что он делает правильные ошибки. Например, если бы мы пытались построить модель, которая идентифицировала бы рак по группе наших клеток, мы предпочли бы, чтобы она ошибочно сообщала нам, что у нас есть рак, хотя его нет (ложноположительный результат) — чтобы мы могли пойти провериться и почувствовать облегчение, когда все окажется в порядке — чем ошибочно сказать нам, что у нас нет рака (ложноотрицательный результат) — так что мы ничего не делаем, и пусть фактический прогресс рака. Если бы мы создавали классификатор рака, мы бы отдавали приоритет более высокому показателю отзыва (все фактически выявленные раковые заболевания) за счет хорошего показателя точности (вероятно, в смеси будут некоторые нераковые заболевания).

В нашем случае у нас нет острой необходимости классифицировать Toots или Boots более точно, чем другие. К счастью, здесь на карту не поставлена ​​ничья жизнь. Однако на кону хорошая мода! Мы хотели бы отдать приоритет точности — или просто общему количеству правильных классификаций. Мы по-прежнему рассмотрим другие измерения, чтобы получить представление о том, что происходит с нашими алгоритмами.

Другой способ визуализировать эту информацию — использовать матрицу путаницы. Это выглядит примерно так, как на рисунке 3.

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

Метрики регрессии

Небольшое напоминание: регрессия полезна, когда у нас есть непрерывная переменная. Это противоположность дискретной (или категориальной) переменной, такой как Toots и Boots. Чтобы объяснить разницу между ними, возьмем пример некоего 40-дюймового парика. В то время как на голове того человека, у кого бы он ни рос, волосы в какой-то момент были бы любой длины от 0 до 40 дюймов. Длина волос в этом случае является непрерывной переменной. Категориальной переменной в этом случае будет, например, цвет или стиль волос.

В любом случае, точка регрессии заключается в том, чтобы определить, насколько изменение по оси x (в данном случае разница между двумя изображениями взлетно-посадочной полосы) приводит к изменению по оси y (числовое ранжирование снаряжения). ). Чтобы рассчитать это, мы, по сути, пытаемся найти «линию наилучшего соответствия» для данных. Наклон этой линии — если вы помните, что делали это в средней школе — может сказать нам, насколько изменение наряда на подиуме может изменить его рейтинг. На рис. 4 это показано на еще одной удобной денди-иллюстрации.

Если бы у нас был новый наряд, мы бы увидели, где он выстраивается по оси X (на основе комбинаций пикселей), а затем подошли бы к пунктирной линии, чтобы определить его рейтинг. Конечно, пунктирная линия, которую мы здесь видим, не идеально совпадает с одеждой, на которой мы ее тренировали. Суть в том, чтобы попытаться найти линию, наиболее близкую к идеальной.

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

Вот четыре способа представления этой ошибки для всей модели:

Средняя абсолютная ошибка (MAE): мы находим ошибку для каждой точки, берем их абсолютные значения, а затем берем среднее значение для всех них.

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

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

  • Квадрат ошибки также помогает избавиться от этого отрицательного члена. Этот показатель технически вычисляет дисперсию всех остатков. Дисперсия в основном означает, насколько далеко ошибки друг от друга. Если все ошибки примерно одинакового размера (действительно близкого к среднему значению, которое мы рассчитали в MAE), у нас низкая дисперсия, и наоборот.

Среднеквадратическая ошибка (RMSE): это то же самое, что и MSE, но в конце мы берем квадратный корень из всего.

  • Это дает нам стандартное отклонение остатков. Стандартное отклонение или квадратный корень из дисперсии — это просто способ стандартизации дисперсии, чтобы нам было легче ее сравнивать.

Оценка R^2: мы находим квадрат ошибки для каждой точки, делим ее на квадрат разницы между каждой точкой и средним значением, а затем вычитаем все из 1.

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

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

В следующей статье мы наконец-то применим эти методы на практике! Щелкните здесь для Части 3.