lesson 6: neural networks

40
Aprendizagem Computacional Gladys Castillo, UA Chapter 6 Redes Neuronais (Neural Networks)

Upload: gladys-castillo

Post on 26-Jun-2015

1.754 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Lesson 6: Neural Networks

Aprendizagem Computacional Gladys Castillo, UA

Chapter 6

Redes Neuronais(Neural Networks)

Page 2: Lesson 6: Neural Networks

2Aprendizagem Computacional Gladys

Castillo, UA

Classificadores LinearesSe os exemplos do conjunto de treino são linearmente

separáveis podemos aprender uma função discriminante linear e logo usa-la para classificar os futuros exemplos

Figura extraídas dos acetatos de Luis Oliveira, Classificadores

Lineares

x1, x2 - 2 variáveis preditoras

C = {class1, class2} – 2 classes

f: x1 x2 C

Para um novo exemplo x:

se g(x) > 0 f(x) = class1

se g(x) < 0 f(x) = class2

Page 3: Lesson 6: Neural Networks

3Aprendizagem Computacional Gladys

Castillo, UA

Separabilidade entre Classes

Um conjunto de treino é chamado linearmente separável se existe pelo menos um hiperplano capaz de separar os exemplos de

diferentes classes

Figura extraídas dos acetatos de Aluizio F. R. Araújo, Máquinas de Vectores Suporte

linearmenteseparável

linearmentenão separável

Page 4: Lesson 6: Neural Networks

4Aprendizagem Computacional Gladys

Castillo, UA

IRIS Data (Fisher, 1936)

3 classes setosa versicolor virginica

4 atributos comprimento da pétala largura da pétala comprimento da sépala largura da sépala

Problema clásico de classificação das flores iris.

On-line no UCI Machine Learning Repository http://www.ics.uci.edu/~mlearn/MLRepository.html

O conjunto de dados contêm 50 exemplos por cada classe

Page 5: Lesson 6: Neural Networks

5Aprendizagem Computacional Gladys

Castillo, UA

Classificadores Lineares e Não LinearesIris Data (Fisher, 1936)

Discriminante Linear Árvore de Decisão

Gaussian mixture Kernel method (SVM)

setosa

x setosaO virginica+ versicolor

Figure from Norbert Jankowski and Krzysztof Grabczewski

Page 6: Lesson 6: Neural Networks

6Aprendizagem Computacional Gladys

Castillo, UA

Fronteira de Decisão Linear

-0.50

0.5-0.5

00.5

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

X1X2

X3

x1x2

x3

A fronteira de decisão linear está definida pelos hiperplanos que separam as classes

x1

x2

A fronteira de decisão linear está definida pelos hiperplanos que separam as classes

Figuras extraídas de “Introduction to Machine Learning”, Isabelle Guyon

Page 7: Lesson 6: Neural Networks

7Aprendizagem Computacional , Gladys Castillo

Fronteiras de Decisão Não Linear

x1

x2

-0.5

0

0.5

-0.5

0

0.5-0.5

0

0.5

Hs.128749Hs.234680

Hs.

7780

x1x2

x3

Funções não lineares separam as classes

Figuras extraídas de “Introduction to Machine Learning”, Isabelle Guyon

Page 8: Lesson 6: Neural Networks

8Aprendizagem Computacional Gladys

Castillo, UA

x1

x2

Fit / Robustness Tradeoff

x1

x2

15

O que será melhor: a fronteira linear ou não linear?

Figuras extraídas de “Introduction to Machine Learning”, Isabelle Guyon

Page 9: Lesson 6: Neural Networks

9Aprendizagem Computacional Gladys

Castillo, UA

Classificadores Lineares

onde: w - vector de pesos determina a orientação do hiperplano b – desvio (bias)

Tarefa de Aprendizagem (ideia básica)A partir do conjunto de treino com

exemplos rotulados estimar os parâmetros w e b por forma a obter a melhor fronteira de decisão segundo um critério que define

o que significa “melhor”

Hiperplano de Classificação: g(x) = w x + b = 0 fronteira de decisão linear

