Вы находитесь на странице: 1из 37

Inteligência Computacional

REDES NEURAIS ARTIFICIAIS – PERCEPTRON


Renato Dourado Maia
Faculdade de Ciência e Tecnologia de Montes Claros
Fundação Educacional Montes Claros
Pesos das
x1 Conexões f (u)
w1
x2 Função de 1
w2 Ativação
u y
.
.
Σ f (u)
Saída
θ
u
. wm Junção

xm
Somadora
{ u → Saída Linear
y → Saída de Ativação

Arquitetura do Perceptron.

{
T

( ){
m
W=[ w1 w 2 ⋯ wm ]
y= f (u)= f ∑ w j x j = 1, u≥θ
0, u< θ
→ T
j=1
X=[ x 1 x 2 ⋯ x m ]

19/03/12 Inteligência Computacional – Renato Dourado Maia 2/37


Análise Matemática do Perceptron

( ){
m
y= f (u)= f ∑wjxj = 1, u≥θ
j=1 0, u< θ
Superfície
de Decisão

w 1 x1 + w 2 x 2+ ⋯+ w m x m=θ → w1 x 1+ w2 x 2+ ⋯+ w m x m−θ =0

Combinação Linear das Vocês enxergam uma possível


Variáveis de Entrada adaptação da arquitetura do
(Hiperplano) Perceptron?

19/03/12 Inteligência Computacional – Renato Dourado Maia 3/37


Pesos das
−1 Conexões f (u)
w0
x1 Função de
1
w1 Ativação
u y
.
.
Σ f (u)
Saída
0
u
. wm Junção

xm
Somadora
{u → Saída Linear
y → Saída de Ativação

Arquitetura Modificada do Perceptron.

( ){
m
y= f (u)= f ∑wjxj = 1, u≥0
j=0 0, u< 0

}
T
W=[ w0 =θ w1 w2 ⋯ wm ] Vetores
T
X=[−1 x 1 x2 ⋯ xm ] Aumentados

19/03/12 Inteligência Computacional – Renato Dourado Maia 4/37


Na Aula Passada...

• Na aula passada deduzimos o algoritmo de treina-


mento do Perceptron, e a equação de ajuste para os
pesos determinada, já considerando os vetores au-
mentados, foi:

W(k + 1)=W( k )+ Δ W( k )

{
→ Taxa de Aprendizado (Constante Positiva )
Δ W ( k )=η e X( k ) → → Erro =Saída Desejada ( d ) −Saída Obtida ( y)
→ Padrão de Entrada

19/03/12 Inteligência Computacional – Renato Dourado Maia 5/37


Lembrando

( )
m
y= f (u)= f ∑wjxj
j=0
= f ( W⋅X)= f (∥W∥∥X∥cos (α ))= 1, u≥0
0, u< 0 {
W⋅X=∥W∥∥X∥cos (α ) ∥W∥≥0
∥X∥≥0
o

o
{
(α é o menor ângulo entre W e X : 0 ≤α ≤180 )
W
↓ α

{
o
u=0 e y=1 se cos( α )=0 → α =90
u> 0 e y=1 se cos( α )> 0 → α < 90o X
u< 0 e y=0 se cos( α )< 0 → α > 90 o

19/03/12 Inteligência Computacional – Renato Dourado Maia 6/37


d y e ΔW
0 0 0 0
0 1 -1 ?
1 0 1 ?
1 1 0 0
Δ W=−η X Δ W=η e X

W W W Novo W
α α α
X X X
Δ W=η X Δ W=η e X

W α W α W α W Novo

X X X

19/03/12 Inteligência Computacional – Renato Dourado Maia 7/37


W(k + 1)=W( k )+ Δ W( k )

{
→ Taxa de Aprendizado (Constante Positiva )
Δ W ( k )=η e X( k ) → → Erro =Saída Desejada ( d ) −Saída Obtida ( y)
→ Padrão de Entrada

Δ W=−η X Δ W=η e X

W W W Novo W
α α α
X X X
Δ W=−η X Δ W=η e X

W α W α W α W Novo

X X X

19/03/12 Inteligência Computacional – Renato Dourado Maia 8/37


Teorema da Convergência

• Se os padrões de entrada forem linearmente separá-


veis, o algoritmo de treinamento do Perceptron pos-
sui convergência garantida, ou seja, é capaz de en-
contrar um conjunto de pesos que classifica correta-
mente os dados.
– Os pesos dos neurônios que compõem o Perceptron serão
tais que as superfícies de decisão produzidas pela rede
neural estarão apropriada posicionadas no espaço.

19/03/12 Inteligência Computacional – Renato Dourado Maia 9/37


Perceptron com Duas Entradas

Superfície de Decisão w 1 x1 + w 2 x 2=θ

x 2=−
( ) ( )
w1
w2
x 1+
1
w2
θ

Uma reta no plano!

19/03/12 Inteligência Computacional – Renato Dourado Maia 10/37


"Threshold Logic Unit (TLU)" from the Wolfram
Demonstrations Project
 http://demonstrations.wolfram.com/ThresholdLogicUnitTLU/

19/03/12 Inteligência Computacional – Renato Dourado Maia 11/37


Um Problema Simples – AND Lógico
x2
Entradas Saída
x1 x2 x 1∧ x 2
(0,1) (1,1)
0 0 0
0 1 0
1 0 0
(0,0) (1,0)
1 1 1 x1
Vocês acham que um perceptron pode implementar a
operação lógica AND?

19/03/12 Inteligência Computacional – Renato Dourado Maia 12/37


Um Problema Simples – AND Lógico
x2

(0,1.5)
(0,1) (1,1)

(0,0) (1,0) (2,0)


x1

Vocês acham que um perceptron pode implementar a


operação lógica AND?
SIM!

19/03/12 Inteligência Computacional – Renato Dourado Maia 13/37


Um Problema Simples – AND Lógico
x2
Entradas Saídas
x1 x2 x 1∧ x 2 u y
(0,1.5)
0 0 0 0 0
(0,1) (1,1)
0 1 0 2 0
1 0 0 1.5 0
1 1 1 3.5 1
(0,0) (1,0) (2,0)
x1

{
w1 =1.5
x 2=−
w1
w2( ) ( )
x 1+
1
w2
θ → x 2 =−
2( )
1.5
x 1+ 1.5 → w 2=2
θ =3

19/03/12 Inteligência Computacional – Renato Dourado Maia 14/37


Um Problema Simples – OR Lógico
x2
Entradas Saída
x1 x2 x 1∨ x 2
(0,1) (1,1)
0 0 0
0 1 1
1 0 1
(0,0) (1,0)
1 1 1 x1
Vocês acham que um perceptron pode implementar a
operação lógica OR?

19/03/12 Inteligência Computacional – Renato Dourado Maia 15/37


Um Problema Simples – OR Lógico
x2

(0,1) (1,1)

(0,0.5)

(0,0) (0.5,0) (1,0)


x1

Vocês acham que um perceptron pode implementar a


operação lógica OR?
SIM!

19/03/12 Inteligência Computacional – Renato Dourado Maia 16/37


Um Problema Simples – OR Lógico
x2 Entradas Saídas
x1 x2 x 1∨ x 2 u y
(0,1) (1,1) 0 0 0 0 0
0 1 1 0.5 1
(0,0.5)
1 0 1 0.5 1
(0,0) (0.5,0) (1,0) 1 1 1 1 1
x1

{
w1=0.5
x 2=−
w1
w2 ( ) ( )
x 1+
1
w2
θ → x 2 =−
0.5
0.5( )
x 1+ 0.5 → w2 =0.5
θ =0.25

19/03/12 Inteligência Computacional – Renato Dourado Maia 17/37


Um Problema Simples – OR Lógico
E vo lu ç ã o d a R e t a d e S e p a r a ç ã o a C a d a É p o c a - A N D L ó g ic o
2
R e s u lt a d o d o A N D = 0
R e s u lt a d o d o A N D = 1
R e t a d e S e p a ra ç ã o
1 .5

1
2
X

0 .5

-0 .5
-0 . 5 0 0 .5 1 1 .5
X
1

19/03/12 Inteligência Computacional – Renato Dourado Maia 18/37


Um Problema Simples – OR Lógico
E r ro Q u a d r á t ic o A c u m u la d o p o r É p o c a d e T r e in a m e n t o
3

2 .5

2
E rr o Q u a d rá t ic o

1 .5

0 .5

0
0 5 10 15 20 25 30
É poca

19/03/12 Inteligência Computacional – Renato Dourado Maia 19/37


Um Problema Simples – OR Lógico
E vo lu ç ã o d a R e t a d e S e p a r a ç ã o a C a d a É p o c a - O U L ó g ic o
2
R e s u lt a d o d o O U = 0
R e s u lt a d o d o O U = 1
R e ta d e S e p a ra ç ã o
1 .5

1
2
X

0 .5

-0 .5
-0 .5 0 0 .5 1 1 .5
X
1

19/03/12 Inteligência Computacional – Renato Dourado Maia 20/37


Um Problema Simples – OR Lógico
E r ro Q u a d r á t ic o A c u m u la d o p o r É p o c a d e T r e in a m e n t o
3

2 .5

2
E rr o Q u a d rá t ic o

1 .5

0 .5

0
1 2 3 4 5 6 7 8 9
É poca

19/03/12 Inteligência Computacional – Renato Dourado Maia 21/37


Um Problema (Simples ?) – XOR Lógico
x2
Entradas Saída
x1 x2 x 1 xor x 2
(0,1) (1,1)
0 0 0
0 1 1
1 0 1
(0,0) (1,0)
1 1 0 x1
Vocês acham que um perceptron pode implementar a
operação lógica XOR?

19/03/12 Inteligência Computacional – Renato Dourado Maia 22/37


Um Problema (Simples ?) – XOR Lógico
x2

(0,1.5)
(0,1) (1,1)

(0,0.5)

(0,0) (0.5,0) (1,0) (2,0)


x1

Vocês acham que um perceptron pode implementar a


operação lógica XOR?
NÃO!

19/03/12 Inteligência Computacional – Renato Dourado Maia 23/37


"Neural Network for a Basicr Truth Table" from the Wolfram
Demonstrations Project
 http://demonstrations.wolfram.com/
NeuralNetworkForABasicTruhtTable

19/03/12 Inteligência Computacional – Renato Dourado Maia 24/37


"Delta and Perceptron Training Rules for Neuron Training" 
from the Wolfram Demonstrations Project
http://demonstrations.wolfram.com/
DeltaAndPerceptronTrainingRulesForNeuronTraining/

19/03/12 Inteligência Computacional – Renato Dourado Maia 25/37


AND e OR Lógicos

• Vamos brincar com as minhas implementações para


o Perceptron sendo treinado para realizar as opera-
ções de AND e OR lógicos, que geraram as figuras
dos slides 18 a 21...
• Vamos analisar os resultados, compreender melhor
o algoritmo de treinamento, e tentar tirar algumas
conclusões!

19/03/12 Inteligência Computacional – Renato Dourado Maia 26/37


Algumas Reflexões

1. O que ocorre com o erro quando as classes são line-


armente separáveis, ou seja, quando não há super-
posição?
2. O que ocorre com o erro quando as classes não são
linearmente separáveis, ou seja, quando há super-
posição?
3. O acontece se os padrões de treinamento forem a-
presentados à rede classe por classe, de forma não
aleatória?

19/03/12 Inteligência Computacional – Renato Dourado Maia 27/37


1 – Classes sem Superposição
C la s s e s a S e r e m S e p a ra d a s e R e t a d e S e p a ra ç ã o
7
C la s s e 1
C la s s e 2
6 R e t a d e S e p a ra ç ã o

4
2
X

2 3 4 5 6 7
X
1

19/03/12 Inteligência Computacional – Renato Dourado Maia 28/37


1 – Classes sem Superposição
E r ro P e r c e n t u a l p o r É p o c a d e T re in a m e n t o
35

30

25

Erro zero!
E r ro P e r c e n t u a l

20

15

10

0
0 5 10 15 20 25 30 35 40 45 50
É poca

19/03/12 Inteligência Computacional – Renato Dourado Maia 29/37


2 – Classes com Superposição
C la s s e s a S e r e m S e p a ra d a s e R e t a d e S e p a r a ç ã o
8
C la s s e 1
C la s s e 2
7
R e t a d e S e p a ra ç ã o

4
2
X

0 1 2 3 4 5 6 7 8
X
1

19/03/12 Inteligência Computacional – Renato Dourado Maia 30/37


2 – Classes com Superposição
E r ro P e r c e n t u a l p o r É p o c a d e T re in a m e n t o
24

22
Erro diferente de zero,
20
mas minimizado!
18

16
E r ro P e r c e n t u a l

14

12 Oscilação do erro em
10 torno de um valor
8
mínimo!
6

4
0 10 20 30 40 50 60 70 80 90 100
É poca

19/03/12 Inteligência Computacional – Renato Dourado Maia 31/37


3 – Treinamento Viciado
C la s s e s a S e r e m S e p a ra d a s e R e t a d e S e p a r a ç ã o

8 C la s s e 1
C la s s e 2
7 R e t a d e S e p a ra ç ã o
Reta de separação
6 privilegiando a classe 2!
5
2

4
X

3 Qual das duas classes


2 foi apresentada
1
primeiro?
0
1 2 3 4 5 6 7
X
1

19/03/12 Inteligência Computacional – Renato Dourado Maia 32/37


3 – Treinamento Viciado
E r ro P e r c e n t u a l p o r É p o c a d e T re in a m e n t o
1

0 .9

0 .8
Erro oscilando, com
tendência aparen-
E rr o P e rc e n t u a l

0 .7
temente indefinida!
0 .6

0 .5

0 .4

0 5 10 15 20 25 30 35 40 45 50
É poca

19/03/12 Inteligência Computacional – Renato Dourado Maia 33/37


Mais Reflexões...

• Vamos brincar com as minhas implementações para


o Perceptron sendo treinado para realizar a separa-
ção de classes bidimensionais, que geraram as figu-
ras dos slides 18 a 23...
• Vamos discutir sobre as reflexões 1, 2 e 3 apresenta-
das no slide 27, e sobre outros aspectos:
– Efeito da taxa de aprendizado.
– Efeito da inicialização dos pesos.
– Qualquer outro que acharmos pertinente! :-)

19/03/12 Inteligência Computacional – Renato Dourado Maia 34/37


Algoritmo [W ] = Perceptron( MaxEpocas , η , X , D , E )
{X ∈ ℝ m× N ; D ∈ ℝ N ×1 ; E ≥0 ; η > 0 ; MaxEpocas > 0 }
W ← InicializaPesos (w Limite , m)
X ← InserePolarizacao(X)
Epoca ←1
ErroEpoca ← 0
repita
ErroEpocaAnterior ← ErroEpoca
ErroEpoca ← 0
para i de 1 até N faça
yi ←YPerceptron (W , X i)
ei ← d i − yi
W ← W+ η ei Xi
ErroEpoca ← ErroEpoca+ e 2i
fim para
ErroEpoca ← ErroEpoca /n
Epoca ← Epoca+ 1
até (∣ErroEpoca−ErroEpocaAnterior∣≤ E) ou (Epoca=MaxEpocas )
fim algoritmo
19/03/12 Inteligência Computacional – Renato Dourado Maia 35/37
Algoritmo [W ] = InicializaPesos( w Limite , m)
{w limite > 0 ; m≥1 }
para i de 1 até m+ 1 faça
wi ← U [−w Limite , w Limite ]
fim para
fim algoritmo

Algoritmo [ y ] = YPerceptron (X ,W )
{ X ∈ ℝ m×1 ; W ∈ ℝ(m+ 1)×1 }
X ← InserePolarizacao( X )
y =(W⋅X ) ≥ 0
fim algoritmo

19/03/12 Inteligência Computacional – Renato Dourado Maia 36/37


Por Hoje é Só! Diga Tchau Lilica!

19/03/12 Inteligência Computacional – Renato Dourado Maia 37/37

Вам также может понравиться