Ao trabalhar com Regressão Logística nunca me lembro exatamente qual é o formato das funções de erro e se os labels são {0,1} ou {−1,1}. Resolvi então criar este post detalhando todas as contas feitas para chegar nas diversas expressões usadas para definir a Regressão Logística. Primeiramente, supomos que temos um conjunto de treinamento {(xi,yi)}Ni=1,xi∈Rm e iremos explorar tanto o caso em que yi∈{0,1} como o caso em que yi∈{−1,1}. Denotamos x e y as variáveis correspondentes aos padrões de entrada xi e aos rótulos yi.
Primeiramente, o quê é a Regressão Logística? Em outros textos do blog (veja mais em Resumo de mínimos quadrados parte 1 e parte 2) falamos um pouco sobre a Regressão Linear, um método para estimar parâmetros de uma função linear f:Rm→R. Os coeficientes w de f são determinados pelo seguinte problema de otimização.
minw∈Rm||Xw−y||2=m∑i=1(wTxi−yi)2,Ou seja, a Regressão Linear minimiza a soma (ou média) dos erros ao quadrado (e por isso também é chamada de método dos mínimos quadrados, Least Squares em inglês). Este tipo de erro é adequado quando y é uma variável contínua, pois o erro medido leva em conta a distância entre o valor predito wTx e o esperado y. Não é este o caso quando yi é um conjunto discreto (e pequeno) de valores.
A Regressão Logística estima f para os casos em que y é discreto usando probabilidades. Como podem ser frequentes os casos em que dois exemplos xi e xj,xi=xj, possuem rótulos diferentes yi≠yj, vamos estimar as probabilidades P(y=1|x) e P(y=0|x) (ou y=−1). Decidimos o valor de f com base nas probabilidades calculadas.
f(x)={1P(y=1|x)>0.50 ou −1c.c.Veremos que, assim como a Regressão Linear, a Regressão Logística é um modelo linear em x e que podemos computar f sem calcular explicitamente as probabilidades P(y=y|x).
A motivação que costuma ser encontrada nos livros para a Regressão Logística é a de querermos modelar o log da razão entre as probabilidades como uma função linear. Eu acho isto confuso e nunca pensaria nisto, então bolei a seguinte intuição.
Gostaríamos de modelar P(y=1|x) como um afunção linear. A primeira opção seria usar
P(y=1|x)=wTx,porém isto claramente é um problema, já que wTx pode ser negativo. Podemos resolver isto usando exponenciação.
P(y=1|x)=ewTxContinuamos fazendo uma combinação linear das variáveis de entrada, mas agora no expoente. Isto evita que as probabilidades sejam negativas, mas ewTx pode ser tão grande quanto quisermos. Podemos então dividir isto por 1+ewTx! O resultado será sempre menor que 1 e maior que 0, resultando em
P(y=1|x)=ewTx1+ewTx.Esta função tem o seguinte formato:
By Qef (talk) - Created from scratch with gnuplot, Public Domain, https://commons.wikimedia.org/w/index.php?curid=4310325
Um vetor de pesos w∈Rm induz a função de decisão fw(x)=1[P(y=1|x)>0.5], como visto anteriormente. Porém, note que se wTx=0, então
ewTx1+ewTx=e01+e0=12.Portanto, P(y=1|x)>0.5⇔wTx>0! Não precisamos calcular explicitamente P(y=1|x). As diferenças entre as duas formulações começam a aparecer neste ponto.
Labels {0,1}
Neste caso, basta definir a função de decisão como fw(x)=sign(wTx)+12 . Se sign(wTx)=1 então fw(x)=1, se sign(wTx)=−1 fw(x)=0.
Podemos definir o vetor de pesos w∈Rm como o estimador de máxima verossimilhança da amostra {(xi,yi)}. Queremos, portanto, resolver o seguinte problema de otimização:
maxw∈RmN∏i=1P(y=yi|xi)Ao invés de maximizar a verossimilhança diretamente, é mais fácil maximizar seu log. Isto transforma o produtório em um somatório, resultando na seguinte expressão.
maxw∈RmN∑i=1logP(y=yi|xi)=N∑i=1yilogP(y=1|x1)+(1−yi)logP(y=0|xi)Examinando cada termo P(y=yi|xi) separadamente para os casos yi=1 e yi=0, temos que
logP(y=1|xi)=log(ewTxi1+ewTxi)=logewTxi−log(1+ewTxi)=wTxi−log(1+ewTxi)e
logP(y=0|xi)=log(11+ewTxi)=log1−log(1+ewTxi)=−log(1+ewTxi)Colocando essas expressões de volta na equação anterior obtemos
maxw∈RmN∑i=1yilogP(y=1|x1)+(1−yi)logP(y=0|xi)=N∑i=1yi(wTxi−log(1+ewTxi)+(1−yi)(−log(1+ewTxi))=N∑i=1yiwTxi−yilog(1+ewTxi)−log(1+ewTxi)+yilog(1+ewTxi)=N∑i=1yiwTxi−log(1+ewTx+i)Em Aprendizado de Máquina a maioria dos problemas de otimização são de minimização. Logo, a forma mais comum da Regresssão logística é
minw∈RmN∑i=1−yiwTxi+log(1+ewTxi)Labels {−1,1}
Dependendo da fonte estudada pode-se encontrar a Regressão Logística escrita usando labels {−1,1} ao invés de {0,1}. Isto facilita na hora de definir a a função de decisão f(x)=sign(wTx) e não torna o problema necessariamente mais complicado. As definições relativas às funções de probabilidade são iguais:
P(y=1|x)=ewTx1+ewTx. P(y=−1|x)=11+ewTx.Porém, note que
P(y=1|x)=ewTx1+ewTxe−wTxe−wTxewTx1+ewTx=1e−wTx(1+ewTx)=11+e−wTxEsta expressão é idêntica a de P(y=−1|x) a menos do sinal nas exponenciações. Como y∈{−1,1}, podemos definir então uma só expressão para as probabilidades.
P(y=y|x)=11+e−ywTxUsamos o mesmo método (Máxima Verossimilhança) para encontrar um w que torne um conjunto de treinamento {(xi,yi)} o mais provável possível, mas desta vez usando a expressão acima para as probabilidades. As passagens abaixo iniciam já na log-Máxima Verossimilhança.
minw∈Rm−N∑i=1logP(y=yi|xi)=−N∑i=1log11+e−yiwTxi=−N∑i=1−log(1+e−yiwTxi)=N∑i=1log(1+e−yiwTxi)Portanto, mostramos acima as duas formas mais comuns da Regressão Logística e vimos as funções de custo usadas em cada um dos casos. Espero que o post tenha sido útil. Comentários e dúvidas são muito benvindos nas seção de comentários abaixo!
Nenhum comentário:
Postar um comentário