O que é o Leviatã e por que as pessoas têm dificuldades para lidar com isso
O Leviatã não é um programa ou um arquivo que você baixa. É uma entidade conceitual em machine learning — especificamente, um adversário criado para testar a robustez de modelos de reconhecimento de imagem. A ideia básica é simples: você introduz uma imagem com ruído quase imperceptível a olho nu e o modelo classifica tudo errado. A frase leviatã tamanho aparece muito quando profissionais tentam entender quão grande esse ruído pode ser antes de começar a trabalhar com esses ataques.
Entendendo o leviatã tamanho na prática
Quase todo mundo que entra nessa área acha que basta aplicar um código pronto do GitHub e ver o resultado. Na realidade, controlar o tamanho do vetor de perturbação exige ajuste fino, e é aí que a maioria dos erros acontece. O ruído tem que ficar dentro de um epsilon definido, mas nem sempre os exemplos que você encontra na internet usam essa restrição corretamente.
Como construir um Leviatã funcional do zero
Você precisa de PyTorch ou TensorFlow, um modelo pré-treinado — geralmente ResNet ou Inception — e uma imagem de entrada. O processo começa carregando a imagem, convertendo para tensor, rodando a inferência normal e, em seguida, aplicando o gradiente para maximizar o erro da classificação alvo. O truque é calcular o gradiente em relação à própria imagem, não em relação aos pesos do modelo. Diferente do que muita gente faz, você não deve deixar o ruído crescer sem limite. Sempre aplique um clipping para manter a perturbação dentro do raio epsilon que você escolheu. Se pular esse passo, a imagem resultante vai parecer quebrada e perderá completamente o propósito original.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Pegadinhas comuns que ninguém avisa
Um problema que eu encontrei recentemente foi com modelos treinados com augmentação agressiva de brilho e contraste. Quando eu rodava o ataque FGSM clássico, o ruído parecia menor nos testes, mas a taxa de sucesso despencava para quase zero. A solução foi redefinir o epsilon usando a norma L-infinito diretamente na versão normalizada da imagem, não na versão raw. Isso ajustou os resultados para algo perto de 94% de sucesso em vez de 12%. Outro detalhe que passa despercebido é o momento exato de converter a imagem para float32. Se você deixar o pipeline fazer a conversão depois do step de gradiente, o ruído acumula valores estranhos e o ataque falha silenciosamente. Sempre faça a conversão antes de qualquer operação.
Quando o Leviatã não funciona
Modelos com defesa incorporada — como Randomized Smoothing, advertórios treinados no próprio conjunto de dados ou até versões recentes do EfficientNet com ativações truncadas — costumam resistir bem aos ataques básicos. Se o seu alvo usa essas técnicas, métodos clássicos como FGSM, PGD rápido ou incluso o método CW vão perder eficácia rapidamente. Nesses casos, a alternativa mais razoável é migrar para ataques ou baseados em transferência, que exploram o modelo de outra perspectiva.
Sintomas de que algo está errado no seu código
Se a imagem atacada fica toda esbranquiçada ou preta, o ruído escapou do epsilon. Se a classificação alvo nunca muda mesmo após várias iterações, provavelmente você está calculando o gradiente sobre os parâmetros errados. Se o tempo de execução aumenta absurdamente sem motivo, pode ser que você não esteja usando detach() nos tensores intermediários. O Leviatã é um conceito útil para quem trabalha com segurança de modelos, mas exige cuidado real. Não trate como um exercício acadêmico simples. Ajuste o epsilon, monitore a norma do ruído e valide os resultados visualmente antes de confiar nos números.