Você está na página 1de 69

INSTITUTO DE ENSINO SUPERIOR FUCAPI

INTELIGÊNCIA ARTIFICIAL

Técnicas de classificação

Prof. Sergio Cleger Tamayo.


sergio.cleger@gmail.com
Agenda
 Rede Neural Artificial.
Introdução
 Rede Neural Artificial é uma técnica de
aprendizagem máquina que foi inspirada na rede
neural biológica do cérebro humano.
 É capaz de:
◦ Aprender a partir de uma base de conhecimento
◦ Predizer classes a partir do conhecimento adquirido
◦ Se adaptar ajustando-se a uma nova realidade
 É empregada em aplicações de
reconhecimento de padrões como:
◦ Reconhecimento de objetos
◦ Reconhecimento de fala
◦ Tradução
Introdução
Introdução
 O cérebro humano consiste
principalmente de células nervosas
chamadas neurônios.
 Nós nascemos com cerca de 100 bilhões
de neurônios que estão conectados
formando uma rede.
Introdução
 Os neurônios são ligados com outros
através de fios de fibra chamados
axônios.

 Um neurônio é conectado aos axônios de


outros neurônios através de dendritos.

 O ponto de contato entre um dendrito e


um axônio e chamado de sinapse.
Um Neurônio Biológico
 Assim, através dos axônios, dendritos, e
sinapses o neurônio recebe sinais de
outros neurônios.
 Os sinais são acumulados no corpo do
neurônio.
 Quando a soma dos sinais passa de um
certo limiar (~ 50mV) um sinal é
propagado no axônio.
Um Neurônio Biológico

Os cientistas descobriram que o cérebro


humano aprende alterando a força das conexões
sinápticas através de repetidos estímulos.
Um Neurônio Artificial

Proposto por McCulloch-Pitts

Emprega um modelo matemático que simula os elementos e o


comportamento de um neurônio biológico.
Perceptron
 Perceptron é o tipo mais simples de uma
Rede Neural Artificial composta por um
neurônio.
 Tem como base o modelo matemático de
neurônio criado por McCulloch-Pitts.
 Perceptron foi desenvolvido por
Rosemblat (1958) utilizado para
classificação de padrões linearmente
separáveis.
Perceptron
 Perceptron é empregado em problemas
linearmente separáveis
◦ Cujo o objetivo é separar um espaço de
padrões (registros) de entrada em duas
regiões (ou classes)
Exemplo de Perceptron

Nodos de Entrada

x1
w1 Nodo de
Saída
w2 y
x2 ∑

w3
x3 t=x
Perceptron
 X1, X2, ..., Xn são os sinais de entrada
(estímulos)
 W1, W2, ..., Wn, são os pesos (força da conexões
sinápticas).
 Limitador t
◦ Define o limiar de separação de classes
 O nível de atividade do neurônio é dado pela
soma ponderada das entradas e pesos:
 a = w1X1 + w2X2 + ... + wpXp
 A saída y é pode ser dada por:
Função de
1, se w1x1 + w2x2+w3x3-t>0 ativação
y=
0, se w1x1 + w2x2+w3x3-t<=0
Exemplo
Atributos Preditivos
Atributo de classe Nodos de Entrada

x1 x2 x3 y x1
0.3 Nodo de
1 0 0 -1 Saída
1 0 1 1 0.3 y
x2 ∑
1 1 0 1
1 1 1 1 0.3
0 0 1 -1 x3 t=0.4
0 1 0 -1 Função de
ativação
0 1 1 1
1, se 0.3x1 + 0.3x2+0.3x3-0.4>0
0 0 0 -1 y=
-1, se 0.3x1 + 0.3x2+0.3x3-0.4<0
Conjunto de Dados
Exemplo
 Se x1=1, x2=1, x3=0 então y=1 porque o resultado
da soma ponderada subtraída pelo limitador é
positiva

