Aula 6: Derivadas Parciais, Jacobiano e o Vetor Gradiente

Álgebra Linear e Otimização para Aprendizado de Máquina

Prof. Marcos Medeiros Raimundo

2026-09-13

Revisão e Introdução

Revisão Rápida

Aula 5: SVD \(X=U\Sigma V^T\) (qualquer matriz, via Teorema Espectral aplicado a \(X^TX,XX^T\)); Eckart-Young-Mirsky (melhor aproximação de posto \(k\)); Decomposição Polar \(X=QS\).

Um Corte Real: da Álgebra Linear ao Cálculo

5 aulas construíram uma linguagem para dados estáticos — nunca precisaram perguntar “como ajustar algo para reduzir um erro”.

Mas as Equações Normais (Aula 3) vieram de “a projeção minimiza \(\|\mathbf{y}-X\mathbf{w}\|^2\)” — minimizar uma função é, por definição, Cálculo. A Aula 3 usou essa ideia (via geometria) sem defini-la.

Parte 2 do curso (“Cálculo da Otimização Diferenciável”) fecha essa lacuna, a partir de hoje.

Roteiro da Aula

1. O que é derivada parcial, e por que sozinha não basta para qualquer direção?

2. Como generalizar para o vetor-gradiente, calculado por extenso numa perda quadrática real?

3. O que é derivada direcional, e por que o gradiente é a direção de subida mais íngreme?

4. Como generalizar para uma função vetorial — o Jacobiano?

Problema Motivador

\(L(\boldsymbol{\beta})=\|X\boldsymbol{\beta}-\mathbf{y}\|^2\) (California Housing). Aula 3 resolveu de uma vez (\(X^TX\hat{\boldsymbol{\beta}}=X^T\mathbf{y}\)) — mas imagine milhões de parâmetros (rede neural): resolver o sistema está fora de cogitação.

Dado \(\boldsymbol{\beta}\) qualquer: em que direção mover \(\boldsymbol{\beta}\) para reduzir \(L\) mais rápido, usando só informação local?

Pergunta

Com 1 parâmetro já sabemos achar o mínimo. Com 4, o quê muda?

Dica: o que o Cálculo 1 ensina sobre mínimos, e o que precisa mudar com mais de uma variável?

  • □ Com 1 parâmetro, mínimo \(\iff\) derivada \(=0\) — mas “a derivada” de uma função de 4 variáveis não é um único número.
  • □ Com exatamente 2 parâmetros (em vez de 4), a pergunta “que direção reduz mais rápido” deixaria de fazer sentido — só haveria uma direção possível.
  • □ Rede neural com milhões de pesos: a mesma pergunta é exatamente o que o treinamento resolve a cada passo.
  • □ Equações Normais sempre resolvíveis (bastaria \(X^TX\) maior) \(\Rightarrow\) “direção de redução mais rápida” só importa em brinquedos.

Resposta

O que muda de 1 para 4 parâmetros — Resposta

  • ✔ Exatamente o problema que abre a aula: precisamos de um objeto matemático novo (o gradiente, um vetor) para substituir “a derivada” quando há várias variáveis.
  • ✗ Com 2 (ou qualquer número \(\ge2\)) parâmetros já existem infinitas direções possíveis no plano (ou espaço) de parâmetros — a pergunta faz sentido a partir de 2 variáveis, não só com muitas.
  • ✔ Mesma mecânica, outro modelo de ML (rede neural, treinamento via gradiente).
  • ✗ O tamanho de \(X^TX\) cresce com o quadrado do número de parâmetros, e invertê-la custa cubo do tamanho — para milhões de parâmetros isso é computacionalmente inviável, não uma questão de “brinquedo”.

Voltando à pergunta: o objeto que falta é o gradiente — um vetor, não um número — construído a partir de derivadas parciais, tema do Bloco 2.

Derivada Parcial

Variando uma Variável de Cada Vez

Ideia central: para entender como \(f(x_1,\dots,x_n)\) muda, fixe todas as variáveis exceto uma, e aplique a derivada de uma variável (Cálculo 1) só àquela.

