← energia 2 · a aula

Do quadro à máquina que aprende

Entropia, temperatura e a conta que liga calor a uma máquina que aprende. Tudo começou num quadro, com uma equação que misturava rede neural e física. Este material conta a trilha inteira: de onde saiu, o que estava torto, e como virou uma coisa que fecha, com as contas feitas com letra e sem letra.

O mapa deste material
  • O quadro: a equação L do Neon
  • A ponte: rede neural como sistema físico
  • Aula 6: por que a energia se espalha
  • Cálculos da física (moedas, dois estados, energia livre)
  • Cálculos da rede neural (com letra e sem letra)
  • A prova do atalho F = −T ln Z
  • O cálculo avançado: a energia livre com integral

parte 1 · a origem

O quadro: a equação L do Neon

Foi isso que ficou escrito no quadro:

\[ \mathcal{L}_{\text{Neon}} = \mathcal{L}_1 + \mathcal{L}_2 - \mathcal{L}_3 \]

Com cada parcela:

\[ \mathcal{L}_1 = \iiint_V \left( \frac{1}{2}\rho\,|\nabla\phi|^2 - \frac{1}{2c^2}\left(\frac{\partial\phi}{\partial t}\right)^2 \right) d^3x \]
\[ \mathcal{L}_2 = \oint_{\partial\Omega} \left( F_{\mu\nu}F^{\mu\nu} \wedge \star J \right) dS \]
\[ \mathcal{L}_3 = \int_{t_0}^{t+f} \sigma(w^\top x + b)\cdot \exp\left(-\frac{2}{\hbar}\int \sqrt{2m(V_0 - E)}\,dx\right) dt \]

Termos de apoio que estavam no canto:

\[ E_K = \frac{1}{2}\rho\,|\nabla\phi|^2 \qquad E_P = \frac{1}{2c^2}\left(\frac{\partial\phi}{\partial t}\right)^2 \qquad \nabla\cdot n = 0 \]
\[ \sigma = \frac{1}{1 + e^{-(w^\top x + b)}} \qquad T = \exp\left(-\frac{2}{\hbar}\int \sqrt{2m(V_0 - E)}\,dx\right) \]
Quadro escrito a giz: a equação e as primeiras contas
no quadro · a equação e as primeiras contas

O que cada peça é

Por que ela não fechava

As três parcelas vêm de áreas diferentes e têm unidades diferentes. Somar uma sigmoide com um fator de tunelamento dentro de uma Lagrangiana não gera nada com sentido físico.

O começo foi rede neural. Depois veio a física do mundo real. A ponte entre as duas ficou pela metade, e é ela que as próximas partes constroem.


parte 2 · a ponte

Rede neural como sistema físico

A ideia: parar de ver a rede só como uma função, e tratar os pesos w como as peças de um sistema que se move.

A energia

A parte cinética é a velocidade com que os pesos mudam. A parte potencial é o erro da rede. As duas são energia, então as unidades batem:

\[ \mathcal{L} = \underbrace{\tfrac{1}{2}\|\dot{w}\|^2}_{\text{cinética}} - \underbrace{E(w)}_{\text{erro = potencial}} \]

O movimento

Dessa conta sai a equação de movimento:

\[ \ddot{w} = -\nabla_w E(w) \]

Com um pouco de atrito, isso é o treino de verdade: uma bola rolando ladeira abaixo numa paisagem de erro.

Onde entra a sigmoide

A σ é o que dá forma à paisagem. Por causa dela, o erro tem vários vales, e por isso o treino pode chegar em soluções diferentes.

Próximo passo: colocar temperatura nessa paisagem. O treino real tem ruído, e ruído é agitação. É aí que entra a termodinâmica.


parte 3 · aula 6

Por que a energia se espalha

Esta parte é a aula inteira, em seis passos curtos: a energia não some, ela se espalha; espalhar é só mais provável; entropia é contagem; temperatura é o quanto tá agitado; o equilíbrio tem forma exata; e a natureza minimiza um acordo.

\[ P \propto e^{-E/T} \qquad\qquad F = \langle E \rangle - T \cdot S \]

Ler a aula 6 completa, com os desenhos →


parte 4 · fazendo a conta

Cálculos da física

Combinado: uso unidades naturais, com a constante de Boltzmann valendo 1, energia e temperatura na mesma unidade. Os números ficam limpos e a mecânica aparece. Com unidades reais a ideia é a mesma.

Cálculo 1 · entropia, contar jeitos

com letra
\[ W = \frac{N!}{k!\,(N-k)!} \qquad S = \ln W \]
sem letra

