Classificação Linear André Tavares da Silva andre.silva@udesc.br
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 Ruim Boa 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.
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
Reta ruim Reta boa Análise Discriminante Linear LDA (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.
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,μ. Centroide Classe +1 Centroide Classe -1 Centroide geral
LDA Tutorial Normalizar os dados, através da subtração dos centróides. x i 0 Desta maneira, contém os dados da classe i, normalizados. Ou seja x i - μ i
LDA Tutorial Calcular as matrizes de covariância para os dados normalizados (c i ) Calcular a matriz de covariância conjunta (C)
LDA Tutorial Calcular a inversa de C Finalmente, a função discriminante será f i = µ C i 1 x T k 1 µ ic 1 ( p ) Devemos atribuir o objeto k ao grupo i que maximize f i. 2 µ T i + ln i
LDA Tutorial Para visualizar a transformação, basta aplicar a função discriminante a todos os dados Taxa de Reconhecimento = 99%
Funções Discriminante Lineares Em geral, uma função discriminante linear pode ser escrita na forma T g( x) = w x + w w T é a componente angular e w 0 o linear w T também pode ser um vetor (características, por exemplo) 0
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 w 0 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.
Perceptron x 1 x 2 x n y w 1 w 2 w n w0 ϕ(.) ( w x w ) ϕ i i + = 0 y Uma função de ativação utilizada no perceptron é a hardlim (threshold) 1 f ( x) = 0 x x < 0 0 A função de ativação é responsável por determinar a forma e a intensidade 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 (t i ) e verificar a saída y da rede. 3. Calcular o erro da saída 4. Se e=0, volta ao passo 2 5. Se e<>0, 1. Atualizar pesos 2. Atualizar o bias 6. Voltar ao passo 2 e = t w i < w i +e x i b< b+e Critério de parada: Todos os padrões classificados corretamente. j a
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 w 1 w 2 x 1 x 2 Em altas dimensões os problemas podem ser linearmente separáveis. Sendo assim, vamos mudar o problema de R 2 para R 3 adicionando uma terceira característica. Como?
Exemplo Considere por exemplo, o problema XOR w 1 w 2 x 1 x x 2 1 Λ x 2 Como: adicionando a característica X3, resultado da operação AND entre X1 e X2. O fato de adicionarmos essa característica faz com que o problema torne-se linearmente separável. Outra forma: múltiplas camadas.
3 Perceptron
4 Função de ativação 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
5 Perceptron - aprendizado 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
6 Perceptron exemplo Digamos que um perceptron seja usado para aprender a função AND. Os dados de treinamento seriam: 0 0 0 0 1 0 1 0 0 1 1 1 O perceptron em questão teria duas entradas e uma saída
7 Perceptron - exemplo 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: 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 Os erros são então usados para ajustar os pesos através da regra delta
8 Interpretação geométrica 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
9 Reta dividindo as classes - início
0 Reta dividindo as classes - final
1 Problema não linearmente separáveis Usamos vários Perceptrons para separar as classes usando várias retas Função XOR