Soluções — Aula 6: Derivadas Parciais, Gradiente e Jacobiano
Gabarito de exercicios.qmd
Dica(Resposta) Teste 1 — Derivada parcial: definição e interpretação
- ✔ Verdadeiro — \(f(x_1,x_2)=g(x_1)\) (sem dependência de \(x_2\)) \(\Rightarrow\partial f/\partial x_2=\lim_{h\to0}[g(x_1)-g(x_1)]/h=0\) identicamente, pela própria definição de derivada parcial (ver Convenções em
exercicios.qmd) aplicada literalmente. - ✗ Falso — A definição exige um limite bilateral \(h\to0\) (a mesma convenção da derivada de uma variável do Cálculo 1) — precisa existir e coincidir tanto pela direita quanto pela esquerda. Um limite unilateral não é o que a definição pede, e não garante a mesma propriedade (por exemplo, não garante a existência da derivada num ponto de “quina”, onde os limites laterais existem mas diferem).
- ✔ Verdadeiro — A definição de derivada parcial não faz nenhuma suposição sobre a forma específica de \(f\) — vale para qualquer função diferenciável de várias variáveis, incluindo a entropia cruzada da regressão logística.
- ✗ Falso — Gradiente nulo identifica um ponto crítico, não automaticamente um mínimo — pode ser máximo ou (em dimensão \(\ge2\)) ponto de sela. Essa distinção é exatamente o que fica em aberto no Fechamento desta aula, resolvida com a ferramenta da segunda derivada em várias variáveis (a Hessiana), tema de uma aula futura.
Dica(Resposta) Teste 2 — O gradiente como vetor: convenção linha/coluna
- ✗ Falso — A convenção linha-vs-coluna é só uma questão de organização/disposição dos números já calculados — cada derivada parcial \(\partial f/\partial x_i\) tem o mesmo valor numérico independente de como as \(n\) derivadas são arranjadas (linha ou coluna, uma é a transposta da outra).
- ✔ Verdadeiro — Com \(n=1\), o “vetor-coluna” \(1\times1\) da definição de gradiente é, na prática, um único número — a derivada \(df/dx\) do Cálculo 1, sem generalização nenhuma sendo efetivamente exigida.
- ✔ Verdadeiro — A ideia de “coletar derivadas parciais” (uma por entrada de \(W\)) generaliza para qualquer estrutura de parâmetros — o gradiente em relação a uma matriz de pesos organiza as derivadas parciais em relação a cada entrada de \(W\) numa estrutura da mesma forma que \(W\).
- ✗ Falso — Confunde o codomínio de \(f\) (escalar, \(\mathbb{R}\)) com a natureza do gradiente (vetorial, \(n\) componentes dispostas em um vetor-coluna \(n \times 1\)) — o gradiente é um objeto vetorial mesmo quando \(f\) devolve um único número.
Dica(Resposta) Teste 3 — Regras de derivação e o gradiente da perda quadrática
- ✔ Verdadeiro — Pela regra da soma, o gradiente de uma constante é zero — somar uma constante à perda não muda o gradiente em nenhum ponto.
- ✔ Verdadeiro — \(X=\mathbf{0}\Rightarrow\mathbf{r}(\boldsymbol{\beta})=-\mathbf{y}\) (constante em \(\boldsymbol{\beta}\)) e \(\nabla_{\boldsymbol{\beta}}L=2X^T\mathbf{r}=2\cdot\mathbf{0}\cdot\mathbf{r}=\mathbf{0}\), para qualquer \(\boldsymbol{\beta}\).
- ✔ Verdadeiro — Aplicação direta da regra da soma a dois termos, cada um já derivado individualmente pela fórmula do problema-fio (ver Convenções) — nenhuma ferramenta nova necessária.
- ✗ Falso — \(\mathbf{r}^T\mathbf{r}=\sum_ir_i\cdot r_i\) é literalmente uma soma de produtos \(f(\boldsymbol{\beta})\cdot g(\boldsymbol{\beta})\) com \(f=g=r_i\) (cada \(r_i\) uma função escalar de \(\boldsymbol{\beta}\)) — a regra do produto se aplica termo a termo perfeitamente bem, dando \(\partial(r_i\cdot r_i)/\partial\beta_j=2r_i\,\partial r_i/\partial\beta_j\), exatamente o mesmo resultado obtido via regra da cadeia na derivação termo a termo (rota alternativa, não uma impossibilidade).
Dica(Resposta) Teste 4 — Derivada direcional
- ✔ Verdadeiro — \(D_{\mathbf{v}}f(\mathbf{x})=\langle\nabla f(\mathbf{x}),\mathbf{v}\rangle=\nabla f(\mathbf{x})^T\mathbf{v}\); com \(\mathbf{v}=-\mathbf{e}_j\), o produto dá \(-\partial f/\partial x_j\) diretamente (linearidade do produto interno).
- ✔ Verdadeiro — O produto interno é linear em \(\mathbf{v}\) — se \(\mathbf{v}\to\mathbf{0}\), \(\langle\nabla f(\mathbf{x}),\mathbf{v}\rangle\to0\) trivialmente, qualquer que seja \(\nabla f(\mathbf{x})\). É exatamente por isso que a definição de derivada direcional exige \(\Vert{}\mathbf{v}\Vert{}=1\) — sem essa normalização, a derivada direcional não seria comparável entre diferentes direções (a magnitude de \(\mathbf{v}\) dominaria a comparação, não a direção).
- ✔ Verdadeiro — \(D_{\mathbf{v}}f(\mathbf{x})=\langle\nabla f(\mathbf{x}),\mathbf{v}\rangle\); se \(\mathbf{v}\perp\nabla f(\mathbf{x})\), o produto interno é zero por definição de perpendicularidade — vale para qualquer função diferenciável, incluindo superfícies de perda de redes neurais.
- ✗ Falso — “Manter as demais variáveis fixas” é uma característica específica de mover-se ao longo de um eixo coordenado (\(\mathbf{v}=\mathbf{e}_j\)) — para uma direção oblíqua genérica (com mais de uma componente não-nula), todas as coordenadas de \(\mathbf{x}\) mudam simultaneamente conforme \(h\) varia em \(\mathbf{x}+h\mathbf{v}\), nenhuma fica fixa. A generalização preserva a fórmula (via gradiente), não essa propriedade específica das parciais.
Dica(Resposta) Teste 5 — A direção de subida mais íngreme
- ✔ Verdadeiro — Por simetria do argumento de Cauchy-Schwarz: o mínimo de \(\langle\nabla f(\mathbf{x}),\mathbf{v}\rangle\) sobre \(\Vert{}\mathbf{v}\Vert{}=1\) ocorre quando os vetores são paralelos mas de sentidos opostos — o mesmo raciocínio da prova original, só buscando a igualdade do lado negativo da desigualdade \(-\Vert{}\nabla f\Vert{}\le\langle\nabla f,\mathbf{v}\rangle\).
- ✔ Verdadeiro — A proposição de subida mais íngreme dá o valor máximo como \(\Vert{}\nabla f(\mathbf{x})\Vert{}\) diretamente — substituindo \(\Vert{}\nabla f(\mathbf{x})\Vert{}=1\), o máximo é \(1\).
- ✔ Verdadeiro — O problema “encontrar, sob restrição de norma fixa, a perturbação que mais aumenta a perda” é exatamente o problema que a proposição resolve — a resposta é a direção do gradiente (normalizado), a mesma lógica usada (de forma simplificada) em métodos de geração de exemplos adversariais como o Fast Gradient Sign Method.
- ✗ Falso — A condição de igualdade em valor absoluto (\(\vert{}\langle\nabla f,\mathbf{v}\rangle\vert{}=\Vert{}\nabla f\Vert{}\)) permite dois vetores paralelos (mesmo sentido ou oposto), mas só um deles atinge o máximo (o de mesmo sentido); o outro atinge o mínimo (valor \(-\Vert{}\nabla f\Vert{}\)), não outro máximo. Só existe uma única direção maximizadora, não duas.
Dica(Resposta) Teste 6 — O Jacobiano: definição e generalização
- ✔ Verdadeiro — Pela convenção de disposição adotada na aula (denominator layout, Secção 5.1), o Jacobiano de \(f:\mathbb{R}^n\to\mathbb{R}^1\) é uma matriz \(n\times 1\) (vetor-coluna), coincidindo com a definição do gradiente.
- ✔ Verdadeiro — Toda derivada parcial de uma função constante é zero (mesma lógica do item (a) do primeiro bloco de exercícios, generalizada componente a componente para \(f_1,\dots,f_m\)).
- ✔ Verdadeiro — A definição de Jacobiano não faz nenhuma suposição sobre como \(f\) é implementada (multiplicação matricial direta, convolução, ou qualquer outra operação diferenciável) — só exige que \(f\) seja diferenciável e mapeie \(\mathbb{R}^n\to\mathbb{R}^m\).
- ✗ Falso — O Jacobiano do resíduo é constante especificamente porque \(\mathbf{r}(\boldsymbol{\beta})\) é afim em \(\boldsymbol{\beta}\) — para uma função vetorial não-linear (por exemplo, envolvendo quadrados ou exponenciais de \(\boldsymbol{\beta}\)), o Jacobiano geral depende do ponto de avaliação. Generalizar do caso afim para “qualquer função” é o erro do item.
Dica(Resposta) Teste 7 — A regra da cadeia com Jacobiano
- ✔ Verdadeiro — Mesma ruptura que ocorre ao trocar \(t^2\) por \(\vert{}t\vert{}\) na derivação da perda quadrática (a norma \(L_1\) tem “bicos” exatamente nos pontos onde alguma coordenada é zero), agora localizada no gradiente de \(g\) em relação a \(\mathbf{r}\) (não mais no gradiente de \(L\) em relação a \(\boldsymbol{\beta}\) diretamente).
- ✔ Verdadeiro — \(X^T=I\Rightarrow\mathbf{r}(\boldsymbol{\beta})=\boldsymbol{\beta}-\mathbf{y}\); substituindo em \(\nabla_{\boldsymbol{\beta}}L=J_{\mathbf{r}}\cdot\nabla_{\mathbf{r}}g=I\cdot(2\mathbf{r})=2\mathbf{r}=2(\boldsymbol{\beta}-\mathbf{y})\) diretamente.
- ✔ Verdadeiro — A rota da regra da cadeia com Jacobiano é a que “escala para composições profundas de funções” — a base matemática da retropropagação em redes neurais, tema de uma aula futura.
- ✗ Falso — Multiplicação de matrizes não é comutativa — mesmo nos raros casos em que as dimensões permitiriam multiplicar nos dois sentidos, os valores resultantes seriam, em geral, diferentes (e, na prática, \(J_{\mathbf{r}}\) é \(n\times m\) e \(\nabla_{\mathbf{r}}g\) é \(m\times 1\): só a ordem \(J_{\mathbf{r}}\cdot\nabla_{\mathbf{r}}g\) é sequer dimensionalmente válida em geral, dando \(n\times 1\); a ordem trocada exigiria \(n=1\) para sequer fazer sentido).
Dica(Resposta) Teste 8 — Verificação numérica
- ✔ Verdadeiro — O erro de truncamento da diferença finita central é \(O(h^2f'''(x))\) (ver Convenções); para um polinômio cúbico genérico, \(f'''\ne0\) (é uma constante não-nula) — diferente do caso quadrático desta aula, onde \(f'''\equiv0\) identicamente.
- ✔ Verdadeiro — \(h=0\) dá \(0/0\) (numerador e denominador ambos zero) — uma indeterminação, não um valor definido; é exatamente por isso que a definição de derivada parcial exige o limite \(h\to0\), não a avaliação em \(h=0\).
- ✔ Verdadeiro — É a prática padrão de “gradient checking” em implementações de aprendizado de máquina do zero — exatamente o que esta aula demonstrou no problema-fio, generalizável a qualquer implementação nova de gradiente.
- ✗ Falso — Para uma função com terceira derivada não-nula (a maioria das perdas reais, item (a) deste bloco), \(h\) grande demais reintroduz erro de truncamento significativo — o compromisso entre erro de arredondamento (pequeno \(h\)) e erro de truncamento (grande \(h\)) tem um ponto ótimo intermediário, não um extremo “quanto maior, melhor”. O caso quadrático desta aula (sem termo de truncamento) é a exceção, não a regra geral.