160277 redes neurais artificiais

61
Aprendizado de Máquina Cristiane Neri Nobre

Upload: coegio-sao-pauloda-cruz

Post on 23-Jun-2015

1.431 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 160277 redes neurais artificiais

Aprendizado de Máquina

Cristiane Neri Nobre

Page 2: 160277 redes neurais artificiais

Aprendizado de Máquina

Construção de programas de computador que melhoram seu desempenho por meio de experiência

Um programa aprende a partir da experiência E, em relação a uma classe de tarefas T, com me-dida de desempenho P, se seu desempenho em T, medido por P, melhora com E

Mitchell, 1997

Page 3: 160277 redes neurais artificiais

AM – Conceitos Básicos

Aprendizado Supervisionado

Indutor recebe conjunto de exemplos na forma (entrada, rótulo_desejado)

Técnicas: Redes Neurais do tipo Multilayer Perceptron Máquinas de Vetores Suporte Algoritmos Genéticos Árvores de Decisão

Page 4: 160277 redes neurais artificiais

AM – Conceitos Básicos

Aprendizado Não-supervisionado

Indutor recebe apenas atributos de entrada

Encontrar aglomerados

Técnicas: Redes Neurais do tipo mapas auto-organizáveis Algoritmo k-médias

Page 5: 160277 redes neurais artificiais

AM – Conceitos Básicos

Exemplo (padrão, instância) Amostra de tecido de paciente

Característica (atributo, variável) Nível de expressão de um gene do tecido

Vetor de características Vetor com expressões de m genes do

tecido Classe

Presença ou ausência de câncer

Page 6: 160277 redes neurais artificiais

AM – Conceitos Básicos

g1 g2 gj gN-1gN

Padrão 1Padrão 2Padrão 3

Padrão i

Padrão m

Característica

Câncer

Normal

Câncer

Classe

Page 7: 160277 redes neurais artificiais

AM – Conceitos Básicos

Conjunto de exemplos (conj. de dados) Conjunto de treinamento Conjunto de teste

Acurácia (taxa de erro) Falsos positivos e falsos negativos Overfitting (super ajustamento)

Page 8: 160277 redes neurais artificiais

Árvores de Decisão – ADs

Forma mais simples: Lista de perguntas respostas “sim”

ou “não” Hierarquicamente arranjadas Levam a uma decisão

Estrutura da árvore determinada por meio de aprendizado

Page 9: 160277 redes neurais artificiais

ADs

Contém códon de parada?

Não

Não-gene

Sim

Códon de parada downstream?

Tamanho da seqüência > limiar?

Não-gene Gene

Não-gene

Não Sim

Não Sim

Page 10: 160277 redes neurais artificiais

ADs

Contém códon de parada?

Não

Não-gene

Sim

Códon de parada downstream?

Não-gene

Não Sim

Nós internos correspondem a testes

Ramos são resultados dos testes

Folhas fornecem classificações

Page 11: 160277 redes neurais artificiais

ADs

Contém códon de parada?

Não

Não-gene

Sim

Códon de parada downstream?

Tamanho da seqüência > limiar?

Não-gene Gene

Não-gene

Não Sim

Não Sim

Novo padrão: Contém códon de parada dowstream e tamanho da seqüência é menor que limiar

Page 12: 160277 redes neurais artificiais

ADs – treinamento

Treinamento AD encontra regras que recursivamente

bifurcam o conjunto de dados Sub-conjuntos homogêneos intra sub-conjuntos e Sub-conjuntos heterogêneos inter sub-conjuntos

Conteúdo dos sub-conjuntos pode ser descrito por um conjunto de regras

Page 13: 160277 redes neurais artificiais

ADs – treinamento

Day Outlook Temperature Humidity Wind PlayTennisD1 Sunny Hot High Weak NoD2 Sunny Hot High Strong No

D3 Overcast Hot High Weak YesD4 Rain Mild High Weak YesD5 Rain Cool Normal Weak Yes

D6 Rain Cool Normal Strong NoD7 Overcast Cool Normal Strong YesD8 Sunny Mild High Weak No

D9 Sunny Cool Normal Weak YesD10 Rain Mild Normal Weak YesD11 Sunny Mild Normal Strong Yes

D12 Overcast Mild High Strong YesD13 Overcast Hot Normal Weak YesD14 Rain Mild High Strong No

Considere a tarefa de aprendizado representada pelos exemplos de treinamento na tabela abaixo, em que o objetivo é prever o atributo PlayTenis baseando-se nos outros atributos. Construa uma AD.

Page 14: 160277 redes neurais artificiais

ADs – treinamento

Teste Exemplo Outlook Temperature Humidity Wind Play? If outlook=sunny D1

