Inteligência Artificial: Uma Abordagem
de Aprendizado de Máquina
Métodos Baseados em
Otimização
Métodos Baseados em Otimização
Algumas técnicas de AM buscam hipótese
recorrendo à
otimização
de uma função:
Ex. erro médio quadrático
Em problemas supervisionados, rótulo dos objetos é
considerado na formulação
Estudaremos duas técnicas:
Redes Neurais Artificiais (RNAs)
Redes Neurais Artificiais
Cérebro
humano é responsável pelo
proces-samento e controle de diversas informações
Realizamos ações que requerem atenção a diversos
eventos ao mesmo tempo e processamentos variados
Ex. pegar objeto, caminhar, envolvem ação de diversos componentes, como memória, coordenação, aprendizado
Redes Neurais Artificiais
Sistemas distribuídos inspirados na estrutura
e funcionamento do sistema nervoso
Objetivo:
simular capacidade de aprendizado do
cérebro na aquisição de conhecimento
Compostas por várias unidades de processamento (“neurônios”) Interligadas por um grande número de conexões (“sinapses”)
Histórico
1940
1950
1960
1970
1980...
1943
Primeiro modelo de neurônio artificial
W. McCulloch e W. Pitts (neurônio MCP)
McCulloch: psicólogo e neurofisiologista
Pitts: matemático
Histórico
1940
1950
1960
1970
1980...
1949
Primeiro trabalho demonstrando aprendizado
em redes neurais artificiais (D. Hebb)
Conseguido através de alterações nos pesos de
entrada dos neurônios
Regra de Hebb: baseada no reforço das ligações
entre neurônios excitados
Histórico
1940
1950
1960
1970
1980...
1958
Modelo de RNA Perceptron de F. Rosenblatt
Sinapses ajustáveis com neurônios MCP poderiam
ser treinadas para classificação
Histórico
1940
1950
1960
1970
1980...
1969
Artigo de Minsky e Papert
Perceptron de Rosenblatt não é capaz de resolver
alguns problemas simples
(Perceptron simples é limitado à resolução de
blemas linearmente separáveis)
Histórico
1940
1950
1960
1970
1980...
Década de 70
abordagem conexionista adormecida
Alguns poucos trabalhos importantes:
• Redes sem peso
• Sistemas auto-adaptativos
Histórico
1940
1950
1960
1970
1980...
Década de 80:
ressurgimento
1982
J. Hopfield: propriedades associativas das
RNAs – relação com sistemas físicos
1986
D. E. Rumelhart e J. L. McClelland
Histórico
1940
1950
1960
1970
1980...
Interesses mais recentes em RNAs:
• Implementação em hardware
• Modelos mais próximos ao biológico
• Sistemas neurais híbridos
Redes Biológicas
Cérebro humano: 10
11neurônios
Cada neurônio processa e se comunica com
milhares de outros continuamente e em paralelo
Cérebro: responsável por funções cognitivas e
execução de funções sensoriomotoras e
autônomas
Tem capacidade de reconhecer padrões e relacioná-los, usar e armazenar conhecimento por experiência e
Um neurônio simplificado:
Neurônio Natural
Corpo
Dendritos
Axônio
Sinal
Sinapse
Neurônio
Dendritos são prolongamen-tos numerosos dos neurô-nios, especializados na re-cepção de estímulos
nervosos
Estes estímulos podem ser do meio ambiente, como de outros neurônios
Cada dendrito carrega o sinal
O somma coleta, combina e processa as informações recebidas dos dendritos
Manda informações já proces-sadas para o axônio
Neurônio
Concentrações de potássio (negativo) e
só-dio (positivo) criam diferenças de potencial
- 70 mV - 50 mV
Tempo V
Neurônio
Axônios são prolongamentos dos neurônios, responsá-veis pela condução dos
impulsos elétricos até outro local mais distante
São responsáveis pela
transmissão de estímulos Alguns axiônios de um
humano adulto podem
chegar a mais de um metro
Sinapse é o nome dado à co-nexão entre neurônios
Cada sinapse tem um peso, que caracteriza a força da conexão entre dois
neurônios
Os sinais são transportados através de sinapses por substâncias químicas cha-madas neurotransmissores
Redes Biológicas
Neurônios são bem mais lentos que os circuitos
elétricos, mas o cérebro é capaz de realizar muitas
tarefas mais rápido que qualquer computador
Redes neurais biológicas trabalham de forma
massiva-mente paralela
Neurônios estão organizados em cerca de 1000
nódu-los principais, cada um com 500 redes neurais
E cada neurônio pode estar ligado a centenas ou até
Rede Neural Artificial
Uma
Rede Neural Artificial
(RNA) é um sistema
computacional que apresenta um modelo inspirado na
estrutura neural do cérebro humano
Componentes básicos:
Neurônio: unidade computacional básica da rede
Arquitetura: estrutura topológica de como os neurônios são conectados
Neurônio artificial
Unidade de processamento fundamental de uma RNA
Sinal Entradas Saída
Σ
f
a
Pesos w2 w 1 wd x1 x2 ... xd yObjeto x com d atributos fornece entrada
Pesos para as entradas são dados pelo vetor w
É realizada uma soma ponderada da entrada, à qual é aplicada uma
Entrada total
do neurônio:
Neurônio artificial
∑
==
d j j jw
x
u
1f (
∑
xw)
x
1x
2x
dy
w
1w
2w
df
a(
∑
x
jw
j)
Saída
do neurônio: aplica de função de
ativação a entrada total
Neurônio artificial
( )
u
f
y
=
af (
∑
xw)
x
1x
2x
dy
w
1w
2w
df
a(
∑
x
jw
j)
Funções de ativação
Funções de ativação mais comuns:
Linear
: f
a(u) = u
Threshold ou limiar
: f
a(u) =
Sigmoide Logística
: f
a(u) = 1/(1 + e
- λu)
Tangente hiperbólica
: f
a(u) = (1 - e
-λu)
1 , se u
≥
θ
0, se u
<
θ
(ou -1)
Função linear
f(u)
u
f(u) = u
Função limiar
u
f(u) =
1, se u
≥
θ
f(u)
Função sigmoide logística
f(u)
f(u) =1/(1 + e
- λu)
1
Função tangente hiperbólica
f(u)
+1
-1
f(u) =
(1 +e
-λu)
(1 - e
-λu)
Topologia
Definida por:
Número de camadas da RNA
Número de neurônios em cada camada
Grau de conectividade dos neurônios
Topologia
Neurônios podem estar dispostos em camadas
Neurônio pode receber como entrada a saída de neurônios
da camada anterior
E enviar sua saída para entrada de neurônios em camada
seguinte
camada de saída camada de
Topologia
Rede multicamadas
:
Pode ter diferentes padrões de conexões entre neurônios:
Completamente co-nectada: neurônios estão todos conecta-dos aos da camada anterior/seguinte
Parcialmente co-nectada: neurônios estão conectados a apenas alguns neu-rônios da camada anterior/seguinte
Localmente
co-nectada: neurônios conectados encon-tram-se em uma re-gião específica
Topologia
Rede multicamadas
:
Pode ter diferentes arranjos de conexões:
Redes feedforward: processamento da ca-mada de entrada à de saída
Tipo mais comum
Redes recorrentes: apresentam cone-xões de retroalimen-tação (uso em siste-mas dinâmicos)
Grades: matriz de nodos
0 1 0 0 1 0
Topologia
Escolhas dependem de vários fatores:
Complexidade do problema
Dimensionalidade da entrada
Características dinâmicas ou estáticas
Conhecimento a priori
Aprendizado
Ajuste dos pesos das conexões
Algoritmos de aprendizado
Conjunto de regras bem definidas para ensinar a
rede a resolver um dado problema
Divergem na maneira como os pesos são ajustados
Em como
∆
w é calculado
w(t+1) = w(t) +
∆
w(t)
Aprendizado
Quatro grupos de algoritmos:
Correção de erros: procuram ajustar pesos para reduzir erros cometidos pela rede (supervisionado)
Hebbiano: baseados na regra de Hebb, se dois neurônios estão simultaneamente ati-vos, a conexão entre eles deve ser reforçada
(não supervisionado)
Competitivo: promovem
competição entre neurônios para definir quais terão pe-sos ajustados, geralmente os que respondem mais for-temente à entrada
(não supervisionado)
Termodinâmico (Boltzmann):
algoritmos estocásticos ba-seados em princípios ob-servados na metalurgia
Perceptron
Desenvolvida por Rosemblat em 1958
Utiliza modelo de McCulloch-Pitts como
neurônio
Rede mais simples para classificação de
dados linearmente separáveis
Dados que podem ser separados por um
Perceptron
Na realidade, é RNA com uma única camada
Estado de ativação
1 = ativo 0 = inativo
Pode ser usado +1 e -1 também
Aprendizado por
correção de erro
Obter valor de incremento
∆
w(t) para que valor
w(t+1) = w(t) +
∆
w(t) esteja mais próximo da
solução desejada que w(t)
(
Aprendizado Perceptron
Considere um neurônio arbitrário
Com entradas x’e pesos w’
Ativação = Σ i w’i x’i = w’ . x’ Condição de disparo: w’ . x’ = θ Ou w’ . x’ - θ = 0 Produto interno Limiar de ativaçãoAprendizado Perceptron
w’ . x’ -
θ
= 0 é equivalente a adicionar um
peso w
0com valor -
θ
às entradas do neurônio
e conectá-lo a uma entrada com valor fixo x
0=
1
w = (-
θ
, w
1, ..., w
n)
)
x = (1, x
1, ..., x
n)
x
1x
2x
3+1
w1 w2 w3 -θf
Aprendizado
Considere o par de treinamento {x, y
d
} e a
saída atual da rede y
Erro devido à saída atual: e = y
d
– y
-1
0
1
1
1
0
0
0
0
e
y
dy
Aprendizado
w . x < 0, já que y = 0
⇒
||w|| ||x|| cos(
α
) < 0
α
= ângulo entre vetores w e x
⇒
cos(
α
) < 0
⇒
α
> 90º
1
1
0
e
y
dy
x . w(t) ( αAprendizado
Mudança plausível para w é somá-lo a um
vetor na direção de x
Para modificar ângulo
Vetor
η
x
x . w(t) ( w(t+1) ( ηxAssim,
∆
w(t) =
η
x(t)
(
⇒
w(t+1) = w(t) +
η
x(t)
(
Como e = 1, podemos escrever:
w(t+1) = w(t) +
η
ex(t)
(
Aprendizado
η
= taxa de aprendizado
0 <
η
< 1
Taxas pequenas
Taxas grandes
Taxas variáveis
Maiores no começoEstimativas estáveis de peso
Aprendizado lento
Aprendizado rápido
Captação de mudanças no
processo
Aprendizado
w . x > 0, já que y = 1
⇒
||w|| ||x|| cos(
α
) > 0
⇒
cos(
α
) > 0
⇒
α
< 90º
-1
0
1
e
y
dy
x . w(t) ( αAprendizado
Mudança plausível para w é subtraí-lo de um
vetor na direção de x
Para modificar ângulo
Vetor
η
x
x . w(t+1) ( w(t) ( ηxAssim,
∆
w(t) = -
η
x(t)
(
⇒
w(t+1) = w(t) -
η
x(t)
(
Como e = -1, podemos escrever:
w(t+1) = w(t) +
η
ex(t)
(
Aprendizado
Para duas situações de erro possíveis,
chegou-se à mesma regra de atualização:
Logo,
∆
w(t) =
η
ex(t), se y
≠
y
d
0, se y = y
dw(t+1) = w(t) +
η
ex(t)
(
Aprendizado por correção de erro
Superfície de erro
Superfície multi-dimensional representando gráfico
da função de custos X peso
Objetivo do aprendizado:
A partir de um ponto qualquer da superfície, mover em
Superfície de erro
Erro
Superfície de erro
X
Erro
mínimo global
mínimos locais
Algoritmo de treinamento Perceptron
Teorema de convergência:
Se é possível classificar um conjunto de entradas
linearmente, uma rede Perceptron fará a
classificação
Em um número finito de passos Mas tempo pode ser proibitivo!
Algoritmo de treinamento
Algoritmo de treinamento de RNA Perceptron
Entrada: Conjunto de treinamento D = {(xi,yi), i = 1,...n}
Saída: Rede Perceptron com pesos ajustados
Iniciar pesos da rede com valores baixos
repita
para cada xi faça
Calcular valor da saída produzida pela rede f(xi)
erro e = yi - f(xi) se e > 0 então
Ajustar pesos do neurônio w(t+1) = w(t) + ηex(t)
Algoritmo de treinamento
Vetor peso ideal
2
3
4
5
Algoritmo de treinamento
1
2
3
4
5
6
7
8
Algoritmo de teste
Uso da RNA treinada
Algoritmo de teste de RNA Perceptron
Entrada: Exemplo de teste x e RNA Perceptron com pesos
ajus-tados
Saída: previsão para classificação de x
Apresentar x à entrada da RNA Calcular a saída f(x)
Exemplo
Dada uma rede Perceptron com:
Três terminais de entrada, utilizando pesos iniciais
w
1= 0.4, w
2= -0.6 e w
3= 0.6, e limiar
θ
= 0.5:
Ensinar a rede com os dados (001, -1) e (110, +1) E
Utilizar taxa de aprendizado η = 0.4
Exemplo
x1
x2
x3
y
Limiar
001 -1 Situação desejadaExemplo
a)
Treinar a rede
a.1)
Para o dado 001
(y
d= -1)
Passo 1
: definir a saída da rede
u = 0(0.4) + 0(-0.6) + 1(0.6) -1(0.5) = 0.1 y = +1 (uma vez 0.1 ≥ 0)
0
Passo 2:
atualizar pesos (y
≠
y
d)
)
w1 = 0.4 + 0.4(0)(-1 - (+1)) = 0.4 w2 = -0.6 + 0.4(0)(-1 - (+1)) = -0.6 w3 = 0.6 + 0.4(1)(-1 - (+1)) = -0.2 w = 0.5 + 0.4(-1)(-1 - (+1)) = 1.3 (bias) = 001 -1Exemplo
a)
Treinar a rede
a.2)
Para o dado 110
(y
d= +1)
Passo 1: definir a saída da rede
u = 1(0.4) + 1(-0.6) + 0(-0.2) -1(1.3) = -1.5 y = -1 (uma vez -1.5 < 0)
y
Passo 2: atualizar pesos (y ≠ yd) ) w1 = 0.4 + 0.4(1)(1 - (-1)) = 1.2 w2 = -0.6 + 0.4(1)(1 - (-1)) = 0.2 w = -0.2 + 0.4(0)(1 - (-1)) = -0.2 001 -1
Exemplo
a)
Treinar a rede
a.3)
Para o dado 001
(y
d= -1)
Passo 1: definir a saída da rede
u = 0(1.2) + 0(0.2) + 1(-0.2) -1(0.5) = -0.7 y = -1 (uma vez -0.7 < 0)
y
Passo 2: atualizar pesos :
Como y = yd, os pesos não precisam ser modificados
001 -1
Exemplo
a)
Treinar a rede
a.4) Para o dado 110 (yd = +1)
Passo 1: definir a saída da rede
u = 1(1.2) + 1(0.2) + 0(-0.2) -1(0.5) = +0.9 y = +1 (uma vez 0.9 > 0)
y
Passo 2: atualizar pesos :
Como y = yd, os pesos não precisam ser modificados
001 -1
Exemplo
b)
Testar a rede
b.1)
Para o dado 111
u = 1(1.2) + 1(0.2) + 1(-0.2) -1(0.5) = 0.7 y = +1 (porque 0.7 ≥ 0)b.2)
Para o dado 000
u = 0(1.2) + 0(0.2) + 0(-0.2) -1(0.5) = -0.5 y = -1 (porque -0.5 < 0)Exemplo
b)
Testar a rede
b.3)
Para o dado 100
u = 1(1.2) + 0(0.2) + 0(-0.2) -1(0.5) = 0.7 y = +1 (porque 0.7 ≥ 0)b.4)
Para o dado 011
u = 0(1.2) + 1(0.2) + 1(-0.2) -1(0.5) = -0.5 y = -1 (porque -0.5 < 0)Adaline
Perceptron: ajuste de pesos não leva em
con-ta distância entre saída e resposcon-ta desejada
Rede
Adaline
(ADAptive LINEar)
Proposta pôr Widrow e Hoff em 1960
Função de ativação é linear
Adaline
Estado de ativação
1 = ativo
0 = inativo (ou -1)
Função de ativação linear
f
a
(u) = u =
Σ
i=0:dx
iw
iAdaline
θ
corresponde a um grau de liberdade a mais
Deslocamento da função de ativação em relação
à origem do sistema de coordenadas
Em Perceptron era limiar de ativação do neurônio
f(x) =
Σ
i=0:nx
iw
i= w . x
Para uma Adaline de d entradas a saída f(x) é:
f(x) = w
0+ w
1x
1+ w
2x
2+ ... + w
dx
dAdaline
Logo, saída corresponde a uma combinação
linear das entradas x
i
Pesos da combinação obtidos por meio de
treinamento
y = w
0+ w
1x
1+ w
2x
2+ ... + w
dx
d y x0 = +1 x1 x2 w0 = θ w1 w2Adaline
Treinamento
Supervisionado
Correção de erro (regra Delta)
∆wi = ηxi(yd - y) (yd ≠ y)
∆w
i = 0 (yd = y)
Reajuste gradual do peso
Aprendizado
Seja um par de treinamento (x, y
d
)
Erro quadrático
: e
2= (y
d
– w.x)
2 e2 = (y
d)2 –2ydw.x + (w.x)2
Encontrar o w que leve a menor e
2 Superfície de erro
Na realidade deseja-se encontrar o mínimo da
superfície correspondente à
soma
das superfícies
de erro de todos os dados de treinamento
Aprendizado
Para o conjunto de treinamento com n dados
Função de erro
(custo):
J = ½
Σ
i=1:n(y
di– w.x
i)
2Algoritmo de treinamento deve atualizar os
pesos visando atingir o mínimo de J
Aprendizado
Dada uma condição inicial w(0), qual a direção
do ajuste a ser aplicado para que w se
aproxime do mínimo de J?
Pelo gradiente da função de custo no ponto
Gradiente possui a mesma direção da maior variação de erro ⇒ ajuste deve ser na direção contrária
Gradiente
∇
J = (
∂
J/
∂
w
0,
∂
J/
∂
w
1, ...,
∂
J/
∂
w
d)
∂
J/
∂
w
i= -x
ie
∆
w(t)
α
ex
i⇒
∆
w(t) =
η
ex
iAprendizado
η
= taxa de aprendizado
Define velocidade com que o vetor de pesos é
modificado
Equação de ajuste:
Algoritmo de treinamento
Algoritmo de treinamento de RNA Adaline
Entrada: Conjunto de treinamento D = {(xi,yi), i = 1,...n}
Saída: Rede Perceptron com pesos ajustados
Iniciar pesos da rede com valores baixos
repita
para cada xi faça
Calcular valor da saída produzida pela rede f(xi)
erro e = yi - f(xi) se e > ε então
Ajustar pesos do neurônio w(t+1) = w(t) + ηex(t)
Algoritmo de teste
Uso da RNA treinada
Algoritmo de teste de RNA Adaline
Entrada: Exemplo de teste x e RNA Adaline com pesos
ajusta-dos
Saída: previsão para x
Apresentar x à entrada da RNA Calcular a saída f(x)
Problemas com redes de uma
única camada
Redes de uma camada geram apenas
fronteiras lineares
Grande número de aplicações importantes
são não lineares
1
0, 0
→0
0, 1
→1
1, 0
→1
1, 1
→0
Problemas com Perceptron
Solução
: utilizar mais de uma camada
Camada 1
: uma rede Perceptron para cada
grupo de entradas linearmente separáveis
Camada 2
: uma rede combina as saídas das
redes da primeira camada, produzindo a
classificação final
Como treinar?
1
3 2
Rede multicamadas
Modelo de rede mais popular
Resolvem problemas mais complexos do que o
Perceptron simples e Adaline
Possuem uma ou mais camadas intermediárias
Funções de ativação não-lineares em pelo menos uma
das camadas intermediárias
Sempre vai existir uma rede com uma camada equivalen-te a uma multicamadas com funções de ativação lineares
Rede multicamadas
Grande Funcionalidade
Uma camada intermediária aproxima:
Qualquer função contínua ou Booleana
Duas camadas intermediárias aproximam:
Qualquer função Qualidade da aproximação depende da complexidade da rede
Perceptron multicamadas
MLP – Multilayer Perceptron
Uma ou mais camadas intermediárias de neurônios
Função de ativação Sigmoide ou Tangente Hiperbólica
Arquitetura mais comum: completamente conectada
Cada neurônio realiza uma função específica
Função implementada é uma combinação das funções realiza-das pelos neurônios da camada anterior conectados a ele
Termo θ usado para desvio da função em relação à origem
MLPs
Função implementada por cada neurônio
Formada pela combinação das funções
implementadas por neurônios da camada anterior
Camada 1: hiperplanos no espaço de entradas Camada 2: regiões convexas
Número de lados = número de unidades na camada anterior
Camada 3: Combinações de figuras convexas, produzindo formatos abstratos
Número de figuras convexas = número de unidades da camada anterior
Funções cada vez mais complexas
MLPs
Combinação das funções desempenha das por cada
neurônio define a
função associada à
MLPs
Camada de saída
: um neurônio para cada um
dos rótulos presentes
Classificação
: função de ativação Sigmoide ou
tangente hiperbólica
Regressão
: função de ativação linear
Saída para um objeto x: y = [y1, y2, ..., yk]t, k = número de rótulos
Classificação: vetor y para cada objeto de entrada tem valor 1 na posição associada à classe do objeto e 0 nas demais posições
MLPs
Treinamento por
correção de erros
Camada de saída
: comparação entre vetor de saída
dos neurônios e vetor de valores desejados
Classificação: rede classifica objeto corretamente quando a saída mais elevada é a do neurônio correspondente à classe correta do exemplo
Se valores são baixos ou mais de um neurônio dá valor de saída alto, a rede não tem condições de prever
Camadas intermediárias
: Qual a saída desejada de
MLPs
Algoritmo Backpropagation
Estimar o erro das camadas intermediárias por efeito
que elas causam no erro da camada de saída
Erro da saída é retroalimentado para as camadas intermediárias
Requer funções de ativação contínuas e diferenciáveis
Backpropagation
Treinamento
: iteração de duas fases
Cada fase percorre a rede em dois sentidos
Sinal (forward)
Backpropagation
Treinamento
: iteração de duas fases
Fase Forward
“Para frente”
Cada objeto de entrada é apresentado à rede
Neurônios são percorridos da primeira camada
intermediária até a saída Valores de saída são
comparados aos desejados
Fase backward
“Para trás”
Erro de cada neurônio da camada de saída é
usados para ajustar seus pesos de entrada
Ajuste prossegue até a primeira camada
Rede MLP
camada de
entrada
camadas intermediárias
camada de
saída
Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
E n t r a d a S a í d a D e s e j a d aRNA - Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
S a í d a D e s e j a E n t r a d aRNA - Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
S a í d a D e s e j a d a E n t r a d aRNA - Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
S a í d a D e s e j a E n t r a d aRNA - Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
S a í d a D e s e j a d a E n t r a d aRNA - Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
S a í d a D e s e j a E n t r a d aRNA - Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
S a í d a D e s e j a d a E n t r a d aRNA - Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
S a í d a S a í d a D e s e j a E n t r a d aRNA - Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
S a í d a D e s e j a d a E n t r a d aRNA - Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
S a í d a D e s e j a E n t r a d aRNA - Aprendizado
camada de
entrada
camadas intermediárias
camada de
saída
S a í d a D e s e j a d a E n t r a d aBack-propagation
Treinamento
∆
w
ij
=
η
x
iδ
j
Se f for uma função sigmoidal f´(x) = f(x)(1 – f(x))
Treinamento não é garantido de convergir
=
∑
se jfor camada intemediária ´ saída de camada for j se ´ k jk j j w f e f δ δ ) ˆ ( 2 1 1 q k q q j y f e =∑
− =Erro estimado: soma dos erros dos neurônios da camada seguinte, ponderadas pelas conexões
Back-propagation
Treinamento
Derivada parcial define ajuste dos pesos: mede
contribuição de cada peso no erro da rede
Derivada positiva ⇒ peso está provocando aumento na diferença entre a saída produzida e a desejada
Sua magnitude deve ser reduzida para baixar o erro
Derivada negativa ⇒ peso está contribuindo para que saída produzida seja mais próxima da desejada
Treinamento
Algoritmo Back-propagation
Iniciar todas as conexões com valores aleatórios
Repita
para cada par de treinamento (x, y)
para cada camada i := 1 a N
para cada neurônio j := 1 a Mi Calcular a saída fij(x)
erro = y - fij(x)
para cada camada i := N a 1
para cada neurônio j:= 1 a Mi Atualizar pesos
Teste
Algoritmo de teste de RNA MLP
Apresentar dado x a ser reconhecido
para cada camada i := 1 a N
para cada neurônio j := 1 a Mi
Calcular a saída fij(x)
Se classificação: discretizar a saída
(verifica o maior valor produzido; se valores forem baixos ou muito próximos, rejeitar)
Termo momentum
Para reduzir influência da escolha do valor de
η
Adiciona uma fração
α
do valor anterior de
atualização dos pesos ao atual
∆ w
ji (t+1) ← η δj xji + α ( wji (t) - wji (t - 1) )
Quantifica grau de importância da variação do ciclo anterior
Quando o gradiente se mantém apontando na
mesma direção, o tamanho dos passos na direção
do mínimo crescerá
Atenção: se ambos
η
e
α
forem muito grandes,
Termo momentum
Solução original de Caminho seguido
Variações
Versão padrão
: ajuste de pesos para cada
objeto individualmente
Variação batch
: pesos são ajustados uma
Variações
Mínimos locais
: solução estável que não é a melhor
solução
Incidência pode ser reduzida
Empregando taxa de aprendizado decrescente Adicionando nós intermediários
Utilizando termo de momentum
Backpropagation é muito lento em superfícies
complexas
Utilizar métodos de segunda ordem Outros algoritmos
Critérios de parada
Diferentes critérios podem ser usados:
Número máximo de ciclos
Taxa máxima de erro
Early stop: estratégia para evitar overfitting
Separa parte dos dados de treinamento para
validação
Dados de validação são apresentados à rede a
cada l ciclos
Critérios de parada
Convergência do algoritmo
Superfície de erro apresenta mínimos locais e
global para problemas complexos
Objetivo é atingir mínimo global
Não há teorema de convergência
Rede pode convergir para mínimo local ou demorar
Projeto da arquitetura de RNA
Escolhas de função de ativação e topologia da
rede
Número de camadas e neurônios, padrão das
conexões
Geralmente empíricas (tentativa e erro)
Problema de busca
Projeto da arquitetura de RNA
Abordagens:
Empírica
Busca cega, tentativa e erro Diversas arquiteturas são
testadas e comparadas Mais utilizada, mas com
elevado custo de tempo Algumas heurísticas: testar
apenas uma camada
intermediária, pois já tem bastante poder expressivo
Meta-heurística
Gera conjunto de variações de RNAs e combina as que apresentam melhores resultados
Geralmente usa Algoritmos Genéticos na busca e variações
Projeto da arquitetura de RNA
Abordagens:
Poda (pruning)
Começa com uma RNA com um grande número de
neurônios
Poda remove conexões ou neurônios redundantes ou irrelevantes
Construtiva
Gradualmente insere novos neurônios e conexões a uma RNA inicialmente
sem neurônios intermediá-rios
Observações
Atributos devem ser numéricos
Categóricos devem ser pré-processados
É necessário normalizar os dados
Similar a k-NN
Relacionado também a ter crescimento muito grande
Vantagens RNAs
Várias soluções de sucesso em problemas
práticos (principalmente percepção e controle)
Desvantagens RNAs
Capacidade preditiva ainda está aquém à do
cérebro
Dificuldade de interpretação do modelo gerado
(caixas-pretas)
Referências
Slides de:
Prof Dr André C. P. L. F. de Carvalho Prof Dr Ricardo Campello
Prof Dr Marcilio Carlos Pereira de Souto
Livro: A. P. Braga, A. C. P. L. F. Carvalho, T. B. Ludermir, Redes