speed | dist |
---|---|
-2.15597 | -1.59026 |
-2.15597 | -1.27981 |
-1.58861 | -1.51265 |
-1.58861 | -0.81414 |
-1.39949 | -1.04698 |
-1.21037 | -1.27981 |
… | … |
Regressão linear e autograd
Imagine que temos a seguinte tabela de dados:
speed | dist |
---|---|
-2.15597 | -1.59026 |
-2.15597 | -1.27981 |
-1.58861 | -1.51265 |
-1.58861 | -0.81414 |
-1.39949 | -1.04698 |
-1.21037 | -1.27981 |
… | … |
A equação da regressão linear é:
\[ dist = \beta_0 + \beta_1 speed + \epsilon \]
Substituindo pelas variáveis usuais: \[ y = \beta_0 + \beta_1 x + \epsilon \]
A função de perda mede o quão bem o modelo está se saindo. Geralmente envolve comparar a saída do modelo com a saída real.
A função de perda está ligada à distribuição de probabilidades que estamos assumindo para os dados.
A verossimilhança é uma função que mede a probabilidade de observarmos os dados que observamos, assumindo que o modelo é verdadeiro.
A verossimilhança na regressão linear para uma distribuição normal é:
\[ \mathcal{L}(\beta_0, \beta_1) = \prod_{i=1}^n \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left( - \frac{(y_i - (\beta_0 + \beta_1 x_i))^2}{2 \sigma^2} \right) \]
O estimador de máxima verossimilhança é o valor dos parâmetros que maximiza a verossimilhança.
\[ \hat{\beta} = \arg \max_{\beta_0, \beta_1} \mathcal{L}(\beta_0, \beta_1) \]
Como veremos, isso é equivalente a minimizar o erro quadrático médio.
O erro quadrático médio é:
\[ \text{MSE} = \frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2 = \frac{1}{n} \sum_{i=1}^n (y_i - (\beta_0 + \beta_1 x_i))^2 \]
Primeiro, tome a log-verossimilhança:
\[ \log \mathcal{L}(\beta_0, \beta_1) = \sum_{i=1}^n \log \left( \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left( - \frac{(y_i - (\beta_0 + \beta_1 x_i))^2}{2 \sigma^2} \right) \right) \]
\[ \log \mathcal{L}(\beta_0, \beta_1) = - \frac{n}{2} \log(2 \pi \sigma^2) - \frac{1}{2 \sigma^2} \sum_{i=1}^n (y_i - (\beta_0 + \beta_1 x_i))^2 \]
\[ \log \mathcal{L}(\beta_0, \beta_1) = - \frac{n}{2} \log(2 \pi \sigma^2) - \frac{1}{2 \sigma^2} \text{MSE} \]
Ou seja, maximizar a verossimilhança equivale a minimizar o erro quadrático médio.
\[ \begin{bmatrix} dist_1 \\ dist_2 \\ \vdots \\ dist_n \end{bmatrix} = \begin{bmatrix} 1 & speed_1 \\ 1 & speed_2 \\ \vdots & \vdots \\ 1 & speed_n \end{bmatrix} \begin{bmatrix} \beta_0 \\ \beta_1 \end{bmatrix} + \begin{bmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_n \end{bmatrix} \]
\[ \text{MSE} = \frac{1}{n} (\mathbf{y} - \hat{\mathbf{y}})^t (\mathbf{y} - \hat{\mathbf{y}}) = \frac{1}{n} (\mathbf{y} - \mathbf{X} \hat{\beta})^t (\mathbf{y} - \mathbf{X} \hat{\beta}) \]
A solução analítica para o problema de mínimos quadrados é:
\[ \hat{\beta} = (\mathbf{X}^t \mathbf{X})^{-1} \mathbf{X}^t \mathbf{y} \]
Podemos chegar a essa solução derivando o EQM em relação a \(\beta\) e igualando a zero.
Alternativamente, podemos usar um algoritmo de otimização para encontrar a solução.
Descida de gradiente
Envolve calcular o gradiente da função de perda em relação aos parâmetros e atualizar os parâmetros na direção oposta ao gradiente.
\[ \beta^{(t+1)} = \beta^{(t)} - \alpha \nabla_{\beta} \text{MSE} \]
Método de Newton
Envolve calcular a matriz Hessiana da função de perda em relação aos parâmetros e atualizar os parâmetros na direção oposta ao gradiente.
\[ \beta^{(t+1)} = \beta^{(t)} - (\nabla_{\beta}^2 \text{MSE})^{-1} \nabla_{\beta} \text{MSE} \]
O gradiente é um vetor que aponta na direção de maior crescimento da função. No nosso caso, sem considerar a versão matricial, temos:
\[ \nabla_{\beta} \text{MSE} = \left( \frac{\partial \text{MSE}}{\partial \beta_0}, \frac{\partial \text{MSE}}{\partial \beta_1} \right) \]
\[ \nabla_{\beta} \text{MSE} = \left( \frac{2}{n} \sum_{i=1}^n (y_i - (\beta_0 + \beta_1 x_i)), \frac{2}{n} \sum_{i=1}^n (y_i - (\beta_0 + \beta_1 x_i)) x_i \right) \]
Versão matricial:
\[ \nabla_{\beta} \text{MSE} = \frac{2}{n} \mathbf{X}^t (\mathbf{X} \beta - \mathbf{y}) \]
A Hessiana é uma matriz que contém as derivadas parciais de segunda ordem da função de perda.
\[ \nabla_{\beta}^2 \text{MSE} = \begin{bmatrix} \frac{\partial^2 \text{MSE}}{\partial \beta_0^2} & \frac{\partial^2 \text{MSE}}{\partial \beta_0 \partial \beta_1} \\ \frac{\partial^2 \text{MSE}}{\partial \beta_1 \partial \beta_0} & \frac{\partial^2 \text{MSE}}{\partial \beta_1^2} \end{bmatrix} \]
\[ \nabla_{\beta}^2 \text{MSE} = \frac{2}{n} \mathbf{X}^t \mathbf{X} \]
2024