Fundamentos

Perceptrons multicamada e não linearidade

Empilhar mapas afins com ativações não lineares constrói features que um único hiperplano não expressa — e esse bloco exato é a feed-forward network do Qwen3.8-27B, encontrada uma vez por camada em todas as 64 camadas.

Atualizada em

01 · Conceito

Conceito

A lição 2.1 terminou num muro: XOR. Quatro pontos, duas classes, e nenhuma reta que os separe. O dispositivo não podia ser ajustado até virar solução porque não conseguia expressar uma. Então a pergunta prática que esta lição responde é estreita e concreta — qual é a menor mudança no perceptron que torna o XOR representável, e essa mudança escala para algo maior?

A mudança é empilhar. Alimente a entrada em várias unidades tipo perceptron ao mesmo tempo, passe o score de cada unidade por uma função não linear, e deixe uma segunda camada de unidades ler essas saídas em vez da entrada bruta. Para uma matriz de batch XX cujas linhas são exemplos e colunas são features, uma rede de uma camada oculta computa

H=ϕ(XW1+b1),Y=HW2+b2,H=\phi(XW_1+b_1),\qquad Y=HW_2+b_2,

onde ϕ\phi atua elemento a elemento. Isso é um perceptron multicamada, ou MLP.

Tudo depende de ϕ\phi estar realmente ali. Apague-a e a álgebra colapsa: (XW1+b1)W2+b2(XW_1+b_1)W_2+b_2 se rearranja em XW+bXW+b com W=W1W2W=W_1W_2 e b=b1W2+b2b=b_1W_2+b_2. Dez camadas, cem camadas, qualquer número — ainda um único mapa afim, ainda um hiperplano, ainda exatamente tão impotente no XOR quanto o perceptron isolado era. Profundidade sem não linearidade não é uma versão mais fraca de profundidade; é uma forma mais cara de escrever a mesma função.

Veja o conserto funcionar no próprio XOR, à mão, sem treinamento nenhum. Use duas unidades ocultas com ReLU, que mantém valores positivos e zera os negativos: h1=ReLU(x1+x2)h_1=\operatorname{ReLU}(x_1+x_2) e h2=ReLU(x1+x21)h_2=\operatorname{ReLU}(x_1+x_2-1). Avalie os quatro cantos, um por vez. Em (0,0)(0,0): h1=0h_1=0 e h2=ReLU(1)=0h_2=\operatorname{ReLU}(-1)=0. Em (0,1)(0,1) e em (1,0)(1,0): h1=1h_1=1 e h2=ReLU(0)=0h_2=\operatorname{ReLU}(0)=0. Em (1,1)(1,1): h1=2h_1=2 e h2=ReLU(1)=1h_2=\operatorname{ReLU}(1)=1. Agora deixe a unidade de saída computar y=h12h20.5y=h_1-2h_2-0.5. Os cantos dão 0.5-0.5, depois +0.5+0.5 e +0.5+0.5, depois 220.5=0.52-2-0.5=-0.5. Positivo exatamente nos dois cantos “diferentes”, negativo exatamente nos dois cantos “iguais”: XOR, resolvido.

Olhe o que aconteceu geometricamente. Nas novas coordenadas (h1,h2)(h_1,h_2) os quatro pontos ficam em (0,0)(0,0), (1,0)(1,0), (1,0)(1,0) e (2,1)(2,1). Os dois cantos de entradas diferentes, positivos no XOR, colapsam no mesmo ponto oculto (1,0)(1,0), enquanto os dois cantos de entradas iguais, negativos no XOR, ficam em (0,0)(0,0) e (2,1)(2,1). Uma única fronteira reta agora separa o ponto positivo compartilhado dos dois pontos negativos. A unidade de saída ainda é um perceptron, inalterada em relação à lição 2.1. A camada oculta mudou aquilo para o que ela está olhando.

Essa é a ideia duradoura: camadas ocultas aprendem uma representação, e a classificação acontece no espaço aprendido em vez do espaço bruto. Engenharia manual de features vira construção aprendida de features.

Largura é quantas unidades uma camada tem; profundidade é quantas transformações sucessivas existem. Largura compra mais features num estágio; profundidade permite que estágios posteriores reaproveitem features anteriores de forma composicional, o que pode representar algumas funções de modo muito mais compacto que uma única camada enorme. Nenhuma das duas garante nada sozinha.