Definição (Derivada Parcial — MathML Def. 5.5)

\(\dfrac{\partial f}{\partial x_i} = \lim_{h\to 0} \dfrac{f(x_1,\dots,x_i+h,\dots,x_n)-f(\mathbf{x})}{h}\) — as demais variáveis ficam fixas.

Cada \(\partial f/\partial x_i\) é a derivada de uma variável do Cálculo 1, aplicada à função com as demais variáveis “congeladas” — nenhuma ferramenta nova para calcular uma parcial isolada.

Aplicando à Perda Quadrática

Versão simplificada com \(2\) parâmetros, \(5\) bairros, \(2\) atributos (MedInc, HouseAge), para a conta caber à mão.

MedInc HouseAge MedHouseVal
0 3.5987 31.0 3.405
1 1.4267 37.0 0.523
2 4.0455 33.0 1.972
3 3.5500 36.0 2.128
4 2.3393 19.0 1.182

\(L(\beta_1,\beta_2)=\sum_i(\beta_1\texttt{MedInc}_i+ \beta_2\texttt{HouseAge}_i-\texttt{MedHouseVal}_i)^2\). Em \((\beta_1,\beta_2)=(0{,}5;\,0{,}02)\): aproximar \(\partial L/ \partial\beta_1\) pelo limite (Def. 5.5) com \(h\) pequeno, comparar com a derivada exata.

L(0.5, 0.02) = 2.612078
dL/db1: limite numérico (h=0.0001) = 5.641952 | fórmula exata 2*sum(r*MedInc) = 5.637009
dL/db2: limite numérico (h=0.0001) = 95.547400 | fórmula exata 2*sum(r*HouseAge) = 95.039800

Praticamente idênticos (diferença de \(h\) finito) — Def. 5.5 concorda com a derivada por manipulação algébrica direta: \(\partial L/\partial\beta_1=2\sum_i r_i\texttt{MedInc}_i\), \(\partial L/\partial\beta_2=2\sum_i r_i\texttt{HouseAge}_i\) (\(r_i=\beta_1\texttt{MedInc}_i+\beta_2\texttt{HouseAge}_i- \texttt{MedHouseVal}_i\)).

Cada parcial isola o efeito de um atributo (resíduo \(\times\) coluna correspondente) — generalizado e organizado em notação matricial no Bloco 3: o gradiente.

Pergunta

Se a perda dependesse só de \(\beta_1\), o que ocorre com \(\partial L/\partial\beta_2\)?

Dica: qual das duas variáveis deixaria de existir na função?

  • \(L\) dependendo só de \(\beta_1\) \(\Rightarrow\partial L/ \partial\beta_2\) deixa de fazer sentido (\(\beta_2\) nem aparece mais).
  • □ Se \(r_i=\)MedHouseVal\(_i\) (sinal trocado) para todos os \(5\) bairros em \((\beta_1,\beta_2)=(0,0)\), isso impediria calcular \(\partial L/\partial\beta_1\) nesse ponto.
  • □ Regressão logística com \(2\) parâmetros: mesmo procedimento (fixar um, derivar o outro) se aplica sem alteração conceitual.
  • □ Fórmula de derivada de 1 variável \(\Rightarrow\partial L/ \partial\beta_1\) nunca depende do valor de \(\beta_2\) no ponto.

Resposta

Derivada parcial: o que muda e o que não muda — Resposta

  • ✔ Sem \(\beta_2\) na expressão, não há “o que variar” — a derivada parcial em relação a uma variável ausente é indefinida, não zero.
  • \(\partial L/\partial\beta_1=2\sum_ir_i\texttt{MedInc}_i\) é uma soma perfeitamente calculável mesmo que \(r_i\) tenha esse valor específico — nada na definição exige um valor particular de \(r_i\).
  • ✔ Mesma mecânica (derivar mantendo as demais variáveis fixas), outro modelo de ML (regressão logística).
  • ✗ Justamente o oposto: \(r_i=\beta_1\texttt{MedInc}_i+ \beta_2\texttt{HouseAge}_i-\texttt{MedHouseVal}_i\) depende de \(\beta_2\), e \(r_i\) entra na fórmula de \(\partial L/\partial\beta_1\) — o valor da parcial em \(\beta_1\) muda conforme o valor de \(\beta_2\) no ponto avaliado (as variáveis não interagem na definição, mas interagem no valor calculado, através da função em si).

