Aprendizado de Máquina de maneira colaborativa e segura
O objetivo desse artigo é falar superficialmente, com o intuito de apresentar aspectos presentes na metodologia usada pela Google em produtos como o Gboard, que diferem da estrutura tradicional de treinamento de modelos de Machine Learning (ML) e Deep Learning (DL).
FEDERATED LEARNING
Alguns poucos anos atrás, mais precisamente em 2016/2017, o time de pesquisadores da Google apresentou um modelo que altera os paradigmas tradicionais no modo de treinamento de modelos de ML e DL, o qual foi denominado Federated Learning (FL). Essa abordagem estrutura o modo de treinamento para que ele seja colaborativo, seguro e privado. Desde sua criação, muitos estudos sobre sua estrutura e possíveis contribuições estão sendo estudadas, seja na estruturação do modelo colaborativo, segurança da rede, entre outros.
Como isso funciona?
Em treinamentos de modelos de ML o principal objetivo é minimizar o resultado de uma função de perda L(θ), chamada de Loss, onde L é a função que calcula a incompatibilidade dos dados preditos com os valores que pretendemos atingir, e θ os parâmetros do modelo. A perda L(θ) nos parâmetros θ é a média da perda ao longo do treinamento nos exemplos, então:
O treinamento consiste em encontrar θ que produz uma perda aceitavelmente pequena. Para redes complexas, a função de perda L é geralmente não-convexa e difícil de ser minimizada. Na prática, a minimização é feita frequentemente pelo algoritmo SGD em batches. Nesse algoritmo, a cada passo forma-se um batch B de exemplos aleatórios e calcula a estimativa para o gradiente. Então θ é atualizado seguindo o gradiente em direção para um mínimo local. Federated Learning usa de uma técnica para fazer o cálculo da função de loss, onde ele escolhe uma amostra de clientes e faz o cálculo em cima dos pesos desses clientes. Essa técnica é denominada Federated Averaging.
O custo de computação é definido por 3 chaves principais: C, número de clientes na amostra que computa o gradiente em cada etapa; E, o número de passos de treinamento que cada cliente faz sobre seu conjunto de dados local em cada rodada; e B, o tamanho de batch local usado para as atualizações do cliente.
Diferenças para o modelo tradicional
A principal diferença em relação ao modelo tradicional se dá ao fato de não haver mais a necessidade da cópia de um conjunto de treinamento ser compartilhada entre os modelos, ou seja, a descentralização do conjunto de treinamento. Com essa nova abordagem, onde não há a necessidade da transferência de um conjunto de dados, muitas empresas tem a possibilidade de colaborarem entre si sem o comprometimento da privacidade dos dados presentes no conjunto. Apesar de ser uma técnica que mantém o anonimato em um certo nível alguns tipos de ataques podem ser efetuados no momento da atualização dos pesos, que não estão envolvidas globalmente nos dados, mas sim a um cliente predefinido, e vários estudos atualmente apresentam abordagens que asseguram ainda mais a garantia de privacidade dos usuários durante o treinamento.
Federated Learning não garante a privacidade totalmente apenas com a sua estruturação, e para isso é usado técnicas que garantem uma camada adicional de privacidade nos dados. Existem diversas formas de garantir a anonimização dos dados de forma segura, e a mais utilizada é a differential privacy (DP).
DIFFERENTIAL PRIVACY
A DP é um método que visa, através de artifícios matemáticos, garantir a privacidade dos dados em um determinado dataset, isto é, garantir que os dados estejam protegidos de ataques maliciosos que tentam buscar padrões que quebram a privacidade. Este tópico tem sido abordado no contexto de ML, principalmente em datasets usados em treinamento dos modelos, onde a principal preocupação é evitar que outro modelo malicioso que usa de artifícios de engenharia reversa efetue ataques.
Como isso funciona?
Para garantir a privacidade dos dados de um conjunto, a DP através de artifícios probabilísticos insere uma espécie de ruido nos dados, garantindo que eles não sejam facilmente descobertos e também mantenham seus valores com um mesmo significado. Para os dados estarem mais perto do seu valor verdadeiro é necessário abrir mão de uma parte desse ruido inserido nos dados, ou seja, uma troca em respeito a quantidade de privacidade e qualidade do conjunto dos dados. Uma função aleatória K fornece privacidade ε-diferencial se para todos os conjuntos de dados D e D′ diferirem em no máximo uma linha, e todos S ⊆ Intervalo(K).
Isso significa que o risco para a privacidade de uma pessoa não deve aumentar substancialmente (conforme limitado por ε) como resultado da participação em um banco de dados estatístico. Dessa forma, um atacante não deve ser capaz de aprender qualquer informação sobre qualquer participante. Pode-se então afirmar com alguma confiança que existe um baixo risco de comprometer a privacidade de qualquer indivíduo como resultado de sua participação no conjunto de dados. A função K() é o responsável por adicionar ruído na informação presente nos dados. Os mecanismos utilizados para esse fim fazem uso de propriedades de distribuições probabilísticas, como a distribuição de Laplace.
Links para ir mais fundo no assunto
- Um artigo do Medium que dá um overview sobre FL e seus principais aspectos
- Site criado pelo Google Ai com alguns links para artigos com mais informações sobre FL
- Um artigo do Medium que dá um overview sobre DP, abordando detalhadamente o uso dessa técnica
- Vídeo do Andre Trask (DeepMind) falando sobre alguns pontos abordados nesse artigo
- Curso grátis na Udacity que aborda os pontos apresentados nesse artigo