(0.3x1)+(0.3x2)+(0.3x3) - 0.4 =
(0.3x1)+(0.3x1)+(0.3x0) - 0.4= 0.2

 Se x1=0, x2=1, x3=0, então y=-1 porque o resultado


da soma ponderada subtraída pelo limitador é
negativa

(0.3x1)+(0.3x2)+(0.3x3) - 0.4 =
(0.3x0)+(0.3x1)+(0.3x0) - 0.4= -0.1
Perceptron - Aprendizagem
 Usa-se um conjunto de registros de
treinamento que dão a saída desejada.
 Ou seja, registros conhecidos, ou com
rótulos de classe
Perceptron - Aprendizagem
 De forma semelhante aos neurônios
biológicos, um perceptron aprende
ajustando os pesos das suas conexões
sinápticas.

 O objetivo é ajustar os pesos sinápticos


de tal forma que o nodo de saída produza
a saída Y correta pra cada registro de
entrada.
Exemplo
Atributos Preditivos
Atributo de classe Nodos de Entrada

x1 x2 x3 y x1
W1 Nodo de
1 0 0 -1 Saída
1 0 1 1 W2 y
x2 ∑
1 1 0 1
1 1 1 1 W3
0 0 1 -1 x3 t=0.4
0 1 0 -1 Função de
ativação
0 1 1 1
1, se 0.3x1 + 0.3x2+0.3x3-0.4>0
0 0 0 -1 y=
-1, se 0.3x1 + 0.3x2+0.3x3-0.4<0
Conjunto de Dados
Perceptron - Aprendizagem
 Assim, durante a fase de aprendizagem os
parâmetros de peso w são ajustados até
que a saída do perceptron fique
consistente com as saídas reais dos
registros do conjunto de treinamento

 O algoritmo perceptron faz atualizações


iterativamente até chegar aos pesos
corretos.
Exemplo de Treinamento
Exemplo de Treinamento
Exemplo de Treinamento
Perceptron - Aprendizagem
 Algoritmo de Aprendizagem
Seja D={(xi,di)|i=1,2,...,n} o conjunto de treinamento
iniciar o vetor de conexões com wj = 0;
repita
para cada instância do conj. de treinamento (xi, di) Є
D
faça
calcular a saída Y
se (di y)
então ajustar pesos
fim para
até que a condição de termino seja satisfeita
Perceptron – ajuste dos pesos
 O novo peso wj pode ser obtido por
meio da fórmula abaixo:
◦ wj = wj + (dj - yj ) xj
 Onde Wj é o peso antigo
  é a taxa de aprendizado, cujo valor fica entre 0 e 1
 (dj - yj ), representa o erro
 Xj é o valor do atributo de índice j
Perceptron - Predição
 Algoritmo de Predição
◦ Dado como entrada um conjunto de registros X,
cujo o valor de Y é desconhecido

Para cada registro desconhecido x faça


apresentar x a entrada da rede
calcular a saída y
Se (y=1)
então x  classe 1
senão x  classe 2
Fim se
Fim para
Perceptron
 Perceptrons de uma única camada resolvem
apenas problemas linearmente separáveis
 Grande número de aplicações importantes são
não-linearmente separáveis
◦ Perceptron multicamadas
Referências
 Livro texto: Inteligência Artificial, Russell &
Norvig, Editora Campus.
Exercício de fixação
Resposta
Exercício de fixação
 Considere um perceptron de duas entradas
(x1,x2) e uma saída (y). Considere que todos
os pesos sinápticos W foram inicializados com
0.

 Determine uma função de ativação, valor de


limiar e taxa de aprendizagem para que o
perceptron consiga aprender e predizer classes
para os problemas do tipo
◦ AND
◦ OR
Exercício
AND
– Solução AND
Limiar = 0.2
A B Saída Taxa de Aprendizagem = 0.1
0 0 0
A
0 1 0 0
T=0.
1 0 0 2
1 1 1
B 0

1, se w1x1 + w2x2-t>=0
y=
0, se w1x1 + w2x2-t<0

A B Somatório Saída Erro