Voltando à pergunta: “fixar as demais variáveis” é uma operação na definição (qual variável varia), não uma afirmação de que as demais variáveis não influenciam o valor numérico da derivada — elas influenciam, através do ponto onde a derivada é avaliada. O Bloco 3 generaliza isso para todas as \(4\) variáveis de uma vez.

O Gradiente como Vetor e as Regras de Derivação

Coletando as Derivadas Parciais num Vetor

Definição (Gradiente — MathML Def. 5.5, completa)

\(\nabla_{\mathbf{x}}f=\dfrac{df}{d\mathbf{x}}=\left[\dfrac{\partial f} {\partial x_1}\ \cdots\ \dfrac{\partial f}{\partial x_n}\right]\in \mathbb{R}^{1\times n}\)vetor-linha, chamado gradiente (= Jacobiano, caso escalar).

Observação (convenção linha — MathML, p. 147)

Vetor-linha, não coluna (escolha deliberada): generaliza direto para funções vetoriais (gradiente \(\to\) matriz, o Jacobiano); aplica a regra da cadeia multivariada sem se preocupar com dimensão.

Aviso: parte da literatura de ML usa gradiente como vetor-coluna (Aula 8, Gradiente Descendente, vai usar essa forma) — mesma informação, transposta uma da outra; nunca misturar as duas no mesmo cálculo.

As Regras Básicas de Derivação

Regras de derivação (MathML §5.2.1)

  • Soma: \(\partial(f+g)/\partial x=\partial f/\partial x+\partial g/\partial x\).
  • Produto: \(\partial(fg)/\partial x=(\partial f/\partial x)g+f (\partial g/\partial x)\).
  • Cadeia: \(\partial(g\circ f)/\partial x=(\partial g/\partial f) (\partial f/\partial x)\).

Desenvolvimento: o Gradiente da Perda Quadrática

Premissa: \(\mathbf{r}(\boldsymbol{\beta}):=X\boldsymbol{\beta}- \mathbf{y}\), \(L=\mathbf{r}^T\mathbf{r}=\sum_ir_i^2\), \(r_i=\sum_kX_{ik}\beta_k-y_i\) (afim em \(\boldsymbol{\beta}\)).

Passo 1 (soma + cadeia): \(\partial L/\partial\beta_j=\sum_i \partial(r_i^2)/\partial\beta_j=\sum_i2r_i\cdot\partial r_i/ \partial\beta_j\).

Passo 2 (parte afim): \(\partial r_i/\partial\beta_j=X_{ij}\) diretamente.

Passo 3 (montagem): \(\partial L/\partial\beta_j=2\sum_iX_{ij}r_i= 2(X^T\mathbf{r})_j\Rightarrow\nabla_{\boldsymbol{\beta}}L= 2\mathbf{r}^TX=2(X\boldsymbol{\beta}-\mathbf{y})^TX\).

Resultado

\(\nabla_{\boldsymbol{\beta}}\|X\boldsymbol{\beta}-\mathbf{y}\|^2= 2(X\boldsymbol{\beta}-\mathbf{y})^TX\).

Ponte com a Aula 3: \(\nabla L=\mathbf{0}\iff X^T(X\boldsymbol{ \beta}-\mathbf{y})=\mathbf{0}\iff X^TX\boldsymbol{\beta}=X^T\mathbf{y}\)exatamente as Equações Normais. “Resíduo ortogonal” (Aula 3) e “gradiente zero” (hoje) são a mesma condição, duas portas diferentes.

Verificação Numérica no Problema-Fio

Conferir \(\nabla_{\boldsymbol{\beta}}L\) em \(\boldsymbol{\beta}_0= (0{,}4;\,0{,}02;\,-0{,}15;\,0{,}7)\) (ponto qualquer, não o ótimo) contra diferença finita central.

