Saltar para o conteúdo
NILG.AI

Quero automatizar a minha empresa

Technical

Proteja o seu modelo de IA de atacantes

Rafael Cavalheiro · 10 de julho de 2023

Os modelos de machine learning podem alcançar resultados extraordinários nas tarefas para as quais foram concebidos. Podem também ter um desempenho catastrófico se os dados que alimentamos o modelo não forem compatíveis com os dados utilizados para o treinar. Isto pode ser explorado como um ataque adversarial ao nosso modelo. Os ataques adversariais são um problema comum e crescente em IA, onde os atacantes usam dados não representativos para comprometer o desempenho do nosso modelo, afetando o nosso produto e reputação.

Como podemos proteger os nossos modelos de ataques adversariais?

Uma forma de proteger os nossos modelos de ataques adversariais é detetar amostras fora da distribuição antes de as alimentarmos aos nossos modelos.

A ideia principal é criar um pipeline que verifique se a amostra segue a mesma distribuição que os dados de treino utilizados para treinar o nosso modelo. Se assim for, perfeito – pode prosseguir. Caso contrário, rejeita a amostra de entrada.

Como distinguir uma amostra interna de uma amostra externa?

Pela sua capacidade de realizar ajuste de distribuições, os modelos generativos tornaram-se alguns dos melhores métodos de detecção de anomalias. Gaussian Mixture Model (GMM) é um modelo de clustering probabilístico que assume que todos os dados foram gerados por uma mistura de n distribuidores Gaussianos. Os GMMs tornaram-se úteis para detecção de outliers ao detetar amostras de dados de regiões de baixa densidade.

Imaginemos que construímos um modelo de Classificação de Imagens e estamos a tentar evitar que os utilizadores introduzam imagens que não sejam adequadas para serem processadas pelo nosso modelo.

Primeiro, precisamos de criar um conjunto de dados com pontos de dados internos e externos, e identificá-los corretamente. Os pontos de dados internos (positivos) serão os dados de validação e teste utilizados no modelo de Classificação de Imagens. Os pontos de dados externos poderiam ser imagens de conjuntos de dados como ImageNet/COCO, por exemplo. Idealmente, deveríamos também incluir imagens semelhantes ao nosso conjunto de dados que seriam provavelmente erros de um utilizador desinformado. Por exemplo, se o nosso modelo foi treinado para classificar objetos presentes numa casa de banho (sanita, banheira, lavatório, etc.), uma imagem externa poderia ser um objeto que pode encontrar dentro da sua casa mas que não está presente em casas de banho (cama, sofá, cadeiras, etc.).

Segundo, precisamos de extrair uma representação numérica das imagens – os embeddings. Uma vez que estamos a lidar com dados não estruturados, precisamos de extrair o espaço latente de cada imagem no nosso conjunto de dados antes de ajustarmos os nossos dados ao modelo GMM.

Agora, ajustamos os dados internos ao GMM e validamos o desempenho na detecção de outliers usando tanto dados internos como externos. Nesta fase, pode ser necessário dedicar algum tempo a ajustar os parâmetros do GMM. Uma coisa importante a recordar é que o número de classes que temos no nosso conjunto de dados pode indicar quantos componentes de mistura Gaussiana precisamos no modelo GMM.

E se o GMM não conseguir distinguir suficientemente bem entre casos reais e ataques adversariais?

Nos casos em que foram utilizados modelos pré-treinados para extrair os embeddings, o que pode acontecer é que os espaços latentes das amostras internas e externas ainda são muito semelhantes quando comparados com o domínio abrangente presente nos conjuntos de dados utilizados para treinar esses modelos pré-treinados. ImageNet contém imagens de animais, natureza e objetos de todos os tipos. Portanto, quando utilizamos um modelo pré-treinado que foi treinado em ImageNet para extrair embeddings das nossas imagens específicas de domínio, é normal que esses espaços latentes sejam bastante semelhantes.

Como podemos ajudar o modelo GMM a distinguir melhor os espaços latentes das amostras internas e externas? Utilizando Principal Component Analysis (ou qualquer outra técnica de redução de dimensionalidade) devemos conseguir eliminar semelhanças gerais entre as amostras. Também nesta fase, pode ser necessário dedicar tempo a ajustar os parâmetros e determinar quanta redução devemos aplicar. Depois de reduzirmos dimensionalmente os nossos espaços latentes, ajustamo-los ao modelo GMM.

Conclusão

Usar GMMs para detetar se uma amostra é demasiado diferente da distribuição de treino é uma excelente forma de proteger os nossos modelos de uso adversarial. Ao verificar se uma amostra pertence à distribuição de treino, garantimos que o modelo está a executar a tarefa para a qual foi concebido, evitando mau desempenho e aumentando assim a fiabilidade e reputação do nosso produto.