Структурирование проектов машинного обучения (заметки 1-й недели)

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

Испытывали ли вы подобные трудности, планируя сменить карьеру в этой действительно прибыльной сфере? Если да, отпишитесь в комментариях. Вместе мы определенно сможем придумать, как добиться успеха в области науки о данных.

Давайте без промедления углубимся в изучение того, как структурировать проект машинного обучения.

Почему ML-стратегия

Начнем с примера; Мы построили классификатор кошек и добились точности 90%. Теперь, чтобы улучшить классификатор, мы могли бы попробовать несколько вещей, таких как сбор большего количества данных, применение регуляризации L2, попытка исключить некоторые единицы или попробовать сети большего или меньшего размера. Но если мы будем двигаться вперед в неправильном направлении, есть вероятность, что мы потратим много времени без плодотворных результатов. Было бы неплохо, если бы у нас были быстрые и эффективные способы определить, какие из этих или других идей стоит развивать? Следовательно, в этом курсе мы изучим несколько стратегий и способов анализа проблем машинного обучения, которые укажут нам наиболее многообещающее направление.

Ортогонализация

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

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

  1. Модель должна хорошо работать на тренировочном наборе. Она должна быть равна производительности человеческого уровня. Мы можем использовать большую сеть или переключиться на лучший алгоритм, чтобы обеспечить лучшую производительность.
  2. Подгонка разработки хорошо поставлена ​​на функции затрат. Мы можем использовать регуляризацию или больший тренировочный набор, чтобы обеспечить хорошую производительность на наборе для разработчиков.
  3. Хорошо адаптируйте тестовый набор к функции стоимости. Если модель не работает на тестовом наборе, но хорошо работает на наборе для разработки, нам придется найти больший набор для разработки, так как он мог быть перенастроен.
  4. Работайте хорошо в реальном мире. Если модель плохо работает в реальном мире, возможно, нам придется изменить распределение набора тестов для разработки или выбранная нами функция стоимости не работает должным образом.

Мы подробно рассмотрим каждый пункт.

Единый показатель оценки

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

Например, мы обучили классификатор A и классификатор B. Теперь мы хотим решить, какой из них работает лучше всего. Чтобы измерить производительность, мы можем использовать точность и полноту. По определению, точность — это: процент примеров, признанных классификатором правильными, на самом деле правильный. По определению, отзыв определяется как примеры, которые на самом деле верны, сколько правильно распознано классификатором.

Проблема с использованием точности-отзыва в качестве вашей оценочной метрики заключается в том, что если классификатор A лучше справляется с отзывом, классификатор B лучше справляется с точностью, то мы не уверены, какой классификатор лучше. Следовательно, вместо того, чтобы использовать точность и полноту, мы можем определить метрику, которая сочетает в себе и то, и другое.

В машинном обучении стандартный способ сочетания точности и полноты известен как оценка F1. Мы можем думать о баллах F1 как о среднем значении точности и отзыва. Его можно определить как:

В математике это называется средним гармоническим.

Удовлетворение и оптимизация метрики

Не всегда легко объединить все параметры в единую оценочную метрику. В таких случаях полезно настроить как оптимизирующие, так и удовлетворяющие метрики. Например, для классификатора кошек, наряду с показателем точности, мы хотим определить время работы как еще один параметр для выбора между несколькими классификаторами. Время выполнения определяет, сколько времени требуется для классификации любого изображения. Классификатор A занимает 80 миллисекунд, классификатор b — 90 миллисекунд, а классификатор C — 140 миллисекунд. Итак, мы можем объединить точность и время выполнения в одну оценочную метрику, как показано в приведенной ниже формуле.

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

Обучение/разработка/тестирование распространения

То, как мы настроим наборы для разработки и тестирования обучения, может оказать огромное влияние на то, насколько быстро команда сможет добиться прогресса в создании приложения для машинного обучения. Наиболее рекомендуемые практики перечислены ниже:

  1. Выберите наборы для разработки и тестирования из одного дистрибутива.
  2. Распределение 70/30 или 60/20/20 больше не применялось при обучении разработчика поезда и наборов тестов. Раньше, когда у нас было небольшое количество данных, было разумно использовать распределение 70/30 или 60/20/20 для обучения, но в наше время, когда у нас есть миллионы данных, такое распределение не имеет смысла. Вместо этого мы можем использовать распределение 98/1/1, поскольку тенденция заключалась в том, чтобы использовать больше данных для обучения и меньше данных для разработки и набора тестов.

Почему производительность на уровне человека

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

  1. Благодаря достижениям в области глубокого обучения алгоритмы машинного обучения стали работать намного лучше. Следовательно, стало более возможным конкурировать с производительностью на уровне человека.
  2. Рабочий процесс проектирования и создания алгоритма машинного обучения намного эффективнее, когда мы пытаемся достичь той же функциональности, которую могут выполнять люди.

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

Предотвратимая предвзятость

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

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

Следите за новостями на следующей неделе :)

Продолжайте учиться…!! Учитесь всю жизнь..!!