Точность снижается слишком медленно с каждой эпохой в федеративном обучении Tensorflow - PullRequest
1 голос
/ 10 июля 2020

Моя федеративная модель Tensorflow слишком долго сближается. Когда я использую ту же модель без упаковки TFF, тренируя ее с помощью tensoflow 2.0, точность достигает 0,97 за несколько эпох. Однако при обучении TFF та же модель может достичь только 0,03 за 30 эпох. В чем может быть причина такой низкой точности при обучении TFF. Есть ли способ улучшить это. Мой код приведен ниже:

# Building the Federated Averaging Process
iterative_process = tff.learning.build_federated_averaging_process(
  model_fn,
  client_optimizer_fn=lambda: tf.keras.optimizers.SGD(learning_rate=0.02),
  server_optimizer_fn=lambda: tf.keras.optimizers.SGD(learning_rate=1.0))

str(iterative_process.initialize.type_signature)

state = iterative_process.initialize()

state, metrics = iterative_process.next(state, federated_train_data)
print('round  1, metrics={}'.format(metrics))

NUM_ROUNDS = 1000
for round_num in range(2, NUM_ROUNDS):
  state, metrics = iterative_process.next(state, federated_train_data)
  print('round {:2d}, metrics={}'.format(round_num, metrics))

1 Ответ

2 голосов
/ 11 июля 2020

Здесь возможно смешанная терминология: в зависимости от того, что означает эпоха , в федеративном обучении этого можно ожидать.

Если эпоха считает "раунды" "(for-l oop в приведенном выше коде): обычно раунд в федеративном обучении намного меньше, чем эпоха в централизованном обучении. Глобальная модель обновляется только один раз в раунде , и эти обновления обучаются на гораздо меньшем количестве примеров, чем весь набор данных. Часто, если в наборе данных есть M примеров, разделенных на K клиентов, федеративное обучение может выбрать только несколько из этих клиентов для участия в раунде, увидев только несколько из M / K примеров в этом раунде.

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

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

...