Включение обучения на устройстве, персонализации модели и т. Д.
Во всем мире насчитывается более 5 миллиардов пользователей мобильных устройств. Такие пользователи генерируют огромные объемы данных - через камеры, микрофоны и другие датчики, такие как акселерометры, - которые, в свою очередь, можно использовать для создания интеллектуальных приложений. Затем такие данные собираются в центрах обработки данных для обучения моделей машинного / глубокого обучения с целью создания интеллектуальных приложений.
Однако из-за проблем с конфиденциальностью данных и ограничений пропускной способности общие методы централизованного обучения не подходят - пользователи с меньшей вероятностью будут обмениваться данными, и поэтому данные будут доступны только на устройствах.
Здесь вступает в игру федеративное обучение. Согласно исследованию Google под названием Коммуникационно-эффективное обучение глубоких сетей на основе децентрализованных данных [1], исследователи дают следующее высокоуровневое определение федеративного обучения:
Метод обучения, который позволяет пользователям коллективно пользоваться преимуществами общих моделей, обученных на [этих] обширных данных, без необходимости их централизованного хранения. Мы называем наш подход федеративным обучением, поскольку задача обучения решается за счет свободной федерации участвующих устройств (которые мы называем клиентами), которые координируются центральным сервером.
Краткое содержание статьи следующее:
- Данные доступны везде
- Что такое федеративное обучение?
- Шаги к федеративному обучению
- Свойства задач, решаемых с помощью федеративного обучения
- Алгоритм федеративного усреднения
Давайте начнем.
Данные доступны везде
В эпоху данных данные являются основным требованием для создания интеллектуальных приложений. Откуда и как тогда брать данные? Хорошая новость в том, что данные доступны повсюду, а плохая новость в том, что большая часть этих данных недоступна.
Мобильные, встроенные и оснащенные датчиками устройства Интернета вещей в настоящее время являются основными источниками данных. Мобильные устройства, часто используемые пользователями и всегда доступные под рукой, являются основным источником данных.
Согласно недавнему отчету GSMA Mobile Economy, количество мобильных пользователей достигло 5,2 миллиарда в 2019 году и, как ожидается, увеличится до 5,8 миллиарда к 2025 году. Из 5,2 миллиарда мобильных пользователей 3,8 пользователей подключены к Интернету.
Это означает несколько вещей. Возможность подключения к Интернету свидетельствует об увеличении объема генерируемых данных и о том, что пользователям потребуются интеллектуальные приложения для улучшения работы. Из-за существования умных зданий в отчете также показано, что в 2019 году будет доступно 12 миллиардов устройств IoT, и ожидается, что к 2025 году их количество увеличится до 24,6 миллиардов.
Согласно отчету Pew Research Center, большинство таких мобильных устройств умные. На следующем рисунке показано количество стран и процент взрослого населения, использующего смартфоны:
Наличие такого большого количества генераторов данных означает, что данные действительно доступны повсюду. Каждый щелчок мобильного пользователя добавляет больше данных о том, что его интересует, и, таким образом, может использоваться для создания интеллектуальных приложений с улучшенным пользовательским интерфейсом.
Чтобы использовать личные данные пользователей, не раскрывая их конфиденциальности, вступает в действие федеративное обучение.
Что такое федеративное обучение?
Федеративное обучение - это новый тип обучения, представленный Google в 2016 году в документе под названием Коммуникационно-эффективное обучение глубоких сетей на основе децентрализованных данных [1]. Помимо определения, упомянутого в начале статьи, давайте добавим больше объяснений федеративного обучения.
Федеративное обучение - это относительно новый тип обучения, который позволяет избежать централизованного сбора данных и обучения модели. В традиционном конвейере машинного обучения данные собираются из разных источников (например, мобильных устройств) и хранятся в центральном месте (например, в центре обработки данных). Когда все данные доступны в центре, на основе этих данных обучается единая модель машинного обучения. Поскольку данные должны быть перемещены с устройств пользователей на центральное устройство для построения и обучения модели, этот подход называется централизованным обучением.
С другой стороны, федеративное обучение - это обучение нескольких моделей машинного обучения на мобильных устройствах (которые называются клиентами) с последующим объединением результатов всех таких моделей в единую модель, которая находится на сервере. . Таким образом, модель обучается на самих устройствах с использованием достоверных данных, и только обученная модель передается серверу. Таким образом, данные пользователя используются для построения моделей машинного / глубокого обучения, сохраняя при этом конфиденциальность данных.
В этом случае федеративное обучение извлекает выгоду из данных пользователей, не раскрывая их конфиденциальности. Необработанные данные доступны на устройствах пользователей и никогда не перемещаются в центр обработки данных, но на их основе создается модель, которая, в свою очередь, отправляется на сервер.
При использовании федеративного обучения данные пользователя не выгружаются на сервер и, следовательно, отсутствует ПРЯМОЙ доступ к данным, но возможность доступа к данным сохраняется. Нарушение конфиденциальности в федеративном обучении будет обсуждаться в более позднем посте.
Шаги к федеративному обучению
Федеративное обучение в теории довольно просто, и его можно резюмировать в следующих этапах:
- Общая (общая) модель обучается на стороне сервера.
- Для обучения на основе общей модели отбирается ряд клиентов.
- Выбранные клиенты скачивают модель.
- Общая модель обучается на устройствах с использованием личных данных пользователей на основе алгоритма оптимизации, такого как стохастический градиентный спуск.
- Сводка изменений, внесенных в модель (то есть веса обученной нейронной сети), отправляется на сервер.
- Сервер собирает обновления со всех устройств, чтобы улучшить общую модель. Агрегирование обновлений выполняется с использованием нового алгоритма, называемого объединенным алгоритмом усреднения.
- Процесс отправки общей модели на мобильные устройства и их обновления в соответствии с полученной сводкой обновлений повторяется.
Предыдущие шаги суммированы на следующем рисунке, основанном на сообщении в блоге ученых-исследователей Google:
А. Ваш телефон настраивает модель локально в зависимости от вашего использования.
Б. Обновления многих пользователей суммируются.
В. В соответствии с агрегированными обновлениями производится изменение общей модели, после чего процедура повторяется.
Вы также можете посмотреть это видео от Google, в котором кратко излагается определение федеративного обучения.
Свойства задач, решаемых с помощью федеративного обучения
Согласно исследованию Google [1], идеальные проблемы, которые можно решить с помощью федеративного обучения, имеют 3 свойства. Первое свойство
Обучение на реальных данных с мобильных устройств дает явное преимущество перед обучением на прокси-данных, которые обычно доступны в центре обработки данных.
Когда на сервере создается единая модель машинного обучения, она использует данные от разных пользователей для создания единой общей модели. Поскольку пользователи различаются по способу использования мобильных устройств, модель должна быть достаточно общей, чтобы справиться с таким разнообразием.
К сожалению, пользовательский опыт не будет улучшен за счет общей модели, а вместо этого будет создана настраиваемая модель, которая, кажется, создана специально для устройства. Такая персонализация достигается с помощью федеративного обучения и может дать ощущение, что устройство создано специально для пользователя.
Второе свойство:
Эти данные являются конфиденциальными или имеют большой размер (по сравнению с размером модели), поэтому желательно не записывать их в центр обработки данных исключительно для целей обучения модели (в соответствии с принципом целевого сбора) .
Нецелесообразно просить пользователя загружать большие объемы данных для создания общей модели на сервере. Это добавляет пользователю дополнительных затрат. Кроме того, пользователь, скорее всего, откажется от загрузки личных данных для построения модели, особенно с приложениями, требующими конфиденциальной информации о пользователе. В случаях, когда данные являются частными или крупномасштабными, федеративное обучение является хорошим вариантом по сравнению с централизованным обучением.
Такой большой размер ставит перед федеративным обучением новую задачу. Ресурсы мобильных устройств ограничены. Работа с большими объемами данных потребует времени и, следовательно, больше энергии.
Чтобы обойти эту проблему, существует миниатюрная версия TensorFlow, подходящая для обучения на устройстве, под названием TensorFlow Federated. Обучение будет проводиться только тогда, когда устройство находится в режиме ХОЛОСТОГО ХОДА, подключено к зарядному устройству и имеет бесплатное беспроводное соединение.
Третье свойство:
Для контролируемых задач метки данных могут быть выведены естественным образом в результате взаимодействия с пользователем.
Согласно исследованию Google [1], вот 2 проблемы, которые соответствуют трем предыдущим свойствам:
1. Классификация изображений для прогнозирования того, какие фотографии с наибольшей вероятностью будут просмотрены несколько раз в будущем или поделятся ими.
2. Языковые модели, которые можно использовать для улучшения распознавания голоса и ввода текста на сенсорных клавиатурах за счет улучшения декодирования, предсказания следующего слова и даже предсказания целых ответов.
При обучении с учителем модель обучается с использованием помеченных данных, так что модели известны ярлыки всех обучающих выборок. Чтобы федеративное обучение могло работать с обучением с учителем, должны быть доступны ярлыки личных данных пользователя. Вот объяснение из исследовательской работы Google:
Ярлыки для двух предыдущих задач доступны напрямую: введенный текст обозначается самим собой для изучения языковой модели, а ярлыки для фотографий могут определяться естественным взаимодействием пользователя с их приложением для работы с фотографиями (какие фотографии удаляются, передаются или просматриваются ).
Алгоритм федеративного усреднения
Согласно предыдущему обсуждению, сервер агрегирует изменения (то есть веса), полученные от всех устройств. Как применяется это агрегирование? Использование нового алгоритма, называемого алгоритмом федеративного усреднения.
Устройства обучают общую модель нейронной сети с помощью алгоритма градиентного спуска, и обученные веса отправляются обратно на сервер. Затем сервер берет среднее значение всех таких обновлений, чтобы вернуть окончательные веса. Следующий псевдокод показывает, как работает алгоритм федеративного усреднения.
На сервере выбираются K
клиенты, которые индексируются переменной k
. Параллельно все клиенты обновляют веса общей модели в соответствии с функцией ClientUpdate()
, которая возвращает обученные веса w
обратно на сервер. Наконец, сервер получает среднее значение всех весов w
, полученных от K
клиентов. Среднее значение весов рассматривается как новый набор весов для общей модели.
Что дальше
В этой статье было представлено федеративное обучение, которое представляет собой новый тип метода обучения для моделей машинного обучения, который использует достоверные данные, сгенерированные конечным устройством (например, мобильным телефоном), для обновления общей или совместно используемой модели, которая распространяется на разные устройства. В статье объединен конвейер обучения в 7 этапов, начиная с подготовки общей модели через получение обученных / обновленных версий с мобильных устройств.
Основная мотивация федеративного обучения - сохранить конфиденциальность данных и просто поделиться моделью, обученной на таких данных. К сожалению, эта конфиденциальность может быть нарушена, о чем я расскажу в следующей статье.
использованная литература
- МакМахан, Х. Брендан и др. «Коммуникационно-эффективное обучение глубоких сетей на основе децентрализованных данных». Препринт arXiv arXiv: 1602.05629 (2016).
Примечание редактора. Heartbeat - это онлайн-публикация и сообщество, созданное авторами и посвященное предоставлению первоклассных образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.
Являясь независимой редакцией, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и группам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим участникам и не продаем рекламу.
Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее и лучше строить лучшие модели машинного обучения.