TFF: как создать набор данных не-IID - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть 2 класса, и у каждого класса есть 140 примеров, и у меня есть 4 клиента, я хотел бы создать набор данных не-iid, как в статье МакМахана, как разделить примеры на фрагменты?

1 Ответ

0 голосов
/ 09 мая 2020

Примечание: есть много понятий "неидейность", которые могут быть интересны для изучения.

  • Метка неидентификатора : вы можете захотеть сделать распределение этикеток очень несбалансированным среди клиентов. Равномерно распределяя количество примеров, мы все равно можем получить не-iid, например [(35, 35), (10, 60), (50, 20), (45, 25)]. В документе McMahan 2016 используется аналогичный подход, но в нем используется 10 классов, и большинство клиентов получают только два класса (точный метод приведен на странице 5).

  • Количество данных : возможно, вы захотите предоставить некоторым клиентам больше данных, чем другим. С 280 примерами, возможно, разделение составляет (180, 80, 10, 10) примеров (игнорирует, как метки распределены). Набор данных StackOverflow в TensorFlow Federated также демонстрирует это, поскольку у некоторых очисток есть десятки тысяч примеров, а у других только 100.

  • Feature non-iid : Если в пространстве функций есть шаблоны, может быть полезно ограничить определенные шаблоны для определенных пользователей. Например, в задаче распознавания изображений, возможно, некоторые камеры имели другой баланс белого, вращение или насыщенность цвета, чем другие (даже если они имеют большинство или все метки). Вместо случайного перемешивания их между синтетическими c клиентами, группирование схожих шаблонов функций в один клиент может дать другую форму non-iid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...