D2 D8 D9 D11

Sunny Sunny Sunny Sunny Sunny

Hot Hot Mild Cool Mild

High High High Normal Normal

Weak Strong Weak Weak Strong

No No No Yes Yes

If outlook=overcast

D3 D7 D12 D13

Overcast Overcast Overcast Overcast

Hot Cold Mild Hot

High Normal High Normal

Weak Strong Strong Weak

Yes Yes Yes Yes

If outlook=rain D4 D5 D6 D10 D14

Rain Rain Rain Rain Rain

Mild Cool Cool Mild Mild

High Normal Normal Normal High

Weak Weak Strong Weak Strong

Yes Yes No Yes No

Page 15: 160277 redes neurais artificiais

ADs – treinamento

Teste Exemplo Outlook Temperature Humidity Wind Play? If outlook=sunny and humidity=high

D1 D2 D8

Sunny Sunny Sunny

Hot Hot Mild

High High High

Weak Strong Weak

No No No

If outlook=sunny and humidity=nomal

D9 D11

Sunny Sunny

Cool Mild

Normal Normal

Weak Strong

Yes Yes

If outlook=overcast

D3 D7 D12 D13

Overcast Overcast Overcast Overcast

Hot Cold Mild Hot

High Normal High Normal

Weak Strong Strong Weak

Yes Yes Yes Yes

If outlook=rain and wind=strong

D6 D14

Rain Rain

Cool Mild

Normal High

Strong Strong

No No

If outlook=rain and wind=weak

D4 D5 D10

Rain Rain Rain

Mild Cool Mild

High Normal Normal

Weak Weak Weak

Yes Yes Yes

Page 16: 160277 redes neurais artificiais

ADs - conclusão

Vantagens: Estrutura de fácil manipulação Produzem modelos que podem ser facilmente

interpretados por humanos

Desvantagens: Pouca robustez a dados de grande dimensão Acurácia afetada por atributos pouco relevantes Dificuldade em lidar com dados contínuos

Page 17: 160277 redes neurais artificiais

Algumas Ferramentas para extração de ADs

Weka – http://www.cs.waikato.ac.nz/ml/weka/

Trepan - poderá ser adquirido através de um e-mail enviado à Mark Craven ([email protected]), autor do Trepan.

C4.5 - HAMILTON, H.; GURAK, E.; FINDLATER, L.; OLIVE, W.

Machine learning/decision trees - C4.5 tutorial. Disponível em: <http://www.cbi.msstate.edu/faculty/dvance/ml/ C4_5%20Tutorial.htm>. Acesso em: 03 jan. 2002.

ID3, C5.0, dentre outros...

Page 18: 160277 redes neurais artificiais

Redes Neurais Artificiais

O que são Redes Neurais Artificiais?

Redes Neurais Artificiais (RNA) são modelos de computação com propriedades particulares:

Capacidade de adaptação (aprendizado)

Generalizar

Page 19: 160277 redes neurais artificiais

O que são RNAs?

Uma rede neural é um processador maciçamente paralelamente distribuído constituído de unidades de processamento simples, que têm a propensão natural para armazenar conhecimento experimental e torná-lo disponível para o uso. Ela se assemelha ao cérebro em dois aspectos:

1. O conhecimento é adquirido pela rede a partir de seu ambiente através de um processo de aprendizagem

2. Forças de conexão entre neurônios, conhecidas como pesos sinápticos, são utilizadas para armazenar o conhecimento adquirido.

Simon Haykin

Page 20: 160277 redes neurais artificiais

O que são RNAs?

RNA: estruturas distribuídas formadas por grande número de unidades de processamento conectadas entre si.

Multi-disciplinaridade: Ciência da Computação, Matemática, Física, Engenharias, Psicologia, Biologia, Lingüística, Filosofia, etc.

Page 21: 160277 redes neurais artificiais

Modelos inspirados no cérebro humano Compostas por várias unidades deprocessamento (“neurônios”)

Interligadas por um grande número deconexões (“sinapses”)

Eficientes onde métodos tradicionais têm se mostrado inadequados

Page 22: 160277 redes neurais artificiais

Características das RNAs

Aprendem através de exemplos Adaptabilidade Capacidade de generalização Tolerância a falhas

Page 23: 160277 redes neurais artificiais

Potenciais áreas de aplicação das RNAs Classificação de padrões Clustering/categorização Aproximação de funções

Previsão Otimização Controle Mineração de dados etc...

Page 24: 160277 redes neurais artificiais

Breve histórico

Década de 40 : O começo

(1943) McCulloch & Pitts Modelo artificial de um neurônio

biológico (1949) Hebb desenvolve algoritmo

para treinar RNA (aprendizado Hebbiano) Se dois neurônios estão

