Como fica o gradiente com muitos atributos, por que a escala decide se a descida funciona e por que o L1 zera onde o L2 encolhe
Modelo \(\hat y_i = w_0 + w_1 x_{i1} + \dots + w_d x_{id}\), resíduo \(e_i = y_i - \hat y_i\), perda \(J = \frac{1}{n}\sum_i e_i^2\). Com a coluna de uns \(x_{i0} = 1\), o intercepto é só mais um peso e \(\partial e_i / \partial w_j = -x_{ij}\) para todo \(j\):
\[ \frac{\partial J}{\partial w_j} = -\frac{2}{n}\sum_{i=1}^{n} e_i\,x_{ij} \]| parâmetro | coluna de \(X\) correspondente | derivada parcial |
|---|---|---|
| \(w_0\) | a coluna de uns | \(-\frac{2}{n}\sum_i e_i \cdot 1\) |
| \(w_1\) | \(x_1\) | \(-\frac{2}{n}\sum_i e_i x_{i1}\) |
| \(w_j\) | \(x_j\) | \(-\frac{2}{n}\sum_i e_i x_{ij}\) |
A tabela do slide anterior, escrita de forma compacta: uma linha de numpy para um milhão de parâmetros.
iguale a zero: \(X^\top(y - Xw) = 0\), as equações normais. A mesma afirmação por dois caminhos: resolver de uma vez ou caminhar até lá.
uma soma ponderada pelos resíduos: pontos bem previstos quase não votam, pontos muito errados dominam o passo.
Clique à esquerda para soltar um início e aperte Passo. Depois ligue centrar x e comece de novo a partir de um ponto parecido.
um vale longo e estreito: inclinar uma reta cujos \(x\) estão longe de zero também a sobe ou desce, então \(w_0\) e \(w_1\) ficam acoplados. O gradiente aponta atravessado ao vale; o caminho ziguezagueia e se arrasta.
uma tigela redonda: os mesmos passos vão quase direto à resposta e um \(\eta\) maior é tolerado.
Um polinômio de grau 10 tem 11 parâmetros livres. Erro de treino como raiz do erro quadrático médio (RMSE, de root mean squared error):
| pontos de treino | 5 | 8 | 10 | 11 | 15 | 30 |
|---|---|---|---|---|---|---|
| RMSE de treino | 3·10⁻¹⁵ | 1·10⁻¹¹ | 1·10⁻¹¹ | 0,40 | 0,77 | 1,53 |
Escreva a penalidade como um orçamento: minimizar o erro sujeito a \(\sum |w_j| \le t\) (lasso, L1) ou \(\sum w_j^2 \le t^2\) (ridge, L2). Todo \(\alpha\) tem um \(t\) correspondente.
Arraste o ótimo do OLS e conte quantas vezes cada região é tocada sobre um eixo.
Oito atributos: três com sinal real, três puro ruído, dois quase cópias (\(c_1, c_2\), ambos de verdade 2). Preveja. Quando \(\alpha\) cresce, quais coeficientes o lasso derruba primeiro?
| α | lasso: não nulos | ridge: não nulos |
|---|---|---|
| 0,05 | 8 / 8 | 8 / 8 |
| 0,2 | 7 / 8 | 8 / 8 |
| 0,6 | 6 / 8 | 8 / 8 |
| 2,0 | 5 / 8 | 8 / 8 |
O lasso remove primeiro os atributos de ruído; o ridge mantém os oito, pequenos.
O par correlacionado em \(\alpha = 2\):
lasso (1,89; 0,98): começa a escolher um, quase ao acaso.
ridge (1,02; 0,97): divide o peso por igual.
número de condição de \(X^\top X\) (maior autovalor sobre o menor): \(7{,}2\times10^{7}\)
OLS: \((1{,}000; -0{,}000)\), uma divisão arbitrária
número de condição: \(6\times10^{3}\)
resposta: \((0{,}500; 0{,}500)\), com a soma preservada
| decisão | padrão | quando mudar |
|---|---|---|
| forma fechada ou gradiente descendente? | forma fechada até alguns milhares de atributos | muitos atributos, muitas linhas ou nenhuma forma fechada: gradiente descendente estocástico (SGDRegressor) em mini-batches |
| taxa de aprendizado | experimentar \(10^{-3}\), \(10^{-2}\), \(10^{-1}\) | a perda cresce: menor; quase não se mexe: maior, depois de padronizar |
| escala | padronizar, dentro de um Pipeline | nunca pular antes do gradiente descendente ou de uma penalidade |
| ridge, lasso ou Elastic Net? | ridge: mantém todos os atributos | lasso para uma lista curta de atributos; Elastic Net para muitos correlacionados |
| \(\alpha\) | validação cruzada (RidgeCV, LassoCV) | nunca o erro de treino, que sempre prefere \(\alpha = 0\) |
x, y, gradient e train dos passos 1 a 3.Ritmo: passo 4 e a primeira simulação em 12 min; passo 5 e a segunda em 15 min; passo 6 em 8 min.