beta0 = [ 0.4   0.02 -0.15  0.7 ]
L(beta0) = 10862.179369274

gradiente (fórmula 2 X^T r, forma coluna): [-5846.1288 71951.8811  4014.1279  1643.7195]
gradiente (diferença finita central):       [-5846.1288 71951.8811  4014.1279  1643.7195]

diferença máxima absoluta: 8.144434104906395e-08

Coincidem até a \(4^a\) casa decimal (diferença \(<10^{-6}\), erro de truncamento da diferença finita). Calculado em forma coluna (\(2X^T\mathbf{r}\)) — mesma informação do vetor-linha derivado acima, transposta.

Pergunta

Trocar o quadrado por \(L_1\) (\(\sum_i|r_i|\)): a derivação continua igual?

Dica: releia o Passo 1 — qual regra deixa de valer, exatamente?

  • □ Quebraria no Passo 1: \(h(t)=|t|\) não é diferenciável em \(t=0\), diferente de \(h(t)=t^2\).
  • □ Com \(1000\) parâmetros em vez de \(4\), os Passos 1-3 continuam valendo, dando \(\nabla_{\boldsymbol{\beta}}L=2(X\boldsymbol{\beta}- \mathbf{y})^TX\), \(X\in\mathbb{R}^{N\times1000}\).
  • □ Regressão Ridge: regra da soma do Passo 1 deriva o termo de regularização separadamente, soma ao gradiente já calculado.
  • □ Passo 2 usa “\(r_i\) afim” \(\Rightarrow\) fórmula só vale para o \(X\) específico do California Housing, não para qualquer \(X\) de mesmo formato.

Resposta

Trocar quadrado por \(L_1\) — Resposta

  • ✔ Exatamente o ponto de ruptura: a regra da cadeia do Passo 1 precisa de \(h\) diferenciável — \(|t|\) falha só em \(t=0\), mas isso já basta para invalidar a derivação por extenso (o resíduo pode passar por \(0\)).
  • ✔ Nada no argumento usa \(n=4\) especificamente — a derivação vale para qualquer número de colunas de \(X\).
  • ✔ A regra da soma (MathML §5.2.1) permite derivar cada termo aditivo da perda separadamente — o gradiente da soma é a soma dos gradientes.
  • ✗ O Passo 2 usa que \(r_i\) é afim (qualquer \(X\), qualquer formato), não uma propriedade específica dos dados do California Housing — a fórmula vale para qualquer matriz de design real.

Voltando à pergunta: não, a substituição por \(L_1\) quebra precisamente a regra da cadeia do Passo 1 — \(|t|\) tem um “bico” em \(t=0\), sem derivada aí. Otimizar perdas assim (não-suaves) exige uma ferramenta diferente (subgradientes), fora do escopo desta aula — reservado para a Aula 15.

Derivada Direcional e a Direção de Subida Mais Íngreme

O Que o Gradiente Ainda Não Responde

Cada \(\partial L/\partial\beta_j\) mede a taxa de variação ao longo de um eixo. Um passo de treinamento move todos os parâmetros ao mesmo tempo, numa direção arbitrária \(\mathbf{v}\) — a pergunta do Problema Motivador não é sobre eixos, é sobre todas as direções.

Construção nossa: nenhuma das 3 fontes define derivada direcional no material coberto (MathML não usa o termo; optml.pdf define, mas está reservado para aulas posteriores). Usamos só regra da cadeia (Bloco 3) + Cauchy-Schwarz (Aula 1).

Definindo a Derivada Direcional

Definição (Derivada Direcional — construção nossa)

\(D_{\mathbf{v}}f(\mathbf{x}):=\lim_{h\to0}\dfrac{f(\mathbf{x}+ h\mathbf{v})-f(\mathbf{x})}{h}\), \(\|\mathbf{v}\|=1\).

Generaliza a parcial: \(\mathbf{v}=\mathbf{e}_j\Rightarrow D_{\mathbf{e}_j}f(\mathbf{x})=\partial f/\partial x_j\).

