classificação linear - udesc · – idade das trevas para as redes neurais • início dos anos...
TRANSCRIPT
Classificação Linear
André Tavares da [email protected]
Roteiro
• Introduzir os o conceito de classificação linear.
• LDA (Linear Discriminant Analysis)
• Funções Discriminantes Lineares
• Perceptron
• Introdução à RNA (Rede Neural Artificial)
Introdução
• Para utilizar uma função discriminante linear (Linear Discriminant Function) precisamos ter:– Dados rotulados– Conhecer a forma da fronteira– Estimar os parâmetros desta fronteira a partir dos dados de
treinamento.• Nesse caso uma reta.
Introdução
• Suponha duas classes• Assuma que elas são linearmente separáveis por uma
fronteira l(θ)• Otimizar o parâmetro θ para encontrar a melhor fronteira.• Como encontrar o parâmetro
– Minimizar o erro no treinamento– O ideal é utilizar uma base de validação.
Ruim Boa
Introdução
• Funções discriminantes podem ser mais gerais do que lineares
• Vamos focar em problemas lineares– Mais fácil de compreender– Entender a base da classificação linear
• Não precisamos conhecer a distribuição dos dados
Análise Discriminante LinearLDA (Linear Discriminant Analysis)
• LDA tenta encontrar uma transformação linear através da maximização da distância entre-classes e minimização da distância intra-classe.
• O método tenta encontrar a melhor direção de maneira que quando os dados são projetados em um plano, as classes possam ser separadas.
Reta ruim Reta boa
LDA
LDA Tutorial
• 1) Para um dado conjunto de dados, calcule os centróides (vetores médios) de cada classe μ1,μ2 e o vetor médio geral,μ.
CentroideClasse -1
CentroideClasse +1
Centroidegeral
LDA Tutorial
• Normalizar os dados, através da subtração dos centróides.
• Desta maneira, contém os dados da classe i, normalizados. Ou seja xi - μi
0ix
LDA Tutorial
• Calcular as matrizes de covariância para os dados normalizados (ci)
• Calcular a matriz de covariância conjunta (C)
LDA Tutorial
• Calcular a inversa de C
• Finalmente, a função discriminante será
• Devemos atribuir o objeto k ao grupo i que maximize fi.
( )iTii
Tkii pCxCf ln
2
1 11 +−= −− µµµ
LDA Tutorial
Taxa de Reconhecimento = 99%
• Para visualizar a transformação, basta aplicar a função discriminante a todos os dados
Funções Discriminante Lineares• Em geral, uma função discriminante linear pode ser
escrita na forma
• wT é a componente angular e w0 o linear• wT também pode ser um vetor (características, por exemplo)
0)( wxwxg T +=
Funções Discriminante Lineares• é um hiperplano
– Um hiperplano também é• Um ponto em 1D• Uma reta em 2D• Um plano em 3D
Funções Discriminante Lineares• Para duas dimensões, w determina a orientação do
hiperplano enquanto w0 representa o deslocamento com relação a origem
Perceptron
• Um classificador linear bastante simples, mas bastante importante no desenvolvimento das redes neurais é o Perceptron.– O perceptron é considerado como sendo a primeira e
mais primitiva estrutura de rede neural artificial.– Concebido por McCulloch and Pits na década de 50.
• Ele tenta encontrar a melhor fronteira que separa os dados, ou seja, é uma Função Discriminante Linear.
Perceptronx1
x2
xn
w1
w2
wn
w0
∑ y
Uma função de ativaçãoutilizada no perceptron é ahardlim (threshold)
<≥
=00
01)(
x
xxf
(.)ϕ
( )∑ +×= 0wxwy iiϕ
A função de ativação é responsável por determinar a forma e aintensidade de alteração dos valores transmitido de um neurônio a outro.
Perceptron:Algoritmo de Aprendizagem
1. Iniciar os pesos e bias com valores pequenos, geralmente no intervalo [0.3-0.8]
2. Aplicar um padrão de entrada com seu respectivo valor desejado de saída (ti) e verificar a saída y da rede.
3. Calcular o erro da saída4. Se e=0, volta ao passo 25. Se e<>0,
1. Atualizar pesos2. Atualizar o bias
6. Voltar ao passo 2• Critério de parada: Todos os padrões classificados
corretamente.
w i<−w i+e× x ib<−b+e
ate j −=
Redes Neurais
• Cérebro humano.– Mais fascinante processador existente.– Aprox. 10 bilhões de neurônios conectados através
de sinapses.– Sinapses transmitem estímulos e o resultado pode
ser estendido por todo o corpo humano.
Neurônio
• Dendritos:– Receber os estímulos transmitidos por outros neurônios.
• Corpo (somma).– Coletar e combinar informações vindas de outros
neurônios.• Axônio.
– Transmite estímulos para outras células.
Rede Neural Artificial• Técnica baseada no funcionamento do sistema nervoso dos
seres vivos
• Uma rede neural é composta por diversos neurônios artificiais dispostos em camadas
• O conhecimento é mantido nas conexões entre os neurônios artificiais
• Inicialmente a rede neural não possui nenhum conhecimento sobre a tarefa
• Através de um processo de treinamento a rede neural aprende a responder corretamente a um determinado estímulo
Rede Neural Artificial• Aprendem automaticamente a partir de um conjunto de
dados de treinamento
• O conhecimento não precisa ser extraído e codificado manualmente
• Possuem duas fases distintas: aprendizado e utilização
• O aprendizado ocorre através da apresentação de diversos padrões de dados com as saídas desejadas informadas
• São necessárias diversas passadas sobre os dados para que o aprendizado ocorra
Histórico das RNAs• 1943: Neurônio de McCulloch & Pitts
• 1959: Perceptron de Rosenblatt
• 1962: Adaline de Widrow – regra delta
• 1969: Livro Perceptrons de Minsky e Papert– Idade das trevas para as redes neurais
• Início dos anos 80: novos modelos neurais: SOM, ART e de Hopfield
• 1986: MLP com Backpropagation
• 1987 em diante: Aplicações de redes neurais nas mais variadas áreas
Principais Modelos• MLP: Classificação e regressão
• ART: Clusterização e classificação
(aprendizado instantâneo)
• SOM: Clusterização e visualização
• Redes Hebbianas: memórias associativas
• Hopfield: memórias associativas e solução de problemas combinatórios (NP-completos)
• RBF: Regressão e aprendizado por reforço
• SVM: Máquina de Vetor de Suporte
Vantagens• Podem trabalhar com dados discretos e contínuos
(não é necessário discretização)
• Podem ser utilizadas para clusterização, regressão e aproximação de funções
• São robustas em relação a dados faltantes e/ou informações incorretas
• Possuem elevado grau de generalização
• Lidam com dados incertos/imprecisos e/ou informações probabilísticas
• Possuem elevado grau de paralelismo
Desvantagens• É necessário um arquivo de treinamento (base)
com as saídas desejadas informadas
• A base de treinamento tem que estar disponível antes do processo de aprendizado
• O aprendizado requer diversas passadas sobre esta base (convergência lenta)
• Após o termino do aprendizado a rede para de aprender (primeiro aprende depois usa)
• Não consegue aprender continuamente
Desvantagens• Caixa preta: a rede aprende, mas o
conhecimento não é explícito
• É bastante suscetível a mínimos locais
• Muitos parâmetros críticos:– Número de neurônios ocultos
– Passo, intervalo inicial dos pesos, etc.
• Dependente das condições de inicialização – Diferentes execuções levarão a resultados diferentes
Aplicações de redes neurais
• Reconhecimento de padrões em geral:– Assinaturas e textos manuscritos– Reconhecimento de voz– OCR (reconhecimento de caracteres impressos)
• Placas de veículos
• Sistemas de controle inteligente
• Predição de séries temporais
• Identificação de sistemas
Neurônio artificial
• Sinais são apresentados à entrada.• Cada sinal é multiplicado por um peso.
• Soma ponderada produz um nível de ativação.• Se esse nível excede um limite (threshold) a unidade
produz uma saída.
[PERCEPTRON]
Perceptron
• Resolve problemas linearmente separáveis somente.• Problemas reais, entretanto, na maioria das vezes são
mais complexos.
Exemplo
• Considere por exemplo, o problema XOR
x1x2
w1 w2
Em altas dimensões os problemas podem ser linearmente separáveis.
Sendo assim, vamos mudar o problema de R2 para R3 adicionandouma terceira característica.
Como?
Exemplo
• Considere por exemplo, o problema XOR
x1x2
w1 w2
Como: adicionando a característica X3, resultado da operaçãoAND entre X1 e X2. O fato de adicionarmos essa característicafaz com que o problema torne-se linearmente separável.
Outra forma: múltiplas camadas.
x1 Λ x2
Perceptron33
• Função sinal: se a soma das entradas multiplicadas pelos pesos for maior que um limiar, o neurônio dispara
• Função linear (identidade): não usa função de ativação (a saída é a soma das entradas multiplicadas pelos pesos)
• Sigmoid: no meio é mais ou menos linear, mas nos extremos ela satura:
• Máximo: 1, mínimo: 0
• A sigmoid tem a vantagem de ser integrável
Função de ativação
34
• Inicialmente os pesos são inicializados aleatoriamente dentro de um intervalo especificado (geralmente entre -1 e 1)
• Assim, a primeira vez que o Perceptron for ativado, o valor na saída provavelmente não corresponderá ao valor desejado
• A diferença entre o valor desejado e o obtido na saída é usada para ajustar os pesos sinápticos
• A rede aprende a responder corretamente
Perceptron - aprendizado
35
Digamos que um perceptron seja usado para aprender a função AND. Os dados de treinamento seriam:0 0 00 1 01 0 01 1 1O perceptron em questão teria duas entradas e uma saída
Perceptron – exemplo
36
• Digamos que os pesos tenham sido inicializados aleatoriamente e os seguintes valores foram obtidos:– w1 = 0.1 w2 = 0.64 w0 = 0.19
• As saídas correspondentes então seriam:
• Os erros são então usados para ajustar os pesos através da regra delta
Perceptron - exemplo
x1 x2 ∑ obtida alvo erro
0 0 0.19 0.55 0 -0.55
0 1 0.83 0.7 0 -0.7
1 0 0.29 0.57 0 -0.57
1 1 0.93 0.72 1 0.28
37
• Um neurônio pode ser considerado como uma reta que divide os padrões em classes
• A equação desta reta é definida pelos pesos
• Para os pesos iniciais definidos anteriormente:
– w1 = 0.1 w2 = 0.64 w0 = 0.19
• A equação da reta seria:
– 0.1 * x1 + 0.64 * x2 + 0.19 = 0
• Esta equação pode ser plotada no plano 2D, onde x1 é o eixo das ordenadas e x2 o das abscissas
Interpretação geométrica
38
Reta dividindo as classes - início
39
Reta dividindo as classes - final
40
• Usamos vários Perceptrons para separar as classes usando várias retas
Problema não linearmente separáveis
FunçãoXOR
41