Post on 22-Nov-2018
Redes Neurais Artificiais (RNA)
Definições:
1. Técnica inspirada no funcionamento do cérebro, onde neurônios artificiais, conectados em rede, são capazes de aprender e de generalizar.
2. Técnica de aproximação de funções por regressão não linear.
Capacidade de Generalização
Isso significa que se a rede aprende a lidar com um certo problema, e lhe é apresentado um similar, mas não exatamente o mesmo, ela tende a reconhecer esse novo problema, oferecendo a mesma solução.
Redes Neurais Artificiais (RNA)
Devido à sua estrutura, as Redes Neurais Artificiais são bastante efetivas no aprendizado de padrões a partir de dados:
•não-lineares,
•incompletos,
•com ruído e até
•compostos de exemplos contraditórios.
Inspiração biológica
O neurônio biológico
• Os dendritos tem por função, receber os estímulos transmitidos pelos outros neurônios;
• O corpo de neurônio, também chamado de soma, é responsável por coletar e combinar informações vindas de outros neurônios;
• E finalmente o axônio, protegido por uma bainha de mielina, o canal de saída do neurônio, é responsável por transmitir os estímulos para outros neurônios ou músculos.
O neurônio biológico
O neurônio biológico
O fluxo da informação ocorre sempre no sentido:
Dendritos - Corpo celular - Axônio
Cérebro humano
O neurônio biológico
A chegada de um trem de pulso no botão sináptico localizado na região terminal do axônio provoca a liberação de transmissores na fenda sináptica.
Sinapses podem ser excitatórias (facilitam a passagem do potencial de ação) ou inibitórias (inibem a passagem do potencial de ação).
O neurônio biológico
Neurônios podem se conectar com outros neurônios ...
O neurônio biológico
Neurônios podem se conectar com os músculos ...
O neurônio biológico
Neurônios podem se conectar com os órgãos sensoriais...
O neurônio biológico
• Há cerca de 100 bilhões deles no cérebro e na coluna vertebral.
• A maioria deles está localizado no córtex cerebral, o córtex é identificado popularmente como massa cinzenta.
• O córtex existe apenas nos cérebros de mamíferos.
• O córtex é a estrutura responsável pelas habilidades cognitivas superiores, tais como memória, raciocínio lógico, linguagem, consciência, dentre outras..
O neurônio biológico
• Em média, cada neurônio forma entre mil e dez mil sinapses.
• O cérebro humano possui cerca de 1011
neurônios, e o número de sinapses é de mais de 1014, possibilitando a formação de redes muito complexas.
Neurônio artificial
O neurônio McCulloch-Pitts (MP)
• Modelo matemático de um neurônio biológico proposto em
W.S. McCulloch and W. Pitts (1943). “A logical calculus of the ideas immanent nervousactivity”, Bulletin of Mathematical Biophysics, vol.5, p. 115-133
• É bom lembrar que todo modelo é apenas uma aproximação do fenômeno ou objeto real cujas funcionalidades se pretende estudar.
“All models are wrong, but some are useful.”
George E. P. Box
• Assim, o neurônio MP é uma aproximação útil do neurônio real, pois serve até hoje como bloco construtivo básico de algoritmos de redes neurais
O neurônio McCulloch-Pitts (MP)
• Na construção do neurônio MP se está interessado em modelar aspectos ligados ao Processamento da Informação em um neurônio biológico.
• Entendese por processamento da informação os caminhos e etapas pelas quais passam os potenciais de ação que trafegam de:– um neurônio a outro neurônio,
– receptores sensoriais a um neurônio, ou
– de um neurônio a um atuador (e.g. músculo).
• Assim, devemos desenvolver modelos matemáticos que representem os dendritos, as sinapses, o corpo celular e o axônio.
O neurônio McCulloch-Pitts (MP)
O neurônio McCulloch-Pitts (MP)
• Passo 2: A força (ou eficiência) das conexões sinápticas de uma certa árvore dendrítica é modelada como um fator (peso sináptico), cujo papel é modular o fluxo de sinais passando por uma certa árvore dendrítica.
O neurônio McCulloch-Pitts (MP)
Passo 3: A função do corpo celular de realizar o balanço ou acúmulo energético é modelada por uma operação de somatório sobre as entradas moduladas pelos pesos sinápticos.
�(�): somatório ou ativação�(�) = ��� + … + �� � − �
Onde:
�, �, … �: entradas
��, ��, … ��: pesos sinápticos
�� = �
�: Limiar (bias)
O neurônio McCulloch-Pitts (MP)
• Passo 4: O axônio é modelado como uma chave ONOFF, que indica se o neurônio respondeu ao estímulo atual. Em outras palavras, se houve ou não o envio de um potencial de ação.
�, �, … �: entradas
��, ��, … ��: pesos sinápticos
�(�) = ��� + … + �� � − �
� = função degrau �(�) = � � = +1, �� � > 0
� � = � � = −1, caso contrário
Modelo completo do neurônio de McCulloch-Pitts
• Matematicamente a saída pode ser expressa por:
ou considerando o bias como entrada de valor x0=-1 e peso w0=θ,
Expressão matemática do neurônio artificial
== ∑
=
p
j
jj xwfufy0
)(
+== ∑
=
p
j
jj biasxwfufy1
)(
Componentes do neurônio artificial
• Neurônio Biológico possui de forma resumida:– Dendritos,
– Sinapses,
– Corpo celular
– Axônio
• Neurônio Artificial possui:– As conexões (arestas ponderadas),
– As sinapses (entradas),
– A junção somadora, e
– A função de ativação.
Princípio de funcionamento
A operação de um neurônio artificial se resume em: • Sinais são apresentados à entrada (xj à xp); • Cada sinal é multiplicado por um peso que indica sua influência
na saída da unidade (w); • É feita a soma ponderada dos sinais que produz um nível de
atividade (u); • A função de ativação f(u) tem a função de limitar a saída e
introduzir não-linearidade ao modelo.• O bias tem o papel de aumentar ou diminuir a influência do
valor das entradas.• É possível considerar o bias como uma entrada de valor
constante 1 ( excitatória) ou -1 (inibitória), multiplicado por um peso igual a θ.
Princípio de funcionamento
Seja o neurônio artificial mostrado na figura a seguir.
�, �: entradas
�, �: pesos sinápticos
�: Limiar (bias)
�: ativação
A ativação (�) do neurônio é dada por:
� = ���, ��� − � (1)
Princípio de funcionamento
A equação (1) define um plano em (�, �, �)
O tracejado indica onde o plano está abaixo do plano (�, �).
Princípio de funcionamento
• Para fins de classificação basta trabalhar no plano (�, �).
• Isto equivale a fazer u=0 na equação do plano, ou seja:
� = ���, ��� − � = 0
• Assim, a equação da reta no plano (�, �) é dada por:
� = (��/��)� + �/��(2)
Princípio de funcionamento
• A equação (2) define a reta em (�, �) apresentada a seguir:
Princípio de funcionamento
• Assim, um neurônio pode ser usado para separar com eficiência duas classes que estejam bem isoladas uma da outra.
• O perceptron de limiar é chamado separador linear
Exemplos de Funções Lógicas
• Exemplo 1(1): Implementando funções lógicas (AND, OR, NOT).
Representação do Problema (Função OR)
Exemplos de Funções Lógicas
• Exemplo 1(2): É possível encontrar uma reta que separe os pontos da Classe 1 (y=1) dos da Classe 2 (y=0)? SIM.
Observação: Na verdade, é possível encontrar infinitas retas que separam as duas classes.
Exemplos de Funções Lógicas
• Exemplo 2: O seguinte neurônio implementa a porta OR.
�� = �� = 1 e � = 0,5
� = 1 se u ≥ 0
� = 0 se u < 0
Exemplos de Funções Lógicas
• Exemplo 3: O seguinte neurônio implementa a porta AND.
�� = �� = 1 e � = 1,5
� = 1 se u ≥ 0
� = 0 se u < 0
Exemplos de Funções Lógicas
• Exemplo 4: O seguinte neurônio implementa a porta NOT.
�� = −1 e � = −0,5
� = 1 se u ≥ 0
� = 0 se u < 0
Resumo
• O neurônio MP pode ser usado para implementar as portas lógicas AND, OR e NOT porque estas, do ponto de vista geométrico, podem ser interpretadas como um problema de classificação binária (duas categorias).
• O neurônio MP, do ponto de vista geométrico, pode ser interpretado como uma reta (2D), ou um plano (3D) ou ainda um hiperplano (> 3D), que é usado para separar duas categorias de dados distintas.
• Na implementação das portas lógicas AND, OR e NOT, os valores dos pesos e do limiar foram determinados pelo projetista com base na análise geométrica do problema.
Resumo
• Como fazer com que o neurônio MP determine de forma automática os valores dos pesos e do limiar para um problema específico?
• Para que o neurônio MP seja capaz de aprender sozinho a resolver um problema de classificação é necessário dotá-lo de uma regra de aprendizagem.
• Uma regra de aprendizagem nada mais é do que uma equação que altera os valores dos pesos e do limiar em função dos erros cometidos durante a execução da tarefa de classificação.
Rede Perceptron Simples (PS)
• A rede PS é considerada o primeiro algoritmo de redes neurais artificiais.
• A rede PS foi proposta por Frank Rosenblatt em 1958.
F. Rosemblat (1958). “The Perceptron: A probabilistic model for iformation storage
and organization in the brain”, Psychological Review, v.65, p.386-408.
Perceptron Simples = Neurônio de MP + Regra de Aprendizagem
• A regra de aprendizagem é o mecanismo que torna a rede Perceptron Simples um dispositivo inteligente.
Rede Perceptron Simples (PS)
Regra de Aprendizagem do Perceptron
• A atualização do peso depende do erro e da entrada:
� � + 1 = � � + � � �
• A fim de tornar o processo de ajuste do vetor w mais estável, é comum introduzir na equação anterior um fator , chamado de passo de aprendizagem:
� � + 1 = � � + !� � �
Onde: 0 < ! ≪ 1
Rede Perceptron Simples (PS)
Perceptron Simples = Neurônio MP + Regra de Aprendizagem
� � + 1 = � � + !� � �
Onde: 0 < ! ≪ 1
Algoritmo do Perceptron Simples
1. Início (t=0)1.1 – Definir valor de ! entre 0 e 1.
1.2 – Iniciar w(0) com valores nulos ou aleatórios.
2. Funcionamento2.1 – Selecionar vetor de entrada x(t).
2.2 – Calcular ativação u(t).
2.3 – Calcular saída y(t).
3. Treinamento3.1 – Calcular erro: e(t) = d(t) - y(t)
3.2 – Ajustar pesos via regra de aprendizagem.
3.3 – Verificar critério de parada.3.3.1 – Se atendido, finalizar treinamento.
3.3.2 – Caso contrário, fazer t=t+1 e ir para Passo 2.
Treinamento do neurônio
5. Rede Perceptron Simples (PS)
Exemplo PassoaPasso: Aprendendo a Porta Lógica OR.
t =0: Iniciar com zeros os pesos e o limiar.
w10=w2 0=0=0
Passo de aprendizagem escolhido: = 0,5;
Logo:
w 0=[0w10w20]
=[000] x t =[
−1x1t x2 t ]
5. Rede Perceptron Simples (PS)
t=1: Calcular saída para w(1) = [0 0 0] e x(1) =[1 0 0].
u(1) = (0)(1) + (0)(0) + (0)(0) = 0 => y (1)= 0, e(1)=0.
t=2: Calcular saída para w(2) = [0 0 0] e x(2) =[1 0 1].
u(2) = (0)(1) + (0)(0) + (0)(1) = 0 => y(2) = 0, e(2)=1
w 3=w 2e 2x 2=[000]0,51[
−101 ]=[
−0,50
0,5 ]
w 2=w 1e 1x 1=[000]0,50[
−100 ]=[
000]=w 1
5. Rede Perceptron Simples (PS)
t=3: Calcular saída para w(3) = [0,5 0 0,5] e x(3) =[1 1 0].u(3)=(0,5)(1)+(0)(1) + (0,5)(0) = 0,5 => y (3)= 1, e(1)=0.
t=4: Calcular saída para w(4) = [0,5 0 0,5] e x(4) =[1 1 1].u(4) = (0,5)(1) + (0)(1) + (0,5)(1) = 1 => y(4) = 1, e(4)=0.w 5=w 4
w 4=w 3
t=5: Calcular saída para w(5) = [0,5 0 0,5] e x(5) =[1 0 0].u(5) = (0,5)(1) + (0)(0) + (0,5)(0) = 0,5 => y(5) = 1, e(5)=1.
w 6=w 5 e5x 5=[−0,5
00,5 ]0,5−1[
−100 ]=[
00
0,5]
5. Rede Perceptron Simples (PS)
t=6: Calcular saída para w(6) = [0 0 0,5] e x(6) =[1 0 1].u(6)=(0)(1)+(0)(0) + (0,5)(1) = 0,5 => y (6)= 1, e(6)=0.
t=7: Calcular saída para w(7) = [0 0 0,5] e x(7) =[1 1 0].u(7) = (0)(1) + (0)(1) + (0,5)(0) = 0 => y(7) = 0, e(7)=1.
w 7=w 6
t=8: Calcular saída para w(8) = [0,5 0,5 0,5] e x(8) =[1 1 1].u(8) = (0,5)(1)+(0,5)(1)+(0,5)(1) = 0,5 => y(8) = 1, e(8)=0.
w 8=w 7e 7x 7=[00
0,5]0,51[−110 ]=[
−0,50,50,5 ]
w 9=w 8
5. Rede Perceptron Simples (PS)
t=9: Calcular saída para w(9) = [0,5 0,5 0,5] e x(9) =[1 0 0].u(9)=(0,5)(1)+(0,5)(0) + (0,5)(0) = 0,5 => y (9)= 1, e(9)=1.
t=10: Calcular saída para w(10) = [0 0,5 0,5] e x(10) =[1 0 1].u(7) = (0)(1) + (0,5)(0) + (0,5)(1) = 0,5 => y(10) = 1, e(10)=0.
t=11: Calcular saída para w(11) = [0 0,5 0,5] e x(11) =[1 1 0].u(11) = (0)(1)+(0,5)(1)+(0,5)(0) = 0,5 => y(11) = 1, e(11)=0.
w 11=w 10
w 12=w 11
w 10=w 9e 9x 9=[−0,50,50,5 ]0,5−1[
−100 ]=[
00,50,5]
5. Rede Perceptron Simples (PS)
t=12: Calcular saída para w(12) = [0 0,5 0,5] e x(12) = [1 1 1].u(12)=(0)(1)+(0,5)(1) + (0,5)(1) = 1 => y (12)= 1, e(12)=0.
t=13: Calcular saída para w(13) = [0 0,5 0,5] e x(13) =[1 0 0].u(13) = (0)(1) + (0,5)(0) + (0,5)(0) = 0 => y(13) = 0, e(13)=0.
w 14=w 13
w 13=w 12
FIM do treinamento!
5. Rede Perceptron Simples (PS)
Solução Encontrada:
w=[
w1
w2]=[
00,50,5]
5. Rede Perceptron Simples (PS)
w=[
w1
w2]=[
00,50,5]
Solução Encontrada:
Note que esta não é a melhor das soluções, porque a reta passa bem em cima do ponto (0,0). Se os pesos tivessem sido iniciados aleatoriamente, dificilmente uma situação como essa ocorreria.
5. Rede Perceptron Simples (PS)
Um único neurônio MP categoriza apenas duas classes de dados.Em problemas com múltiplas classes, devese utilizar vários neurônios em paralelo.
5. Rede Perceptron Simples (PS)
O iésimo neurônio da rede PS é representado na figura abaixo.
5. Rede Perceptron Simples (PS)
O funcionamento de cada neurônio individualmente é o mesmo.
Assim, a ativação do iésimo neurônio da rede PS é dada por:
ui=wiT x=w i1 x1w i 2 x2...wip x p
i = 1, ..., Q (Q ≥ 1 é o número de neurônios de saída).
yi=sinalui=sinalwiT x
A saída do iésimo neurônio é dada por:
O erro do iésimo neurônio é dado por: ei=d i−yi
onde di é a saída desejada do iésimo neurônio.
5. Rede Perceptron Simples (PS)
Como cada neurônio tem seu próprio vetor de pesos wi , i = 1, 2, ...., Q, então teremos agora Q regras de aprendizagem!
Assim, a regra de aprendizagem do iésimo neurônio é dada por:
wi t1=wi t ei t x t
Em que 0 < << 1 e i=1, 2, ..., Q.
Ou seja, uma regra de aprendizagem para cada vetor wi.
5. Rede Perceptron Simples (PS)Resumo da Rede Percepron Simples (Q neurônios)
1. Início (t=0) 1.1 – Definir valor de entre 0 e 1.1.2 – Iniciar wi(0) com valores aleatórios.
2. Funcionamento2.1 – Selecionar o vetor de entrada x(t).2.2 – Calcular as Q ativações ui(t).2.3 – Calcular as Q saídas yi(t).
3. Treinamento3.1 – Calcular os Q erros: ei(t) = di(t) yi(t)3.2 – Ajustar os Q vetores de pesos wi(t).3.3 – Verificar critério de parada.
3.3.1 – Se atendido, finalizar treinamento.3.3.2 – Caso contrário, fazer t=t+1 e ir para Passo 2.
5. Rede Perceptron Simples (PS)
Para o PS, existem basicamente 2 métodos para especificar Q.
Método 1: Codificação binária simples.Se tenho C classes, então Q é o maior inteiro igual a ou menor que C.
Exemplo: Se C = 6 classes, então Q > 2,45 = 3.
Os vetores de saídas desejadas são construídos do seguinte modo:
d=[001]
Classe 1: Classe 1: Classe 2: d=[
010]
Classe 2: d=[
011]
Classe 3:
E assim por diante até a Classe 6: d = [1 1 0]T.
5. Rede Perceptron Simples (PS)
Método 2: Codificação 1outofQ.
Se tenho C classes, então Q = C.Exemplo: Se C = 4 classes, então Q = 4.
Neste método apenas uma das componentes do vetor de saídas desejadas tem valor igual a 1, i.e. Os vetores d são ortogonais.
d=[1000 ]
Classe 1: Classe 2:
d=[0100 ] d=[
0010 ]
Classe 3:
E assim por diante até a Classe 4: d = [0 0 0 1]T.
5. Rede Perceptron Simples (PS)
Dicas para Projetar uma Rede PS
(1) Usar uma taxa de aprendizagem pequena (e.g. = 0,1 ou 0,01).
(2) Usar valores de saída yi ∈ {1,+1}, em vez de yi ∈ {0,+1}.
(3) Mudar a ordem de apresentação dos vetores de treinamento a cada época de treinamento, tornandoa aleatória.
(4) Usar o método dois para determinar o número de neurônios (Q) e a representação dos vetores de saídas desejadas (d).
5. Rede Perceptron Simples (PS)
Dicas para Projetar uma Rede PS
(5) Normalizar os vetores de entrada se as variáveis apresentarem ordens de grandeza muito díspares.
x jnorm
=x j−x j
min
x jmax
−x jmin
ou dentro da faixa [1,+1]: x jnorm
=2 .x j−x j
min
x jmax
−x jmin −1
Recomendase deixar toda variável com valores
dentro da faixa [0,+1]:
Adaline
• Na mesma época em que Rosenblatt propôs o Perceptron,
Widrow e Hoff propuseram o algoritmo dos mínimos
quadrados (regra delta) para a rede Adaline (Adaptive Linear
Element), similar ao Perceptron, porém com função de
ativação linear ao invés de função degrau.
•O algoritmo backpropagation é uma generalização da regra
delta.
• O objetivo do algoritmo de treinamento é minimizar o erro
quadrático médio (MSE) entre a saída de rede e a saída
desejada.
Adaline
Rede com várias entradas/
saídas
O i-ésimo neurônio
da rede
Adaline
∑∑==
−==n
i
ii
n
i
i ydeE1
2
1
2)(
• O gradiente de E, também denominado de índice de
desempenho ou função custo, fornece a direção de
crescimento mais rápido de E.
• Portanto, a direção oposta ao gradiente de E é a direção de maior decrescimento.
• A soma dos erros quadráticos para um determinado
padrão é dada por:
onde �#$ é o peso específico para o neurônio pós-
sináptico %, da entrada & (' com( = 1,…)), e α é a taxa
de aprendizagem (� é o bias) .
Adaline
IJ
IJIJw
Eww
∂
∂−= α
O erro pode ser reduzido ajustando-se os pesos da
rede de acordo com:
Adaline
2
1
2 )()( II
p
i IJ
ii
IJIJ
ydw
ydww
E−
∂
∂=−
∂
∂=
∂
∂∑
=
JII
IJ
III
IJ
j j
jIjjIjII
xydw
yyd
w
E
xwxwffy
)(2)(2
)()(
−−=∂
∂−−=
∂
∂
=== ∑ ∑.xw
Como
Como �#$influencia apenas o neurônio %,
Regra delta
• Portanto a regra delta para o Adaline resume-se
em:
• Onde *# é o ajuste do peso para o bias (�+�)
com � = 1.
)(
)(
IIII
JIIIJIJ
ydbb
xydww
−+=
−+=
α
α
Aprendizagem com Momento
• Aprendizagem com momento usa uma
memória (incremento anterior) para aumentar
a velocidade e estabilizar a convergência
• Equação de correção dos pesos:
Observação: β é a constante de momento,
normalmente é ajustada entre 0,5 e 0,9
( ) ( ) ( ) ( ) [ ( ) ( ) ]11 −−++=+ nwnwnxnenwnw ijijjiijij βα
Exemplo de Momento
• Momentum
Exemplo: É possível implementar a porta XOR com 1 neurônio? Representação do Problema (Função XOR)
6. Problemas NãoLinearmente Separáveis (Porta XOR)
Exemplo (cont.) : Não, porque a função lógica XOR é
nãolinearmente separável.
6. Problemas NãoLinearmente Separáveis (Porta XOR)
Ou seja, não é possível separar as classes por uma única reta.
Exemplo (cont.) : São necessários pelo menos TRÊS neurônios!!
6. Problemas NãoLinearmente Separáveis (Porta XOR)
Exemplo (cont.) : Dois neurônios são necessários para separar o
espaço (x1, x2) em 4 regiões (R1, R2, R3, R4).
6. Problemas NãoLinearmente Separáveis (Porta XOR)
Exemplo (cont.) : Note que a reta em vermelho corresponde a um
neurônio que implementa a porta AND, enquanto a reta em azul corresponde a um neurônio que implementa a porta OR.
Sejam z1 e z2, as saídas dos neurônios responsáveis pelas retas em
vermelho e azul, respectivamente. Assim, temos que:
Em R1, z1 = 0 e z2 = 1. Em R2, z1 = 1 e z2 = 1.
Em R3, z1 = 1 e z2 = 0. Em R4, z1 = 0 e z2 = 0.
6. Problemas NãoLinearmente Separáveis (Porta XOR)
Exemplo (cont.) : Precisase ainda de um terceiro neurônio para
combinar os valores de z1 e z2, a fim de gerar o valor de y correto.
Quando um ponto da função que cair em qualquer uma das regiões
R2, R3 e R4, deve gerar uma saída igual a y = 0.
Quando um ponto da função que cair em na região R1, o terceiro
neurônio deve gerar uma saída igual a y = 1.
6. Problemas NãoLinearmente Separáveis (Porta XOR)
Exemplo (cont.) : Representação da função XOR no espaço (z1, z2).
No espaço (z1, z2) a função XOR passa a ser linearmente separável,
pois o ponto (x1, x2) = (1,0) é mapeado no ponto (z1, z2) = (0,1)!
6. Problemas NãoLinearmente Separáveis (Porta XOR)
Exemplo (cont.) : Assim, devemos projetar um neurônio que
implemente a seguinte função lógica no espaço (z1, z2).
6. Problemas NãoLinearmente Separáveis (Porta XOR)
Exemplo (cont.): O neurônio de saída tem a seguinte configuração.
6. Problemas NãoLinearmente Separáveis (Porta XOR)
z2=2 z10,5 Equação da reta:
Exemplo (cont.) : Colocando os dois primeiros neurônios em uma
camada e o terceiro neurônio na camada seguinte (subseqüente), chegase à seguinte rede multicamadas que implementa a porta XOR.
7. Implementação da Porta XOR
Exemplo (cont.) : Uma outra possível rede multicamadas que
também implementa a porta lógica XOR é dada abaixo.
7. Implementação da Porta XOR
A rede neural conhecida como Perceptron Multicamadas (Multilayer Perceptron – MLP) contém os seguintes elementos:
8. Rede Perceptron Multicamadas
(i) Unidades de entrada: responsáveis pela simples passagem dos valores de entrada para os neurônios das camadas seguintes.
(ii) Camada(s) oculta(s): contém neurônios responsáveis pelo processamento nãolinear da informação de entrada, de modo a facilitar a resolução do problema para os neurônios da camada de saída .
(iii) Camada de saída: contém neurônios responsáveis pela geração da saída da rede neural, após as entradas terem sido devidamente processadas pelos neurônios ocultos.
8. Rede Perceptron Multicamadas
Uma Rede MLP com 1 camada oculta é representada por:
MLP(p, q1, m)Onde: p é o número de variáveis de entrada q1 é o número de neurônios ocultos m é o número de neurônios de saída.
Logo, o número total de parâmetros (Z) de uma rede MLP de uma camada oculta é dado por:
Z = (p+1)q1 + (q1+1)m
8. Rede Perceptron Multicamadas
Uma Rede MLP com 1 camada oculta é representada por:
MLP(p, q1, q2, m)Onde: p é o número de variáveis de entrada q1 é o número de neurônios da 1a. camada oculta q2 é o número de neurônios da 2a. camada oculta m é o número de neurônios de saída.
Logo, o número total de parâmetros (Z) de uma rede MLP de duas camadas ocultas é dado por:
Z = (p+1)q1 + (q1+1)q2 + (q2+1)m
8. Rede Perceptron Multicamadas
Uma rede MLP com 4 variáveis de entrada (p=4), 10 neurônios ocultos (q1=10) e 2 neurônios de saída (m=2) é representada como MLP(4,10,2).
NOTA 1: A especificação de p e m são ditadas pela forma como o problema é codificado para ser resolvido por uma rede neural.
NOTA 2: As especificações de q1 e q2 dependem da complexidade do problema, ou seja, é preciso realizar vários testes até encontrar os valores mais adequados.
Uma rede MLP com 15 variáveis de entrada (p=15), 20 neurônios na 1a. camada oculta (q1=20), 10 neurônios na 2a. camada oculta (q2=10) e 4 neurônios de saída (m=4) é representada como MLP(15,20,10,2).
8. Rede Perceptron Multicamadas
Um neurônio qualquer da rede MLP, seja oculto ou de saída, é representado genericamente como na figura abaixo.
8. Rede Perceptron Multicamadas
Note que a função de ativação do neurônio MP, que é do tipo
Degrau (nãolinearidade dura ou hard)
foi substituída por uma função de ativação do tipo
Sigmoidal (nãolinearidade suave ou soft).
Assim, a saída deixa de ser uma variável do tipo
ONOFF (binária [0,1] ou bipolar [1,+1])
e passa a ser uma variável do tipo
Real ou Analógica (qq valor entre [0,1] ou [1,+1]).
8. Rede Perceptron Multicamadas
Função de ativação Sigmóide Logística
y it =1
1exp −ui t
y it ∈ 0,1
8. Rede Perceptron Multicamadas
Derivada da Sigmóide Logística
y i,t =
d yi t
d ui t
y i,t =yi t [1−yi t ]
8. Rede Perceptron Multicamadas
Função de ativação Tangente Hiperbólica
y it =1−exp −ui t
1exp −ui t
y it ∈ −1,1
8. Rede Perceptron Multicamadas
Derivada da Tangente Hiperbólica
y i,t =
d yi t
d ui t
y i,t =0,5 [1−yi
2t ]
8. Rede Perceptron Multicamadas
Sobre o Uso de Funções de Ativação Sigmoidais Vantagens: (1) Derivadas fáceis de calcular.
(2) Nãolinearidade fraca (trecho central é quase linear)(3) Interpretação da saída como taxa média de disparo (mean firing rate), em vez de simplesmente indicar se o neurônio está ou não ativado (ONOFF).
Desvantagens: (1) Elevado custo computacional para implementação em sistemas embarcados devido à presença da função EXP.
exp x =1
x1!
x2
2 !
x3
3!⋯
8. Rede Perceptron Multicamadas
Funcionamento de uma rede MLP com 1 camada oculta(1) A ativação do iésimo neurônio da camada oculta é dada por:
ui=wiT x=wi 0 x0wi 1 x1wi2 x2...wip x p , i=1,, q1
z i t =1
1exp −ui t , i=1,, q1
(2) A saída do iésimo neurônio da camada oculta é dada por:
ou
z i t =1−exp −ui t
1exp −ui t , i=1,, q1
8. Rede Perceptron Multicamadas
Funcionamento de uma rede MLP com 1 camada oculta(1) A ativação do késimo neurônio de saída é dada por:
ak=mkT z=mk 0 z0mk1 z1mk 2 z2⋯mkq1
zq1, k=1,, m
ok t =1
1exp−a k t , k=1,, m
(2) A saída do késimo neurônio de saída é dada por:
ou
ok t =1−exp−a k t
1exp−a k t , k=1,, m
8. Rede Perceptron Multicamadas
Treinamento de uma rede MLP (1 camada oculta)O késimo neurônio de saída têm acesso à saída desejada, dk.Assim, é possível calcular o erro associado a esse neurônio:
ek = dk ok
Este erro pode então ser utilizado em uma regra de aprendizagem similar àquela usada pelo algoritmo Perceptron Simples.
mk t1=mk t ek t ok, t z t
z(t) é o vetor de entrada da camada de saída.
ok, t =ok t [1−ok t ] (p/ sigmóide logística)
ok, t =0,5[1−ok
2t ] (p/ tangente hiperbólica)
Onde:
8. Rede Perceptron Multicamadas
Treinamento de uma rede MLP (1 camada oculta)Contudo, o iésimo neurônio oculto não tem acesso a uma saída desejada equivalente, di.
Assim, NÃO é possível calcular o erro associado a esse neurônio.
A saída encontrada pelos pesquisadores foi “inventar” uma espécie de erro para os neurônios ocultos, sem que houvesse a necessidade de uma saída desejada, di.
O erro dos neurônios ocultos são obtidos a partir dos erros dos neurônios de saída por meio de uma projeção no sentido inverso ao do fluxo de informação convencional.
8. Rede Perceptron Multicamadas
Treinamento de uma rede MLP (1 camada oculta)Esta projeção no sentido inverso dos erros de saída é mais conhecida pelo nome de retropropagação dos erros (Error Backpropagation).
O algoritmo de backpropagation é o mais usado para treinar redes MLP, tendo sido proposto por diferentes autores em diferentes épocas.
8. Rede Perceptron Multicamadas
P. Werbos (1974). “Beyond regression: new tools for prediction and analysis in the behavioral sciences”, PhD thesis, Harvard University, Boston, MA.
D. E. Rumelhart, G. E. Hinton, & R. J. Williams (1986). “Learning representations by backpropagating errors”. Nature, 323:533536, 1986.
Y. Le Cun, “Learning processes in an asymmetric threshold network”, In: Disordered Systems and Biological Organization (eds. F. Soulie, E. Bienenstock, and G. Weisbuch, Eds.). Les Houches, France: SpringerVerlag, 1986, pp. 233340.
Parker, D. (1985). “Learning Logic”, Technical Report TR87. Cambridge, MA: Center for Computational Research in Economics and Management Science, MIT.
8. Rede Perceptron Multicamadas
Regras de Aprendizagem da Rede MLP (1 camada oculta)Neurônios Ocultos:
wi t1=w i tei t zi,t x t
Onde: ei é o erro retroprojetado do iésimo neurônio de saída
x(t) é o vetor de entrada da rede.
zi,t =zi t [1−z i t ] (p/ sigmóide logística)
zi,t =0,5[1−zi
2 t ] (p/ tangente hiperbólica)
ei t =∑k=1
mmki ok
, t ek t , i=1,, q1
8. Rede Perceptron Multicamadas
Obtenção Teórica da Regra de Aprendizagem da Rede MLPPara a rede PS, a regra de aprendizagem foi obtida através de uma análise geométrica do problema.
Para a rede MLP vamos obter uma regra de aprendizagem semelhante, a partir da minimização de uma funçãocusto (ou função objetivo).
Para isso, considere inicialmente que o erro quadrático instantâneo para todos os m neurônios de saída é dado por:
J t =12∑k=1
mek
2t =1
2∑k=1
md k t −ok t
2
8. Rede Perceptron Multicamadas
Obtenção da Regra de Aprendizagem da Rede MLPUm gráfico hipotético que ilustra o efeito da nãolinearidade na função J(t) para um único neurônio de saída com peso w é mostrado abaixo:
8. Rede Perceptron Multicamadas
Obtenção da Regra de Aprendizagem da Rede MLP
A funçãocusto de interesse é o Erro Quadrático Médio (EQM), para os N exemplos de treinamento:
J W =1N∑t=1
NJ t = 1
2 N∑t=1
N∑k=1
mek
2t
=1
2 N∑t=1
N∑k=1
md k t −ok t
2
Note que a função J(W) pode ser minimizada ao se minimizar J(t)!
onde W é o conjunto de todos os parâmetros (pesos e limiares) da rede.
8. Rede Perceptron Multicamadas
Obtenção da Regra de Aprendizagem da Rede MLPComo a função custo é nãolinear, então o processo de minimização deve ser realizado de modo iterativo por meio da seguinte equação recursiva:
mk t1=mk t −∂ J t ∂mk t
onde é passo de aprendizagem (0 < < 1).
Note que o segundo termo da equação acima é o incremento imposto ao vetor de pesos wk no instante t, ou seja
mk t1=−∂ J t ∂mk t
8. Rede Perceptron Multicamadas
Obtenção da Regra de Aprendizagem da Rede MLPTemos então que calcular a seguinte derivada, também chamada de gradiente da função J(t) na direção do vetor mk(t):
∂ J t ∂mk t
Para isso, usaremos a regra da cadeia para fatorar esta derivada em vários termos:
∂ J t ∂mk t
=∂ J t ∂ ek t
∂ek t
∂ok t
∂ ok t
∂ ak t
∂ ak t
∂mk t
8. Rede Perceptron Multicamadas
Vamos calcular cada derivada separadamente:
∂ J t ∂ ek t
=ek t J t =12∑k=1
mek
2t (1) Se Então
∂ ek t
∂ ok t =−1(2) Se Entãoek = dk ok
(4) Se
Entãook t = ak t ∂ok t
∂ ak t =
,t =ok
,t (3) Se
ak t =mkT t z t Então
∂ ak t
∂mk t =zt
8. Rede Perceptron Multicamadas
Juntando novamente cada derivada, chegase ao seguinte resultado:
∂ J t ∂mk t
=∂ J t ∂ ek t
∂ek t
∂ok t
∂ ok t
∂ ak t
∂ ak t
∂mk t
=ek t −1o,t zt =−ek t o
, t z t
Assim, obtemos a regra de aprendizagem para os neurônios de saída:
mk t1=mk t−∂ J t ∂mk t
mk t1=mk t ek t ok, t z t
8. Rede Perceptron Multicamadas
Para obter a regra de aprendizagem dos neurônios ocultos adotase um raciocínio semelhante.Assim, o processo de minimização deve ser realizado de modo iterativopor meio da seguinte equação recursiva:
wi t1=w i t−∂ J t ∂w it
O segredo está em calcular o gradiente da função função custo J(t) agora na direção do vetor wi(t), ou seja:
∂ J t ∂w it
=∂ J t ∂ y it
∂ y i t
∂ui t
∂uit
∂w i t ( exercício)
8. Rede Perceptron Multicamadas
Avaliação Gráfica do TreinamentoA avaliação do treinamento é feita através do gráfico de J(W) versus o número de épocas de treinamento, chamado de curva de aprendizagem.
8. Rede Perceptron Multicamadas
A Rede MLP é um Aproximador Universal de Função
Uma rede MLP(p, q1, m), ou seja, uma rede com uma camada oculta, é capaz de aproximar qualquer função contínua, com grau de precisão arbitrário, dado um número suficientemente grande de neurônios ocultos com função de ativação sigmoidal.
Uma rede MLP(p, q1, q2, m), ou seja, uma rede com duas camadas ocultas, é capaz de aproximar qualquer função descontínua, com grau de precisão arbitrário, dado um número suficientemente grande de neurônios ocultos com função de ativação sigmoidal em cada camada.
8. Rede Perceptron Multicamadas
A Rede MLP é um Aproximador Universal de Função
K. Hornik, M. Stinchcombe & H. White (1989). “Multilayer Feedforward Networks are Universal Approximators”, Neural Networks, vol. 2, no. 5, p. 359366.
K. Hornik (1991). “Approximation Capabilities of Multilayer Feedforward Networks”, Neural Networks, vol. 4, no. 2, p. 251257.
R. HechtNielsen (1987). “Kolmogorov's mapping neural network existence theorem”, Proceedings of the IEEE International Conference on Neural Networks, pp. 1114.
J. L. Castro, C. J. Mantas & J. M. Benitez (1987). “Neural networks with a continuous squashing function in the output are universal approximators”, Neural Networks, vol. 13, no. 6, pp. 561563.
8. Rede Perceptron Multicamadas
A Rede MLP é um Aproximador Universal de Função
Os resultados obtidos nas referências acima são apresentados na forma de teoremas de existência, ou seja, eles dizem que existe uma rede MLP que pode aproximar uma certa função, porém não dizem como obtêla.
V. Kurkova (1992). “Kolmogorov's Theorem and Multilayer Neural Networks”, Neural Networks, vol. 5, no. 3, p. 501506.
Exceção:
Isto quer dizer que, por menor que seja o erro quadrático médio exigido para uma boa aproximação do problema, a rede MLP será eventualmente capaz de atingilo, desde que o número de neurônios ocultos seja elevado.
8. Rede Perceptron Multicamadas
Papel da Derivada da Função de Ativação na Regra de Aprendizagem
Assumindo uma função de ativação logística, temse que
CONCLUSÃO: Quando a ativação é muito alta (ou muito baixa), a saída estará próxima da região de saturação e, assim, o ajuste dos pesos será muito pequeno e o aprendizado mais lento.
eQuando ak t ∞ , então ok t ≈ 1 ⇒ ok
, t ≈ 0
Quando ak t −∞ , então ok t ≈ 0 ⇒ ok, t ≈ 0
Logo, se ok,t ≈ 0 ⇒ mk t =ek t ok
,t z t ≈ 0
8. Rede Perceptron Multicamadas
Este fênomeno recebe o nome de “paralisia da rede” e pode ser melhor visualizado colocandose os gráficos da função de ativação e de sua derivada lado a lado.
Minimizar a paralisia da rede
• A atualização de um peso entre duas unidades depende da derivada da função de ativação da unidade posterior e função de ativação da unidade anterior. Por tanto, é importante evitar escolhas de pesos iniciais que tornem as funções de ativação ou suas derivadas iguais a zero.
• Os valores para os pesos iniciais não devem ser muito grandes, tal que as derivadas das funções de ativação tenham valores muito pequenos (região de saturação). Por outro lado, se os pesos iniciais são muito pequenos, a soma pode cair perto de zero, onde o aprendizado é muito lento.
• Assim, devem-se inicializar os pesos e bias com valores randômicos entre [-0.5, 0.5] ou [-1, 1].
Rede Multilayer Perceptron (MLP)
Treinamento da MLP
• A rede MLP utiliza aprendizado supervisionado: para determinadas entradas esperam-se saídas específicas.
• Algoritmo de aprendizagem – backpropagation:
– Regra de aprendizagem baseada na correção do erro pelométodo do Gradiente
– O algoritmo de aprendizagem é composto de duas fases:
– Cálculo do erro (forward)
– Correção dos pesos sinápticos (backward)
Algoritmo Backpropagation
• Erro no j-ésimo neurônio da camada de saída no instante t.
t = iteração, t-ésimo padrão de treinamento apresentado à rede.
• Ajuste dos pesos:�'+ � + 1 = �'+ � − , ∙ .'(�) ∙ +(�)
• Para camada de saída: .'(�) = �/'[�' � ] ∙ �'(�)
• Para camada oculta: .'(�) = �/'[�' � ] ∙ ∑ [
345� .4(�) ∙ �4+]
( ) ( ) ( )tytdte jjj −=
Algoritmo Backpropagation
• Treinamento é feito em duas fases:
Fase forward
Fase backward
Fase forward
Camadas intermediárias
Camada de entrada
Camada de saída
Entrada é apresentada à primeira
camada da rede e propagado em
direção às saídas.
Fase forward
Camadas intermediárias
Camada de entrada
Camada de saída
Os neurônios da camada i calculam
seus sinais de saída e propagam
à camada i + 1
Fase forward
Camadas intermediárias
Camada de entrada
Camada de saída
A última camada oculta calcula
seus sinais de saída e os envia
à camada de saída
Fase forward
Camadas intermediárias
Camada de entrada
Camada de saída
A camada de saída calcula
os valores de saída da rede.
Fase backward
Camadas intermediárias
Camada de entrada
Camada de saída
Fase backward
Camadas intermediárias
Camada de entrada
Camada de saída
A camada de saída
calcula o erro da rede: δj
Erro (δδδδj)
Fase backward
Camadas intermediárias
Camada de
entrada
Camada de
saída
Calcula o termo de correção dos pesos
(a atualização será feita depois)
∆wji = αδjxi
Erro (δj)
Fase backward
Camadas intermediárias
Camada de
entrada
Camada de
saída
Envia o erro para a
última camada oculta
Erro (δj)
Fase backward
Camadas intermediárias
Camada de
entrada
Camada de
saída
A camada oculta calcula o seu erro
δj = f’(uj). ∑ δkwlk
Erro (δj) Erro (δk)
Fase backward
Camadas intermediárias
Camada de
entrada
Camada de
saída
Calcula o termo de correção dos pesos
(a atualização será feita depois)
∆wij = αδjxi
Erro (δj)
Fase backward
Camadas intermediárias
Camada de
entrada
Camada de
saída
A camada oculta calcula o seu erro
δj = f’(uj).∑ δkwlk
Erro (δk)Erro (δj)
Fase backward
Camadas intermediárias
Camada de
entrada
Camada de
saída
Calcula o termo de correção dos pesos
(a atualização será feita depois)
∆wij = αδjxi
Erro (δj)
Fase backward
Camadas intermediárias
Camada de
entrada
Camada de
saída
Cada unidade atualiza seus pesos
wij(novo) = wij(velho) + ∆wjk
Backpropagation
Camadas intermediárias
Camada de
entrada
Camada de
saída
Repete-se o processo enquanto
enquanto a rede não aprender
o padrão de entrada
Características do treinamento da rede MLP
• O aprendizado é resultado de apresentação repetitiva de
todas as amostras do conjunto de treinamento.
• Cada apresentação de todo o conjunto de treinamento é
denominada época.
• O processo de aprendizagem é repetido época após
época, até que um critério de parada seja satisfeito.
Critérios de Parada para a rede MLP
• O processo de minimização do MSE (função custo) não
apresenta convergência garantida e não possui um
critério de parada bem definido.
• Critério de parada não muito recomendável, que não
leva em conta o estado do processo iterativo é
predeterminar o número total de iterações (épocas).
Critérios de Parada para a rede MLP
• Critério de parada que leva em conta o processo
iterativo (inclui a possibilidade de existência de mínimos
locais):– Seja θ* o vetor de pesos que denota um ponto mínimo (local ou
global).– A condição para que θ* seja um mínimo é que, o
gradiente∇ℑ(�) da função custo seja zero em θ= θ*
• Como critério de parada tem-se:– Quando o erro quadrático médio atingir um valor
suficientemente pequeno.– Quando a norma euclidiana da estimativa do vetor gradiente
�ℑ(�) atinge um valor suficientemente pequeno .
Critérios de Parada para a rede MLP
• Nota-se que se o critério é de valor mínimo de MSE então não se garante que o algoritmo irá atingir esse valor.
• Por outro lado, se o critério é o mínimo valor do vetor gradiente deve-se considerar que o algoritmo termina no mínimo local mais próximo.
Critérios de Parada para a rede MLP• Outro critério de parada, que pode ser usado em conjunto com um
dos critérios anteriores é a avaliação da capacidade de generalização da rede após cada época de treinamento.
• O processo de treinamento é interrompido antes que a capacidade de generalização da rede fique restrita.
Overfitting: Depois de um certo ponto dotreinamento, a rede piora ao invés de Melhorar.
8. Rede Perceptron Multicamadas
Heurísticas para Especificar o No. de Neurônios Ocultos
(1) Regra do Valor Médio:
(2) Regra da Raiz Quadrada:
(3) Regra de Kolmogorov:
q1=pm
2
q1= p . m
q1=2 p1
(4) Regra de FletcherGloss: 2 pm≤q1≤2 p1
Definindo uma Rede MLP
• Arquitetura da rede: número de camadas entrada, saída e
ocultas.
• Função de ativação: sigmoidal, tangente hiperbólica.
• Regra de aprendizagem
• A quantidade de neurônios na camada de entrada e saída
é dada pelo problema a ser abordado.
Definindo uma Rede MLP
• A quantidade de neurônios nas camadas ocultas pode
ser determinado usando heurísticas.
• Deve-se lembrar que:– Um número grande de neurônios na camada oculta aumenta a
capacidade de mapeamento não-linear da rede, mas,– Se o número for muito grande, o modelo pode se sobre-ajustar
aos dados e diz-se que a rede está sujeita ao sobre-treinamento(overfitting).
– Uma rede com poucos neurônios na camada oculta pode não ser capaz de realizar o mapeamento desejado, o que é denominado de underfitting.
– O underfitting também pode ser causado quando o treinamento é interrompido de forma prematura.
Definindo uma Rede MLP
• Normalizar os dados de entrada:
– É importante trabalhar com valores de entrada que estejam contidos num intervalo de [0, 1]para evitar a saturação da função de ativação (p.e. sigmoidal).
• Inicialização aleatória dos pesos:– Inicializar os pesos e bias a valores randômicos entre -0.5 e 0.5,
ou entre -1 e 1.– Os valores dos pesos não devem muito grandes nem muito
pequenos, pois, podem gerar dois problemas: saturar as funções de ativação ou tornar o aprendizado muito lento respectivamente.
Definindo uma Rede MLP
• Treinamento e validação da rede– Os dados dividem-se em 3 grupos: 70% para treinamento, 15%
para teste e 15% para validação.– Os dados de teste permitem evitar o overfitting, são utilizados
durante o treinamento.– Os dados de validação são utilizados após o treinamento,
permitem verificar a eficiência da rede.