22 мудрых примера для структурирования вашего проекта машинного обучения

Завершить проект машинного обучения сложно. Это резюме поможет вам структурировать свой проект машинного обучения.

В этом посте рассматривается третий курс специализации Coursera Deep Learning. Он дает графический обзор ключевой концепции и резюмирует каждую лекцию примерно в одном предложении.

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

Итак, без лишних слов - давайте погрузимся в мир знаний.

Итерировать быстро

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

На каждом этапе этого процесса вы должны принимать важные решения. Стоит ли собирать больше данных? Следует ли уменьшить предвзятость или дисперсию? Как сравнивать разные алгоритмы? Курс предлагает советы по выбору наиболее эффективных шагов вперед. Изображение выше суммирует эту ключевую концепцию вместе с советами для каждого шага итерации.

Далее вы можете найти краткое изложение одного предложения для каждой лекции на третьем специализированном курсе по глубокому обучению Coursera. Вуаля, твои 22 крупицы мудрости.

Краткое содержание лекций

  1. Почему стратегия машинного обучения - стратегия машинного обучения полезна для быстрого перебора идей и эффективного достижения результата проекта.
  2. Ортогонализация - относится к концепции выбора параметров для настройки, которые регулируют только один результат модели машинного обучения, например регуляризация - это ручка для уменьшения дисперсии.
  3. Метрика оценки с одним числом - выберите одну метрику оценки, например f1-score, чтобы мгновенно судить о производительности нескольких моделей.
  4. Удовлетворение и оптимизация показателей - модель машинного обучения обычно имеет одну метрику, для которой нужно оптимизировать, например достичь максимальной точности и соблюдать определенные ограничения, например рассчитывать прогнозы менее чем за 1 с или помещать модель в локальную память. В этом случае точность - это показатель оптимизации, а время прогнозирования и использование памяти - удовлетворительные показатели.
  5. Распределения наборов для обучения / разработки / тестирования - убедитесь, что наборы для разработки и тестирования происходят из одного и того же дистрибутива и точно представляют цель, для которой команда пытается оптимизировать.
  6. Размер наборов для разработки и тестирования - используйте как можно больше данных для набора для обучения и используйте 1% / 1% для набора для разработки и тестирования, учитывая, что ваш набор для обучения исчисляется миллионами.
  7. Когда менять наборы и метрики для разработки / тестирования. Если вы обнаружите, что рейтинг вашей оценочной метрики больше не отражает эффективность ваших моделей, подумайте о пересмотре метрики оптимизации, например путем добавления весового члена, чтобы серьезно наказать ваш классификатор за неправильную классификацию действительно важных примеров.
  8. Почему производительность на человеческом уровне? - Байесовская ошибка - это лучшая производительность, которую может достичь классификатор, и по определению лучше, чем производительность на уровне человека. Байесовские и человеческие ошибки являются важными показателями для оценки того, страдают ли ваши данные обучения от предвзятости.
  9. Предвзятость, которой можно избежать - описывает разрыв между ошибкой обучающего набора и производительностью на уровне человека.
  10. Понимание производительности на человеческом уровне - если группа экспертов может достичь коэффициента ошибок 0,7%, а один человек достигает коэффициента ошибок 1%, выберите 0,7% как лучшую производительность на уровне человека и значение ≥ 0,7% по шкале Байеса. ошибка для проверки производительности модели.
  11. Превосходная производительность человеческого уровня - если ваш алгоритм превосходит производительность человеческого уровня, становится очень трудно судить о предвзятости, которой можно избежать, потому что обычно вы не знаете, насколько мала байесовская ошибка.
  12. Повышение производительности вашей модели - оцените разницу между ошибкой Байеса и ошибкой обучающего набора, чтобы оценить уровень смещения, которого можно избежать. Дисперсия оценивается путем сравнения обучения с ошибкой набора разработчика. Попробуйте разные методы борьбы с любой формой ошибки.
  13. Проведение анализа ошибок - Analyze 100 неправильно классифицирует примеры и группирует их по причине неправильной классификации. Чтобы улучшить вашу модель, может иметь смысл обучить вашу сеть, чтобы исключить причину, по которой она неправильно классифицирует определенный тип входных данных, например накормите его более туманными картинками.
  14. Очистка неправильно помеченных данных - нейронные сети довольно стабильны для обработки случайных ошибочных классификаций, и если вы устраните неверные классификации в наборе разработчика, также удалите их в тестовом наборе.
  15. Быстро создайте свою первую систему, а затем повторяйте ее - быстро создайте прототип первой версии классификатора, а затем итеративно улучшайте ее, следуя стратегическим рекомендациям.
  16. Обучение и тестирование в разных дистрибутивах - если ваши данные в обучающем наборе поступают из смешанных источников данных, создайте наборы для разработки и тестирования с данными, которые вы хотите оптимизировать, например Если вы хотите классифицировать изображения кроссовок с телефона, используйте набор для разработки и тестирования, состоящий только из фотографий кроссовок с мобильных телефонов, но не стесняйтесь использовать улучшенные веб-изображения кроссовок для обучения сети.
  17. Смещение и дисперсия с несовпадающими данными - создайте набор для обучения и разработки с тем же распределением данных, что и набор для обучения, если у вас есть набор для разработки и тестирования из другого распределения данных. Этот шаг поможет вам проверить, есть ли у вас проблема с дисперсией, смещением или несоответствием данных.
  18. Устранение несоответствия данных - если у вас есть проблема несоответствия данных, выполните ручной анализ ошибок и поймите разницу между обучающими наборами и наборами для разработки / тестирования. Помните о создании искусственных обучающих данных, потому что может случиться так, что вы синтезируете только небольшое подмножество всего доступного шума.
  19. Переносное обучение - если у вас есть функции более низкого уровня, которые могут быть полезны для другого классификатора, используйте переносное обучение и отключите последний слой существующей нейронной сети и обучите сеть новой задаче.
  20. Многозадачное обучение - используйте одну нейронную сеть для обнаружения нескольких классов в изображении, например светофоры и пешеходы для автономного автомобиля. Опять же, это полезно, когда нейронная сеть идентифицирует функции более низкого уровня, которые полезны для нескольких задач классификации, и если у вас есть равное распределение данных классов.
  21. Что такое сквозное глубокое обучение - вместо того, чтобы использовать множество различных шагов и ручную разработку функций для создания прогноза, используйте одну нейронную сеть, чтобы выяснить базовый шаблон.
  22. Следует ли использовать сквозное глубокое обучение - сквозное глубокое обучение имеет преимущества, такие как возможность самой сети определять важные функции, и недостатки, такие как необходимость в большом количестве данных, поэтому о его использовании действительно нужно судить в каждом конкретном случае. -кейс зависит от того, насколько сложна задача или функция, которую вы решаете.

Спасибо, что прочитали этот пост, и я надеюсь, что он помог вам подвести итоги вашего курса. Вся заслуга принадлежит deeplearning.ai, Coursera и Andrew Ng. Если я пропустил важную тему, не стесняйтесь добавить ее в разделе комментариев ниже.

Если вас интересуют новые новости по Специализации Coursera Deep Learning и машинному обучению в целом, ознакомьтесь с моими предыдущими двумя сообщениями, подпишитесь на меня в среде и не стесняйтесь отправлять мне сообщения в LinkedIn, если у вас есть дополнительные вопросы.