Premissa: \(g(h):=f(\mathbf{x}+h\mathbf{v})\Rightarrow D_{\mathbf{v}}f(\mathbf{x})=g'(0)\).

Passo 1 (cadeia, \(x_i(h)=x_i+hv_i\)): \(g'(h)=\sum_i\dfrac{\partial f}{\partial x_i}(\mathbf{x}+h\mathbf{v})\,v_i\).

Passo 2 (\(h=0\)): \(D_{\mathbf{v}}f(\mathbf{x})=\sum_i\dfrac{\partial f}{\partial x_i}(\mathbf{x})v_i=\nabla f(\mathbf{x})\,\mathbf{v}\) (vetor-linha \(\times\) vetor-coluna = produto interno).

A Direção de Subida Mais Íngreme

MathML afirma sem provar (“a derivada aponta na direção de subida mais íngreme”, p. 141 e 227-228). Provamos via Cauchy-Schwarz (Aula 1).

Proposição (prova nossa)

\(\nabla f(\mathbf{x})\ne\mathbf{0}\): entre todo \(\mathbf{v}\) unitário, \(D_{\mathbf{v}}f(\mathbf{x})\) é máxima em \(\mathbf{v}^\star=\nabla f(\mathbf{x})^T/\|\nabla f(\mathbf{x})\|\), valor máximo \(\|\nabla f(\mathbf{x})\|\).

Prova: \(D_{\mathbf{v}}f=\langle\nabla f(\mathbf{x})^T,\mathbf{v} \rangle\). Cauchy-Schwarz: \(|\langle\nabla f^T,\mathbf{v}\rangle|\le \|\nabla f\|\cdot1\), igualdade sse \(\mathbf{v}\parallel\nabla f^T\) (mesmo sentido, para o máximo).

\(\mathbf{v}^\star=\nabla f^T/\|\nabla f\|\Rightarrow D_{\mathbf{v}^\star}f=\|\nabla f\|^2/\|\nabla f\|=\|\nabla f\|\) — bate com a cota, logo é o máximo. \(\blacksquare\)

Gradiente (transposto) = direção de subida mais íngreme, normalizado; sua norma = taxa de aumento ótima. \(-\nabla f^T/\|\nabla f\|\) = descida mais íngreme (Aula 8, Gradiente Descendente).

Verificação Numérica e Geométrica

Exemplo do Bloco 2, em \((\beta_1,\beta_2)=(0{,}5;\,0{,}02)\): \(\nabla L \approx[5{,}637\ \ 95{,}040]\) (norma \(\approx95{,}207\)). Calcular \(D_{\mathbf{v}}L\) para todos os ângulos, confirmar máximo na direção do gradiente.

gradiente 2D em b0: [ 5.637  95.0398], norma = 95.2068
ângulo do gradiente: 86.61 graus
max(D_v) sobre a grade de ângulos: 95.2061 (em theta = 86.83 graus)

Painel direito: \(D_{\mathbf{v}}L\) varia como cosseno, máximo \(=\|\nabla L\|\approx95{,}207\) exatamente no ângulo do gradiente (\(\approx86{,}6°\)); mínimo (mesma magnitude, sinal oposto) na direção oposta.

Painel esquerdo: gradiente (seta ampliada) aponta para fora, sentido de crescimento. Eixos em escalas diferentes \(\Rightarrow\) ortogonalidade às curvas não fica visualmente exata aqui (é exata em eixos de mesma escala — o fato matemático não depende do desenho).

Pergunta

\(\nabla f(\mathbf{x})=\mathbf{0}\): o que a Proposição diz sobre a direção de subida?

Dica: releia a hipótese exata da Proposição.

  • \(\nabla f(\mathbf{x})=\mathbf{0}\Rightarrow\) Proposição não se aplica (hipótese exige \(\nabla f\ne\mathbf{0}\)) — nenhuma direção aumenta \(f\) a taxa positiva de primeira ordem.
  • \(D_{\mathbf{v}_1}f=D_{\mathbf{v}_2}f\) para \(\mathbf{v}_1\ne \mathbf{v}_2\) unitários \(\Rightarrow\nabla f(\mathbf{x})=\mathbf{0}\) necessariamente.
  • □ Rede neural com múltiplos mínimos locais: em qualquer ponto de gradiente não-nulo, existe direção de subida mais íngreme única, independente do número de mínimos locais na superfície inteira.
  • □ Derivada direcional generaliza a parcial \(\Rightarrow\) o máximo de \(D_{\mathbf{v}}f\) é sempre igual a alguma parcial individual.

Resposta

Gradiente nulo e direção de subida — Resposta

  • ✔ Exatamente a hipótese que a prova usa (na divisão por \(\|\nabla f(\mathbf{x})\|\)) — sem ela, a proposição não garante nada, e de fato \(\nabla f=\mathbf{0}\) é o critério de ponto crítico (tema da Aula 7).
  • ✗ Contraexemplo direto: se \(\nabla f(\mathbf{x})=\mathbf{0}\), \(D_{\mathbf{v}}f(\mathbf{x})=\mathbf{0}\) para toda direção $ $ (inclusive direções distintas) — a igualdade entre direções não força gradiente nulo em geral, só quando todas as direções empatam.
  • ✔ A proposição é local (depende só do gradiente naquele ponto) — o número de mínimos locais da superfície inteira é irrelevante para a direção de subida mais íngreme naquele ponto específico.
  • ✗ O valor máximo é \(\|\nabla f(\mathbf{x})\|\) (a norma do vetor inteiro), quase sempre maior que qualquer componente individual \(|\partial f/\partial x_j|\) isolada (pela própria definição de norma euclidiana somando quadrados de todas as componentes).

Voltando à pergunta: num ponto de gradiente nulo, a Proposição simplesmente não se aplica — não existe direção de subida garantida de primeira ordem. Esse é, precisamente, o critério de ponto crítico que abre a Aula 7 (convexidade e a Hessiana).

O Jacobiano: Generalizando para Funções Vetoriais

Quando a Função Devolve Vários Números de Uma Vez

Gradiente (Bloco 3): \(f:\mathbb{R}^n\to\mathbb{R}\). Mas \(\mathbf{r}(\boldsymbol{\beta}):=X\boldsymbol{\beta}-\mathbf{y}\) (Bloco 3) é \(\mathbb{R}^4\to\mathbb{R}^{16\,640}\) — um número por observação.

Definição (Jacobiano — MathML Def. 5.6)

\(f:\mathbb{R}^n\to\mathbb{R}^m\Rightarrow J=\nabla_{\mathbf{x}}f\in \mathbb{R}^{m\times n}\), \(J(i,j)=\partial f_i/\partial x_j\). Caso \(m=1\): \(J\) = vetor-linha = o gradiente já definido (o gradiente é caso particular do Jacobiano).

Convenção (numerator layout, MathML p. 150-151): linhas = \(f\), colunas = \(\mathbf{x}\). Existe a denominator layout (transposta) — mesma cautela do Bloco 3, agora para matrizes.

O Jacobiano do Resíduo: \(J_{\mathbf{r}}(\boldsymbol{\beta})=X\)

\(r_i(\boldsymbol{\beta})=\sum_kX_{ik}\beta_k-y_i\Rightarrow J_{\mathbf{r}}(i,j)=\partial r_i/\partial\beta_j=X_{ij}\Rightarrow J_{\mathbf{r}}(\boldsymbol{\beta})=X\).

O Jacobiano do resíduo é a própria matriz de design — não coincidência: função afim \(\mathbf{r}=A\boldsymbol{\beta}+ \mathbf{c}\Rightarrow J_{\mathbf{r}}=A\) (constante), mesmo fato do Passo 2 do Bloco 3.

A Regra da Cadeia com Jacobiano Recupera o Bloco 3

MathML resolve exatamente este problema (mínimos quadrados de modelo linear) como exemplo de regra da cadeia com Jacobiano (Exemplo 5.11, tradução/adaptação nossa; usam \(\mathbf{e}=\mathbf{y}-\Phi \boldsymbol{\theta}=-\mathbf{r}\)).

Regra da cadeia com Jacobiano (MathML Exemplo 5.11)

\(L(\boldsymbol{\beta})=g(\mathbf{r}(\boldsymbol{\beta}))\), \(g(\mathbf{r})=\mathbf{r}^T\mathbf{r}\Rightarrow\nabla_{\boldsymbol{ \beta}}L=\nabla_{\mathbf{r}}g\cdot J_{\mathbf{r}}(\boldsymbol{\beta})\).

\(\nabla_{\mathbf{r}}g(\mathbf{r})=2\mathbf{r}^T\) (mesma regra do Passo 1, Bloco 3); \(J_{\mathbf{r}}(\boldsymbol{\beta})=X\) (Bloco 5).

\(\nabla_{\boldsymbol{\beta}}L=(2\mathbf{r}^T)(X)=2(X\boldsymbol{\beta}- \mathbf{y})^TX\)idêntico ao Bloco 3, por rota diferente (sem repetir a soma termo a termo).

Vantagem citada pelo MathML: a rota direta (expandir tudo) “continua prática para funções simples, mas fica impraticável para composições profundas” — o caso de redes neurais com várias camadas (Aula 10, Diferenciação Automática).

Verificando o Jacobiano do Resíduo Numericamente

Confirmar \(J_{\mathbf{r}}(\boldsymbol{\beta})=X\): a \(j\)-ésima coluna de \(J_{\mathbf{r}}\) (diferença finita) deve coincidir com a \(j\)-ésima coluna de \(X\).

coluna 0 (MedInc): erro máximo |J_numerico - X[:,0]| = 1.15e-10
coluna 1 (HouseAge): erro máximo |J_numerico - X[:,1]| = 1.34e-10
coluna 2 (AveRooms): erro máximo |J_numerico - X[:,2]| = 2.29e-10
coluna 3 (AveBedrms): erro máximo |J_numerico - X[:,3]| = 1.47e-10

erro máximo entre as 4 colunas: 2.29e-10

Erro máximo \(\sim10^{-10}\) (puro truncamento) nas \(4\) colunas — confirma \(J_{\mathbf{r}}(\boldsymbol{\beta})=X\) exatamente, para qualquer \(\boldsymbol{\beta}\) (Jacobiano de função afim não depende do ponto).

Pergunta

Modelo com 2 saídas: como muda a forma do Jacobiano do resíduo?

Dica: quantas linhas/colunas tem um Jacobiano \(m\times n\), e o que muda quando \(m\) aumenta?

  • □ Resíduo com \(2\) saídas por observação \(\Rightarrow\) Jacobiano com o dobro de linhas do atual (mesmas \(4\) colunas, mesmas \(16\,640\) observações).
  • \(X\) com \(1000\) atributos (1 saída): \(J_{\mathbf{r}}\) continua matriz, agora com \(1000\) colunas.
  • □ Rede neural, camada de saída com \(10\) neurônios: Jacobiano (numerator layout) tem \(10\) linhas.
  • □ Gradiente = caso particular do Jacobiano (\(m=1\)) \(\Rightarrow\nabla_{\boldsymbol{\beta}}L=\nabla_{\mathbf{r}}g\cdot J_{\mathbf{r}}\) só vale para perda quadrática especificamente.

Resposta

Jacobiano com múltiplas saídas — Resposta

  • ✔ Cada saída adicional por observação vira uma linha adicional no Jacobiano (numerator layout: linhas = \(f\)) — \(2\) saídas por observação, \(16\,640\) observações, dobra as linhas.
  • ✔ O número de colunas do Jacobiano é sempre o número de parâmetros (aqui, atributos) — \(1000\) atributos \(\Rightarrow\) \(1000\) colunas, independente do número de saídas.
  • ✔ Numerator layout: linhas = elementos de \(f\) (aqui, os \(10\) neurônios de saída) — exatamente a Definição 5.6.
  • ✗ A regra da cadeia com Jacobiano (MathML Exemplo 5.11, adaptado) vale para qualquer composição \(L=g(\mathbf{r}(\boldsymbol{ \beta}))\) com \(g\) e \(\mathbf{r}\) diferenciáveis — a perda quadrática é só o caso usado nesta aula, não uma exigência da regra.

Voltando à pergunta: o Jacobiano generaliza exatamente nessa direção — mais saídas, mais linhas; mais parâmetros, mais colunas — sem exigir nenhuma mudança na definição, só na contagem de \(m\) e \(n\).

Verificação Numérica

Por Que Verificar Gradientes Numericamente é Prática Padrão

Blocos anteriores já usaram diferença finita central sem discutir como escolher \(h\). Implementações de gradiente/Jacobiano são código — têm bugs. Competência desta aula: verificar numericamente, não só calcular.

O Compromisso na Escolha de \(h\)

\(h\) grande: erro de truncamento \(O(h^2f''')\) (Taylor, padrão de Cálculo Numérico). \(h\) pequeno: erro de arredondamento \(O(\epsilon_{\text{máquina}}/h)\) (subtração de números quase iguais).

Prática usual: \(h\sim\epsilon_{\text{máquina}}^{1/3}\approx 10^{-5}\)\(10^{-6}\) (faixa já usada, sem justificar, nos chunks anteriores).

Caso especial honesto: \(L(\boldsymbol{\beta})\) é exatamente quadrática \(\Rightarrow f'''=0\Rightarrow\) erro de truncamento zero para esta perda — só arredondamento aparece, sem o “U” clássico.

h maior -> erro menor (só arredondamento, cresce conforme h diminui):
  h=1.00e-02   erro=4.547e-11
  h=1.22e-04   erro=5.828e-09
  h=1.49e-06   erro=5.909e-07
  h=1.82e-08   erro=2.451e-05
  h=2.23e-10   erro=1.460e-03
  h=2.72e-12   erro=1.528e-01

Erro cresce monotonicamente conforme \(h\to0\) (sem “U”, sem truncamento). Para função com \(f'''\ne0\) (a maioria das perdas de redes neurais), o “U” reaparece — \(h\) grande demais também tem custo.

Faixa \(h\in[10^{-6},10^{-4}]\) (Blocos 2-5, sombreada): pequena o bastante para não expor arredondamento, grande o bastante para funcionar mesmo em funções não-quadráticas — escolha prática segura por padrão.

Fechamento e Ponte para a Aula 7

Retomando as Perguntas de Abertura

1. \(\partial f/\partial x_j\): taxa de variação num eixo só — sozinha não cobre outras direções (derivada direcional, pergunta 3).

2. Gradiente = vetor-linha das parciais (Def. 5.5). Para \(L=\|X\boldsymbol{\beta}-\mathbf{y}\|^2\): \(\nabla_{\boldsymbol{\beta}}L =2(X\boldsymbol{\beta}-\mathbf{y})^TX\) — anulamento = Equações Normais.

3. \(D_{\mathbf{v}}f=\nabla f\cdot\mathbf{v}\); Cauchy-Schwarz (Aula 1) prova máximo em \(\mathbf{v}=\) gradiente normalizado, valor \(\|\nabla f\|\).

4. Jacobiano (Def. 5.6): matriz \(m\times n\), gradiente = caso \(m=1\). \(J_{\mathbf{r}}(\boldsymbol{\beta})=X\) recupera o Bloco 3 via regra da cadeia — rota que escala para redes neurais (Aula 10).

Ponte para a Aula 7

\(\nabla L=\mathbf{0}\) identifica ponto crítico — nenhuma direção de primeira ordem aumenta/diminui \(f\) ali (a Proposição do Bloco 4 deixa de se aplicar exatamente nesse caso).

Mas ponto crítico não é, automaticamente, mínimo — pode ser máximo ou sela. Para \(L(\boldsymbol{\beta})=\|X\boldsymbol{\beta}- \mathbf{y}\|^2\), funciona porque \(X^TX\) é PSD (Aula 4) — garantia extra, não do gradiente sozinho.

O que decide mínimo/máximo/sela, em geral: a segunda derivada em várias variáveis, a Hessiana — Aula 7 (Convexidade e a Hessiana).

Exercícios Soluções