Возможно ли совместное обучение в ml5.js или Tensorflow.js?

Я хотел бы создать классификатор изображений с помощью ml5.js или Tensorflow.js. Я хочу, чтобы пользователь мог добавлять свои собственные ярлыки, т.е. обучить модель. Учебник Дэниела Шиффмана по трансферному обучению отлично подходит для этого: https://www.youtube.com/watch?v=kRpZ5OqUY6Y

Однако я бы хотел, чтобы несколько пользователей могли обучать одну и ту же модель. Люди будут вносить свой вклад в ту же модель со своими собственными классификациями.

В идеале один участник мог бы вносить свой вклад из своего браузера в стране X, а другой — в стране Y. Или, по крайней мере, два пользователя в одном и том же пространстве делают маркировку из своих браузеров. Отображаемые изображения, вероятно, будут взяты из файла JSON.

Я протестировал Socket.io для совместного рисования с помощью мыши с помощью p5.js, но в основном это весь мой соответствующий опыт в такого рода приложениях для совместной работы. Итак: возможно ли, чтобы несколько пользователей обучали одну и ту же модель ml5.js/Tensorflow.js с помощью Socket.io или чего-то подобного?

Сердечное спасибо за любой совет!


person vjuss    schedule 19.06.2020    source источник


Ответы (2)


Однажды я использовал TogetherJS от Mozilla для совместного добавления в набор обучающих данных в любом количестве браузеров. Но каждый экземпляр должен был запускать tf.fit в расширенном наборе данных. Федеративное обучение станет следующим шагом, позволяющим избежать избыточных вычислений.

person ToonTalk    schedule 21.06.2020
comment
Интересно, спасибо, что поделились этим! У меня также были мысли об использовании Python; однако часть совместной работы еще предстоит решить. - person vjuss; 22.06.2020

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

В клиенте может быть кнопка train, которая говорит серверу начать обучение снова. Модель находится только на сервере, поэтому каждый может внести в нее свой вклад.

Пока сервер обучается и получает новую команду train, он просто отправляет обратно сообщение already in training process.

Таким образом, вам не понадобится socket.io...

person Kokodoko    schedule 10.07.2020