Introdução a Inteligência Computacional
Leonardo Goliatt
leonardo.goliatt@ufjf.edu.br
Núcleo de Métodos Computacionais em Engenharia
Departamento de Mecânica Aplicada e Computacional
UFJF
Curso de Verão 2011
Redes Neuronais
Sumário
1
Redes Neuronais
Redes Neuronais
Introdução
Antes de iniciarmos: Rede neural × Rede neuronal
Em inglês: neural network
Em português: rede neuronal (rede de neurônios)
O termo rede neural é amplamente usado
Redes Neuronais
Redes Neuronais
Introdução
As redes neuronais partem de um modelo de neurônio articial
inspirado nos neurônios naturais e desenvolvem sistemas baseados
em grupos destes neurônios articiais
Estes grupos de neurônios (normalmente organizados em camadas)
são chamados redes neuronais.
Existem muitos tipos de redes neuronais dependendo do tipo de
problema que se pretenda resolver.
As redes, como mecanismos de aprendizagem, têm inúmeras
aplicações
Redes Neuronais
Inspiração Biológica
Neurônio: Elemento de
processamento
Comunicação
O neurônio A recebe o impulso, e o
processa
Se atingido um limiar, A dispara um
sinal que se propaga pelo axônio
até a sinapse com o neurônio B
O sinal atinge os receptores de B ...
Estrutura do cérebro:
aproximadamente 10
10neurônios
cada um conectado com 10
4outros
RNAs modelam mecanismos de excitação e
inibição interneuronais, que são obtidos
pelo processamento dos estímulos que
chegam a cada neurônio
Redes Neuronais
Redes Neuronais
Ideia e Histórico
Ideia
Sistemas Computacionais formados pela integração de Elementos de
Processamento muito simples, altamente interconectados e trabalhando
massivamente em paralelo.
Breve Histórico:
1943 McCulloch e Pitts Estudo do Neurônio Articial
1962 Rosemblat
O Perceptron
1963 Bernard Widrow
Filtros Adaptativos
1969 Minsky e Papert
Crítica aos Perceptrons
1982 John Hopeld
Resgata Interesse em RNAs
1986 Rumelhart
Alg. Backpropagation
2000 ...
Redes Neuronais
Aplicações
Separação de padrões
Ajuste de curvas
Agrupamento (clustering)
· · ·
Redes Neuronais
Redes Neuronais
Aplicações
Reconhecimento e associação de padrões
Redes Neuronais
O neurônio articial
(x
1,
x
2): sinal de entrada
w
i: pesos sinápticos
e(·) : função aditiva
f (·): função de ativação
y: sinal de saída
Redes Neuronais
Redes Neuronais
Modelo matemático do neurônio
O Neurônio de McCulloch-Pitts (1943)
Primeira tentativa de entender a atividade neuronal baseado em
unidades elementares de computação
O neurônio executa uma função lógica
A atividade do neurônio é binária (01)
1
1www.natcomp.com.br/lvcon/web/imagens/temas/2/id436.jpg
Redes Neuronais
O neurônio articial genérico
Saída do neurônio: y
k
=
f (u
k
) =
f (P w
kj
x
j
+
b
k
)
Função de ativação
1
limitar a saída do neurônio
2
introduzir não-linearidade no modelo.
Limiar b
k
: aumentar ou diminuir a inuência do valor da entrada
líquida para a ativação do neurônio k
Redes Neuronais
Redes Neuronais
A rede e a propagação do sinal
Os neurônios são organizados em camadas
Quanto mais camadas, mais complexa a rede
Redes Neuronais
A rede e a propagação do sinal
Os neurônios são organizados em camadas
Quanto mais camadas, mais complexa a rede
Redes Neuronais
Redes Neuronais
A rede e a propagação do sinal
Os neurônios são organizados em camadas
Quanto mais camadas, mais complexa a rede
Redes Neuronais
A rede e a propagação do sinal
Os neurônios são organizados em camadas
Quanto mais camadas, mais complexa a rede
Redes Neuronais
Redes Neuronais
A rede e a propagação do sinal
Os neurônios são organizados em camadas
Quanto mais camadas, mais complexa a rede
Redes Neuronais
A rede e a propagação do sinal
Os neurônios são organizados em camadas
Quanto mais camadas, mais complexa a rede
Redes Neuronais
Redes Neuronais
A rede e a propagação do sinal
Os neurônios são organizados em camadas
Quanto mais camadas, mais complexa a rede
Redes Neuronais
Funções de ativação
Função Limiar
Função Sigmoide
Redes Neuronais
Redes Neuronais
Arquitetura das redes
Redes unidirecionais com camadas
Redes recorrentes
Redes Neuronais
Arquitetura das redes
Redes unidirecionais com camadas
Redes Neuronais
Redes Neuronais
Arquitetura das redes
Redes unidirecionais com camadas
a
aAdaptado de:E. R. Jones, Neuronal Networks' Role
in Predictive Analytics, Information Management Special Reports, Feb 12, 2008
Sentido de uxo de sinais:
entrada → saída
Não há conexões intercamada
Camada de entrada: onde os
padrões são apresentados
Camadas escondidas: maior
parte do processamento,
através de conexões ponderadas
Camada de saída: onde o
resultado é concluído e
apresentado
Redes Neuronais
Arquitetura das redes
Redes recorrentes:
3
Rede neuronal recorrente (recurrent)
Não há sentido único do uxo de sinais
Retroalimentação, conexões entre neurônios da mesma camada
(estímulos laterais), camadas anteriores ou posteriores
Redes Neuronais
Redes Neuronais
Treinamento da rede
Aprendizagem ou treinamento
Ajuste dos pesos w
ij
da rede
Estímulo → Adaptação → Novo comportamento da rede
Procedimento iterativo:
1
Passe o conjunto de entradas pela rede
2
Aplique uma regra para atualizar os pesos: w
ij(
t + 1) = w
ij(
t) + ∆w
ij 3Volte ao passo 1 até atingir um critério de parada
Paradigmas
Aprendizado supervisionado
Aprendizado
não-supervisionado
Protocolos
Incremental
Batch ou por Lote
Redes Neuronais
Paradigmas de aprendizagem
Aprendizado supervisionado
É fornecida uma referência do objetivo a ser alcançado
Problema de otimização: Encontre um conjunto de pesos w
ij
que
minimize
J =
1
2
N
X
i=1
(
y
i
−
z
i
)
2
,
N é o número de amostras do tipo (x
1
,
x
2
)
Redes Neuronais
Redes Neuronais
Paradigmas de aprendizagem
Alguns algoritmos de aprendizado supervisionado
Correção pelo erro: w
i
(
t + 1) = w
i
(
t) + αδ
i
x
i
Regra delta: w
ij
(
t + 1) = w
ij
(
t) − η
∂
∂
w
J
ij, η é a taxa de aprendizado
Retropropagação: visto em detalhes mais a frente
Redes Neuronais
Paradigmas de aprendizagem
Aprendizado não-supervisionado
As modicações nos pesos não usam informações sobre se a resposta
da rede foi correta ou não
Exemplos:
Hebbiano: ajuste o peso da conexão entre o neurônio A e B
proporcionalmente a ativação simultânea dos dois neurônios
Redes Neuronais
Redes Neuronais
Protocolos de aprendizagem
Incremental
Pesos atualizados na apresentação de cada amostra
Mais adequado para aplicações práticas, onde podem ocorrer
padrões redundantes
Batch ou por Lote
Pesos atualizados após todas as amostras apresentadas
Mudanças são acumuladas até que todas as amostras sejam
apresentadas
Redes Neuronais
Modelos de redes neuronais
Perceptron simples
Perceptron multi-camadas
Mapas auto-organizáveis (Redes de Kohonen)
Redes de Hopeld
Redes Neuronais
Redes Neuronais
Modelos de redes neuronais
Perceptron simples
Primeiro modelo de treinamento supervisionado
Única camada de neurônios
Para cada padrão i, calculase um erro δ
i
Treinamento supervisionado, por correção pelo erro
w
i(t + 1) = w
i(t) + αδ
ix
ib(t + 1) = b(t) + αδ
iRedes Neuronais
Modelos de redes neuronais
Perceptron com multi-camadas
Extensão do perceptron simples
Camada oculta/escondida
Redes Neuronais
Redes Neuronais
Modelos de redes neuronais
Mapas auto-organizáveis (Redes de Kohonen)
Duas camadas: camada de entrada e camada de processamento
A camada de processamento: grid retangular de neurônios
equiespaçados conectados aos seus vizinhos imediatos
Aprendizado competitivo (neurônio que responde mais forte atualiza
seus pesos, e opcionalmente os da vizinhança)
x = (x
1,
x
2, . . . ,
x
m)
w = (w
j1,
w
j2, . . . ,
w
jm),
j = 1, 2, . . . , l
Neurônio vencedor: i = arg min
j
||x − w
j||
O vencedor determina a localização dos neurônios treinados
Redes Neuronais
Modelos de redes neuronais
Mapas auto-organizáveis (Redes de Kohonen)
Duas camadas: camada de entrada e camada de processamento
A camada de processamento: grid retangular de neurônios
equiespaçados conectados aos seus vizinhos imediatos
Exemplo: Agrupamento de 16 animais em 3 categorias (caçadores,
pássaros, espécies pacícas) em uma rede 10x10 (dados omitidos)
Preservar a topologia dos padrões de entrada
Redes Neuronais
Redes Neuronais
Modelos de redes neuronais
Redes de Hopeld
Usada para classicação ou clusterização
Possui recorrência (as saídas realimentam as entradas) não possui
autorrecorrência (neurônio não realimenta a si próprio)
Divide um certo espaço de dados N em m partes
Aprendizado Hebbiano
Redes Neuronais
Projeto de um sistema neuronal
Coleta de dados
Origem, forma de coleta, dimensionalidade, conabilidade
Preparação e adequação dos dados
Representação computacional adequada dos dados
Tratamento de ruído (se for o caso)
Normalização (média zero e desvio padrão unitário)
Separação em conjunto de testes e de treinamento (se for o caso)
Escolha do modelo
Escolher o modelo adequado ao problema
Denição da topologia das interconexões
Dinâmica de aprendizado (treinamento)
Avaliação dos resultados
Ajuste dos parâmetros da rede
Validação cruzada
Redes Neuronais
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Treinamento supervisionado usando backpropagation
Rede com 3 camadas, 2 entradas e uma saída
4http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Neurônio = uma unidade de ativação e uma unidade de propagação
Entradas (x
,
x
2
)
; Pesos w
1
,
w
2
; Sinal de saída: y = f (e)
Redes Neuronais
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Conjunto de dados necessário para treinamento
Conjunto de sinais (x
1
,
x
2
)
com saidas conhecidas z
Em cada iteração, um sinal passa pela rede
Os pesos w
x
i,
j
são modicados
4http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Determinamos a saída para cada neuronioem cada camada
x
m
: sinais de entrada
w
x
i,
j
: pesos das conexões entre as camadas
Redes Neuronais
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Determinamos a saída para cada neuronioem cada camada
x
m
: sinais de entrada
w
x
i,
j
: pesos das conexões entre as camadas
y
n
: sinal de saíad no neurônio n
4http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Determinamos a saída para cada neuronioem cada camada
x
m
: sinais de entrada
w
x
i,
j
: pesos das conexões entre as camadas
Redes Neuronais
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Determinamos a saída para cada neuronioem cada camada
x
m
: sinais de entrada
w
x
i,
j
: pesos das conexões entre as camadas
y
n
: sinal de saíad no neurônio n
4http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Propagação na camada de saída
Redes Neuronais
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
A saída da rede é comparada com a saída desejada z
δ
é o erro da rede para o sinal de entrada
Em seguida:
Retropropagar o sinal erro δ nos neurônios
4http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.htmlRedes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
A saída da rede é comparada com a saída desejada z
δ
é o erro da rede para o sinal de entrada
Em seguida:
Redes Neuronais
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
A direção do uxo de dados muda
4http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
A direção do uxo de dados muda
Redes Neuronais
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
A direção do uxo de dados muda
4http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
A direção do uxo de dados muda
Redes Neuronais
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Com todos os erros computados, os coecientes da camada de
entrada são modicados
df (e)/de é a derivada da função de propagação
4http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Com todos os erros computados, os coecientes da camada de
entrada são modicados
Redes Neuronais
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Com todos os erros computados, os coecientes da camada de
entrada são modicados
df (e)/de é a derivada da função de propagação
4http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Coeciente η afeta o aprendizado
Redes Neuronais
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Coeciente η afeta o aprendizado
4http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
Redes Neuronais
Treinamento por retropropagação
Exemplo do funcionamento do algoritmo de retropropagação
4
Coeciente η afeta o aprendizado
Redes Neuronais
Redes Neuronais
Exemplo: Iris
Flores Iris
3 espécies: setosa, versicolor, virginica
150 amostras (50 amostras de cada espécie)
Informações: comprimento e largura da sépala e pétala
Iris setosa
Iris versicolor
Iris virginica
Redes Neuronais
Exemplo: Aproximação de função
Aproximação de função
Aproximar a função f (x) = 27x
4
−
60x
3
+
39x
2
−
6x
Redes Neuronais