Edit page

Regressão Linear

Regressão Simples

A equação da reta no plano é dada pela seguinte expressão.

y=w0+w1xy = w_0 + w_1 \cdot x

Podemos extender o conceito a mais dimensões, obtendo a equação de um hiperplano.

y=y(x,w)=w0+j=1D(wjxj)=w0+wTxy = y(x,w) = w_0 + \sum\limits_{j=1}^{D} (w_j \cdot x_j) = w_0 + w^Tx

A ordenada na origem, w0w_0, tem o nome de bias, pois yy está influenciado de forma a tender para w0w_0 na ausência de algum input. Damos a cada valor de wj:j0w_j: j \neq 0 o nome de peso, sendo ww o vetor de pesos.

De modo a simplificar a expressão, adiciona-se um termo x0=1x_0 = 1 ao vetor x\vec{x}.

y=y(x,w)=j=0D(wjxj)=wTxy = y(x,w) = \sum\limits_{j=0}^{D} (w_j \cdot x_j) = w^Tx

Erro Quadrático Médio

Dada um conjunto de treino, ao qual se aplica a regressão, este é composto por um vetor de observações X=(x1,x2,...,xn)TX=(x_1, x_2, ..., x_n)^T e por um vetor de rótulos, z=(z1,z2,...,zn)Tz=(z_1, z_2, ..., z_n)^T.

É possível quantificar o erro através das distâncias entre cada observação, representada por um ponto em Rn\mathbb{R}^{n}, e o hiperplano da regressão. As linhas vermelhas na figura abaixo correspondem à função de resíduos, dada pela diferença z^izi|\hat{z}_i - z_i|.

Função de Resíduos

Definimos a função do erro quadrático médio como

E[w]=1ni=1n(f(xi,w)zi)2=1nz^z2E[w] = \frac{1}{n} \sum\limits_{i=1}^{n}(f(x_i, w) - z_i)^2 = \frac{1}{n} |\hat{z} - z|^2

Ao comparamos diferentes hiperplanos, podemos guiar-nos pela métrica do erro quadrático médio. Contudo, dividir por nn ou por qualquer outro número não fará diferença na comparação entre os hiperplanos. Ao derivarmos a função de erro, a constante 12\frac{1}{2} "corta" com a derivada do quadrado, originando uma expressão "bonita" para o gradiente do erro. Assim, tomamos a chamada half squared error loss como

E[w]=12i=1n(f(xi,w)zi)2=12z^z2E[w] = \frac{1}{2} \sum\limits_{i=1}^{n}(f(x_i, w) - z_i)^2 = \frac{1}{2} |\hat{z} - z|^2

Design Matrix e Vetor de Rótulos

Definimos a matriz XX como a design matrix, resultante dos dados adicionando um termo de bias xj0=1x_{j0} = 1 a cada linha jj. O vetor zz é o vetor de rótulos das observações.

X=(x1Tx2TxnT)=(x10x11x12x1mx20x21x22x2mx30xn1xn2xnm)z=(z1z2zn)X = \begin{pmatrix} x_1^T \\ x_2^T \\ \vdots \\ x_n^T \\ \end{pmatrix} = \begin{pmatrix} x_{10} & x_{11} & x_{12} & \cdots & x_{1m}\\ x_{20} & x_{21} & x_{22} & \cdots & x_{2m}\\ \vdots & \vdots & \vdots & \vdots & \vdots \\ x_{30} & x_{n1} & x_{n2} & \cdots & x_{nm}\\ \end{pmatrix} \quad z = \begin{pmatrix} z_1 \\ z_2 \\ \vdots \\ z_n \\ \end{pmatrix}

Assim, a regressão utiliza os pesos de modo a mapear as entradas em saídas.

(z^1z^kz^n)=(1x11x12x1m1x21x22x2m1xn1xn2xnm)(w0w1wkwn)\begin{pmatrix} \hat{z}_1 \\ \vdots \\ \hat{z}_k \\ \vdots \\ \hat{z}_n \\ \end{pmatrix} = \begin{pmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1m}\\ 1 & x_{21} & x_{22} & \cdots & x_{2m}\\ \vdots & \vdots & \vdots & \vdots & \vdots \\ 1 & x_{n1} & x_{n2} & \cdots & x_{nm}\\ \end{pmatrix} \cdot \begin{pmatrix} w_0 \\ w_1 \\ \vdots \\ w_k \\ \vdots \\ w_n \\ \end{pmatrix}
z^=Xw=(wTXT)T\hat{z} = X \cdot w = (w^T \cdot X^T)^T