4 moedas, 2 caras:

\[ W = \frac{4!}{2!\cdot 2!} = \frac{24}{4} = 6 \qquad S = \ln 6 \approx 1{,}79 \]

Tudo cara:

\[ W = \frac{4!}{4!\cdot 0!} = 1 \qquad S = \ln 1 = 0 \]

O estado organizado tem entropia zero. O espalhado tem entropia alta.

Quadro escrito a giz: contar jeitos e a probabilidade
no quadro · contar jeitos e a probabilidade

Cálculo 2 · probabilidade no equilíbrio

com letra
\[ P_i = \frac{e^{-E_i/T}}{Z} \qquad Z = \sum_i e^{-E_i/T} \]

Z é a soma que faz tudo fechar em 100%.

sem letra

Estado A com E = 0, estado B com E = 1, temperatura T = 1:

\[ e^{-0/1} = 1 \qquad e^{-1/1} \approx 0{,}368 \qquad Z = 1{,}368 \]
\[ P(A) = \frac{1}{1{,}368} \approx 73\% \qquad P(B) = \frac{0{,}368}{1{,}368} \approx 27\% \]

Mexendo só na temperatura:

Quadro escrito a giz: os dois estados, com T = 1
no quadro · os dois estados, com T = 1
Quadro escrito a giz: mexendo na temperatura
no quadro · mexendo na temperatura

Cálculo 3 · energia livre

com letra
\[ \langle E \rangle = \sum_i P_i E_i \qquad S = -\sum_i P_i \ln P_i \qquad F = \langle E \rangle - T\cdot S \]
sem letra

Com T = 1, P(A) = 0,731 e P(B) = 0,269:

\[ \langle E \rangle = 0{,}731\cdot 0 + 0{,}269\cdot 1 = 0{,}269 \]
\[ S = -\big[\,0{,}731\cdot(-0{,}313) + 0{,}269\cdot(-1{,}313)\,\big] = 0{,}582 \]
\[ F = 0{,}269 - 1\cdot 0{,}582 = -0{,}313 \]

Pelo atalho: F = −T ln Z = −1 · ln(1,368) = −0,313 ✓

Os dois caminhos batem. É o sinal de que a conta toda é consistente.

Quadro escrito a giz: a energia livre, com letra
no quadro · a energia livre, com letra
Quadro escrito a giz: a energia livre, sem letra
no quadro · a energia livre, sem letra
Ajuste. A primeira linha é ⟨E⟩, não P(A). E nas linhas do S falta o sinal de menos antes do colchete: S = −[ … ].

parte 5 · a máquina que aprende

Cálculos da rede neural

A rede mais simples possível: um neurônio, um peso w. Ela recebe x = 1 e deve responder y = 1. A sigmoide do quadro entra aqui de verdade.

Cálculo 1 · o erro vira a energia

com letra
\[ \sigma_i = \frac{1}{1+e^{-w_i x}} \qquad E_i = (y - \sigma_i)^2 \]

Numa linha só:

\[ E_i = \left( y - \frac{1}{1+e^{-w_i x}} \right)^2 \]
sem letra
\[ \begin{aligned} w=0 &: \sigma = 0{,}500 \Rightarrow E = (1-0{,}500)^2 = 0{,}250 \\ w=1 &: \sigma = 0{,}731 \Rightarrow E = (1-0{,}731)^2 = 0{,}072 \\ w=2 &: \sigma = 0{,}881 \Rightarrow E = (1-0{,}881)^2 = 0{,}014 \end{aligned} \]

Cada peso é um estado. Menor E quer dizer que acerta melhor. Erro é energia.

Quadro escrito a giz: o erro vira energia
no quadro · o erro vira energia
Ajuste. Na linha do atalho, lá em cima, o resultado é −0,313, com sinal de menos.

Cálculo 2 · qual peso a rede prefere

com letra
\[ Z = e^{-E_1/T} + e^{-E_2/T} + e^{-E_3/T} \qquad P_i = \frac{e^{-E_i/T}}{Z} \]

T grande faz Ei/T ≈ 0, e todos os Pi ficam perto de 1/3: explora tudo. T pequeno deixa só o menor Ei sobreviver, e P fica perto de 1 nele: trava no melhor.

sem letra

Com T = 0,1:

\[ e^{-2{,}5} = 0{,}082 \qquad e^{-0{,}72} = 0{,}485 \qquad e^{-0{,}14} = 0{,}868 \]
\[ Z = 0{,}082 + 0{,}485 + 0{,}868 = 1{,}435 \]
\[ P(w{=}0) \approx 6\% \qquad P(w{=}1) \approx 34\% \qquad P(w{=}2) \approx 60\% \]