0 0 (0*0)+(0*0) = 0.0 0 0
0 1 (0*0)+(0*1) = 0.0 0 0
1 0 (0*1)+(0*0) = 0.0 0 0
1 1 (0*1)+(0*1) = 0.0 0 -1
Perceptron – ajuste dos pesos
 O novo peso wj pode ser obtido por
meio da fórmula abaixo:
◦ wj = wj + (dj - yj ) xj
 Onde Wj é o peso antigo
  é a taxa de aprendizado, cujo valor fica entre 0 e 1
 (dj - yj ), representa o erro
 dj = saída desejada
 Yj = saída predizida do perceptron
 Xj é o valor do atributo de índice j
Exercício - ajuste dos pesos

 A • B
 wj = wj + (dj - yj ) • wj = wj + (dj - yj )
xj xj
 wj = 0 + 0.1 (1 - 0).1
• wj = 0 + 0.1 (1 - 0).1
• wj = 0 + 0.1 (1).1
 wj = 0 + 0.1 (1).1
• wj = 0 + 0.1 (1)
 wj = 0 + 0.1 (1)
• wj = 0 + 0.1
 wj = 0 + 0.1
• wj = 0.1
 wj = 0.1
Exercício
AND
– Solução AND
Limiar = 0.2
A B Saída
Taxa de Aprendizagem = 0.1
0 0 0 A
0.1
0 1 0
T=0.
1 0 0 2
1 1 1
B 0.1
1, se w1x1 + w2x2-t>=0
y=
0, se w1x1 + w2x2-t<0

A B Somatório Saída Erro


0 0 (0.1*0)+(0.1*0) = 0.0 0 0
0 1 (0.1*0)+(0.1*1) = 0.1 0 0
1 0 (0.1*1)+(0.1*0) = 0.1 0 0
1 1 (0.1*1)+(0.1*1) = 0.2 1 0
Exercício – Solução OR
Exercício – Solução OR
OR Limiar = 0.1
Taxa de Aprendizagem = 0.1
A B Saída
0 0 0 A
0.0
0 1 1 T=0.
1
1 0 1
1 1 1 B 0.0

1, se w1x1 + w2x2-t>=0
y=
0, se w1x1 + w2x2-t<0

A B Somatório Saída Erro


0 0 (0*0)+(0*0) = 0.0 0 0
0 1 (0*0)+(0*1) = 0.0 0 -1
1 0 (0*1)+(0*0) = 0.0 0 -1
1 1 (0*1)+(0*1) = 0.0 0 -1
Exercício - ajuste dos pesos

 A • B
 wj = wj + (dj - yj ) • wj = wj + (dj - yj )
xj xj
 wj = 0 + 0.1 (1 - 0).0
• wj = 0 + 0.1 (1 - 0).1
• wj = 0 + 0.1 (1).1
 wj = 0 + 0.1 (1).0
• wj = 0 + 0.1 (1)
 wj = 0 + 0.1 (0)
• wj = 0 + 0.1
 wj = 0 + 0
• wj = 0.1
 wj = 0.0
Exercício – Solução OR
OR
Limiar = 0.1
A B Saída Taxa de Aprendizagem = 0.1
0 0 0 A
0.0
0 1 1
T=0.
1 0 1 1
1 1 1
B 0.1

1, se w1x1 + w2x2-t>=0
y=
0, se w1x1 + w2x2-t<0

A B Somatório Saída Erro


0 0 (0*0)+(0.1*0) = 0.0 0 0
0 1 (0*0)+(0.1*1) = 0.1 1 0
1 0 (0*1)+(0.1*0) = 0.0 0 -1
1 1 (0*1)+(0.1*1) = 0.1 1 0
Exercício - ajuste dos pesos