Solução Fechada

Muitas das vezes um mapeamento linear perfeito das entradas para saídas não existe, devido a ruído nos dados. De modo a encontrar o melhor hiperplano, necessitamos de minimizar o erro E[w]E[w], calculando o gradiente E[w]\nabla E[w] e igualando-o a 0. Definido a matriz XX como a design matrix, chegamos a uma solução fechada para o vetor de pesos, ww.

E[w]=(12zz^2)=(12zXw2)=(12(zXw)T(zXw))=0\begin{aligned} \nabla E[w] &= \nabla \left(\frac{1}{2} \cdot \| z - \hat{z} \|^2\right)\\ & = \nabla \left(\frac{1}{2} \cdot \|z - X \cdot w\|^2\right)\\ & = \nabla \left(\frac{1}{2} \cdot (z - X \cdot w)^T \cdot (z - X \cdot w)\right)\\ & = 0 \end{aligned}
w=(XTX)1XTzw = (X^T \cdot X)^{-1} \cdot X^T \cdot z

Matriz de Moore-Penrose

A matriz X=(XTX)1XTX^\dagger = (X^T \cdot X)^{-1} \cdot X^T, derivada na solução fechada é conhecido como a pseudo-inversa de XX ou matriz de Moore-Penrose. Assim, a solução fechada pode ser dada por w=Xzw = X^\dagger \cdot z.

A matriz XTXX^T \cdot X não é invertível quando alguns atributos são combinações lineares uns dos outros ou quando existem mais atributos do que observações. No entanto, a pseudo-inversa está sempre definida.

Transformações do Conjunto de Dados

Por vezes, o conjunto de dados não consegue ser modelado por uma regressão linear, sendo necessária uma regressão mais expressiva. De modo a solucionar este problema, podemos aplicar uma transformação ao conjunto de dados original, reescrevendo cada um dos atributos como uma transformação não linear do mesmo. Assim, realizamos uma regressão linear ao novo conjunto de dados transformado.

y(x,w)=w0+j=1Mwjϕj(x)y(x, w) = w_0 + \sum_{j=1}^{M} w_j \cdot \phi_j(x)

em que ϕj(x)\phi_j(x) representa uma transformação não linear à entrada xx. Esta função é conhecida como basis function.

Assim, realizamos a regressão com a nova design matrix.

(z^1z^kz^n)=(ϕ11ϕ12ϕ1mϕ21ϕ22ϕ2mϕn1ϕn2ϕnm)(w0w1wkwn)\begin{pmatrix} \hat{z}_1 \\ \vdots \\ \hat{z}_k \\ \vdots \\ \hat{z}_n \\ \end{pmatrix} = \begin{pmatrix} \phi_{11} & \phi_{12} & \cdots & \phi_{1m}\\ \phi_{21} & \phi_{22} & \cdots & \phi_{2m}\\ \vdots & \vdots & \vdots & \vdots \\ \phi_{n1} & \phi_{n2} & \cdots & \phi_{nm}\\ \end{pmatrix} \cdot \begin{pmatrix} w_0 \\ w_1 \\ \vdots \\ w_k \\ \vdots \\ w_n \\ \end{pmatrix}

É de notar que a regressão linear sem a transformação do conjunto de dados corresponde a uma transformação de atributos realizada pela basis function ϕ(x)=1\phi(x) = 1.

Seleção do Modelo

É de notar que entre dois polinómios de diferentes graus, o polinómio com maior grau tem um maior poder expressivo pois consegue modelar qualquer relação que o polinómio de grau mais baixo consegue. Assim, seria de esperar que ao realizar uma regressão num conjunto de dados para os quais não sabemos o polinómio gerador, seria melhor utilizar um polinómio com o maior poder expressivo possível.

Contudo, ao adicionar algum ruído aos dados, o polinómio com maior poder expressivo afasta-se bastante do polinómio gerador, enquanto que o polinómio com menor poder expressivo, limitado, consegue lidar melhor com a presença de outliers. Assim a escolha de um polinómio com a complexidade certa (não muito baixa, nem demasiado alta) é essencial para evitar o problema de overfitting.

Escolha da Complexidade do Modelo

Regressão Bayesiana

O conhecido classificador de Bayes pode também ser usado para tarefas de regressão. Procuramos descobrir o vetor de pesos ww mais provável para a evidência que temos, o conjunto de dados DD. P(w)P(w) corresponde ao prior e P(Dw)P(D \mid w) corresponde à likelihood.

