Descida de Gradiente

Demonstrações interativas da aula de descida de gradiente

Sete visualizações que acompanham os slides: por que a varredura por força bruta não escala, a aproximação local da série de Taylor, o efeito da taxa de aprendizado η na regra θt+1 = θt − η·∇ℒ(θt), o modelo de Gabor ajustado aos dados e sua paisagem de loss não convexa, o zigue-zague em vales alongados e como o momentum o amortece, e a diferença entre batch completo, mini-batch e SGD numa regressão linear. Notação dos slides: η, θℒ(θ), vt+1 = β·vt + (1−β)·∇ℒ.

1 · Por que não força bruta?

Uma única unidade sigmoide f(x) = 1/(1+e−(wx+b)) com 2 parâmetros e loss de erro quadrático médio, como no exemplo dos slides. Com apenas 2 parâmetros dá para varrer uma grade: com k valores em cada eixo, avaliamos pontos e ficamos com o melhor. A superfície colorida é a loss verdadeira L(w, b); os pontos brancos são a grade avaliada e o círculo rosa é o melhor ponto encontrado.

Superfície L(w, b), grade avaliada e melhor ponto (clique num ponto da grade para inspecioná-lo)

Dados (x, y) e a sigmoide do melhor ponto da grade (tracejado: mínimo real)

💡 Com k pequeno a grade passa longe do mínimo; para chegar perto é preciso aumentar k, e o custo cresce . O problema é a dimensão: para um MLP modesto com P = 1000 parâmetros seriam k1000 = 10699 avaliações. Inviável: por isso precisamos de um método guiado pela estrutura local da função.

2 · Série de Taylor: aproximação local

A dedução da descida de gradiente usa a série de Taylor em torno de θ0: f(θ) = f(θ0) + (θ−θ0)·f′(θ0) + (θ−θ0)²·f″(θ0)/2! + ⋯. Abaixo, a mesma função não convexa da seção 3 com a aproximação de grau n escolhido no slider. Arraste o ponto θ0 e encolha a janela r: o painel da direita dá zoom em 0−r, θ0+r].

f(θ) e a aproximação de Taylor de grau n em θ0 (arraste o ponto; a faixa clara é a janela de zoom)

Zoom na janela [θ0−r, θ0+r]

💡 Aumente o grau e veja a aproximação abraçar a função; como f é um polinômio de grau 4, com n = 4 a série é exata. Agora fixe o grau e encolha r: o erro máximo na janela cai com rn+1 (com n = 1, cai com ). Para passos pequenos, a primeira ordem domina, e é exatamente isso que justifica usar η pequeno na dedução: os termos com η², η³, … ficam desprezíveis e sobra ℒ(θ+ηA) ≈ ℒ(θ) + η·A∇ℒ(θ).

3 · Taxa de aprendizado em 1D

A regra vista em aula é θk+1 = θk − η·f′(θk): cada passo anda na direção oposta à derivada (a tangente laranja mostra essa inclinação) e η controla o tamanho do passo. A função abaixo não é convexa: tem um mínimo local e um mínimo global, como o modelo de Gabor dos slides (explorado de verdade nas seções 4 e 5). Arraste a bola para escolher o ponto inicial θ0 e experimente diferentes valores de η.

f(θ), tangente no ponto atual e trajetória (arraste a bola para mudar θ0)

f(θk) por iteração k

💡 Com η ≈ 0.01 a descida converge devagar e com η ≈ 0.1 converge rápido. Partindo da direita a trajetória cai no mínimo local: a descida de gradiente só encontra o fundo do vale onde começa. Perto de η ≈ 0.5 o passo fica grande o bastante para pular de um vale ao outro, em torno de 0.6 a trajetória oscila sem assentar e, para valores maiores, diverge (depende do ponto inicial: arraste a bola e teste).

4 · O modelo de Gabor: ajuste manual

