28
Introdução O que é computação?

Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Embed Size (px)

Citation preview

Page 1: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Introdução

O que é computação?

Page 2: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Funções computáveis e não computáveis

Funções lineares e não lineares

Page 3: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

A estrutura do cérebro aproximadamente 1010

neurônios

cada um conectado com cerca de 104 outros

Page 4: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Ativação de um neurônio

Sinal de Saída

Nível de Entrada limiar

0

ativo

inativo

Page 5: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Aprendizagem em sistemas biológicos

0

Page 6: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Vetores de características e espaços de estados

Page 7: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Funções discriminantes

Page 8: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Técnicas de classificação: vizinho mais próximo

Page 9: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Medidas de distância entre vetores• Distância de Hamming =

• Distância Euclidiana = |)(| yx ii

n

i

yx ii1

2

)(

Page 10: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Classificadores lineares•

Page 11: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Técnicas estatísticas: classificação Bayesiana

• Importante técnica analítica que facilita o entendimento da natureza estatística dos dados

• Baseia-se na teoria estatística de probabilidades e probabilidades condicionais

• Em reconhecimento de padrões, medições são feitas sobre os padrões (componentes do vetor de características) a fim de se obter uma estimativa da probabilidade de um padrão pertencer a uma classe particular.

• Mais formalmente, seja Gi (i=1,2,...,n) a lista de possíveis grupos ou classes, define-se a probabilidade de um padrão pertencer a uma classe como sendo P(Gi), onde 0 P(Gi) 1

Page 12: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

• O uso de probabilidades condicionais permite a inclusão de conhecimento prévio sobre o problema de forma a melhorar a estimativa de um padrão pertencer a uma dada classe

• Dados dois eventos X e Y, a probabilidade condicional é definida como sendo a probabilidade do evento Y dada a ocorrência do evento X: P(Y |X)

• Em reconhecimento de padrões, o conhecimento prévio que é combinado com a função de probabilidade da classe são as medições de dados obtidas para o padrão, ou seja, o vetor de características X = (x1, x2 , ..., xn )

• Assim, o problema de classificação de padrões pode ser enunciado como: Considerando um conjunto de medições, X, qual é a probabilidade dele pertencer à classe Gi , ou seja P(Gi |X) ?

Page 13: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Regra de Bayes

• Decida por x pertencer à classe i se:P(Gi |X) > P(Gj |X) para i=1,2,...,n i j

• Como estimar as probabilidades condicionais? Fazendo suposições sobre os dados de padrões

Descrevendo distribuições desconhecidas através de modelos

Dado que se sabe que o padrão deva pertencer a um dos n grupos, então define-se a probabilidade de se se obter aquele padrão em cada um dos grupos P(X | Gi)

P(Gi |X) = P(X | Gi ) . P(Gi) / ( j P(X | Gj) . P(Gj) )

Page 14: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Outras técnicas estatísticas

• EM algorithm: Expectation-Maximisation

• Support Vector Machines

Page 15: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Modelando um único neurônio

Perceptrons

n

iixwify

0

w0

w1

w2

w3

wn

...

y

x0

x1

x2

x3

x4

Page 16: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Funções de ativação

Page 17: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Funções de ativação

Page 18: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Funções de ativação

Page 19: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Funções de ativação

Page 20: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Aprendizagem do perceptron

1. Inicializar pesos e limiarDefinir wi(t), (0 i n) como o peso da entrada i no tempo t e w0 como sendo -, o limiar, e x0=1Ajustar wi(0) com pequenos valores randômicos

2. Apresentar entradas x0, x1, ..., xn e saída desejada d(t)3. Calcular a saída do neurônio4. Adaptar os pesos

se correto wi(t+1) = wi(t)se saída=0, mas devia ser 1 wi(t+1) = wi(t)+xi(t)se saída=1, mas devia ser 0 wi(t+1) = wi(t)-xi(t)

n

iixwify

0

Page 21: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Modificações da adaptação dos pesos

4. Adaptar os pesosse correto wi(t+1) = wi(t)se saída=0, mas devia ser 1 wi(t+1) =wi(t)+xi(t)se saída=1, mas devia ser 0 wi(t+1) =wi(t)-xi(t)onde 0 1 controla a taxa de adaptação do peso

4. Adaptar os pesos - regra delta de Widrow-Hoff = d(t) - y(t)wi(t+1) = wi(t) + xi(t)Neurônios com este algoritmo de aprendizagem: ADALINEUso de entradas bipolares acelera o treinamento, por que?

Page 22: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Limitações dos perceptrons de 1 camada

• Foi provado (Rosemblatt) que se for possível classificar linearmente um conjunto de entradas, então uma rede de perceptrons pode aprender a solução

• Um perceptron tenta encontrar uma reta que separa as classes de padrões

• Porém há situações em que a separação entre as classes precisa ser muito mais complexa do que uma simples reta, por exemplo, o problema do XOR: linearmente inseparável

X Y Z0 0 0

0 1 1

1 0 1

1 1 00 1

10

Page 23: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Como resolver o problema de ser incapaz de resolver problemas linearmente inseparáveis com o perceptron?

Uma solução seria usar vários perceptrons, cada qual encarregado de separar várias pequenas seções linearmente separáveis das entradas, e combinar as saídas em outro perceptron que daria o resultado da classificação final

Perceptron de múltiplas camadas

Page 24: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

O problema com este arranjo em camadas é que os neurônios não podem aprender usando a aprendizagem do perceptron

Os neurônios da primeira camada recebem as entradas diretamente, mas os da segunda camada não conhecem o estado das entradas reais, apenas o resultado do processamento pela 1a camada

Como o aprendizado de perceptrons corresponde ao reforço de conexões entre entradas ativas e neurônios ativos, seria impossível reforçar as partes corretas da rede, uma vez que as entradas são mascaradas pelas camadas intermediárias

Perceptron de múltiplas camadas

Page 25: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

A solução

Usar função de ativação contínua ao invés de binária permite ter-se uma idéia mais realística das entradas, por exemplo, sigmóide ou semi-linear.

f(net) = 1 / (1+ e -z . net)

Page 26: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Arquitetura

Entrada Saída

Escondida

Page 27: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

A solução

Algoritmo de aprendizagem:1. Iniciar pesos e limiar para pequenos valores

randômicos2. Apresentar entrada e saída desejada

Xp=x0,x1,...,xn-1, Tp=t0,t1,...,tm-13. Calcular as saídas da rede, cada camada produz:

e passa os resultados como entradas para a próxima camada. As saídas da última camada são opj

4. Adaptar os pesos

1

0

n

iipjxwy if

Page 28: Introdução § O que é computação?. § Funções computáveis e não computáveis § Funções lineares e não lineares

Algoritmo de aprendizagem (backpropagation):

4. Adaptar os pesos, começar na camada de saída e prosseguir de trás para frente

wij(t+1) = wij(t) + pj opj

Para neurônios de saída:

pj = z opj (1 - opj) (tpj - opj)

Para neurônios de camadas escondidas

pj = z opj (1 - opj) k pk wjk