DINO: Autodestilação e Objetos que Emergem da Atenção
por Frank de Alcantara em 28/07/2026
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.
Índice da Série: Representações e Modelos de Mundo
- 1. Representações e Modelos de Mundo: o Mapa da Série
- 2. Autoencoders: o Gargalo, a Reconstrução e o Latente
- 4. Difusão Latente: Comprimir Antes de Gerar
- 5. SimCLR: Aprender por Contraste e Pagar pelos Negativos
- 6. BYOL: Aprender sem Negativos sem Entregar Tudo ao Colapso
- 7. DINO: Autodestilação e Objetos que Emergem da Atenção (Você está aqui)
- 8. MAE: Mascarar 75% da Imagem e Reconstruir o que Falta
- 9. Prever, não gerar: o template JEPA e o problema do colapso
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, com $\lambda\in[0,1)$ representando o momento que preserva seu estado anterior:
\[\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$, o índice $i$ identifica a coordenada cuja probabilidade calculamos, enquanto $k$ percorre todas as $K$ coordenadas no denominador. As temperaturas do estudante e do professor são $\tau_s$ e $\tau_t$, e $c$ é o centro formado pela média móvel dos logits do professor. 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)}.\]Geralmente, o professor usa a menor das duas temperaturas e, portanto, a distribuição mais aguçada.
1.1 A genealogia da autodestilação
A destilação nasceu como transferência entre modelos. Hinton, Vinyals e Dean mostraram em 2015 que uma rede estudante podia aprender as probabilidades suavizadas de um professor ou conjunto de professores. O Mean Teacher substituiu o professor pronto por uma média móvel dos próprios pesos do estudante. DeepCluster e SwAV mostraram que agrupamentos e atribuições produzidos durante o treino podiam servir de alvos sem rótulos; o SwAV também introduziu a estratégia multi-crop. BYOL demonstrou que um alvo de momento podia ser previsto sem negativos. O DINO reuniu essas linhas: professor de momento, distribuições sem nomes de classe, centralização, aguçamento e recortes em múltiplas escalas.
As $K$ saídas não são classes semânticas secretas. Somar a mesma constante $a$ a todos os logits não muda a softmax:
\[\frac{e^{(g_i+a)/\tau}} {\sum_k e^{(g_k+a)/\tau}} = \frac{e^{a/\tau}e^{g_i/\tau}} {e^{a/\tau}\sum_k e^{g_k/\tau}} =P^{(i)}.\]Logo somente diferenças entre logits importam. A centralização vetorial do DINO não subtrai uma única constante comum; subtrai de cada coordenada sua média histórica, alterando as diferenças sistemáticas entre dimensões. Essa distinção explica por que a operação pode mudar a distribuição, apesar da invariância da softmax a deslocamentos escalares uniformes.
1.2 Exercícios de lápis e papel
1. Para logits $(2,1)$ e temperatura $1$, calcule a softmax antes e depois de somar $5$ às duas coordenadas.
Solução: Antes do deslocamento,
\[P =\left(\frac{e^2}{e^2+e},\frac{e}{e^2+e}\right) =\left(\frac{e}{e+1},\frac{1}{e+1}\right) \approx(0{,}731059,0{,}268941).\]Depois de somar $5$, os logits tornam-se $(7,6)$:
\[P' =\left(\frac{e^7}{e^7+e^6},\frac{e^6}{e^7+e^6}\right) =\left(\frac{e}{e+1},\frac{1}{e+1}\right).\]A distribuição não muda porque o fator comum $e^5$ cancela no numerador e no denominador.
2. Para os mesmos logits, subtraia o centro $(1,0)$ e calcule a nova distribuição.
Solução: A centralização produz
\[(2,1)-(1,0)=(1,1).\]Como os dois logits são iguais,
\[P=\left(\frac{e}{e+e},\frac{e}{e+e}\right) =\left(\frac12,\frac12\right).\]3. Se $\theta_t=2$, $\theta_s=5$ e $\lambda=0{,}9$, calcule a atualização do professor.
Solução: Aplicando a EMA,
\[\theta_t^{\mathrm{novo}} =0{,}9\cdot2+(1-0{,}9)\cdot5 =1{,}8+0{,}5 =2{,}3.\]4. Explique por que os $K$ índices de saída não podem ser chamados de classes nomeadas sem uma correspondência externa.
Solução: O treinamento recebe distribuições produzidas pelo próprio professor, não rótulos semânticos que associem uma coordenada a “cão”, “carro” ou qualquer outro conceito. Os índices apenas identificam dimensões do cabeçalho. Para chamá-los de classes nomeadas, precisaríamos demonstrar uma correspondência externa estável entre cada índice e uma categoria.
5. Ordene cronologicamente destilação supervisionada, Mean Teacher, SwAV, BYOL e DINO.
Solução: A ordem por ano de publicação é: destilação supervisionada de Hinton, Vinyals e Dean em 2015; Mean Teacher em 2017; SwAV e BYOL em 2020; DINO em 2021. SwAV e BYOL pertencem ao mesmo ano, portanto essa resolução não inventa uma precedência conceitual com base apenas na data anual.
2. Entropia cruzada entre views
Para uma view $x_1$ observada pelo teacher e outra $x_2$ observada pelo student, chamaremos de $H(P_t,P_s)$ a entropia cruzada entre as distribuições. 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.
2.1 Entropia do alvo, divergência e gradiente
A entropia cruzada pode ser decomposta usando $D_{\mathrm{KL}}(P_t\Vert P_s)$ para representar a divergência de Kullback–Leibler do alvo em relação à previsão:
\[H(P_t,P_s) =H(P_t)+D_{\mathrm{KL}}(P_t\Vert P_s).\]Durante a atualização do student, $P_t$ recebe stop-gradient e $H(P_t)$ é constante. Minimizar a entropia cruzada equivale, portanto, a minimizar $D_{\mathrm{KL}}(P_t\Vert P_s)$ naquele passo. O valor mínimo é $H(P_t)$ e ocorre quando $P_s=P_t$.
Se $a_s^{(i)}=g_s^{(i)}/\tau_s$ são os logits escalados do student, a derivada conhecida da softmax com entropia cruzada é
\[\frac{\partial H(P_t,P_s)} {\partial g_s^{(i)}} =\frac{P_s^{(i)}-P_t^{(i)}}{\tau_s}.\]Uma coordenada na qual o estudante atribui probabilidade excessiva recebe gradiente positivo e é reduzida pela descida; uma coordenada subestimada recebe gradiente negativo e cresce. A temperatura do estudante também escala a magnitude por $1/\tau_s$.
A direção entre views é importante. O professor vê recortes globais $g_1,g_2$; o estudante vê globais e locais. Não comparamos uma view global com ela mesma no mesmo par, pois isso permitiria copiar detalhes específicos do recorte em vez de estabelecer consistência entre observações diferentes.
2.2 Exercícios de lápis e papel
1. Para $P_t=(0{,}75,0{,}25)$ e $P_s=(0{,}5,0{,}5)$, calcule a entropia cruzada.
Solução: Usando logaritmos naturais,
\[H(P_t,P_s) =-0{,}75\log0{,}5-0{,}25\log0{,}5 =-\log0{,}5 =\log2 \approx0{,}693147.\]2. Calcule $H(P_t)$ no exercício anterior e obtenha $D_{\mathrm{KL}}(P_t\Vert P_s)$ por diferença.
Solução: A entropia do professor é
\[H(P_t) =-0{,}75\log0{,}75-0{,}25\log0{,}25 \approx0{,}562335.\]Como $H(P_t,P_s)=H(P_t)+D_{\mathrm{KL}}(P_t\Vert P_s)$,
\[D_{\mathrm{KL}}(P_t\Vert P_s) \approx0{,}693147-0{,}562335 \approx0{,}130812.\]3. Com $\tau_s=0{,}5$, calcule o gradiente em cada coordenada.
Solução: Pela fórmula $(P_s^{(i)}-P_t^{(i)})/\tau_s$,
\[\nabla_{g_s}H =\left( \frac{0{,}5-0{,}75}{0{,}5}, \frac{0{,}5-0{,}25}{0{,}5} \right) =(-0{,}5,0{,}5).\]4. Mostre que os dois componentes do gradiente do exercício anterior somam zero.
Solução: Somando os componentes,
\[-0{,}5+0{,}5=0.\]Em geral, a soma vale $\bigl(\sum_iP_s^{(i)}-\sum_iP_t^{(i)}\bigr)/\tau_s=(1-1)/\tau_s=0$.
5. Explique por que comparar um recorte com ele próprio pode permitir uma solução baseada em detalhes locais que não atravessa views.
Solução: Quando entrada e alvo mostram exatamente a mesma região, a rede pode alinhar as saídas usando textura, bordas ou outros detalhes exclusivos daquele recorte. Comparar recortes diferentes exige que a informação prevista sobreviva à mudança de enquadramento e favorece propriedades compartilhadas entre as views.
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.
3.1 Dois colapsos e uma atualização de centro
Há pelo menos duas degenerações distintas. No colapso uniforme, toda imagem produz aproximadamente $(1/K,\ldots,1/K)$; a entropia por amostra é máxima e o alvo quase não distingue entradas. No colapso por coordenada, toda imagem concentra massa na mesma saída, por exemplo $(1,0,\ldots,0)$; a entropia por amostra é baixa, mas a diversidade entre imagens também é nula. Aguçamento combate a primeira tendência e pode agravar a segunda. Centralização combate vantagens globais persistentes entre coordenadas.
Se $\bar g_t$ é a média dos logits do professor no lote global, $c_{t-1}$ é o centro anterior e $m_c\in[0,1)$ é o momento dessa média móvel, o novo centro $c_t$ segue
\[c_t=m_c c_{t-1}+(1-m_c)\bar g_t.\]Suponha $c_{t-1}=(1,0)$, $\bar g_t=(3,2)$ e $m_c=0{,}9$. Então $c_t=(1{,}2,0{,}2)$. A diferença entre coordenadas do centro continua sendo $1$, mas ambas caminham na direção da estatística corrente. Se a primeira coordenada dominar lote após lote, sua componente do centro cresce e passa a ser mais subtraída.
O professor costuma usar um cronograma de $\tau_t$: começa menos frio, para evitar alvos excessivamente confiantes quando os pesos ainda são aleatórios, e depois esfria. O momento do professor também varia. Esses cronogramas fazem parte da dinâmica; citar apenas a fórmula final omite como o sistema atravessa o começo instável.
3.2 Exercícios de lápis e papel
1. Calcule a entropia de $(1/2,1/2)$ e de $(1,0)$ usando o limite $0\log0=0$.
Solução: Para a distribuição uniforme,
\[H\left(\frac12,\frac12\right) =-2\cdot\frac12\log\frac12 =\log2 \approx0{,}693147.\]Para a distribuição concentrada,
\[H(1,0)=-1\log1-0\log0=0.\]2. Explique por que ambas podem representar colapso, apesar das entropias opostas.
Solução: Se todas as imagens produzem $(1/2,1/2)$, a saída possui entropia alta, mas não distingue entradas. Se todas produzem $(1,0)$, a entropia por amostra é nula, porém a mesma coordenada vence para qualquer imagem. O colapso diz respeito à ausência de diversidade entre exemplos, não a um único valor obrigatório de entropia por amostra.
3. Calcule $c_t$ para o exemplo da Seção 3.1.
Solução: Com $c_{t-1}=(1,0)$, $\bar g_t=(3,2)$ e $m_c=0{,}9$,
\[c_t =0{,}9(1,0)+0{,}1(3,2) =(0{,}9,0)+(0{,}3,0{,}2) =(1{,}2,0{,}2).\]4. Para logits $(3,1)$ e centro $(1,0)$, calcule os logits centralizados.
Solução: Subtraímos o centro coordenada a coordenada:
\[(3,1)-(1,0)=(2,1).\]5. Compare qualitativamente as softmaxes dos logits anteriores com temperaturas $1$ e $0{,}1$.
Solução: Com temperatura $1$,
\[\operatorname{softmax}(2,1) \approx(0{,}7311,0{,}2689).\]Com temperatura $0{,}1$, os logits escalados são $(20,10)$ e a distribuição fica aproximadamente
\[(0{,}999955,0{,}000045).\]A temperatura menor amplia a diferença entre as coordenadas e torna o alvo muito mais aguçado.
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.
4.1 Quantos pares e quantas passagens?
Se o professor recebe $G=2$ recortes globais e o estudante recebe esses $G$ recortes mais $L$ locais, o número total de views do estudante é $V=G+L$. Cada saída global do professor é comparada com todas as saídas do estudante, exceto a saída da mesma view. O número de termos direcionais por imagem é
\[N_{\mathrm{pares}}=G(V-1)=2(L+1).\]Com $L=6$, são $14$ termos. O professor executa duas passagens; o estudante, oito. Como recortes locais têm resolução menor, oito passagens não custam oito vezes uma global. A estratégia multi-crop, introduzida no SwAV e reutilizada no DINO, aumenta o número de relações supervisionadas sem multiplicar o custo na mesma proporção.
Para lote $B$ e dimensão de saída $K$, calcular todas as entropias cruzadas custa $O(BN_{\mathrm{pares}}K)$. Não existe comparação entre todas as imagens do lote, por isso o crescimento em $B$ é linear nessa parcela. O backbone ainda domina grande parte do custo, especialmente porque o estudante processa várias views.
4.2 Exercícios de lápis e papel
1. Para $L=6$, calcule $V$ e $N_{\mathrm{pares}}$.
Solução: O estudante recebe
\[V=G+L=2+6=8\]views. O número de pares direcionais é
\[N_{\mathrm{pares}}=G(V-1)=2(8-1)=14.\]2. Repita para $L=10$.
Solução: Agora,
\[V=2+10=12\]e
\[N_{\mathrm{pares}}=2(12-1)=22.\]3. Liste os pares válidos quando há globais $g_1,g_2$ e apenas uma local $\ell_1$.
Solução: A saída do professor para $g_1$ pode ser comparada às saídas do estudante para $g_2$ e $\ell_1$. A saída do professor para $g_2$ pode ser comparada às saídas do estudante para $g_1$ e $\ell_1$. Os quatro pares são
\[(t(g_1),s(g_2)),\quad (t(g_1),s(\ell_1)),\quad (t(g_2),s(g_1)),\quad (t(g_2),s(\ell_1)).\]4. Para $B=32$, $K=1024$ e $14$ pares, conte quantos produtos $p\log q$ aparecem nas entropias cruzadas.
Solução: Cada exemplo, par e coordenada produz um termo. Portanto,
\[B N_{\mathrm{pares}}K =32\cdot14\cdot1024 =458\,752\]produtos $p\log q$.
5. Explique por que dobrar $B$ dobra essa parcela do DINO, enquanto dobra aproximadamente por quatro a matriz de similaridades do SimCLR.
Solução: Mantidos $N_{\mathrm{pares}}$ e $K$, a parcela do DINO contém $BN_{\mathrm{pares}}K$ termos e cresce linearmente com $B$. No SimCLR, a matriz relaciona aproximadamente $2B$ views com outras $2B$ views e contém uma quantidade proporcional a $(2B)^2$; dobrar $B$ multiplica essa área por quatro.
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.
5.1 Como o mapa é construído
em uma cabeça $h$ da última camada, $d_h$ é o número de coordenadas por cabeça e a consulta do token de classe é $q_{\mathrm{cls}}^{(h)}\in\mathbb{R}^{d_h}$. As chaves dos $N$ patches formam $K_{\mathrm{patch}}^{(h)}\in\mathbb{R}^{N\times d_h}$. Os pesos que o token de classe atribui aos patches são
\[a^{(h)} =\operatorname{softmax} \left( \frac{q_{\mathrm{cls}}^{(h)} (K_{\mathrm{patch}}^{(h)})^\top} {\sqrt{d_h}} \right) \in\mathbb{R}^{N}.\]Para uma grade $14\times14$, reorganizamos os $196$ valores como uma matriz espacial. Interpolar essa matriz para a resolução da imagem produz a visualização. Como a softmax inclui normalmente também tokens especiais, implementações precisam declarar quais posições foram removidas e se os pesos foram renormalizados.
O valor $a_j^{(h)}$ mede quanto o token de classe combina o valor do patch $j$ naquela cabeça e camada. Ele não mede sozinho quanto a previsão final mudaria se o patch fosse removido. Fluxos residuais, outras cabeças e camadas posteriores criam caminhos alternativos. Uma interpretação causal exigiria intervenção, como mascarar o patch e medir a mudança, não apenas olhar para um peso.
No artigo original, a localização de objetos foi avaliada quantitativamente, e não apenas por imagens bonitas. Essa disciplina importa. Um mapa que parece convincente para três exemplos escolhidos pode falhar no conjunto; uma métrica de segmentação testa a propriedade declarada.
5.2 Exercícios de lápis e papel
1. Para uma imagem $224\times224$ com patches $16\times16$, calcule $N$ e o formato de $a^{(h)}$.
Solução: Cada eixo contém $224/16=14$ patches. Logo,
\[N=14\cdot14=196\]e
\[a^{(h)}\in\mathbb{R}^{196}.\]2. Se $d_h=64$, calcule o fator de escala $1/\sqrt{d_h}$.
Solução: Como $\sqrt{64}=8$,
\[\frac{1}{\sqrt{d_h}}=\frac18=0{,}125.\]3. Para scores $(0,\log2)$, calcule os dois pesos de atenção.
Solução: Exponenciando os scores, obtemos $(1,2)$. Depois da normalização,
\[\operatorname{softmax}(0,\log2) =\left(\frac{1}{1+2},\frac{2}{1+2}\right) =\left(\frac13,\frac23\right).\]4. Reorganize os valores $(1,2,3,4)$ como um mapa $2\times2$ em ordem de linhas.
Solução: Em ordem de linhas, os dois primeiros valores ocupam a primeira linha e os dois últimos, a segunda:
\[\begin{bmatrix} 1&2\\ 3&4 \end{bmatrix}.\]5. Explique por que um peso de atenção alto não prova que remover o patch alterará a saída na mesma proporção.
Solução: O peso mede a contribuição do valor daquele patch em uma cabeça e camada específicas. Outras cabeças, conexões residuais e camadas posteriores podem carregar informação redundante ou compensar sua ausência. Demonstrar influência causal exige intervir no patch e medir a mudança da saída.
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.
6.1 Exercícios comparativos
1. Para vetores unitários com cosseno $0{,}8$, calcule a perda unidirecional do BYOL.
Solução: Para vetores unitários,
\[\mathcal{L}_{\mathrm{BYOL}} =2-2\cdot0{,}8 =0{,}4.\]2. Para $P_t=(0{,}8,0{,}2)$ e $P_s=(0{,}7,0{,}3)$, calcule a perda do DINO.
Solução: A entropia cruzada é
\[H(P_t,P_s) =-0{,}8\log0{,}7-0{,}2\log0{,}3 \approx0{,}526135.\]3. Identifique qual método usa predictor assimétrico e qual usa centro no professor.
Solução: O BYOL usa um predictor apenas no ramo online. O DINO não usa esse predictor assimétrico; ele centraliza os logits do professor antes de aplicar a temperatura e a softmax.
4. Explique por que o valor de uma perda BYOL não pode ser comparado numericamente com uma entropia cruzada DINO como se fossem a mesma escala.
Solução: A perda do BYOL é uma distância quadrática entre vetores unitários, limitada ao intervalo de $0$ a $4$. A perda do DINO é uma entropia cruzada cujo mínimo depende da entropia do alvo e do número de coordenadas. Como os objetos, unidades e intervalos são diferentes, um valor menor em um método não significa automaticamente melhor alinhamento que no outro.
5. Diga qual peça permanece comum aos dois métodos entre EMA, negativos, matriz $B^2$ e rótulos humanos.
Solução: A EMA permanece comum: nos dois métodos, ela atualiza o ramo alvo a partir do ramo treinado por gradiente. Nenhum deles exige negativos, matriz de similaridades $B^2$ ou rótulos humanos.
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.
7.1 Exercícios de rastreamento manual
1. Subtraia center de logits e escreva o vetor obtido.
Solução: O programa usa logits=(2.0,1.0,0.0) e center=(0.5,0.0,0.0). A subtração produz
2. Divida esse vetor por $\tau=0{,}5$.
Solução: Dividir por $0{,}5$ equivale a multiplicar por dois:
\[\frac{(1{,}5,1,0)}{0{,}5}=(3,2,0).\]3. Identifique o máximo e escreva os três expoentes estabilizados usados pelo programa.
Solução: O máximo do vetor escalado $(3,2,0)$ é $3$. Depois de subtraí-lo, o programa calcula
\[e^{3-3}=1, \qquad e^{2-3}=e^{-1}, \qquad e^{0-3}=e^{-3}.\]4. Explique por que entropy ignora probabilidades iguais a zero.
Solução: A expressão numérica log(0) não é finita, mas o limite matemático $-p\log p$ quando $p\to0^+$ vale zero. Ignorar a parcela quando probability == 0.0 implementa esse limite e evita uma operação indefinida.
5. Sem calcular todas as casas decimais, determine qual temperatura da lista produz a maior probabilidade na primeira coordenada.
Solução: A primeira coordenada possui o maior logit centralizado. Diminuir a temperatura amplia sua vantagem antes da softmax, portanto a menor temperatura da lista, $\tau=0{,}07$, produz a maior probabilidade na primeira coordenada.
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.
CARON, M.; MISRA, I.; MAIRAL, J.; GOYAL, P.; BOJANOWSKI, P.; JOULIN, A. Unsupervised Learning of Visual Features by Contrasting Cluster Assignments. Advances in Neural Information Processing Systems, v. 33, 2020. Disponível em: https://proceedings.neurips.cc/paper/2020/hash/70feb62b69f16e0238f741fab228fec2-Abstract.html. Acesso em: 29 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.
HINTON, G.; VINYALS, O.; DEAN, J. Distilling the Knowledge in a Neural Network. NIPS Deep Learning and Representation Learning Workshop, 2015. Disponível em: https://arxiv.org/abs/1503.02531. Acesso em: 29 jul. 2026.
Índice da Série: Representações e Modelos de Mundo
- 1. Representações e Modelos de Mundo: o Mapa da Série
- 2. Autoencoders: o Gargalo, a Reconstrução e o Latente
- 4. Difusão Latente: Comprimir Antes de Gerar
- 5. SimCLR: Aprender por Contraste e Pagar pelos Negativos
- 6. BYOL: Aprender sem Negativos sem Entregar Tudo ao Colapso
- 7. DINO: Autodestilação e Objetos que Emergem da Atenção (Você está aqui)
- 8. MAE: Mascarar 75% da Imagem e Reconstruir o que Falta
- 9. Prever, não gerar: o template JEPA e o problema do colapso
(Updated: )