O modelo não convexo dos slides tem só 2 parâmetros: ŷ = sin(θ0 + 0.06·θ1x) · exp(−(θ0 + 0.06·θ1x)² / 32). θ0 desloca a onda e θ1 controla a frequência. Os pontos abaixo foram gerados por um Gabor com ruído, como na figura da aula. Antes de qualquer descida de gradiente, tente ajustar a curva na mão movendo os dois sliders e observando a loss L(θ0, θ1) = (1/N)·Σ(ŷ(i) − y(i).

Dados (x, y) e a curva do modelo para os (θ0, θ1) atuais

Corte da loss: L em função de θ1, com θ0 fixo no slider (tracejado: mínimo global)

💡 Mesmo com apenas 2 parâmetros o ajuste já é não trivial: mexer em θ1 muda a frequência da onda inteira, e a loss sobe e desce várias vezes no caminho. O corte à direita mostra isso: para um θ0 fixo há vários vales, e só um deles encosta na linha tracejada do mínimo global. Consegue deixar L abaixo de 0.09? A próxima seção mostra a paisagem completa que você acabou de explorar às cegas.

5 · Paisagem da loss do Gabor e descida

A superfície L(θ0, θ1) do ajuste da seção 4, a mesma paisagem não convexa da figura dos slides: vários mínimos locais e um único mínimo global. Clique ou arraste na superfície para escolher a inicialização θ0 e rode a descida de gradiente. O painel da direita mostra, a cada passo, a curva correspondente ao θ atual sobre os dados.

Paisagem L(θ0, θ1) e trajetória da descida (clique ou arraste para escolher o início)

Dados e a curva do θ atual (tracejado: melhor ajuste)

💡 Partindo do vale certo (tente perto do topo, em θ0 ≈ 0, θ1 ≈ 22) a descida desliza até o mínimo global. Partindo de vales rasos ela fica presa num mínimo local ruim ou deriva lentamente para fora da janela: a curva ajustada continua longe dos dados mesmo com o gradiente quase nulo. É o que a aula resume como "a descida de gradiente só encontra o fundo do vale onde começa", e em redes profundas a paisagem nunca é convexa.

6 · Superfície 2D e momentum

Em paisagens anisotrópicas (vales alongados) o gradiente aponta quase perpendicular ao fundo do vale: com η fixo, o GD zigzagueia na direção íngreme e avança devagar na direção rasa. O momentum visto em aula, vt+1 = β·vt + (1−β)·∇ℒ(θt) com θt+1 = θt − η·vt+1, é uma média móvel exponencial dos gradientes: oscilações se cancelam e direções consistentes se acumulam. Aqui ℒ(θ1, θ2) = ½(θ1² + c·θ2²), onde c faz o papel do número de condição do vale.

Superfície ℒ(θ1, θ2) com bandas de nível (clique ou arraste para escolher θ0)

ℒ por iteração, escala log: GD (ciano) vs momentum (laranja)

💡 O GD puro só converge se η < 2/c: teste c = 50 com η = 0.09 e veja a trajetória ciano divergir. Com β = 0 o momentum recupera o GD padrão; com β ≈ 0.9 as oscilações na direção íngreme se cancelam e a trajetória desliza pelo vale, como na figura dos slides.

7 · Batch, mini-batch e SGD

Numa regressão linear ŷ = wx + b com N = 60 pontos, a loss é a média dos erros quadráticos L(w, b) = (1/N)·Σ(ŷ(i) − y(i). Em cada passo o gradiente pode ser estimado com tamanhos de batch diferentes, como na tabela da aula: o dataset inteiro (Batch Gradient Descent, atualização determinística), um mini-batch com 1 < m < N (Mini-batch Gradient Descent, estocástica) ou uma instância por vez (Stochastic Gradient Descent, altamente estocástica). As instâncias são amostradas sem reposição: uma época termina quando todas foram vistas.

Superfície L(w, b); o × verde é o mínimo de batch completo (clique para mudar o início)

Dados e a reta ajustada ŷ = wx + b (tracejado: ajuste de batch completo)

💡 Compare as trajetórias: o batch completo desce em linha suave e para no mínimo; o mini-batch flutua pouco; o SGD flutua muito e não converge a um ponto fixo, ele orbita o mínimo, exatamente como visto em aula. Aumente η no modo estocástico e veja os passos ficarem erráticos enquanto o batch completo continua estável.