O que é uma rede neural?

O que é uma rede neural: Tux, olho 3Blue1Brown e grafo de neurônios

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

Treze mil números para ler um dígito. Trilhões para conversar. A máquina é a mesma.