DINO: Autodestilação e Objetos que Emergem da Atenção

por Frank de Alcantara em 28/07/2026

DINO: Autodestilação e Objetos que Emergem da Atenção

Um professor treinado antes do aluno pode transmitir classes conhecidas. Um professor que é apenas uma cópia atrasada do próprio aluno não dispõe desse luxo: precisa produzir um alvo útil sem rótulos, sem nomes de classes e sem saber mais do que o estudante sabia há pouco. Parece uma organização escolar desenhada pelo setor financeiro. No DINO, ela aprende representações surpreendentemente boas.

O BYOL ensina uma rede online a prever o vetor de um alvo lento. O DINO, de self-DIstillation with NO labels (autodestilação sem rótulos), mantém a família student-teacher, a EMA e o stop-gradient, mas muda o objeto previsto: o student aprende uma distribuição produzida pelo teacher.

Quando o backbone é um ViT, de Vision Transformer, uma segunda descoberta aparece. Os mapas de autoatenção do token de classe delimitam objetos sem que o treinamento receba máscaras de segmentação. Isso é uma propriedade empírica emergente, não uma prova de que cada cabeça aprendeu uma explicação causal da cena.

1. O professor não vem pronto

O student possui parâmetros $\theta_s$. O teacher possui parâmetros $\theta_t$ atualizados por EMA:

\[\theta_t\leftarrow\lambda\theta_t+(1-\lambda)\theta_s.\]

Não há professor pré-treinado nem rótulos externos. O próprio histórico amortecido do student gera os alvos. Por isso o método é chamado de autodestilação.

Para logits $g_s(x)$ e $g_t(x)$ de dimensão $K$, as distribuições são

\[P_s^{(i)}(x)= \frac{\exp(g_s^{(i)}(x)/\tau_s)} {\sum_{k=1}^{K}\exp(g_s^{(k)}(x)/\tau_s)}\]

e

\[P_t^{(i)}(x)= \frac{\exp((g_t^{(i)}(x)-c^{(i)})/\tau_t)} {\sum_{k=1}^{K}\exp((g_t^{(k)}(x)-c^{(k)})/\tau_t)}.\]

$c$ é um centro calculado como média móvel dos logits do teacher. $\tau_s$ e $\tau_t$ são temperaturas, geralmente com o professor mais frio.

2. Entropia cruzada entre views

Para uma view $x_1$ observada pelo teacher e outra $x_2$ observada pelo student, a perda é

\[H(P_t(x_1),P_s(x_2)) =-\sum_{i=1}^{K}P_t^{(i)}(x_1)\log P_s^{(i)}(x_2).\]

O alvo $P_t$ recebe stop-gradient. O treinamento soma pares de views distintas e também troca seus papéis quando ambas são globais.

Diferentemente de uma classificação supervisionada, os $K$ índices não chegam com nomes como “cão” ou “automóvel”. São coordenadas do cabeçalho de projeção. O que importa é que o teacher produza alvos informativos e que o student os preserve entre recortes da mesma imagem.

3. Aguçar e centralizar combatem colapsos diferentes

Temperatura baixa aguça uma distribuição. Se um logit supera os demais, dividir por $\tau_t<1$ amplia a diferença antes da softmax. Isso evita o colapso uniforme no qual todas as dimensões recebem probabilidades semelhantes e o alvo carrega pouca informação.

A centralização subtrai a média móvel $c$ antes da temperatura. Ela dificulta que uma dimensão mantenha vantagem global em todos os lotes. Sem esse contrapeso, o sistema pode concentrar todas as imagens na mesma coordenada dominante.

Os mecanismos tensionam a distribuição em direções distintas:

  • o sharpening reduz a entropia de cada alvo;
  • o centering redistribui a preferência agregada entre dimensões.

O equilíbrio é dinâmico. Frio demais pode produzir alvos quase binários e gradientes sensíveis; quente demais volta a aproximar o alvo da uniformidade.

4. Multi-crop: consistência local e global

O teacher recebe duas global views, recortes grandes que conservam boa parte da cena. O student recebe essas duas e várias local views menores. Cada saída do teacher deve ser prevista a partir de outras views do student.

Essa assimetria tem duas consequências. A tarefa obriga um recorte local a concordar com a identidade visual capturada globalmente. Ao mesmo tempo, o ramo alvo evita o custo de processar todos os pequenos recortes, enquanto o student paga pelas visualizações adicionais.

O número de pares cresce com os recortes, mas cada par compara distribuições de dimensão $K$. Não reaparece a matriz de negativos $O(B^2)$ do SimCLR.

5. O objeto nos mapas de atenção

Num ViT, a imagem é dividida em patches e recebe um token de classe. A autoatenção desse token sobre os patches pode ser reorganizada como mapa espacial. No DINO, certas cabeças passam a destacar primeiro plano e contornos de objetos.

O artigo original mede essa propriedade com segmentação produzida diretamente pelos mapas e mostra bons resultados de $k$-NN e linear probing. A conclusão correta é que a tarefa autossupervisionada induziu características espaciais e semânticas úteis. A conclusão excessiva seria tratar qualquer mapa de atenção como explicação fiel da decisão do modelo.

Para a mecânica de consultas, chaves, valores e atenção, consulte Prestando Atenção. Aqui basta lembrar que a atenção é um mecanismo computacional; seu mapa não se torna automaticamente uma explicação causal da decisão.

6. BYOL e DINO lado a lado

Aspecto BYOL DINO
Alvo vetor normalizado distribuição sobre $K$ dimensões
Perda erro quadrático, equivalente ao cosseno entropia cruzada
Assimetria predictor somente no ramo online temperaturas e centro no teacher
Alvo lento EMA EMA
Negativos não não
Views duas transformações duas globais e várias locais