P(wD)=P(Dw)×P(w)P(D)P(w \mid D) = \frac{P(D \mid w) \times P(w)}{P(D)}

Assim, definimos o vetor de pesos, ww, de máxima verosimilhança (maximum likelihood) como

wML=arg maxwP(Dw)w_\text{ML} = \underset{w}{\operatorname{arg\ max}} P(D \mid w)

Outra abordagem passa por maximizar P(wD)P(w \mid D), a posteriori, onde a likelihood é multiplicada pelo prior.

wMAP=arg maxwP(wD)w_\text{MAP} = \underset{w}{\operatorname{arg\ max}} P(w \mid D)

Solução Fechada

O objetivo é, então, calcular a distribuição de probabilidade P(wzi,xi)P(w \mid z_i, x_i). Chegamos à expressão seguinte.

P(wzi,xi)=P(ziw,xi)×P(w)P(zi)P(w \mid z_i, x_i) = \frac{P(z_i \mid w, x_i) \times P(w)}{P(z_i)}

Assume se que os nn exemplos xix_i são independentes e identicamente distribuídos e que o erro da regressão linear ϵN(0,σ2)\epsilon \sim \mathcal{N}(0, \sigma^2). Assim, z=z^+ϵ=wx+ϵz = \hat{z} + \epsilon = w \cdot x + \epsilon. Obtemos então a seguinte relação.

wMAP=arg maxw(12i=1n(ziwTxi)2λ2w2)w_{\text{MAP}} = \underset{w}{\operatorname{arg\ max}}\left(-\frac{1}{2} \sum_{i=1}^n (z_i - w^T \cdot x_i)^2 - \frac{\lambda}{2} \|w\|^2\right)

Derivando a expressão anterior e igualando-a a 0, obtemos a seguinte solução fechada.

w=(XTX+λI)1XTzw = (X^T \cdot X + \lambda \cdot I)^{-1} \cdot X^T \cdot z

Se, por outro lado, realizarmos o mesmo processo para o vetor de pesos de máxima verosimilhança, obtemos a seguinte solução fechada.

w=(XTX)1XTzw = (X^T \cdot X)^{-1} \cdot X^T \cdot z

Regularização

Regressão de Ridge

Como verificado anteriormente, polinómios com elevado valor expressivo que minimizam o erro quadrático encontrado tendem a criar modelos que sofrem de overfitting. De modo a resolver este problema, é adicionado um termo à expressão do erro, que penaliza modelos em que os valores dos pesos são muito elevados. É um facto experimental que regressões com valores pequenos de pesos produzem modelos que evitam o overfitting.

E[w]=12i=1n(ziwTxi)2+λ2w22E[w] = \frac{1}{2} \sum\limits_{i=1}^{n}(z_i - w^T \cdot x_i)^2 + \frac{\lambda}{2} \| w \|_2^2

Este regularizador tem o nome de regressão de Ridge. Mais uma vez, podemos igualar E[w]\nabla E[w] a 0, encontrando a solução fechada para a regressão de Ridge.

w=(XTX+λI)1XTzw = (X^T \cdot X + \lambda \cdot I)^{-1} \cdot X^T \cdot z

Podemos verificar que a solução encontrada é idêntica ao estimador maximum a posteriori!

O termo de regularização λ\lambda descreve o quociente de duas variâncias.

λ=σposterior2σprior2\lambda = \frac{\sigma_\text{posterior}^2}{\sigma_\text{prior}^2}

Comparação de Modelos com e sem Regularização

Regressão de Lasso

Uma alternativa ao termo do regularizador quadrático de Ridge é o termo linear de Lasso. Esta alternativa difere do regularizador quadrática ao assumir que o erro ϵ\epsilon segue uma distribuição de Laplace, ao invés de uma distribuição normal.

E[w]=12i=1n(ziwTxi)2+λ2w1E[w] = \frac{1}{2} \sum\limits_{i=1}^{n}(z_i - w^T \cdot x_i)^2 + \frac{\lambda}{2} \| w \|_1

Contudo, este regularizador não apresenta uma solução fechada, pois o termo w1\| w \|_1 não é diferenciável na origem. Contudo, uma solução não fechada pode ser obtida através de outros métodos, como gradient descent. Este regularizador tende a gerar soluções mais esparsas (com mais zeros no vetor de pesos) do que o regularizador de Ridge.

Overfitting

De modo a evitar o overfitting, pode ser utilizada uma regressão com um termo de regularização, como os regressores de Ridge e Lasso.