Com pouco ruído, T = 0,01, o P(w=2) vai a 99,7%: a rede trava no melhor peso. Ruído alto faz a rede explorar. Ruído baixo faz ela assentar.

Quadro escrito a giz: qual peso a rede prefere
no quadro · qual peso a rede prefere

Cálculo 3 · a energia livre do treino

com letra
\[ \langle E \rangle = P_1E_1 + P_2E_2 + P_3E_3 \]
\[ S = -\big[ P_1\ln P_1 + P_2\ln P_2 + P_3\ln P_3 \big] \qquad F = \langle E \rangle - T\cdot S \]
sem letra

Com T = 0,1 e P = 0,057; 0,338; 0,605:

\[ \langle E \rangle = 0{,}057\cdot 0{,}250 + 0{,}338\cdot 0{,}072 + 0{,}605\cdot 0{,}014 = 0{,}047 \]
\[ S = -\big[ 0{,}057\cdot(-2{,}86) + 0{,}338\cdot(-1{,}08) + 0{,}605\cdot(-0{,}50) \big] \]
\[ S = 0{,}164 + 0{,}367 + 0{,}304 = 0{,}835 \]
\[ F = 0{,}047 - 0{,}1\cdot 0{,}835 = -0{,}036 \]

Pelo atalho: F = −0,1 · ln(1,435) = −0,1 · 0,361 = −0,036 ✓

Quadro escrito a giz: a energia livre do treino
no quadro · a energia livre do treino
Ajuste. Na linha do ⟨E⟩ o valor certo é 0,338 · 0,072, e não 0,338 · 0,077. E a soma do S dá 0,835, e não 0,0835. O resultado final −0,036 está certo.

O que isso ensina

A rede não busca só o menor erro. Busca o melhor acordo entre errar pouco, com E baixo, e ter vários pesos que funcionam, com S alto.

Uma solução com muitos pesos vizinhos que também funcionam é um vale largo: aguenta dado novo sem desmoronar. Um vale estreito é a rede que decorou. O ruído do treino empurra a rede pros vales largos, e por isso um pouco de bagunça ajuda a rede a generalizar.


parte 6 · a prova

Por que o atalho F = −T ln Z sempre funciona

Nos números, os dois caminhos bateram, em −0,313 e em −0,036. Com letra dá pra provar que eles são obrigados a bater. São 4 linhas.

linha 1 · tira o ln da probabilidade

\[ \ln P_i = -\frac{E_i}{T} - \ln Z \]

linha 2 · coloca dentro da entropia

\[ S = -\sum_i P_i\left( -\frac{E_i}{T} - \ln Z \right) = \frac{\sum_i P_i E_i}{T} + \sum_i P_i \ln Z \]

linha 3 · usa que Σ PiEi = ⟨E⟩ e Σ Pi = 1

\[ S = \frac{\langle E \rangle}{T} + \ln Z \]

linha 4 · multiplica por T e isola

\[ T\cdot S = \langle E \rangle + T\ln Z \;\Rightarrow\; \langle E \rangle - T\cdot S = -T\ln Z \;\Rightarrow\; F = -T\ln Z \;\checkmark \]

Nos números, a gente confere. Na letra, a gente entende.


parte 7 · o cálculo avançado

A energia livre com integral

Na parte 5 a rede tinha só 3 pesos pra escolher. Aqui ela pode ter qualquer peso, e a soma vira integral. A conta é difícil, mas prova, com matemática, que a rede prefere vales largos.

O que a conta soma

Cada peso w ganha uma nota: e−E(w)/T. Erro baixo dá nota alta. Na parte 5 eram só 3 pesos, e a soma dava Z = 0,082 + 0,485 + 0,868 = 1,435. Agora são todos os pesos possíveis:

\[ Z = \int_{-\infty}^{+\infty} \underbrace{e^{-E(w)/T}}_{\text{nota do peso}}\; \underbrace{dw}_{\text{fatia fina}} \]

O Z é a área debaixo do morro das notas.

A mola, que é a regularização

Sem mola, o erro vai pra 0 quando w cresce, a nota fica 1 pra sempre e a área dá infinito. Com a mola:

\[ E(w) = \big(1 - \sigma(w)\big)^2 + \frac{\lambda w^2}{2} \qquad \lambda = 0{,}1 \qquad T = 0{,}05 \]