Os dois métodos compartilham uma intuição, mas não são a mesma função com nomes diferentes. Temperatura e centralização pertencem à geometria probabilística do DINO.

7. Softmax, centro e entropia em C++23

O programa calcula a distribuição centralizada do teacher e sua entropia. A implementação subtrai o maior logit escalado para evitar overflow.

#include <algorithm>
#include <array>
#include <cmath>
#include <iomanip>
#include <iostream>
#include <span>
#include <stdexcept>

template <std::size_t N>
std::array<double, N> softmax_centered(
    const std::array<double, N>& logits,
    const std::array<double, N>& center,
    const double temperature) {
    if (temperature <= 0.0) {
        throw std::invalid_argument("a temperatura deve ser positiva");
    }

    std::array<double, N> scaled{};
    for (std::size_t i = 0; i < N; ++i) {
        scaled[i] = (logits[i] - center[i]) / temperature;
    }

    const double maximum =
        *std::max_element(scaled.begin(), scaled.end());
    double sum = 0.0;
    for (double& value : scaled) {
        value = std::exp(value - maximum);
        sum += value;
    }
    for (double& value : scaled) {
        value /= sum;
    }
    return scaled;
}

double entropy(const std::span<const double> probabilities) {
    double result = 0.0;
    for (const double probability : probabilities) {
        if (probability > 0.0) {
            result -= probability * std::log(probability);
        }
    }
    return result;
}

int main() {
    const std::array logits{2.0, 1.0, 0.0};
    const std::array center{0.5, 0.0, 0.0};
    const std::array temperatures{0.50, 0.10, 0.07};

    std::cout << std::fixed << std::setprecision(9);
    for (const double temperature : temperatures) {
        const auto probabilities =
            softmax_centered(logits, center, temperature);
        std::cout << "tau=" << temperature << " p=[";
        for (std::size_t i = 0; i < probabilities.size(); ++i) {
            std::cout << probabilities[i]
                      << (i + 1 == probabilities.size() ? "] " : ", ");
        }
        std::cout << "entropy=" << entropy(probabilities) << '\n';
    }
}

Em uma implementação real, o centro é um vetor sincronizado entre dispositivos e atualizado com a média dos logits do teacher. Reduzir somente a média local de cada GPU mudaria o alvo conforme a partição do lote.

No MSVC 19.51, compilamos com cl /std:c++latest /permissive- /W4 /EHsc /utf-8 /O2 dino.cpp. A entropia cai de aproximadamente $0{,}714$ com $\tau=0{,}50$ para $0{,}040$ com $\tau=0{,}10$ e $0{,}006$ com $\tau=0{,}07$. O centro permanece fixo no experimento; portanto, a variação isola o efeito de aguçamento da temperatura.

8. Laboratório: temperatura e centro

Mova separadamente a temperatura do teacher, a temperatura do student e o primeiro componente do centro. Compare a entropia do alvo e a entropia cruzada. O laboratório mostra por que “deixar o professor confiante” e “impedir uma dimensão sempre dominante” são operações diferentes.

9. Da destilação ao mascaramento

BYOL e DINO comparam views aumentadas. O próximo artigo importará da linguagem uma escolha diferente de tarefa: ocultar grande parte da entrada e reconstruí-la. O MAE processará somente os patches visíveis no encoder, uma decisão que muda simultaneamente a tarefa e a conta de computação.

No DINO, o professor não nomeia o objeto. Ainda assim, a geometria aprendida pode fazê-lo aparecer.

Acrônimos e Abreviações neste artigo

A seguir está a lista de todos os acrônimos e abreviações identificados no texto, organizados em ordem alfabética com o termo original em inglês e a tradução para o português:

Acrônimo / Abreviação Definição em Inglês Tradução em Português
BLAS Basic Linear Algebra Subprograms Subprogramas Básicos de Álgebra Linear
CPU / CPUs Central Processing Unit Unidade Central de Processamento
FLOPs Floating Point Operations Operações de Ponto Flutuante
FP32 32-bit Floating Point Ponto Flutuante de 32 bits
GEMM General Matrix Multiply Multiplicação Geral de Matrizes
GPU Graphics Processing Unit Unidade de Processamento Gráfico
IA Artificial Intelligence Inteligência Artificial
I-JEPA Image Joint-Embedding Predictive Architecture Arquitetura Preditiva de Incorporação Conjunta de Imagem
JEPA Joint-Embedding Predictive Architecture Arquitetura Preditiva de Incorporação Conjunta
KiB Kibibyte Kibibyte
MAE Masked Autoencoder Autocodificador Mascarado
MSE Mean Squared Error Erro Quadrático Médio
MSVC Microsoft Visual C++ Microsoft Visual C++
PCA Principal Component Analysis Análise de Componentes Principais
SIMD Single Instruction, Multiple Data Instrução Única, Múltiplos Dados
SimCLR Simple Framework for Contrastive Learning of Visual Representations Estrutura Simples para Aprendizado Contrastivo de Representações Visuais

Referências

CARON, M. et al. Emerging Properties in Self-Supervised Vision Transformers. ICCV, 2021. Disponível em: https://openaccess.thecvf.com/content/ICCV2021/html/Caron_Emerging_Properties_in_Self-Supervised_Vision_Transformers_ICCV_2021_paper.html. Acesso em: 28 jul. 2026.

DOSOVITSKIY, A. et al. An Image Is Worth 16x16 Words: Transformers for Image Recognition at Scale. ICLR, 2021. Disponível em: https://openreview.net/forum?id=YicbFdNTTy. Acesso em: 28 jul. 2026.

(Updated: )