0bx wse 1

0b wse1)(ˆ

xxfyClassificador Linear

Binário :

Figura extraídas dos acetatos de Luis Oliveira, Classificadores

Lineares

Page 10: Lesson 6: Neural Networks

10Aprendizagem Computacional Gladys

Castillo, UA

Classificadores LinearesSoluções possíveis

B2

Podem existir vários hiperplanos

separando as classes correctamente,

contudo existe pelo menos um melhor

que os demais.

Qual é o melhor? Cómo definir

melhor?

O critério para definir o melhor

(óptimo) varia segundo o modelo de

classificação: Exemplos de

classificadores lineares:

Discriminante linear (Fisher)

Perceptron (redes neuronais)

Classificador de Margem

Maximal (máquinas de suporte

vectorial)

Page 11: Lesson 6: Neural Networks

11Aprendizagem Computacional Gladys

Castillo, UA

Este exemplo mostra um classificador

linear de margem maximal (SVM)

“aprendido” deste conjunto de treino

usando o método dos multiplicadores

de Lagrange.

A partir dos dados foram estimados os

parâmetros w1, w2 e b do hiperplano

Classificadores Lineares

Figura extraída dos acetatos de Introduction to Data Mining  P. Tan, M.Steinbach,

V.Kumar

Page 12: Lesson 6: Neural Networks

12Aprendizagem Computacional Gladys

Castillo, UA

Redes Neuronais Artificiais (RNAs)

Outro nome: modelos conexionistas

As RNAs são inspiradas no funcionamento do cérebro humano

Compostas dum elevado número de neurónios altamente inter-ligados trabalhando em paralelo na resolução de problemas

O conhecimento adquirido através da aprendizagem é armazenado nas ligações.

Modelo distribuído de computação paralela com alto nível de granularidade

Page 13: Lesson 6: Neural Networks

13Aprendizagem Computacional Gladys

Castillo, UA

nós de entrad

a

nós de saída

nós ocultos

Redes Neuronais Artificiais (RNAs)

As RNAs contêm tem 3 tipos de camadas (layers):

input layer: informação que entra no neurónio

hidden layer: camadas intermédias, podem ser várias

output layer: informação que sai

Modelos mais populares: Perceptron:

modelo mais simples, não usa hidden layers

Multi-layer Feed-Forward:

os nós de uma camada estão ligados apenas aos nós da seguinte camada

modelo com 3 camadas

Page 14: Lesson 6: Neural Networks

14Aprendizagem Computacional Gladys

Castillo, UA

Modelo de um Neurónio Artificial

)sign(yn

0ikii xw

Neurónio = processador de informação

recebe e envia impulso a milhares de neurónios

dendritos: canais de entrada corpo celular: órgão de

cômputo (soma ponderada, função não linear)

axónio: canal de saídadistribuição a outros neurónios

Potencial pos-sináptico: h (w, x) = w . x = j wj xj

O factor bias t é usualmente subtraído ao potencial pos-sináptico

função de activação para obter y: y = f (w. x – t)

x1

x2

xn

-1

w1

w2

wn

t

axon

limiar (threshold)

Entr

adas dendritas

função de activação

f( ) y

sinapsis(pesos)

saída

somatóriapesada

x1

x2

xn

-1

w1

w2

wn

t

axon

limiar (threshold)

Entr

adas dendritas

função de activação

f( ) y

sinapsis(pesos)

saída

somatóriapesada

y = f(w x – t) = f(j wj xj – t)

Page 15: Lesson 6: Neural Networks

15Aprendizagem Computacional Gladys

Castillo, UA

Perceptron

função de activação: a função sinal

X1

X2

X3

Y

Black box

w1

t

Outputnode

Inputnodes

w2

w3

otherwise1

0 t . if1)(

xwtxwsigny

iii

Um perceptron é um classificador linear binário, ou seja, uma função

f: X Y que mapea um vector binário x a um valor binário y

O modelo mais simples das RNAs concebido em 1957 no Cornell Aeronautical Laboratory por Frank Rosenblatt.

Modelo simples de um neurónio artificial

Modelo geral com vários outputs onde cada

output é modelado com o modelo do neurónio

simples)