• A • B
• wj = wj + (dj - yj ) • wj = wj + (dj - yj )
xj xj
• wj = 0 + 0.1 (1 - 0).1 • wj = 0.1 + 0.1 (1 - 0).0
• wj = 0 + 0.1 (1).1 • wj = 0.1 + 0.1 (1).0
• wj = 0 + 0.1 (1) • wj = 0.1 + 0.1 (0)
• wj = 0 + 0.1 • wj = 0.1 + 0
• wj = 0.1 • wj = 0.1
Exercício – Solução OR
OR Limiar = 0.1
A B Saída Taxa de Aprendizagem = 0.1
0 0 0 A
0.1
0 1 1 T=0.
1 0 1 1

1 1 1 0.1
B
1, se w1x1 + w2x2-t>=0
y=
0, se w1x1 + w2x2-t<0

A B Somatório Saída Erro


0 0 (0.1*0)+(0.1*0) = 0 0 0
0 1 (0.1*0)+(0.1*1) = 0.1 1 0
1 0 (0.1*1)+(0.1*0) = 0.1 1 0
1 1 (0.1*1)+(0.1*1) = 0.2 1 0
Perceptron
Perceptron
Y=sign(w3x3+w2x2+w1x1-t)
Sendo que sign (função da ativação) para o nodo de saída,
Atributos Preditivos produz +1 se o resultado for positivo, caso contrario -1
Atributo de classe Nodos de Entrada
ou saída
x1 x2 x3 y x1
w1 Nodo de
1 0 0 -1 Saída
1 0 1 1 w2 y
x2 ∑
1 1 0 1
1 1 1 1 w3
0 0 1 -1 x3 t=x
0 1 0 -1 Exemplo de Perceptron
0 1 1 1
0 0 0 -1
Conjunto de Dados
de Treinamento
Perceptron

Y=sign(w3x3+w2x2+w1x1-t)
Perceptron
 Perceptron é uma rede neural simples.
 Porque possui apenas uma camada de nodos - a
camada de saída - que executa as operações
matemáticas complexas
Nodos de Entrada
x1
w1 Nodo de
Saída
w2 y
x2 ∑

w3
x3 t=x
Exemplo de Perceptron
Perceptron
 Perceptron é usado apenas para problemas
linearmente separáveis, onde registros de dados são
separados em duas regiões ou classes (Ex.: 1,-1)
x1 x2 x3 y

1 0 0 -1 1.5-
1 0 1 1 1- X3
1 1 0 1 0.5-
1 1 1 1 -1.5
0- X1
0 0 1 -1 X2 -1
-0.5
0 1 0 -1 -0.5-
0 0.5 -0
1 1.5
0 1 1 1
0 0 0 -1
Perceptron
 Se o problema lida com dados não
separáveis linearmente, como o problema
XOR, o perceptron não vai conseguir
classificá-los
 O perceptron não pode encontrar a
solução certa para separar os dados
porque não há um hiperplano linear que
possa separar perfeitamente os mesmos.
Problema XOR
Conjunto de Dados
1.5
x1 x2 y

0 0 -1 1
1 0 1
0 1 1
x2 0.5
1 1 -1

-0.5
-0.5 0 0.5 1 1.5
x1
Um hiperplano linear não consegue separar as duas classes
Problema XOR
 No problema XOR, os dados podem ser
classificados usando dois hiperplanos que
particionam o conjunto de dados de entrada
em suas respectivas classes
 Este problema pode ser abordado usando uma
rede neural artificial multicamadas
 É possível combinar vários perceptrons lineares
para gerar redes neurais multicamadas
Perceptrons de múlticamadas
 No caso do problema XOR
◦ Podemos pensar numa rede onde uma
camada intermediaria com perceptrons que
tentam construir um dos dois hiperplanos
 Enquanto que a camada de saída combina
os resultados dos perceptrons
Perceptrons de múlticamadas

 Exemplo
Perceptrons de múlticamadas
 Um perceptron de múltiplas camadas
possui uma estrutura mais complexa.
 A rede pode conter diversas camadas
intermediárias entre as camadas de
entrada e de saída.
 Contém três tipos de camadas:

