Localização de Raizes (Zeros de Função)

28
Edgard Jamhour

Transcript of Localização de Raizes (Zeros de Função)

Page 1: Localização de Raizes (Zeros de Função)

Edgard Jamhour

Page 2: Localização de Raizes (Zeros de Função)

Neurônios correspondem a simples funções, geralmente não lineares, que relacionam duas ou mais entradas a uma saída.

b = bias (constante)

Total Net Input

Page 3: Localização de Raizes (Zeros de Função)

A função de ativação é utilizada para transformar o “total net input” em uma saída normalizada.

Sigmoid: Tanh: ReLU:

Page 4: Localização de Raizes (Zeros de Função)

Multilayer perceptron é uma ANN (rede neural artificial formada com uma camada de entrada (i), uma cadamda de saída (o) e uma ou mais camadas intermediárias ou escondidas (h).

Page 5: Localização de Raizes (Zeros de Função)

A ANN é uma equação não linear do tipo: 𝑓(𝒙,𝒘) = 𝒐 x : vetor de entradas: x = (x1, x2, ..., xe) w : vetor de pesos: w = (w1, w2,..., wp) o : vetor de saídas: o= (o1, o2,..., oS)

Equação: Multilayer Percepton, uma camada escondida: e=3, p=12, s=2

Page 6: Localização de Raizes (Zeros de Função)

Data uma base de treinamento, a métrica de ajuste da ANN é o erro quadrático.

O erro é calculado sobre uma base usada para treinamento. Exemplo: resultado do exame final de estudantes com base no

número de horas de estudo e o resultado da primeira parcial.

Page 7: Localização de Raizes (Zeros de Função)

Seja um dataset D=(d1, ..., dn)

O erro quadrático é dado por:

𝐸 = 0.5 (𝑑𝑖,𝑘 − 𝑜𝑘)2𝑠

𝑘 𝑛

𝑖=1

𝐸 = 0.5 (𝑑𝑖,𝑘 − 𝑓(𝒙,𝒘)𝑘)2𝑠

𝑘 𝑛

𝑖=1

O objetivo é encontrar w que minimiza E.

Page 8: Localização de Raizes (Zeros de Função)

Qualquer método de otimização não linear pode ser utilizado para minimizar o erro quadrático.

Abordagens comuns são:

Gradiente descendente:

▪ Precisa calcular o gradiente: 𝛻𝐸 =𝜕𝐸

𝜕𝑤1, ⋯ ,

𝜕𝐸

𝜕𝑤𝑝

Método Heurístico ▪ Pode resolver o problema sem cálculo do gradiente

▪ Exemplo: Nelder-Mead (downhill simplex method)

Page 9: Localização de Raizes (Zeros de Função)

Multi-layer perceptron com uma camada escondida:

x1

x2

1

h1

h2

1

o1

o2

w1

w2 w3

w4

w5

w6

w7

w8 w9

w10 w11

w12

Page 10: Localização de Raizes (Zeros de Função)

Equações dos neurônios de saída:

𝑜1 =1

1+𝑒𝑛𝑒𝑡01 e 𝑛𝑒𝑡01= w7 h1 + w8 h2 + w9

𝑜2 =1

1+𝑒𝑛𝑒𝑡02 𝑒 𝑛𝑒𝑡02= w10 h1 + w11 h2 + w12

Equações dos neurônios da camada escondida:

ℎ1 =1

1+𝑒𝑛𝑒𝑡ℎ1 e 𝑛𝑒𝑡ℎ1= w1 x1 + w2 x2 + w3

ℎ2 =1

1+𝑒𝑛𝑒𝑡ℎ2 𝑒 𝑛𝑒𝑡ℎ2= w4 x1 + w5 h2 + w6

Erro quadrático:

𝐸 = 0.5 (𝑜1 − 𝑑𝑖,1)2+(𝑜2 − 𝑑𝑖,2)

2

Page 11: Localização de Raizes (Zeros de Função)

DERIVADAS PARCIAIS

𝜕𝐸

𝜕𝑤7=

𝜕𝐸

𝜕𝑜1∙

𝜕𝑜1

𝜕𝑛𝑒𝑡01∙𝜕𝑛𝑒𝑡01

𝜕𝑤7

𝜕𝐸

𝜕𝑜1 = (𝑜1 − 𝑑𝑖,1)

𝜕𝑜1

𝜕𝑛𝑒𝑡1 =-

𝑒𝑛𝑒𝑡01

1+𝑒𝑛𝑒𝑡01 2 = 𝑜1 1 − 𝑜1

𝜕𝑛𝑒𝑡1

𝜕𝑤7 = ℎ1

POR ANALOGIA:

Fazendo: Eoj = (𝑜𝑗 − 𝑑𝑖,j)

𝑜 𝑗 = 𝑜1 1 − 𝑜1

𝜕𝐸

𝜕𝑤7= 𝐸𝑜1 ∙ 𝑜 1 ∙ ℎ1

𝜕𝐸

𝜕𝑤8= 𝐸𝑜1 ∙ 𝑜 1 ∙ ℎ2

𝜕𝐸

𝜕𝑤9= 𝐸𝑜1 ∙ 𝑜 1 ∙ 1

𝜕𝐸

𝜕𝑤10= 𝐸𝑜2 ∙ 𝑜 2 ∙ ℎ1

𝜕𝐸

𝜕𝑤11= 𝐸𝑜2 ∙ 𝑜 2 ∙ ℎ2

𝜕𝐸

𝜕𝑤12= 𝐸𝑜2 ∙ 𝑜 2 ∙ 1

Page 12: Localização de Raizes (Zeros de Função)

𝜕𝐸

𝜕𝑤1=

𝜕𝐸

𝜕ℎ1∙

𝜕ℎ1

𝜕𝑛𝑒𝑡ℎ1∙𝜕𝑛𝑒𝑡ℎ1

𝜕𝑤1

𝜕𝐸

𝜕ℎ1 =

𝜕𝐸

𝜕𝑜1∙

𝜕𝑜1

𝜕𝑛𝑒𝑡01 ∙

𝜕𝑛𝑒𝑡01

𝜕ℎ1 +

𝜕𝐸

𝜕𝑜2∙

𝜕𝑜2

𝜕𝑛𝑒𝑡02∙𝜕𝑛𝑒𝑡02

𝜕ℎ1

𝜕𝐸

𝜕ℎ1 = 𝐸𝑜1

𝑜 1𝑤7 + 𝐸𝑜2𝑜 2 𝑤10

onde:

Eoj = (𝑜𝑗 − 𝑑𝑖,j)

𝑜 𝑗 = 𝑜1 1 − 𝑜1

𝜕ℎ1

𝜕𝑛𝑒𝑡1 = ℎ1 1 − ℎ1 =ℎ 1

𝜕𝑛𝑒𝑡1

𝜕𝑤1 = 𝑥1

𝜕𝐸

𝜕𝑤1= 𝐸𝑜1

𝑜 1𝑤7 + 𝐸𝑜2

𝑜 2 𝑤10 ℎ 1𝑥1

Page 13: Localização de Raizes (Zeros de Função)

𝜕𝐸

𝜕𝑤1= 𝐸𝑜1

𝑜 1𝑤7 + 𝐸𝑜2

𝑜 2 𝑤10 ℎ 1𝑥1

𝜕𝐸

𝜕𝑤2= 𝐸𝑜1

𝑜 1𝑤7 + 𝐸𝑜2

𝑜 2 𝑤10 ℎ 1𝑥2

𝜕𝐸

𝜕𝑤3= 𝐸𝑜1

𝑜 1𝑤7 + 𝐸𝑜2

𝑜 2 𝑤10 ℎ 1

𝜕𝐸

𝜕𝑤4= 𝐸𝑜1

𝑜 1𝑤8 + 𝐸𝑜2

𝑜 2 𝑤11 ℎ 2𝑥1

𝜕𝐸

𝜕𝑤5= 𝐸𝑜1

𝑜 1𝑤8 + 𝐸𝑜2

𝑜 2 𝑤11 ℎ 2𝑥2

𝜕𝐸

𝜕𝑤6= 𝐸𝑜1

𝑜 1𝑤8 + 𝐸𝑜2

𝑜 2 𝑤11 ℎ 2

𝜕𝐸

𝜕𝑤7= 𝐸𝑜1

𝑜 1ℎ1

𝜕𝐸

𝜕𝑤8= 𝐸𝑜1

𝑜 1ℎ2

𝜕𝐸

𝜕𝑤9= 𝐸𝑜1

𝑜 11

𝜕𝐸

𝜕𝑤10= 𝐸𝑜2

𝑜 2ℎ1

𝜕𝐸

𝜕𝑤11= 𝐸𝑜2

𝑜 2ℎ2

𝜕𝐸

𝜕𝑤12= 𝐸𝑜2

𝑜 21

Page 14: Localização de Raizes (Zeros de Função)

Um dos métodos mais utilizados para resolver problemas numéricos sem cálculo do gradiente é o Nelder-Mead downhill simplex method

Amoeba method

Método do poliédro-flexível

Nelder-Mead é considerado um método heurístico

Dado um vetor x de dimensão n, o método procura a solução ótima construindo um poliedro de dimensão n+1

Page 15: Localização de Raizes (Zeros de Função)

O nome “simplex” corresponde a um poliedro de n+1 vértices em n dimensões.

▪ Segmento de linha em uma linha

▪ Triangulo em um plano

▪ Tetraedro no espaço tridimensional

Um Tetraedro em 3 dimensões corresponde a um simplex com 4 vértices.

x1

x2

x3

x4

x = (x1, x2, x3) é a solução que se deseja encontrar P = {x1, x2, x3 , x4} são pontos de teste usados para construir o poliedro

Page 16: Localização de Raizes (Zeros de Função)

Função que se deseja minimizar:

f(x,y) = x2 + x*y - 10x + y2

x = (x,y)

Poliedro: {(x1,y1), (x2,y2), (x3,y3) }

(0.5,10) f = 100.25

(10,30) f=1200

(30,20) f=1600

O poliedro é inicializado com pontos escolhidos pseudo aleatoriamento que delimitam a região de procura

Page 17: Localização de Raizes (Zeros de Função)

Os nós são ordenados do pior para o melhor nó: {x1, x2, x3}

Centroide excluindo o pior nó: 𝐶 =𝒙1+𝒙2

2

(0.5,10) f = 100.25

(30,20) f=1600

(10,30) f=1200

(5.25,20) 480.06

Pior nó

x1

x2

x3

melhor nó

x0

Page 18: Localização de Raizes (Zeros de Função)

Um novo ponto é procurado inicialmente na direção oposta ao pior nó a partir do centroide. xr = x0 + (x0-xn+1)

Valor padrão: =1

reflexão:{-19.5,20}

xr

xo xn+1

Page 19: Localização de Raizes (Zeros de Função)

Se o 𝑓 𝒙1 ≤ 𝑓 𝒙𝑟 < 𝑓 𝒙𝑛

O novo ponto xr substitui o pior ponto x3

xr

Page 20: Localização de Raizes (Zeros de Função)

Se 𝑓 𝒙𝑟 < 𝑓 𝒙1

O novo ponto é procurado na direção de xr

xe = x0 + *(xr-x0), com >1 ( exemplo, =2)

Se 𝑓 𝒙𝑒 < 𝑓 𝒙𝑟 xe substitui xn+1

Senão: xr substitui xn+1

Page 21: Localização de Raizes (Zeros de Função)

Se 𝑓 𝒙𝑟 ≥ 𝑓 𝒙n

O novo ponto é procurado na direção do pior ponto xn+1

xc = x0 + (xn+1-x0), com 0 < ≤ 0.5 ( default, =0.5)

Se 𝑓 𝒙c < 𝑓 𝒙𝑛+1 xc substitui xn+1

Senão: Encolher o Poliedro

Page 22: Localização de Raizes (Zeros de Função)

Substituir todos os pontos, exceto o melhor: x1

xi = x1 + (xi-x1), ≤ 1 ( default, =0.5)

Convergência:

Quando o poliedro fica muito pequeno;

(xi – xj) < para qualquer par (i,j) no vetor

Quando a função sendo minimizada fica suficientemente pequena

Quando um número máximo de iterações é atingido

Page 23: Localização de Raizes (Zeros de Função)
Page 24: Localização de Raizes (Zeros de Função)
Page 25: Localização de Raizes (Zeros de Função)
Page 26: Localização de Raizes (Zeros de Função)
Page 27: Localização de Raizes (Zeros de Função)

Parte 1: Implemente a rede neural do tipo multi-camada perceptron no Matlab. x1

x2

1

h1

h2

1

o1

o2

w1

w2 w3

w4

w5

w6

w7

w8 w9

w10 w11

w12

Page 28: Localização de Raizes (Zeros de Função)

sigmoid = @(x) (1/(1 + exp(-x))); neuron = @(x,w)(sigmoid( x*w')); hl = @(x,w)[1 neuron(x,w(1:3)) neuron(x,w(4:6))]; ol = @(x,w)[neuron(hl(x,w),w(7:9)) neuron(hl(x,w),w(10:12))]; % dataset = [[x1 x2 res], ...]; function res = erro(w, ol, dataset) [ n, ~ ] = size(dataset); res = 0; for i=1:n d = ol([1,dataset(i,1),dataset(i,2)],w); e = norm(d-[dataset(i,3),1-dataset(i,3)])^2; res = res + e; end end f = @(ws) erro(ws,ol,dataset); res = fminsearch(f,rand(1,12));