Membership Inference Attacks
Um ataque de inferência de associação testa se um registro específico fazia parte dos dados de treinamento de um modelo, explorando a diferença de perda causada pelo sobreajuste.
Um ataque de inferência de pertença tenta determinar se um registo de dados específico fez parte dos dados de treino de um modelo de aprendizagem automática. O atacante já possui o registo — por exemplo, o exame de um paciente ou a fotografia de uma pessoa — e consulta o modelo para decidir se é «membro» ou «não membro». Só a pertença pode ser sensível, o que torna estes ataques um risco central para a privacidade dos dados: se um modelo foi treinado apenas com pacientes que têm uma determinada doença, demonstrar que o exame de alguém fazia parte do conjunto de treino revela o diagnóstico dessa pessoa. Reza Shokri, Marco Stronati, Congzheng Song e Vitaly Shmatikov apresentaram os ataques de inferência de pertença contra modelos de aprendizagem automática em 2017 e demonstraram-nos em plataformas comerciais de aprendizagem automática como serviço da Google e da Amazon.
Porque é que os modelos revelam a pertença#
Os modelos comportam-se de forma diferente com os dados em que foram treinados. Normalmente, atribuem uma perda mais baixa e uma confiança mais elevada aos exemplos de treino do que aos exemplos não vistos, e a diferença aumenta com o sobreajuste. Os modelos grandes que memorizam exemplos raros, imagens duplicadas ou valores atípicos são os que mais informação revelam; os modelos de IA generativa, incluindo os grandes modelos de linguagem (LLMs), podem revelar a pertença ao reproduzir imagens ou texto de treino quase palavra por palavra.
O ataque mais simples aplica um limiar à perda: prevê «membro» sempre que a perda do modelo num registo é invulgarmente baixa. O excerto abaixo treina um pequeno classificador de rede neural em PyTorch com 100 registos aleatórios e rótulos aleatórios, que só podem ser aprendidos por memorização; em seguida, ataca uma mistura desses membros e de 100 registos que o modelo nunca viu:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
x, y = torch.randn(200, 20), torch.randint(0, 2, (200,))
is_member = torch.arange(200) < 100 # the first 100 records form the training set
# Train a small classifier on the members only, long enough to memorize them
model = torch.nn.Sequential(torch.nn.Linear(20, 256), torch.nn.ReLU(), torch.nn.Linear(256, 2))
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
for _ in range(300):
optimizer.zero_grad()
F.cross_entropy(model(x[is_member]), y[is_member]).backward()
optimizer.step()
# Loss-threshold attack: guess "member" for every record with below-median loss
with torch.no_grad():
losses = F.cross_entropy(model(x), y, reduction="none")
guess = losses < losses.median()
print(f"attack accuracy: {(guess == is_member).float().mean():.2f}")O ataque classifica corretamente 85% dos registos, enquanto uma estimativa aleatória teria 50% de acerto. A perda de cada membro é quase zero, mas 15 não membros, cujo rótulo aleatório o modelo previu com uma confiança ainda maior, ficam abaixo do limiar da mediana e fazem com que 16 membros ultrapassem esse limiar. Os modelos que generalizam melhor reduzem a diferença entre perdas, baixando a exatidão do ataque sem normalmente o eliminar.
Ataques mais fortes e como são medidos#
- Modelos-sombra: O ataque original de 2017 treina vários modelos com dados semelhantes, nos quais a pertença é conhecida, e depois treina um classificador com as respetivas saídas para reconhecer os sinais de pertença.
- Ataques calibrados: O Ataque por Rácio de Verosimilhança (LiRA), publicado em 2022 por Nicholas Carlini e colegas, compara a perda de um registo com a de modelos de referência treinados com e sem esse registo. Isto revela valores atípicos memorizados que um único limiar global não deteta.
- Ataques apenas à etiqueta: As APIs que devolvem apenas uma etiqueta prevista continuam a revelar informações, pois normalmente é necessário aplicar aos membros perturbações de entrada maiores, do tipo procurado pelos ataques adversariais, antes de a previsão mudar.
Como a precisão geral oculta as poucas pessoas mais expostas, as auditorias de privacidade apresentam a taxa de verdadeiros positivos com uma taxa de falsos positivos muito baixa, como 0,1%. Os conjuntos de ferramentas de privacidade de código aberto podem gerar relatórios de inferência de pertença que executam estes ataques contra um modelo treinado e apresentam graficamente a sua vulnerabilidade ao longo dos pontos de controlo do treino.
Ataques de privacidade relacionados#
A inferência de associação é a forma mais restrita de vazamento de dados de treinamento. A inversão de modelo reconstrói características representativas de uma classe ou pessoa, a inferência de atributos preenche um campo sensível ausente de um registro que o invasor conhece parcialmente, e a extração de dados de treinamento recupera conteúdo literal, como texto memorizado. O envenenamento de dados funciona na direção oposta, corrompendo o conjunto de treinamento em vez de lê-lo. Os métodos de desaprendizado de máquina, que tentam remover a influência de um registro após o treinamento, usam inferência de associação para testar se o registro ainda deixa vestígios. Como a associação é a menor unidade de vazamento, a inferência de associação tornou-se o parâmetro padrão para medir quanto um processo de treinamento expõe registros individuais.
Defesas#
A privacidade diferencial é a defesa que oferece uma garantia formal. O treino com DP-SGD, uma variante da descida estocástica do gradiente disponível para PyTorch através do Opacus, limita o gradiente de cada exemplo e acrescenta ruído calibrado, o que estabelece matematicamente um limite para a influência de qualquer registo individual no modelo e, por conseguinte, limita a vantagem de todos os ataques de inferência de pertença, embora com algum custo em exatidão. Medidas práticas reduzem ainda mais o risco: a regularização, a ampliação de dados e a paragem antecipada limitam o sobreajuste; a remoção de registos duplicados impede que uma imagem ou um documento sejam memorizados várias vezes; e as APIs públicas podem devolver apenas rótulos ou pontuações de confiança arredondadas.
As curvas de treino de um modelo de visão são o modo mais rápido de verificar a exposição. Quando um detetor Ultralytics YOLO26 é ajustado com imagens sensíveis, como exames médicos ou crachás de funcionários, o modo de treino regista as perdas de treino e validação em cada época. O argumento patience, definido por predefinição para 100 épocas, interrompe o treino quando o desempenho de validação não melhora durante esse número de épocas. Assim, elimina as épocas finais em que a perda de treino continua a diminuir enquanto os resultados de validação estagnam — a diferença explorada por um ataque baseado num limiar de perda.










