Академический Документы
Профессиональный Документы
Культура Документы
PERCEPTRON
(CONTINUAO)
Perceptron de duas entradas e um bias
w0=b
x0=+1 w0 f(u)
u y
x1 w1
x2 w2
f (u ) 1 se u 0
y f ( w1 x1 w2 x 2 w0 ), sendo
f (u ) 0 se u 0
Com os parmetros w0, w1 e w2, a funo f(u) separa o espao de
entradas em duas regies, usando uma linha reta dada por:
w1x1 + w2x2 + w0 = 0
Separao Linear
Sabe-se que se formarmos uma combinao linear de duas
variveis, e igual-la a um nmero, ento os pontos no espao
bidimensional podem ser divididos em trs categorias:
y f ( w1 x1 w2 x 2 w0 ), onde w0 b
Exemplo x2
(1,0) (1,1)
Funo xor
(0,0) (1,0)
x1
y=0 y=1
Algebricamente tem-se:
w1 .1 w2 .1
o que significa que (1,1) estaria no mesmo lado da linha L1, o que indesejvel.
PERCEPTRONS MULTICAMADAS
A funo XOR est alm da capacidade de um perceptron simples.
Contudo, um perceptron simples pode implementar funes lgicas elementares:
AND, OR e NOT.
Assim, se uma funo pode ser expressa como uma combinao dessas funes
lgicas elementares, ento essa funo pode ser implementada usando mais
neurnios.
Por exemplo, XOR pode ser expressa por: (x1 or x2 ) and (not (x1 and x2 )).
x1 x1 OR x2
y
AND
NOT
x2 x1 AND x2
Separao linear para XOR de duas
camadas
Em termos de separao linear (demarcao), isso equivale ao traado de
duas linhas.
x1 x1 OR x2
y
AND
NOT
x2 x1 AND x2
Delimitao de um cluster usando 3 separaes
no espao de entradas
x1
N1
y
N2 N4
x2
x2 100 L3
N3 L1 L2 L3
110 100
101
111 L1
010 011 001
x1
L2
Delimitao de 2 clusteres disjuntos
x2 L3
x1
N1
L2
N2 N7
L1
y
N3
N9
L6
N4
N5 N8 L4
L5 x1
x2 N6
Delimitao de um cluster circular
x2
x1
x2 pesos
entrada x w2
para
f (x) = 1
classe
A
peso w
w1
no-classe
A x1
pesos
para
f(x) = 0
x0 w0
hiperplano hiperplano
de peso de entrada
x1 x1 x1
w2 w2 w2
x1w1 +x2w2 >= 1 x1w1 +x2w2 < 1 x1w1 +x2w2 < 1 Inequaes para a funo
AND, com w0 = -1
Entrada = (1,1) Entrada = (1,0) Entrada = (0,1)
Plano 1: w0 = 0
Plano 2: w2 + w0 = 0
Plano 3: w1 + w0 = 0
Plano 4: w2 + w1 + w0 = 0
Poltopo para a funo AND
Plano 1: w0 = 0
Plano 2: w2 + w0 = 0
Plano 3: w1 + w0 = 0 w1
Plano 4: w2 + w1 + w0 = 0
soluo para
w0 = -0.5
-0.5
w2
Para a funo AND: soluo para
w0 = -1
-1
w0 < 0
w1 + w0 = 0
w2 + w0 < 0
w1 + w0 < 0
w2 + w0 = 0 w0
w2 + w1 + w0 >= 0 w2 + w1+ w0 = 0
1
1
0
w2
0
0
w1
1
Passos iterativos
nmero
durante o
de erros w2 w2 w(0)
Treinamento
1 2 w(1)
2
w* o vetor
0 w (3) = w* w(2) soluo
1
1
w1 w1
2
Funes booleanas de duas variveis
As 16 possveis funes de duas variveis so:
f0(x1,x2) = f0000 (x1,x2) = 0
f1(x1,x2) = f0001 (x1,x2) = ~(x1 v x2)
f2(x1,x2) = f0010 (x1,x2) = x1 ^ ~x2
f3(x1,x2) = f0011 (x1,x2) = ~x2
f4(x1,x2) = f0100 (x1,x2) = ~x1 ^ x2
f5(x1,x2) = f0101 (x1,x2) = ~x1
f6(x1,x2) = f0110 (x1,x2) = xor
f7(x1,x2) = f0111 (x1,x2) = ~(x1 ^ x2)
f8(x1,x2) = f1000 (x1,x2) = x1 ^ x2
f9(x1,x2) = f1001 (x1,x2) = ~xor
f10(x1,x2) = f1010 (x1,x2) = x1
f11(x1,x2) = f1011 (x1,x2) = x1 v~ x2
f12(x1,x2) = f1100 (x1,x2) = x2
f13(x1,x2) = f1101 (x1,x2) = ~x1 v x2
f14(x1,x2) = f1110 (x1,x2) = x1 v x2
f15(x1,x2) = f1111 (x1,x2) = 1
Visualizao de todas as funes
linearmente separveis no espao de pesos
Plano 2
1011 0010
f(0,1) 0011 0011 1010
1010
Plano 3
Plano 1 Plano 1
Plano 4 Plano 4
f(0,0)
f(1,1)
Considerando-se os pesos normalizados pode-se visualizar todas as 14 funes
linearmente separveis utilizando 4 planos de separao.
Como tem 16 funes booleanas no caso de entrada bidimensional (x1, x2), as duas
funes que faltam so XOR e NOT-XOR (coincidncia).
Projeo no plano L3
L4
f15
L1
raio de f13
projeo A
f5 f12
f4
f2
f3 f10
A' plano de
projeo
f11
f14 = OR L2
f1 = NOR 14 regies
f8 = AND
f7 = NAND
N1 101 N1
plano 1
100
111
N4 110
N2 000
011 010 N2
x1
plano2
x1 x1 x1
Para o caso de 4 elementos nem sempre isso possvel, como por exemplo,
o caso do XOR.
Rede com dois neurnios na camada escondida
Nesse caso, cada neurnio da camada escondida divide a superfcie da
esfera em dois hemisfrios. Portanto, os dois neurnios dividem a superfcie
da esfera em 4 regies, codificadas em duas sadas.
Cada uma dessas sadas so recebidas pelo neurno de sada, que por sua
vez tem a capacidade de realizar 14 funes.
x1
Dimenso de Vapnik-Chervonenkis
Isso significa que o nmero de regies de solues para uma esfera booleana
de nove dimenses de 2744, sendo que 16 dessas regies so solues da
funo XOR.
Possveis combinaes para XOR
usando 2 neurnios escodidos
f1 f7 f1 f8
f4 f2 f1 f1
f7 f1 f8 f1
f2 f4 f2 f11
f14 f14 f13 f11
f4 f2 f11 f2
f4 f13 f7 f14
f13 f11 f8 f8
f13 f4 f14 f7
1 f4 f1 f1
2 f14 f13 f2
A figura mostra a distribuio 3 f3
de solues para XOR, usando 4 f14 f13 f4
uma rede de 2x1 neurnios. 5 f5
6 f6
Dependendo de onde o algoritmo 7 f2 f8 f7
de busca comea (pesos iniciais) 8 f1 f2 f8
a soluo pode ser mais fcil, 9 f9
ou difcil. 10 f10
11 f11 f7 f11
12 f12
13 f11 f7 f13
14 f8 f4 f14
15 f15
regio 1
Caso bi-dimensional ( n = 2) : o hiperplano w0
uma reta.
w0 regio 2
m =1
x1 w1
w1
regio 1
m=3 m+1 = 4
6 regies novas
R(m,n-1)=R(3,2)
Clculo recursivo de R(m,n)
dimenso
n
m 0 1 2 3 4
1 0 2 2 2 2
2 0 2 4 4 4
3 0 2 6 8 8
4 0 2 8 14 16
5 0 2 10 22 30
Nota-se que:
a) R(m,n) = 2m para m n , isto , o nmero de regies cresce
exponencialmente at a dimenso do espao.
b) Aps esse limite (m > n) o crescimento passa a ser polinomial
Para n = 2, R(m,2) = 2m
Para n = 3, R(m,3) = m2-m+2
Proposio 2
Para n 1 , R(m,n) um polinmio de grau n-1 na varivel m.
n 1
m 1
Uma frmula til para R(m,n) R (m, n) 2
i 0 i
cuja validade pode ser provada tambm por induo.
Contagem do nmero de regies (cont.)
n 1
m 1
A frmula R (m, n) 2
possibilita o clculo do nmero de regies
i 0 i
formados por hiperplanos em posies genricas.
No caso de funes booleanas, as entradas sendo booleanas, os hiperplanos no se
posicionam genericamente.
O nmero de regies, definido por um espao 4-dimensional por 8 hiperplanos,
128. Mas existem somente 104 funes computveis por um perceptron de 3
entradas, e portanto 4 pesos e 8 possveis vetores de entrada.
O nmero R(m,n) deve ser interpretado como um limite superior sobre o nmero de
funes computveis para entradas binrias.
x2 x0
p1
vetores em
p2 p2
P
n1
p1 x2
x1
n1
n2
vetores em n2
N x1
Um vetor peso w deve ser encontrado tal que w.x > 0 para todo x P
e w.x < 0 para todo x N
O algoritmo de treinamento do perceptron comea com um vetor w0
aleatoriamente escolhido.
Se o vetor x P tal que w.x < 0 significa que o ngulo entre os dois
vetores maior que 900. O vetor peso deve ser rotacionado na direo de x para
que x fique na metade positiva do espao definido por w. Isso pode ser feito
adicionando x a w, como o algoritmo de treinamento faz.
Se o vetor x N tal que w.x > 0 significa que o ngulo entre os dois
vetores menor que 900. O vetor peso deve ser rotacionado na direo
contrria a x para que x fique na metade negativa do espao definido por w. Isso
pode ser feito subtraindo x de w.
Uma boa heurstica iniciar o peso com a mdia dos vetores de entrada
positivos menos a mdia dos vetores de entrada negativos.
Ilustrao grfica
L
x1
x1
w0
L
w1
x2
w0 x2
x3 x3
w3
w2
x2 x2
x3 x3
w * .w t 1 w * .w 0 (t 1)
Por outro lado para o termo do denominador sabe-se que
2
w t 1 (w t p i ).(w t p i )
2 2
wt 2w t .p i p i