1. camada de entrada
2. camada(s) intermediárias(s) ou ocultas(s)
3. camada de saída
Perceptrons de múlticamadas

 Qualquer neurônio de uma camada pode


interligar-se com outro neurônio da
camada seguinte.
 A estrutura resultante é conhecida como
rede neural multicamada.
Perceptrons de múlticamadas
X1 X2 X3 X4 X5

Camada de
Entrada

Camada
Oculta

Camada de
Saída

Y
Problema XOR

Camada de Camada Camada de


Entrada Intermediaria Saída

x1 w13
n1 n3
w35
w14

n5 y
w23
x2 n2 n4 w45
w24

Perceptron de múlticamadas
Problema XOR
Conjunto de Dados
1.5
x1 x2 y

0 0 -1 1
1 0 1
0 1 1
x2 0.5
1 1 -1

-0.5
-0.5 0 0.5 1 1.5
x1

Dois hiperplanos conseguem separar as instâncias em


duas classes
Perceptrons de Múlticamadas
 Unidades lineares são capazes gerar
funções lineares, dessa forma
função de uma rede multicamada
também será linear.
 Entretanto, existem problemas que não
podem ser modelados por funções
lineares.
◦ Problemas não linearmente separáveis
 Por esse motivo é necessário utilizar uma
outra função de ativação.
Perceptrons de Múlticamadas
 A rede pode usar tipos de funções de
ativação além da linear
◦ Por exemplo:
 Função sigmóide
 Função tangente hiperbólica
 Função de sinal
Função Sigmóide
1

0.5

-0.5

-1 -0.5 0 0.5 1
Função Tangente
1

0.5

-0.5

-1 -0.5 0 0.5 1
Função de Sinal
1

0.5

-0.5

-1 -0.5 0 0.5 1
Aprendizagem Perceptrons de múltiplas camadas

 A aprendizagem de uma rede neural MLP é


realizada de maneira supervisionada com o
algoritmo Backpropagation.
 Este algoritmo permite descobrir dinamicamente
os pesos de uma rede neural MLP quando uma
quantidade suficiente de dados de treinamento for
fornecida.
Referências
Implementação em Java
Aprendizagem Supervisionada baseada
em uma Rede Neural Artificial
 Utilização do algoritmo Multlayer
Perceptron disponível na API Weka
Implementação da Aprendizagem Supervisionada
baseada em uma Rede Neural Artificial
 Deve-se utilizar o pacote weka.classifiers.functions que
fornece um conjunto de classes que implementam
diversos algoritmos de redes neurais artificiais
 No exemplo, é utilizada a implementação do algoritmo
Multlayer Perceptron
 Assim, multlayerPerceptron é uma instância da classe
weka.classifiers.functions.MultlayerPerceptron
 Por meio do objeto multlayerPerceptron é possível
chamar o método buildClassifier() para construir um
modelo de conhecimento
◦ Conjunto de instâncias recebidas como argumento
Predição baseada em uma Rede
Neural Artificial
 Usado para predizer um rótulo, y, de
classe para uma instância do registro de
teste
Implementação de Predição baseada
em Rede Neural Artificial
 No exemplo, por meio do objeto multlayerPerceptron é
possível chamar o método classifyInstance() usado para
classificar uma instância sem rótulo de classe (registro
de teste)
 O método classifyInstance() recebe como argumento a
instância que deve ser classificada, e retorna um índice
que posteriormente será utilizado para obter o rótulo,
y, do atributo-classe
 O atributo-classe é obtido via o método
classAttribute() da instância de teste
 Por meio do
 Por meio do método value() do objeto atributoClasse é
possível obter o rótulo y
Exercício de fixação
 Faca uma pesquisa sobre o algoritmo
Backpropagation e escreva uma resenha
sobre o funcionamento deste algoritmo.
INSTITUTO DE ENSINO SUPERIOR FUCAPI

INTELIGÊNCIA ARTIFICIAL

Técnicas de classificação

Prof. Sergio Cleger Tamayo.


sergio.cleger@gmail.com

Você também pode gostar