simultaneamente ativos, a conexão entre eles deve ser reforçada

Page 25: 160277 redes neurais artificiais

1950-1960: Anos de euforia

(1958) Von Neumann mostra interesse em modelagem do cérebro (RNA)

The Computer and the Brain, Yale University Press

(1958) Rosenblatt implementa primeira RNA, a rede Perceptron

Ajuste iterativo de pesos Prova teorema da convergência

Page 26: 160277 redes neurais artificiais

Década de 70: Pouca atividade

(1969) Minsky & Papert analisam Perceptron e mostram suas limitações

Não poderiam aprender a resolver problemas simples como o OU-exclusivo

Causou grande repercussão

Page 27: 160277 redes neurais artificiais

Década de 70: Pouca atividade

(1971) Aleksander propõe redes Booleanas

(1972) Kohonen e Anderson trabalham com RNAs associativas

(1975) Grossberg desenvolve a Teoria da Ressonância Adaptiva (redes ART)

Page 28: 160277 redes neurais artificiais

Década de 80: A segundaonda

(1982) Hopfield mostra que Redes Neurais podem ser tratadas como sistemas dinâmicos

(1986) Hinton, Rumelhart e Williams, propõem algoritmo de aprendizagem para redes multi-camadas

Page 29: 160277 redes neurais artificiais

Tendências atuais

• Controle de generalização

• Sistemas neurais híbridos

Page 30: 160277 redes neurais artificiais

Conceitos básicos

Estrutura geral das RNAs:

Unidades de processamento ni (nós) Conexões wij

Saída Topologia

Page 31: 160277 redes neurais artificiais

• Modelo Matemático de um Neurônio

Conceitos FundamentaisConceitos Fundamentais

Page 32: 160277 redes neurais artificiais

O neurônio de McCulloch-Pitts

Page 33: 160277 redes neurais artificiais

Neurônio de McCulloch-Pitts

Page 34: 160277 redes neurais artificiais

Exercício

Page 35: 160277 redes neurais artificiais

Solucão

Page 36: 160277 redes neurais artificiais

Aprendizado

Capacidade de aprender a partir de seuambiente e melhorar sua performance com otempo

Parâmetros livres de uma RNA são adaptados através de estímulos fornecidos pelo ambiente Processo iterativo de ajustes aplicado às

sinapses A RNA deve saber mais sobre seu ambiente

após cada iteração

Page 37: 160277 redes neurais artificiais

RNA deve produzir para cada conjunto de entradas apresentado o conjunto de saídas adequado.

Forma geral para o ajuste de pesos é: wik(n+1) = wik(n) + wik(n)

Page 38: 160277 redes neurais artificiais

Mecanismos de aprendizado

Modificação de pesos (wij(n)) associados às conexões

Acréscimo e/ou eliminação de conexões e/ou nodos

Page 39: 160277 redes neurais artificiais

Aprendizado supervisionado

Professor externo

Possui conhecimento sobre ambiente Representado por conjunto de pares (x, d)

Parâmetros da rede são ajustados por (x,d) Rede procura repetir comportamento do

professor

Page 40: 160277 redes neurais artificiais

Aprendizado por reforço

Crítico externo

Processo de tentativa e erro Procura maximizar sinal de reforço

Se ação tomada por sistema é seguida por estado satisfatório, ação é fortalecida, caso contrário, ação é enfraquecida

Page 41: 160277 redes neurais artificiais

Aprendizado por reforço

Tipos de reforço

Positivo = recompensa Negativo = punição Nulo

Page 42: 160277 redes neurais artificiais

Aprendizado nãosupervisionado

Não está associado a crítico ou professor externo

Extração de características estatisticamente relevantes dos dados

Page 43: 160277 redes neurais artificiais

Perceptron

Perceptron Simples

Page 44: 160277 redes neurais artificiais

Perceptron - Características

O perceptron é usado para conjuntos de treinamento linearmente separáveis

Inclusão de tendência (“bias”) No algoritmo de aprendizagem do Perceptron busca-se

um vetor W que tenha projeção positiva (produto interno) com todos os exemplos positivos e projeção negativa com todos os exemplos negativos

A aprendizagem do perceptron sempre tem sucesso em tempo finito para um conjunto de treinamento finito e separável de exemplos de treinamento

p

jjj uWWS

10 .

Page 45: 160277 redes neurais artificiais

Algoritmo do Perceptron1. Fazer W ser o vetor nulo.

2. Selecionar um exemplo de treinamento Ek (com a correspondente classificação Ck). Isto pode ser feito de maneira cíclica (em ordem) através dos exemplos de treinamento ou pegando um exemplo aleatoriamente.

3. Se W classifica Ek corretamente, isto é, se:

