Тестирование различных моделей с федеративным обучением на наборе данных MNIST

FELT Labs — это инструмент для анализа децентрализованных данных. Вы можете использовать его для обучения моделей машинного обучения на нескольких децентрализованных наборах данных и объединения результатов — федеративное обучение. В этой статье мы попытаемся ответить на простой вопрос: Это действительно работает? Мы будем использовать модели, поддерживаемые FELT, для оценки и сравнения федеративного обучения с централизованным обучением на наборе данных MNIST.

Исходный код, используемый для создания диаграмм в этой статье, приведен здесь:



Репозиторий содержит Jupyter Notebook со всеми результатами, представленными здесь.

Процесс оценки

Прежде чем мы рассмотрим отдельные модели, мы должны определить, как измерять производительность. Мы используем набор данных MNIST, разделенный на обучающие и тестовые данные. При обучении и оценке моделей мы будем следовать следующим правилам:

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

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

Предварительная обработка данных

Набор данных MNIST содержит изображения размером 28x28 пикселей. Большинство моделей scikit-learn ожидают на входе только одномерный вектор. По этой причине мы объединяем каждое изображение в вектор. Кроме того, мы масштабируем значения пикселей от [0, 255] до диапазона [0, 1].

Как читать диаграммы

Каждая диаграмма содержит три основные точки данных: централизованная модель, локальные модели и агрегированная модель:

  • Централизованная модель – это модель, созданная путем обучения на полном наборе данных MNIST.
  • Локальные модели — это модели, обученные отдельно для каждого раздела набора данных. (диаграммы показывают среднюю точность с диапазонами ошибок)
  • Агрегированная модель – это модель, созданная путем объединения локальных моделей. Это окончательный результат FELT.

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

Простые модели

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

Мы будем оценивать эти модели для разного количества разделов. Для каждого разделения мы будем запускать одну итерацию федеративного обучения.

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

Нейронная сеть

Более сложная модель, предоставляемая scikit-learn и поддерживаемая FELT, — это классификатор MLP, простая нейронная сеть. В нашем случае мы использовали сеть с двумя скрытыми слоями по 50 нейронов. Также стоит упомянуть, что на каждой итерации мы запускаем только 50 шагов обучения с размером пакета 50. Это гарантирует, что локальные модели из каждого раздела не слишком сильно различаются, а усреднение агрегации дает положительный эффект.

С этого момента все представленные графики будут из тренировок на 3-х разделах.

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

Модели TensorFlow CNN

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

Сначала мы попытались обучить простую сеть с одним слоем свертки и одним полносвязным слоем.

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

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

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

Следующие шаги

Как и сейчас, федеративное обучение с Efficient Net не является хорошим подходом. Он обучает все параметры с нуля. Мы по-прежнему включили результаты, чтобы показать, что мы можем обучать эти модели. Лучшим подходом было бы взять предварительно обученную модель и настроить только последний слой. Мы попробуем этот подход в следующей статье!

Заключение

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

Подпишитесь на нас в Твиттере @FELT_Labs, чтобы быть в курсе последних новостей о нашей разработке.