Passo 1 · o fundo do vale, pelo método de Newton

com letra
\[ E'(w) = -2\,\sigma(1-\sigma)^2 + \lambda w \qquad \text{(inclinação)} \]
\[ E''(w) = -2\,\sigma(1-\sigma)^2(1-3\sigma) + \lambda \qquad \text{(curvatura)} \]
\[ w_{\text{novo}} = w - \frac{E'(w)}{E''(w)} \]
sem letra

Chutando w = 1:

\[ E'(1) = -0{,}00575 \qquad E''(1) = 0{,}2262 \]
\[ w = 1 - \frac{-0{,}00575}{0{,}2262} = 1{,}0254 \]

Repetindo mais uma vez: w* = 1,02557, e daí em diante não muda mais.

\[ E^{*} = 0{,}0697 + 0{,}0526 = 0{,}1223 \qquad E'' = 0{,}2239 \]
Quadro escrito a giz: o cálculo avançado, integral, mola e Newton
no quadro · o cálculo avançado: integral, mola e Newton
Ajuste. Faltaram os risquinhos: a curvatura é E''(w), com duas linhas.

Passo 2 · Laplace, a área do morro é altura vezes largura

Perto do fundo, o vale vira parábola, e a integral de Gauss dá a área:

\[ E(w) \approx E^{*} + \tfrac{1}{2}E''\,(w - w^{*})^2 \qquad \int_{-\infty}^{+\infty} e^{-ax^2}dx = \sqrt{\frac{\pi}{a}} \]
com letra
\[ Z \approx \underbrace{e^{-E^{*}/T}}_{\text{altura}} \cdot \underbrace{\sqrt{\frac{2\pi T}{E''}}}_{\text{largura}} \qquad F = -T\ln Z \approx E^{*} - \frac{T}{2}\ln\!\left(\frac{2\pi T}{E''}\right) \]
sem letra
\[ \text{altura} = e^{-0{,}1223/0{,}05} = e^{-2{,}445} = 0{,}0867 \]
\[ \text{largura} = \sqrt{\frac{2\pi\cdot 0{,}05}{0{,}2239}} = \sqrt{1{,}4031} = 1{,}1845 \]
\[ Z \approx 0{,}0867 \cdot 1{,}1845 = 0{,}1027 \]
\[ F \approx 0{,}1223 - 0{,}025\cdot\ln(1{,}4031) = 0{,}1223 - 0{,}025\cdot 0{,}3387 = 0{,}1138 \]

Confere: a integral exata, feita no computador, dá Z = 0,1042 e F = 0,1131 ✓, um erro de 1,5% no Z.

Quadro escrito a giz: a aproximação de Laplace
no quadro · a aproximação de Laplace
Ajuste. A parábola é E(w) ≈ E* + ½ E''(w − w*)², faltando o E''.

O que isso prova

\[ F = E^{*} + \frac{T}{2}\ln\!\left(\frac{E''}{2\pi T}\right) \]

Morro largo quer dizer E'' pequeno, que dá área maior, que dá Z maior, que dá F menor. A rede prefere vales largos. De bônus, a entropia:

\[ S \approx \frac{1}{2}\ln\!\left(\frac{2\pi T}{E''}\right) + \frac{1}{2} \approx 0{,}67 \]

A integral exata dá 0,70.

O que fica

  • energia não some, se espalha, e espalhada não trabalha
  • entropia é contagem: S conta jeitos
  • temperatura é o botão: assentar ou explorar
  • o equilíbrio tem forma: P ∝ e−E/T
  • a natureza minimiza o acordo: F = ⟨E⟩ − T · S
  • numa rede neural, erro é energia e ruído é temperatura
  • o ruído leva a rede pros vales largos, e ela generaliza
  • F = −T ln Z sempre bate, e dá pra provar em 4 linhas
  • com integral, Laplace mostra por que o vale largo vence

Contas conferidas. Todas as contas desta página foram refeitas por fora, uma a uma: as entropias das moedas, os três casos de temperatura, as duas energias livres e os dois atalhos F = −T ln Z. Da parte 7, refiz o Newton (w* = 1,02557), o Laplace (Z ≈ 0,1027 e F ≈ 0,1138) e também a integral exata por fora, que deu Z = 0,1042 e F = 0,1131, confirmando o erro de 1,5%. Todas batem com o que está escrito. Os ajustes marcados acima também foram verificados e procedem.

Para baixar

Este material é do João. O texto, as contas e o quadro são dele. O que entra de novo aqui é a arrumação para a web. Núcleo Neon · neoninovacao.com.br