Otimização
- Método de Newton
- Gradiente Descendente
Exercício 1
Aplique duas iterações do método de Newton para encontrar o ponto máximo da seguinte função: \(f(x) = -(x - 3)^4\)
para $ x_0 = 1 $.
Resposta
O método de Newton é dado pela fórmula: \(x_{n+1} = x_n - \frac{f'(x_n)}{f''(x_n)},\) onde $ f’(x) $ e $f’‘(x)$ são, respectivamente, a primeira e a segunda derivadas de $f(x)$.
Temos que: \(f'(x) = -4(x - 3)^3\)
e
\[f''(x) = -12(x - 3)^2\]Agora, aplicamos duas iterações do método de Newton com $x_0 = 1$:
Para $x_0 = 1$: \(f'(1) = -4(1 - 3)^3 = -4(-2)^3 = -4(-8) = 32,\)
e
\(f''(1) = -12(1 - 3)^2 = -12(-2)^2 = -12(4) = -48.\) Substituímos na fórmula de Newton: \(\begin{align*} x_1 &= x_0 - \frac{f'(x_0)}{f''(x_0)} \\ &= 1 - \frac{32}{-48} \\ &= 1 + \frac{2}{3} \\ &= \frac{5}{3} \\ \end{align*}\)
Para $x_1 = \frac{5}{3}$: \(f'\left(\frac{5}{3}\right) = -4\left(\frac{5}{3} - 3\right)^3 = -4\left(-\frac{4}{3}\right)^3 = -4\left(-\frac{64}{27}\right) = \frac{256}{27},\)
e
\[f''\left(\frac{5}{3}\right) = -12\left(\frac{5}{3} - 3\right)^2 = -12\left(-\frac{4}{3}\right)^2 = -12\left(\frac{16}{9}\right) = -\frac{192}{9} = -\frac{64}{3}.\]Substituímos na fórmula:
\begin{align} x_2 &= x_1 - \frac{f’(x_1)}{f’‘(x_1)}
&= \frac{5}{3} - \frac{\frac{256}{27}}{-\frac{64}{3}}
&= \frac{5}{3} + \frac{256}{576}
&= \frac{5}{3} + \frac{4}{9}
&= \frac{19}{9} \end{align}
Portanto, após duas iterações, $ x_2 = \frac{19}{9} $.
Exercício 2
Utilizando a mesma função do exercício anterior, aplique o método do gradiente ascendente usando learning rate $ \alpha = 0.01 $ e $ x_0 = 1 $. Compare os dois resultados.
No método do gradiente ascendente, a fórmula é: \(x_{n+1} = x_n + \alpha f'(x_n).\)
Para $x_0 = 1$: \(f'(1) = 32 \quad \text{(calculado anteriormente)},\) \(x_1 = x_0 + \alpha f'(x_0) = 1 + 0.01 \cdot 32 = 1 + 0.32 = 1.32.\)
Para $x_1 = 1.32$: \(f'(1.32) = -4(1.32 - 3)^3 = -4(-1.68)^3 = -4(-4.75) = 19.04,\) \(x_2 = x_1 + \alpha f'(x_1) = 1.32 + 0.01 \cdot 19.04 = 1.32 + 0.1904 = 1.5104.\)
Portanto, após duas iterações, $x_2 \approx 1.5104$.
Comparação dos Resultados
- Pelo método de Newton, o ponto após duas iterações é $x_2 = \frac{19}{9} \approx 2.111$.
- Pelo gradiente ascendente, o ponto após duas iterações é $x_2 \approx 1.5104$.
O método de Newton converge mais rapidamente para o máximo devido à utilização da segunda derivada para ajustar os passos.
Exercício 3
Considere a função $y(x) = 3x^2$, e ponto inicial $x_0 = -2$. Lembre-se do método atenuado por momentum de descida gradiente: \(x^{(t+1)} = x^{(t)} - \alpha \left( (1-\beta) \nabla L(x^{(t)}) + \beta \mathbf{V}^{(t-1)}\right).\)
(a) Esboce o gráfico da função duas vezes. Na primeira, esboce como funcionaria três iterações do método de descida gradiente com $\alpha > 1/3$. Na segunda, esboce como funcionaria três iterações do método de descida gradiente com $\alpha < 1/3$.
(b) Agora, informe qual será o $x_1$ e o $x_2$ encontrados após a primeira e a segunda iterações do método atenuado por momentum de descida gradiente com parâmetros $\alpha = 1/4$, e $\beta = 1/3$.
Resposta
(a)
(b)
Iteração 1 ($t=1$):
Calcular $\mathbf{V}^{(1)}$: \(\mathbf{V}^{(1)} = (1-\beta) \nabla L(x^{(0)}) + \beta \mathbf{V}^{(0)}.\) Substituindo: \(\mathbf{V}^{(1)} = \left(1 - \frac{1}{3}\right) (6x^{(0)}) + \frac{1}{3} \cdot 0,\) \(\mathbf{V}^{(1)} = \frac{2}{3} \cdot 6 \cdot (-2) = -8.\)
Atualizar (x^{(1)}): \(x^{(1)} = x^{(0)} - \alpha \mathbf{V}^{(1)}.\) Substituindo: \(x^{(1)} = -2 - \frac{1}{4} \cdot (-8),\) \(x^{(1)} = -2 + 2 = 0.\)
Iteração 2 ($t=2$):
Calcular $\mathbf{V}^{(2)}$: \(\mathbf{V}^{(2)} = (1-\beta) \nabla L(x^{(1)}) + \beta \mathbf{V}^{(1)}.\) Substituindo: \(\mathbf{V}^{(2)} = \left(1 - \frac{1}{3}\right) (6x^{(1)}) + \frac{1}{3} \mathbf{V}^{(1)}.\) Como (x^{(1)} = 0), temos: \(\mathbf{V}^{(2)} = 0 + \frac{1}{3} \cdot (-8),\) \(\mathbf{V}^{(2)} = -\frac{8}{3}.\)
Atualizar (x^{(2)}): \(x^{(2)} = x^{(1)} - \alpha \mathbf{V}^{(2)}.\) Substituindo: \(x^{(2)} = 0 - \frac{1}{4} \cdot \left(-\frac{8}{3}\right),\) \(x^{(2)} = \frac{2}{3}.\)
Após as iterações:
- $x_1 = 0$,
- $x_2 = \frac{2}{3}$.
Portanto: \(\boxed{x_1 = 0, \quad x_2 = \frac{2}{3}.}\)
Exercício 4
Mostre que se $n$ números são tais que a soma deles é $s$, então a soma dos seus quadrados é minimizada precisamente quando todos eles são iguais a $s/n$ .
Resposta
Definimos o Lagrangiano:
\[\mathcal{L}(x_1, \dots, x_n, \lambda) = \sum_{i=1}^n x_i^2 + \lambda \left( s - \sum_{i=1}^n x_i \right).\]Derivando em relação a $x_i$ e $\lambda$:
Para $x_i$: \(\frac{\partial \mathcal{L}}{\partial x_i} = 2x_i - \lambda = 0 \implies x_i = \frac{\lambda}{2}.\)
Para $\lambda$: \(\frac{\partial \mathcal{L}}{\partial \lambda} = s - \sum_{i=1}^n x_i = 0 \implies \sum_{i=1}^n x_i = s.\)
Como $x_i = \frac{\lambda}{2}$ para todos $i$, segue que:
\[\sum_{i=1}^n x_i = n \cdot \frac{\lambda}{2} = s \implies \lambda = \frac{2s}{n}.\]Logo:
\[x_i = \frac{\lambda}{2} = \frac{s}{n}, \quad \forall i.\]Outra Solução
- Decomponha $ x_i $ como:
- Substitua na soma dos quadrados:
- Simplifique:
- $ \sum_{i=1}^n \bar{x}^2 = n\bar{x}^2 $,
- $ \sum_{i=1}^n 2\bar{x}d_i = 0 $ (pois $ \sum_{i=1}^n d_i = 0 $),
- Resta $ \sum_{i=1}^n x_i^2 = n\bar{x}^2 + \sum_{i=1}^n d_i^2 $.
- Para minimizar $ \sum_{i=1}^n x_i^2 $, $ \sum_{i=1}^n d_i^2 $ deve ser zero, o que ocorre quando $ d_i = 0 $ para todos $i $.
Exercício 5
Considere a função quadrática $Q(x) = \frac{1}{2} x^T Ax − bx$, com A uma matriz quadrada não singular de ordem $n$.
(a) Encontre o gradiente $\nabla Q$;
(b) Escreva a iteração de descida do gradiente;
(c) Encontre o $H_Q$ Hessiano;
(d) Escreva a iteração dada pela fórmula de Newton e calcule seu limite.
(a)
O gradiente da função $Q(x)$ em relação a $x$ é:
\[\nabla Q(x) = \frac{\partial Q}{\partial x}.\]Calculando os termos:
O primeiro termo: \(\frac{\partial}{\partial x} \left( \frac{1}{2} x^T A x \right) = A x,\) pois $x^T A x$ é uma forma quadrática, e o gradiente resulta em $A x$.
O segundo termo: \(\frac{\partial}{\partial x} (-b^T x) = -b.\)
Logo, o gradiente é:
\[\nabla Q(x) = A x - b.\](b)
A iteração da descida do gradiente segue a fórmula:
\[x^{(t+1)} = x^{(t)} - \alpha \nabla Q(x^{(t)}),\]onde $\alpha > 0$ é a taxa de aprendizado. Substituindo o gradiente $\nabla Q(x) = A x - b$, temos:
\[x^{(t+1)} = x^{(t)} - \alpha (A x^{(t)} - b).\](c)
O Hessiano da função $Q(x)$ é:
\[H_Q = \nabla^2 Q(x).\]Como $Q(x)$ é uma função quadrática, o Hessiano é constante e igual à matriz $A$:
\[H_Q = A.\](d)
A fórmula de Newton para otimização é:
\[x^{(t+1)} = x^{(t)} - \big(H_Q\big)^{-1} \nabla Q(x^{(t)}).\]Substituindo $H_Q = A$ e $\nabla Q(x) = A x - b$, temos:
\[x^{(t+1)} = x^{(t)} - A^{-1} (A x^{(t)} - b).\]Simplificando:
\[x^{(t+1)} = x^{(t)} - (x^{(t)} - A^{-1} b),\] \[x^{(t+1)} = A^{-1} b.\]Exercício 6
Seja $A$ uma matriz quadrada não singular de ordem $n$ e $b \in \mathbb{R}^n$ um dado vetor. Considere o sistema linear $Ax = b$. A solução deste sistema pode ser aproximada usando os seguintes passos:
(a) Associe a função de custo $C(x) = | Ax−b | $. Encontre seu gradiente, $\nabla C(x)$, e o e Hessiano, $H_C(x)$; |
(b) Escreva a iteração do algoritmo de descida de gradiente que converge para a solução do sistema $x$ com o valor inicial $x_0 = 0$;
(c) Escreva a iteração de Newton que converge para a solução do sistema $x$ com o valor inicial $x_0 = 0.$
Resposta
(a)
A função de custo associada é:
\[C(x) = \|Ax - b\|^2 = (Ax - b)^T (Ax - b).\]Gradiente $\nabla C(x)$
Expandindo $C(x)$:
\[C(x) = (Ax - b)^T (Ax - b) = x^T A^T A x - 2b^T A x + b^T b.\]Derivando em relação a $x$:
Primeiro termo: \(\frac{\partial}{\partial x} \left(x^T A^T A x \right) = 2 A^T A x.\)
Segundo termo: \(\frac{\partial}{\partial x} \left(-2b^T A x \right) = -2 A^T b.\)
Terceiro termo: \(\frac{\partial}{\partial x} \left(b^T b \right) = 0 \quad \text{(não depende de \(x\))}.\)
Logo, o gradiente é:
\[\nabla C(x) = 2 A^T (A x - b).\]Hessiano $H_C(x)$
O Hessiano é dado pela derivada do gradiente. Como $\nabla C(x) = 2 A^T A x - 2 A^T b$, temos:
\[H_C(x) = \nabla^2 C(x) = 2 A^T A.\](b)
A iteração da descida de gradiente é:
\[x^{(t+1)} = x^{(t)} - \alpha \nabla C(x^{(t)}),\]onde $\alpha > 0$ é a taxa de aprendizado. Substituindo o gradiente $\nabla C(x) = 2 A^T (A x - b)$:
\[x^{(t+1)} = x^{(t)} - \alpha \cdot 2 A^T (A x^{(t)} - b).\]Simplificando:
\[x^{(t+1)} = x^{(t)} - 2 \alpha A^T A x^{(t)} + 2 \alpha A^T b.\]Com $x_0 = 0$, a iteração converge para a solução $x^* = A^{-1} b$ se $\alpha$ for escolhido adequadamente.
(c)
A iteração de Newton é dada por:
\[x^{(t+1)} = x^{(t)} - (H_C(x^{(t)}))^{-1} \nabla C(x^{(t)}).\]Substituímos o Hessiano $H_C(x) = 2 A^T A$ e o gradiente $\nabla C(x) = 2 A^T (A x - b)$:
\[x^{(t+1)} = x^{(t)} - (2 A^T A)^{-1} \cdot 2 A^T (A x^{(t)} - b).\]Simplificando:
\[x^{(t+1)} = x^{(t)} - (A^T A)^{-1} A^T (A x^{(t)} - b).\]Mais simplificado ainda:
\[x^{(t+1)} = (A^T A)^{-1} A^T b.\]#In: