Pull to refresh

Comments 12

А можно подробнее обосновать, почему получится корректная модель у каждого из участников обмена?

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

Верно ли я понимаю, что модели линейные? Трудно представить, что если модель нелинейная, то можно просто сложить веса. Выглядит как магия.

Модели могут быть не только линейные, т.е. поддерживается и LR, и MLP, и даже упрощенная версия RNN.

А что мешает построить 'A' модель которая будет примерно восстанавливать (encoder) данные которые 'Б' не хочет раскрывать или их часть и наоборот?

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

В результате обучения модель по входным данным должна получить что-то на выходе.

Например секретные данные (username,password). Что мешает обучить модель выдавать по входному username выходной password? И модель может быть избирательной в части обучения например не релевантные username не рассматривать для ускорения процесса.

Кажется, вы не совсем правильно понимание термин «секреты». Как указано в тексте, «секреты» это не секретные данные (как вы пишете user/pwd), а представление целых чисел (а по МPC все числа переводятся в такой формат) в виде разности двух целых чисел. При этом только одно из двух передается на другой сервер для вычислений. Поскольку каждое число может быть бесконечным количеством способов представлено в виде разности двух чисел (а нашем случае есть ограничение по типу числа), то передаваемые данные сам по себе бессмысленны без своей пары. А значит, и декодировать только одно из них не имеет смысла.

А что мешает компании "Б" обучить две модели - одну нормальную, и вторую искаженную. Нормальную оставить себе и в сумме с моделью, полученной от компании "А" получать валидный результат. А вот в ответ компании "А" отдать искаженную модель?

Присоединяюсь к вопросу.

Описанный алгоритм опирается на веру в добросовестность партнёра?
Или всё же есть рабочие способы проверить полученные исходные данные на корректность?

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

Текущая реализация процесса обучения предполагает синхронное обучение моделей на стороне обоих партнеров. Причем после построения процесс пересылки обученных «половинок» итоговой модели происходит автоматически по алгоритму, прописанному в самой реализации библиотеки по MPC. Поэтому нельзя сделать какую- то свою «половинку» и использовать ее вместо той, что получилась в процесс обучения по MPC.

Sign up to leave a comment.