Page 16: Lesson 6: Neural Networks

16Aprendizagem Computacional Gladys

Castillo, UA

RNAs - Modelo Caixa Preta (Black-Box)

x 1 x 2 x 3 y1 0 0 01 0 1 11 1 0 11 1 1 10 0 1 00 1 0 00 1 1 10 0 0 0

x 1

x 2

x 3

y

Black box

Output

Input

X1

X2

X3

Y

Black box

w1

t

Outputnode

Inputnodes

w2

w3

Conjunto de Treino

Aprender um Perceptron dos dados

significa aprender os pesos que melhor ajustem o

modelo oculto nos dados

Page 17: Lesson 6: Neural Networks

17Aprendizagem Computacional Gladys

Castillo, UA

Perceptron Modelação de uma função booleana

)4.03.03.03.0(ˆ 321 xxxsignyo valor de y é true se pelo menos 2 inputs são true

Função alvo: (target function) Modelação com Perceptron

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

de treino

Page 18: Lesson 6: Neural Networks

18Aprendizagem Computacional Gladys

Castillo, UA

PerceptronFronteira de Decisão Linear

O perceptron é usado para conjunto

de treinos linearmente separáveis

Page 19: Lesson 6: Neural Networks

19Aprendizagem Computacional Gladys

Castillo, UA

Problema de Classificação XOR

Não existe uma fronteira linear que possa separar estas duas classes. (como o Perceptron pode construir apenas um hiperplano,

não podemos usa-lo para modelar este problema)

XOR(x1, x2) = true se e só se um dos inputs é true(note que true = 1, false = -1)

OU exclusivo

Page 20: Lesson 6: Neural Networks

20Aprendizagem Computacional Gladys

Castillo, UA

Os exemplos podem ser classificados usando 2 hiperplanos que dividem o espaço dos atributos (input space) em suas

respectivas classes

RNA de Duas Camadas Problema XOR (ou exclusivo)

2 nós de entrada, 2 ocultos e um de saída

Page 21: Lesson 6: Neural Networks

21Aprendizagem Computacional , Gladys Castillo

Fronteiras de decisãoPerceptron vs. RNAs com 1 e 2 Camadas Ocultas

Figura extraída de Redes Neuronais, Pedro Larrañaga et al.

Page 22: Lesson 6: Neural Networks

22Aprendizagem Computacional Gladys

Castillo, UA

RNAs multi-camadas Feed-Forward

Activationfunction

g(Si )Si Oi

I1

I2

I3

wi1

wi2

wi3

Oi

Neuron iInput Output

threshold, t

InputLayer

HiddenLayer

OutputLayer

x1 x2 x3 x4 x5

yFeed-forward (directa, não recorrente) refere-se ao facto de que nenhum arco e dirigido a um nó da mesma camada ou de uma

camada anterior.

Podem existir várias camadas

ocultas

Page 23: Lesson 6: Neural Networks

23

RNAs multi-camadas Feed-Forward

Uma RNA pode ser representado como um

grafo dirigido onde:

A cada nó (neurónio) i é associado uma variável de

estado Xi

A cada ligação (i, j) entre os nós i e j é associado um

peso wij

A cada nó i é associado um desvio (viés, bias) i

Page 24: Lesson 6: Neural Networks

24

RNAs multi-camadas Feed-Forward

Para cada nó j de uma camada oculta ou de saída é definida uma função de activação

onde: wij é o peso associado a ligação que entra no nó j

partindo do nó i com estado Ij j é o desvio Oj é o novo estado do nó j.

Aprendizagem Computacional Gladys Castillo, UA

)( ji

iijj IwfO S

desvio

funçãode activação

f( ) y

sinapsis(pesos)

saída

funçãode activação

f( ) Oj

sinap(pesos)

saída

I1

j

I2

In w nj

w2j

w1j

Page 25: Lesson 6: Neural Networks

25Aprendizagem Computacional Gladys

Castillo, UA

Funções de Activaçãopara RNAs multicamadas

A função de activação que é normalmente

usada com o algoritmo

Backpropagation é a logística (ou sigmoid)

xexf

1

1)(

Page 26: Lesson 6: Neural Networks

26Aprendizagem Computacional Gladys

Castillo, UA

Algoritmo de Aprendizagem “Backpropagation”

Bacpropagation é um algoritmo iterativo:

em cada iteração processa todos os exemplos de treino e

compara o valor predito na saída da rede com o valor real

(correcto) da classe

os pesos das ligações e os desvios são modificados por

forma a minimizar o erro quadrático médio entre os

valores reais e os valores preditos

2

1

)ˆ(1

i

N

ii yy

NEQM

Aprender uma RNA dos dados significa aprender os pesos das ligações

EQM é o MSE abreviado do termo em inglês (mean squared error)

Paul Werbos, 1974

Page 27: Lesson 6: Neural Networks

27

BackpropagationParâmetros de Entrada

RNA - topologia de uma rede neuronal multi-camada feed-forward A escolha do # camadas ocultas e o # de nós em cada

camada é um processo de tentativa-e-erro. D - conjunto de treino com N exemplos

etiquetados Os valores dos atributos contínuos devem ser

normalizados Os atributos discretos devem ser transformados em

atributos binários (um nó de entrada por cada valor) Em problemas com mais de duas classes, deve ser

utilizado um nó de saída por cada classe. l - constante (factor de aprendizagem - "learning

rate")Aprendizagem Computacional Gladys

Castillo, UA

Page 28: Lesson 6: Neural Networks

28

BackpropagationEsquema Geral

Input: topologia de uma RNA, conjunto de treino D, learning rate l

Output: RNA com pesos das ligações que minimizam o EQM

Inicialização: InicializarPesos(RNA)

Enquanto critério de paragem não atingido:

Para cada exemplo do conjunto de treino D

1. Propagar Valores de Entrada (caminhando da camada de entrada para a camada de saída)

2. Retropropagar Error (caminhando da camada de saída para a camada de entrada)

3. Actualizar Pesos (usando a regra de descida do gradiente)

Page 29: Lesson 6: Neural Networks

29Aprendizagem Computacional Gladys

Castillo, UA

BackpropagationRegra do Descida do Gradiente

Objectivo: atingir o mínimo global da função do EQM caminhando na direcção contraria a do gradiente (sentido de maior decréscimo da função E(w) E(w, D) EQM )

Exemplo de - E(w) com w = (w1,w2)

Page 30: Lesson 6: Neural Networks

30Aprendizagem Computacional Gladys

Castillo, UA

BackpropagationRegra do Descida do Gradiente

Para um vector de pesos w=(w1, w2, …, wn), a fórmula de

actualização dos pesos da regra da descida do gradiente é

dada por )(' www El onde: l é o factor de aprendizagem - uma constante em ]0; 1] que

ajuda a que o algoritmo não pare num mínimo local E(w) é o gradiente da função do erro E(w) definido por

221

,...,,)(w

E

w

E

w

EE w

Logo, para aplicar este método precisamos de calcular o gradiente de E(w)

(ver derivação no livro ML de Tom Mitchell)

Page 31: Lesson 6: Neural Networks

31

BackpropagationInicialização

Os pesos das ligações e o desvio (bias)

associado a cada nó devem ser

inicializados utilizando números

pequenos e aleatórios, normalmente no

intervalo [-1; 1].

Aprendizagem Computacional Gladys Castillo, UA

Page 32: Lesson 6: Neural Networks

32

BackpropagationPropagação dos valores de entrada

Propagar os valores de entrada para a frente até obter um valor de saída (uma classificação não necessariamente correcta).

Para cada nó j da camada de entrada:

Para cada nó j de uma camada (oculta ou de saída) e para cada nó i da camada anterior:

Aprendizagem Computacional Gladys Castillo, UA

ji

iijj OwI

jj IO

jIjje

IfO

1

1)(

Page 33: Lesson 6: Neural Networks

33

BackpropagationRetropropagação do erro

Calculam-se e retropropagam-se os erros cometidos na classificação de cada exemplo de treino, avançando da camada de saída para a camada de entrada. Para cada nó j da camada de saída o erro cometido ao

classificar um dado exemplo de treino <x, y> é dado por:

Aprendizagem Computacional Gladys Castillo, UA

))(1( jjjj OyOOe

ver toda a derivação no livro ML de Tom Mitchell

)(1)(()1(

)('2

xfxfe

exf

x

x

Para derivar esta fórmula precisamos de calcular a derivada parcial de E(w) para cada peso. Note que para a função logística:

)1()(' e )( jjjjj OOIfIfO

Page 34: Lesson 6: Neural Networks

34

BackpropagationRetropropagação do erro

Para cada nó j das camadas ocultas o erro cometido é dado por:

onde wjk é o peso associado à ligação que entra no nó k

partindo do nó j e ek é o erro associado a nó k previamente calculado

Aprendizagem Computacional Gladys Castillo, UA

k

kjkjjj ewOOe )1(

Page 35: Lesson 6: Neural Networks

35

BackpropagationActualização dos pesos e desvios

Os pesos e desvios devem ser actualizados usando a regra de descida do gradiente por forma a minimizar o EQM

Para cada iteração k Cada peso wij é actualizado pela seguinte fórmula:

Cada desvio j é actualizado pela seguinte fórmula:

Aprendizagem Computacional Gladys Castillo, UA

)()()1()( ki

kj

kij

kij Oelww

)()1()( kj

kj

kj el

Page 36: Lesson 6: Neural Networks

36

BackpropagationCritério de Paragens

Parar o algoritmo: quando as diferenças entre os pesos forem

todas inferiores a um dado limite de tolerância.

quando a percentagem de exemplos mal classificados for inferior a um dado valor.

após um determinado numero de iterações.

Aprendizagem Computacional Gladys Castillo, UA

Page 37: Lesson 6: Neural Networks

37

BackpropagationCorpo do Algoritmo

Enquanto critério de paragem não atingido:

Para cada exemplo do conjunto de treino D

1. Propagar Valores de Entrada

• para camada de entrada:

• para camadas ocultas e de saída:

2. Retropropagar Error

• para camada de saída:

• para camadas ocultas :

3. Actualizar Pesos e Desvios

ji

iijj OwI jj IO

jIjje

IfO

1

1)(

))(1( jjjj OyOOe

k

kjkjjj ewOOe )1(

)()()1()( ki

kj

kij

kij Oelww )()1()( k

jk

jk

j el

Page 38: Lesson 6: Neural Networks

38

Exemplo

Aprendizagem Computacional Gladys Castillo, UA

Extraído do livro Data Mining - Concepts and Techniques, 2nd edition , J.

Han and Micheline KamberChapter 6.6. Classification by Backpropation

o valor predito

Calcule os novos pesos sinápticos usando o algoritmo

de backpropagation com a função de activação sigmoide, o factor de

aprendizagem l=0.9 e o valor da classe observado y =1.

1. Propagação dos valores de entrada

Page 39: Lesson 6: Neural Networks

39

Exemplo (continuação)

Aprendizagem Computacional Gladys Castillo, UA

2. Retropropagaçã

o do erro

3. Actualizar pesos e desvios

Page 40: Lesson 6: Neural Networks

40Aprendizagem Computacional , Gladys Castillo

References Capítulo 4 - Artificial Neural Networks do livro de Tom Mitchell,

Machine Learning , McGrau Hill (1997)

Capítulo 6.6 do livro Data Mining - Concepts and Techniques, J. Han. 

Morgan Kaufmann (2006)

Capítulos 5 do livro Introduction to Data Mining  P. Tan, M.Steinbach,

V.Kumar

Acetatos “Classificadores Lineares” de Luis Oliveira

On-line: www.ppgia.pucpr.br/~soares/cursos/recpad2/public/classificadoreslineares.pdf