Aprendizado de Máquina

Prof. Ronaldo Cristiano Prati
ronaldo.prati@ufabc.edu.br
Bloco A, Sala 513-2

Classificação

  • Um outro problema dentro de aprendizado supervisionado é a classificação
    • yy é discreto:
      • e-mail: SPAM/não SPAM?
      • transções online: fraudulenta/normal?
      • tumor: maligno/benigno?
  • vamos começar com um problema de classificação binária (veremos multiclasse depois)

Classificação

  • Podemos usar regressão linear?
  • yy pode ser representado como 00 ou 11:
    • 00: classe negativa
    • 11: classe positiva
    • Um ponto de corte no valor predito (p.ex. acima de 0.5), é classificado como classe positiva

Classificação

  • E se tivermos poucos exemplos da classe 1? Provavelmente a inclinação da reta seria menor, e classificaríamos tudo com classe 00.
  • Nossa hipótese também prediz valores abaixo de 0 e acima de 1, apesar da classe só poder assumir os valores 0 e 1.
  • Regressão logística pode contornar esses problemas

Regressão logística

  • Apesar de se chamar regressão, é um algoritmo de classificação
  • A hipótese tem a forma de htheta(x)=g((θx))h_theta(x) = g((\theta^\intercal x)), em que:
    g(z)=11+ezg(z) = \frac{1}{1+e^{-z}}
  • Essa é a função sigmoid ou função logística
  • Podemos reescrever htheta(x)h_theta(x) como
    hθ(z)=11+eθxh_\theta(z) = \frac{1}{1+e^{-\theta^\intercal x}}

Regressão logística

Interpretando a saída

  • A hipótese hθ(x)h_\theta(x) dá como saída um número entre 00 e 11 que pode ser interpretada como a probabilidade que y=1y=1 para a entrada xx
    • Por exemplo, se hθ(x)=0.7h_\theta(x)=0.7 para um certo xix^i, o modelo dá 70%70\% de chance de um tumor malígno
  • Em outras palavras, hθ(x)=P(y=1x,θ)h_\theta(x) = P(y=1|x,\theta)
  • Como o problema é binário, temos que:
    P(y=1x,θ)+P(y=0x,θ)=1P(y=0x,θ)=1P(y=1x,θ)\begin{aligned} P(y=1|x,\theta) + P(y=0|x,\theta) = 1\\ P(y=0|x,\theta) = 1 - P(y=1|x,\theta) \end{aligned}

Fronteira de decisão

  • Para predizer a classe, utilizamos aquela com maior probabilidade, segundo o modelo
    • Isso é equivalente a predizer a classe 11 se hθ(x)>0.5h_\theta(x) > 0.5, e a classe 00 caso contrário
  • Observando a função logística, temos que hθ(x)=0.5h_\theta(x) = 0.5 quando z=0z=0.
  • Como z=θxz = \theta^\intercal x, a linha θx=0\theta^\intercal x = 0 é a fronteira de decisão entre as duas classes
    θx>0\theta^\intercal x > 0: predizer classe 11
    θxleq0\theta^\intercal x leq 0: predizer classe 00

Fronteira de decisão

  • A linha em que hθ(x)=0.5h_\theta(x) = 0.5 (ou que θx=0\theta^\intercal x = 0) é a fronteira de decisão.

Fronteira de decisão não linear

  • Se adicionarmos novos atributos que fazem uma transformação não linear nos dados (como na aula passada, em que fizemos regressão polinomial adicionando atributos do tipo xkx^k)

  • Por exemplo, se adicionarmos atributos quadráticos, podemos ter fronteiras de decisão do tipo

função de custo para regressão logística

  • Nossa hipótese é
    hθ(z)=11+eθxh_\theta(z) = \frac{1}{1+e^{-\theta^\intercal x}}
  • Na regressão linear temos que
    J(θ)=1mimCost(hθ(x),y)J(\theta) = \frac{1}{m}\sum_i^m Cost(h_\theta(x),y)
    Em que o custo é definido como:
    Cost(hθ(x),y)=12(hθ(x)y)2Cost(h_\theta(x),y) = \frac{1}{2} (h_\theta(x)-y)^2

função de custo para regressão logística

  • Podemos usar a mesma função de custo para regressão logistica?
    • Essa função de custo é não convexa (a função da nosso hipótese (sigmoid) é não linear)
    • Ao tentar miniminar, podemos ter muitos mínimos locais
    • O algoritmo da descida do gradiente pode não encontrar os melhores valores para θ\theta
    • Temos uma função convexa para por no lugar?

função de custo para regressão logística

  • Uma função de custo convexa:

Cost(hθ(x),y)={log(hθ(x))sey=1log(1hθ(x))sey=0Cost(h_\theta(x),y) = \begin{cases} -log(h_\theta(x)) & se y=1\\ -log(1-h_\theta(x)) & se y=0 \end{cases}

função de custo para regressão logística

função de custo para regressão logística

  • Como só temos duas classes, podemos escrever a função de custo de uma maneira mais compacta:

Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))Cost(h_\theta(x),y) = -ylog(h_\theta(x)) - (1-y)log(1-h_\theta(x))

  • Essa função pode ser derivada da estatística, usando o princípio da estimação da máxima verossimilhança
  • Assume que existe uma distribuição Gaussiana dos atributos
  • É convexa

Gradiente descendente para regressão logistica

  • Podemos usar o gradiente descendente para encontrar θ\theta na regressão logística

θ:=θαim(hθ(xi)yi)xi\theta := \theta - \alpha \sum_i^m (h_\theta(x^i) - y^i)x^i

  • Essa equação é a mesma da regressão linear

    • A única diferença é que agora usamos uma hipótese diferente
  • Colocar os atributos na mesma escala também pode ser necessário

Além do gradiente descendente

  • Existem outras possíveis maneiras de minizar a função de custo

  • São algoritmos mais complexos e otimizados, que podem ser aplicados à mesma entrada e função de custo

Além do gradiente descendente

  • Vantagens:
    • Não precisamos ajustar α\alpha (taxa de aprendizado) manualmente
    • Testam vários α\alpha internamente para escolher o mais adequado (além de outras melhorias)
    • Em geral, mais rápidos que o gradiente descendente
  • Desvantagens
    • Difícil "acompanhamento"
    • Difícil implementação
    • Diferentes bibliotecas usam diferentes otimizações (desempenho diferente)

Regressão logística multiclasse

  • Poblemas multiclasse: mais de duas classes

Regressão logística multiclasse

  • Estratégia "um contra todos" (one-versus-all ou one-versus-rest)
    • Dividir o conjunto de dados em diversos problemas de classificação (igual ao número de classes)
    • Em cada problema, uma das classes é a positiva, e as demais são agrupadas na negativa
    • Escolher a classe que maximiza P(y=1xk;θ)P(y=1 | x_k; \theta), em que kk é a classe positiva no problema de classificação kk

Regressão logística multiclasse