
Federated Learning - epsilon-greedy
https://florian.github.io/federated-learning/
======
ur-whale
TL;DR :

Compute the gradient of the error on the user's device and ship that to a
server-side centralized model to update its weights.

It's a very cool idea that has a lot of interesting applications (among which:
learning large statistical user behaviors without "spying" on them).

However, there is an unspoken claim that the gradient update doesn't carry
enough information about the user data to reconstruct any of it server-side.

I'm still waiting to see a formal proof of that, and my gut says, if the
servers sees enough gradient updates from a given user, it's likely possible
to rebuild the original data.

~~~
marten-de-vries
> However, there is an unspoken claim that the gradient update doesn't carry
> enough information about the user data to reconstruct any of it server-side.

This was a concern for me as well, but the 'Privacy' section of the post
addresses this. In short, the algorithm is adapted such that the influence of
a single user on the model is limited, and noise is added. I'm not
knowledgable enough on differential privacy to know if that covers all
possible privacy attacks, but it looks like a good start.

Personally, I'm now more worried about adversaries trying to mess up the
model. How many clients need to submit fake updates for the training process
to never converge? If it's 50% that's probably fine, but I'm afraid a much
smaller amount of users could derail the process already.

~~~
LeanderK
VERY interesting questions! Unfortunatly I can't answer the questions, since I
don't know enough about them.

To make the literature search easier: Your second cocern is called "poisioning
attacks" and is one of the problems "adversarial machine learning" is
concerned with.

------
ddtaylor
What do people think of OpenMined related to "Federated Learning" ?

[https://www.openmined.org/](https://www.openmined.org/)

------
roystonvassey
Cool idea! I see the iOS keyboard already do this to an extent. I often type
words in my native language in English. I see that over time it learns these
and predicts a bit better when I need to type it again. Of course, if it
collected a larger corpus from many such users, allowing us to tag this as,
say a corpus of Kannada words, I can see a cool application of this kind of
learning

------
milkey_mouse
Has anybody tried applying this to a blockchain by having the PoW be
improvements to models in previous blocks or something? This seems like such
an obvious idea (especially with all the hype around blockchain nowadays) that
either this exists or I'm missing something crucial about the technique.

~~~
edhu2017
definitely has been done before.