{W.Ek 0 e Ck = +1} ou se {W.Ek < 0 e Ck = -1} Então: não fazer nada. Senão Passo de alteração: Modificar W somando

ou subtraindo Ek de acordo com a saída correta ser +1 ou -1: W’ = W + CkEk.

4. Ir ao passo 1.

Page 46: 160277 redes neurais artificiais

Perceptron - Conclusões

Para um conjunto finito de exemplos de treinamento E, com componentes inteiros (ou racionais), o algoritmo de aprendizagem do perceptron, em tempo finito: Produzirá um vetor peso que satisfaz todos os

exemplos de treinamento (se e somente se E é separável); ou

Abandonará e reutilizará um vetor peso (se e somente se E é não-separável).

Page 47: 160277 redes neurais artificiais

Perceptron - Conclusões

Se um conjunto de exemplos de treinamento E é não-separável, então por definição não existe um vetor de pesos W que classifique corretamente todos os exemplos de treinamento em E utilizando o algoritmo de aprendizagem do perceptron. A alternativa mais natural é encontrar um vetor de pesos W* que classifique tantos exemplos de treinamento quanto possível de E. Tal conjunto de pesos é chamado de ótimo

Page 48: 160277 redes neurais artificiais

Algoritmo Backpropagation - MLP

Resumo do algoritmo de treinamento:

1 - Apresentar vetor de entrada à camada de entrada da rede e propagá-lo até a camada de saída;

2 - Atualizar pesos das camadas de saída e escondida, propagando o erro de volta às entradas;

Page 49: 160277 redes neurais artificiais

3 - para os nodos j da camada de saída, atualizar os pesos da seguinte forma:

Wij(n+1)=wji(n) + j(n)yi(n)

Onde j(n) equivale a:

j(n)=j(n)f’j(vj(n))

4 - Para os nodos j da camada escondida:

Wij(n+1)=wji(n) + j(n)yi(n)

Page 50: 160277 redes neurais artificiais

Onde j(n) equivale a:

j(n) = f’j(vj(n)) k(n)wkj(n)

e k se refere aos nodos da camada de saída.

Page 51: 160277 redes neurais artificiais

A atualização dos pesos é feita de forma individual para cada um dos vetores do conjunto de treinamento;

Para cada vetor de treinamento, o sinal deve ser propagado das entradas para as saídas para que o erro possa então propagar em sentido contrário e permitir o treinamento;

Algoritmo Backpropagation - Considerações

Page 52: 160277 redes neurais artificiais

• Cada apresentação completa de todos os elementos do conjunto de treinamento e conseqüente ajuste de pesos é chamada epoch;

• É aconselhável randomizar a seqüência com que os vetores são apresentados à rede de uma epoch para a outra para acrescentar um componente estocástico ao treinamento e evitar ciclos limites indesejáveis na atualização dos pesos;

Page 53: 160277 redes neurais artificiais

• Os pesos iniciais devem ser preferencialmente obtidos de uma distribuição uniforme (evita polarização)

Page 54: 160277 redes neurais artificiais

• Reconhecimento de Caracter• Aproximador de Funções

ExemplosExemplos

Page 55: 160277 redes neurais artificiais

Defina valor de ;

Repita

Para cada par {v, t}

Calcule a saída y apresentando v nas entradas;

Se y<>t então w(n+1) = w(n) + (t-y)v

Senão w(n+1) = w(n);

Fim

Fim para

Até erro < Tolerância

Exemplo - Algoritmo GeralExemplo - Algoritmo Geral

Page 56: 160277 redes neurais artificiais

Padrões de EntradaPadrões de Entrada

Exemplo - Reconhecimento de CaracterExemplo - Reconhecimento de Caracter

Page 57: 160277 redes neurais artificiais

Exemplo - Reconhecimento de CaracterExemplo - Reconhecimento de Caracter

Variações nos padrões de EntradaVariações nos padrões de Entrada

Page 58: 160277 redes neurais artificiais

Exemplo - Reconhecimento de CaracterExemplo - Reconhecimento de Caracter

Variações nos padrões de entradaVariações nos padrões de entrada

Page 59: 160277 redes neurais artificiais

Parâmetros: ta=0.1, num_ep=3000, tol=0.0001)Parâmetros: ta=0.1, num_ep=3000, tol=0.0001)

Exemplo - Aproximador de Exemplo - Aproximador de FunçõesFunções

Page 60: 160277 redes neurais artificiais

Exemplo - Aproximador de FunçõesExemplo - Aproximador de Funções

Gráfico de erroGráfico de erro

Page 61: 160277 redes neurais artificiais

http://www.nada.kth.se/~orre/snns-manual/

Matlab

Etc, etc

Ferramentas