Agora a razão pela qual isso importa para um curso sobre modelos de linguagem. Toda camada de um Transformer contém um MLP, convencionalmente chamado de feed-forward network, e ele não é um componente menor. No Qwen3.8-27B o hidden state carrega 5120 números por token; o bloco feed-forward expande isso para uma largura intermediária de 17.408, aplica uma ativação com gate que a lição 2.3 disseca, e projeta de volta para 5120 (Qwen3.8-27B Model Card, 2026). Uma matriz de shape 5120 por 17.408 dá cerca de 89,1 milhões de multiply-adds para um único token. O bloco com gate completo — projeções gate, up e down juntas — soma aproximadamente 267 milhões de parâmetros por camada, e o modelo tem 64 camadas, então só os blocos feed-forward respondem por algo da ordem de 17 bilhões dos 27 bilhões de parâmetros do modelo.

Existe aqui uma divisão de trabalho real que vale fixar cedo. O bloco feed-forward nunca olha para outros tokens. Ele recebe um vetor de 5120 dimensões, o transforma, e devolve um vetor do mesmo tamanho. Tudo o que ele sabe sobre o resto da frase chegou via attention antes de ele rodar.

Treinar um MLP segue o mesmo loop em toda parte: definir uma loss (lição 2.4), computar gradientes através de cada operação (lição 2.5), atualizar parâmetros (lição 2.7). Para classificação, a camada final emite logits, não decisões, e cross-entropy fornece um objetivo diferenciável; converter logits em uma ação é uma questão separada de política que pertence à implantação, não ao treinamento.

Depure um MLP pedindo a ele que memorize um batch minúsculo que deveria ajustar trivialmente. Confira todo shape de tensor, confirme que a loss cai para perto de zero, e inspecione se alguma ativação ou gradiente é inteiramente zero ou não finito. Esse teste não prova nada sobre generalização, mas falhar nele revela um bug de ligação, de objetivo ou de otimização antes que uma execução longa o enterre. Depois compare contra uma baseline linear simples: se a profundidade extra não acrescenta valor fora da amostra, ela não estava ganhando seus parâmetros.

02 · Analogia

Analogia

Um ateliê de vitrais recorta uma imagem complexa em etapas. Os primeiros artesãos fazem cortes retos que isolam regiões simples. Filtros coloridos então mudam quais regiões permanecem ativas. Artesãos posteriores recombinam essas peças em curvas e formas fechadas. Se cada etapa só fizesse cortes lineares sem filtro entre elas, todos os cortes poderiam ser substituídos por um único molde equivalente. A não linearidade é o que impede o ateliê de colapsar numa única operação.

03 · Explique de volta

Explique de volta

Explique como um MLP transforma um vetor oculto, por que ativações não lineares são necessárias, e identifique o MLP dentro de uma camada do Qwen3.8-27B, incluindo suas larguras.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Aguardando sua explicação.

Comparar com uma resposta-modelo

Um MLP aplica transformações afins separadas por não linearidades elemento a elemento, por exemplo H=φ(XW1+b1) e depois Y=HW2+b2. Sem a não linearidade, W2W1 e os biases combinados formam um único mapa afim, então a profundidade não acrescenta classe representacional e a pilha inteira é um perceptron. A feed-forward network do Qwen3.8-27B é exatamente essa estrutura: ela expande o hidden state de 5120 dimensões de cada token para uma largura intermediária de 17.408, aplica uma ativação com gate, e projeta de volta para 5120. Um bloco desses está em cada uma das 64 camadas, e juntos os blocos feed-forward guardam cerca de 17B dos parâmetros do modelo — a maior parte do modelo.

04 · Teste seu entendimento

Teste seu entendimento

01A lição 2.1 mostrou que um perceptron computa um produto escalar e um limiar. O que computa uma pilha de camadas afins sem não linearidade entre elas?
Resposta e explicação

Um único mapa afim — matematicamente um único score de perceptron, não importa quantas camadas foram empilhadas — A composição de mapas afins é afim, então dez camadas empilhadas ainda definem um hiperplano; a não linearidade é o que faz a profundidade significar alguma coisa.

02No Qwen3.8-27B, o que o bloco feed-forward faz com o vetor oculto de um token?
Resposta e explicação

Expande de 5120 para uma largura intermediária de 17.408, aplica uma ativação com gate, e projeta de volta para 5120 — O bloco feed-forward atua em cada posição de forma independente; mover informação entre posições é trabalho da attention, coberto na track 4.

03Qual é o papel da largura oculta?
Resposta e explicação

Ela controla quantas features intermediárias um estágio consegue representar — Largura muda capacidade, mas quais features são úteis ainda depende dos dados, da otimização e da regularização.

Conclua o teach-back e acerte o quiz para finalizar a aula.

◎ · Marcador de evidência

Fontes

  1. Kurt Hornik, Maxwell Stinchcombe e Halbert White (1989). Multilayer Feedforward Networks are Universal Approximators.
  2. Qwen Team (2026). Qwen3.8-27B Model Card.