
Reconhecer um 3 rabiscado em 28×28 pixels é instantâneo para você. Escrever um if/else que faça o mesmo — curva aqui, haste ali, e se estiver torto? — é um inferno. A rede neural do vídeo But what is a neural network?, do 3Blue1Brown (Grant Sanderson), desmonta isso: não é mágica, é uma função com milhares de botões.
Este texto segue o capítulo 1 da série de deep learning. A conta que a GPU faz no post GPU vs TPU é exatamente esta: multiplicar matrizes, milhão de vezes.
Um neurônio é um número
Esqueça o desenho biológico. No silício, um neurônio é um recipiente com um número — a ativação. No MNIST (dígitos manuscritos):
- Entrada: 28×28 = 784 neurônios. Cada um guarda o brilho do pixel, de 0 (preto) a 1 (branco).
- Saída: 10 neurônios, um por dígito 0–9. O maior valor é o palpite.
- Ocultas: no exemplo do vídeo, duas camadas de 16. A rede fica
784 → 16 → 16 → 10.
entrada 784 px → oculta 16 → oculta 16 → saída 10
(pixels) (bordas) (formas) (0..9)
Por que camadas
Pixel sozinho não significa nada. A rede empilha abstrações:
- Camada 2: pedaços de borda (traço curto, diagonal).
- Camada 3: junta bordas — círculo em cima + haste = 9; dois círculos = 8; três retas = 4.
- Camada 4: combina as peças e escolhe o dígito.
O mesmo esquema no áudio: amostra → fonema → sílaba → palavra. Por isso “deep”: profundidade é hierarquia, não marketing.
Pesos, viés e ativação
Cada aresta entre neurônios tem um peso w. Positivo estimula; negativo inibe (luz naquela região? então não é o padrão). Zero ignora o pixel.
O estímulo que chega no neurônio j é a soma ponderada das ativações anteriores, mais um viés b (o limiar: com b = -10, a soma precisa passar de +10 para o neurônio “acender”):
estímulo = (w1·a1 + w2·a2 + … + wn·an) + b
Esse número pode ser qualquer real. A função de ativação espreme para um intervalo útil. O vídeo usa a sigmóide (curva logística), a analogia clássica com o disparo biológico:
σ(x) = 1 / (1 + e^(-x))
x → -∞ ⇒ 0
x = 0 ⇒ 0,5
x → +∞ ⇒ 1
Na prática, redes profundas largaram a sigmóide no meio do caminho: ela satura e o gradiente some (vanishing gradient). O padrão virou ReLU — barata e não-linear o suficiente:
ReLU(x) = max(0, x)
13.002 botões
Quantos números livres nessa rede didática?
| Camadas | Pesos | Vieses | Total |
|---|---|---|---|
| 784 → 16 | 12.544 | 16 | 12.560 |
| 16 → 16 | 256 | 16 | 272 |
| 16 → 10 | 160 | 10 | 170 |
| Soma | 12.960 | 42 | 13.002 |
Treinar é achar esses 13 mil números. Gradient descent + backpropagation — o próximo vídeo da série. Um LLM de 2026 tem bilhões dos mesmos botões; a conta não muda, só a escala. É por isso que um modelo no Ollama come RAM: cada parâmetro é um float que precisa caber na memória.
Uma linha de álgebra linear
Neurônio a neurônio não escala. Empilha as ativações no vetor a, os pesos na matriz W, os vieses no vetor b. A camada inteira vira:
a¹ = σ( W · a⁰ + b )
Produto matriz-vetor, soma o viés, aplica σ em cada posição. NumPy, PyTorch, TensorFlow existem para fazer isso rápido — BLAS/GEMM na GPU. A “IA” do data center é, no fundo, essa linha repetida.
Então o que é uma rede neural?
Uma função f. No MNIST: entra ℝ784, sai ℝ10, por dentro 13.002 parâmetros em produtos matriciais com não-linearidade no meio. Com dados suficientes, essa função aprende padrões que ninguém escreveria à mão. O resto — Transformer, atenção, GPU — é variação do mesmo truque.
Referências
- Vídeo: 3Blue1Brown — But what is a neural network? (Grant Sanderson)
- Série: Neural networks · 3blue1brown.com
- GPU vs TPU: como os chips de IA funcionam
- Rodando IA local no Linux com Ollama
Treze mil números para ler um dígito. Trilhões para conversar. A máquina é a mesma.