Почему это хорошо для DataAugmentation, а не для выбора функций

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

Чтобы понять этот ответ, давайте сначала разберемся с важной справочной информацией.

Как работает машинное обучение, для 5-х классов

Традиционное машинное обучение, наука о данных, большая часть искусственного интеллекта и даже более сложные сети глубокого обучения работают на нескольких фундаментальных предположениях:

  1. Все данные имеют базовое распределение, согласованное для нескольких выборок. Кроме того, наличие одного образца не влияет на другие образцы. Специалисты по статистике знают это как принцип IID (независимо и одинаково распределенного).
  2. Распределение данных и функций можно изучить, чтобы использовать их для получения значимой информации о данных. Это может быть связано с прогнозированием целей, группировкой данных, прогнозированием будущих результатов и т. д.

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

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

Вот почему надежная математическая основа является ключом к машинному обучению. Это позволит вам понимать ваши данные/отчеты и принимать оптимальные решения.

Почему правильные характеристики/данные так важны

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

Знаменитый, почти избитый принцип «Мусор на входе, мусор на выходе» основан именно на этом принципе. Если вы вводите Garbage Data, вы получите много мусора.

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

Почему увеличение данных противоречит GIGO

Возьмем TrivialAugement, удивительно эффективную политику увеличения данных для Computer Vision, не требующую настройки (чтобы узнать о ней, посмотрите это видео). Политика аугментации может создавать образцы, которые выглядят очень странно. Google также добился фантастических результатов, интегрировав множество случайных элементов в свой конвейер классификации изображений.

Это не ограничивается задачами классификации компьютерного зрения. Приведенный выше фрагмент взят из статьи Microsoft «Эффективное и действенное масштабирование предварительной подготовки языковой модели для лучшей модели языкового представления в GLUE и SuperGLUE». Модель решает задачи и тесты в Natural Language Processing. Как уже отмечалось, он использует шумные входные данные во время обучения для повышения надежности.

Даже переводчик языка кодирования Facebook интегрирует ошибочный код для повышения производительности. Так почему же аугментация случайных данных работает так хорошо, несмотря на то, что это мусор? Является ли GIGO неполным? Случайный шум тайно полезен?

Почему увеличение данных и шум работают

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

Подумайте об этой статье и создании контента в целом. Вы читаете это, потому что алгоритмы каким-то образом решили (сейчас или в прошлом), что мой стиль письма/общения вам подходит. Другие люди также освещали некоторые темы, о которых я говорил, но у них часто другая аудитория. Есть 100 способов написать/сказать одни и те же 3 вещи.

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

Видите тенденцию? Случайное увеличение данных работает исключительно хорошо, когда мы имеем дело с задачами, которые имеют большую естественную дисперсию. Стили кодирования, изображения, тексты могут быть очень разными, но при этом передавать одну и ту же основную информацию. Добавляя элемент хаоса с помощью Random Data Augmentation/Noise, вы лучше воспроизводите разнообразие реального мира, которое вы увидите во входных данных.

Однако перед тем, как приступить к реализации этого метода, необходимо принять во внимание одно соображение.

Контекст имеет значение

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

Объемы данных, которые они уже имели в базовой линии, были огромными. Гораздо больше, чем у большинства людей во время тренировок. Таким образом, когда они ввели случайный шум/ввод, они смогли добавить новое измерение, не испортив основную функцию подбора. Если ваша доля случайности в чистых наборах данных слишком высока, вы рискуете испортить свою модель. Если взять аналогию Талеба с антихрупкостью, добавление шума в ваш конвейер — это введение небольшого количества яда в ваш организм для укрепления вашего иммунитета (реальная практика, называемая митридатизацией). Правильное количество действительно сработает. Слишком многое вас испортит.

Использование синтетических данных — будущее?

Мы также наблюдаем новую тенденцию использования чисто синтетических данных в конвейерах машинного обучения. Они могут выполнять различные функции, например быть недорогими и избегать определенных правил конфиденциальности. Для синтетических данных мы наблюдаем обратную тенденцию (данные стараются максимально походить на реальные данные). Авторы SinGAN-Seg объединили высокоуровневые генераторы и Neural Style Transfer для создания чрезвычайно реалистичных и полезных медицинских изображений.

Нечто подобное делает Microsoft Fake It Till You Make It Face анализ в дикой природе с использованием только синтетических данных. Он использует исключительную технологию для обучения детектора черт лица, используя только синтетические лица. Они проверили это на реальных лицах, и результаты были СОТА. Вы можете прочитать мой анализ здесь.

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

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

Чтобы по-настоящему преуспеть в машинном обучении, решающее значение будет иметь база в области разработки программного обеспечения. Они помогут вам концептуализировать, построить и оптимизировать машинное обучение. Мой ежедневный информационный бюллетень Простые интервью по программированию охватывает темы проектирования алгоритмов, математики, последних событий в области технологий, разработки программного обеспечения и многого другого, чтобы помочь вам стать лучшим разработчиком. В настоящее время у меня действует скидка 20% на ЦЕЛЫЙ ГОД, так что не забудьте проверить это.

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

Чтобы помочь мне лучше писать статьи и понять вас, заполните этот опрос (анонимно). Это займет максимум 3 минуты и позволит мне улучшить качество моей работы.

Не стесняйтесь обращаться, если у вас есть какие-либо интересные работы/проекты/идеи для меня. Всегда рад вас выслушать.

Для денежной поддержки моей работы следуют мои Venmo и Paypal. Любая сумма приветствуется и очень помогает. Пожертвования открывают эксклюзивный контент, такой как анализ бумаги, специальный код, консультации и специальные тренировки:

Венмо: https://account.venmo.com/u/FNU-Devansh

Paypal: paypal.me/ISeeThings

Свяжитесь со мной

Воспользуйтесь ссылками ниже, чтобы ознакомиться с другим моим контентом, узнать больше о репетиторстве или просто поздороваться. Кроме того, ознакомьтесь с бесплатной реферальной ссылкой Robinhood. Мы оба получаем свободный сток (денег вкладывать не надо), и никакого риска для вас нет. Таким образом, если вы не используете его, вы просто потеряете бесплатные деньги.

Ознакомьтесь с другими моими статьями на Medium. : https://rb.gy/zn1aiu

Мой Ютуб: https://rb.gy/88iwdd

Свяжитесь со мной в LinkedIn. Подключаемся: https://rb.gy/m5ok2y

Мой Инстаграм: https://rb.gy/gmvuy9

Мой Твиттер: https://twitter.com/Machine01776819

Если вы готовитесь к программированию/техническим интервью: https://codinginterviewsmadesimple.substack.com/

Получите бесплатный сток на Robinhood: https://join.robinhood.com/fnud75