SlideShare uma empresa Scribd logo
Inteligência Artificial – ACH2016
Aula 19 – Redes Neurais
Norton Trevisan Roman
(norton@usp.br)
23 de maio de 2019
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 1 / 41
Redes Neurais
Inspiração
O neurônio biológico
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 2 / 41
Redes Neurais
Inspiração
O neurônio biológico
Um neurônio recebe sinais
através de inúmeros
dendritos, podendo ou
não seguir adiante
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 2 / 41
Redes Neurais
Inspiração
O neurônio biológico
Um neurônio recebe sinais
através de inúmeros
dendritos, podendo ou
não seguir adiante
Se o sinal for superior a
um certo limite
(threshold), segue em
Fonte: AIMA. Russell & Norvig.
frente; caso contrário, é bloqueado
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 2 / 41
Redes Neurais
Inspiração
O neurônio biológico
Um neurônio recebe sinais
através de inúmeros
dendritos, podendo ou
não seguir adiante
Se o sinal for superior a
um certo limite
(threshold), segue em
Fonte: AIMA. Russell & Norvig.
frente; caso contrário, é bloqueado
Na passagem por um neurônio, um sinal pode ser
amplificado ou atenuado, dependendo do dendrito de origem
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 2 / 41
Redes Neurais
Perceptron
Fonte: Adaptado de de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
Redes Neurais
Perceptron
É a unidade básica
da rede neural
Fonte: Adaptado de de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
Redes Neurais
Perceptron
É a unidade básica
da rede neural
A mais simples
Fonte: Adaptado de de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
Redes Neurais
Perceptron
É a unidade básica
da rede neural
A mais simples
Um nó em um grafo
dirigido (a rede neural)
Fonte: Adaptado de de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
Redes Neurais
Perceptron
É a unidade básica
da rede neural
A mais simples
Um nó em um grafo
dirigido (a rede neural)
Fonte: Adaptado de de ML. Mitchell.
Cada aresta serve para propagar a ativação de um nó a
outro na rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
Redes Neurais
Perceptron
É a unidade básica
da rede neural
A mais simples
Um nó em um grafo
dirigido (a rede neural)
Fonte: Adaptado de de ML. Mitchell.
Cada aresta serve para propagar a ativação de um nó a
outro na rede
Possui um peso associado, determinado a força e polaridade da
conexão
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
Redes Neurais
Perceptron
Cada unidade calcula a soma ponderada de suas
entradas
y =
g(y) =
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 4 / 41
Redes Neurais
Perceptron
Cada unidade calcula a soma ponderada de suas
entradas
E aplica então uma função de ativação para obter a saı́da
y =
g(y) =
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 4 / 41
Redes Neurais
Perceptron
Cada unidade calcula a soma ponderada de suas
entradas
E aplica então uma função de ativação para obter a saı́da
Função de ativação
y =
g(y) =
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 4 / 41
Redes Neurais
Perceptron
Cada unidade calcula a soma ponderada de suas
entradas
E aplica então uma função de ativação para obter a saı́da
Note que já definimos uma
entrada x0 e um peso ω0 (viés)
y =
g(y) =
Fonte: Adaptado de ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 4 / 41
Redes Neurais
Perceptron
Cada unidade calcula a soma ponderada de suas
entradas
E aplica então uma função de ativação para obter a saı́da
Note que já definimos uma
entrada x0 e um peso ω0 (viés)
y =
g(y) =
Fonte: Adaptado de ML. Mitchell.
O aprendizado em um perceptron envolve escolher valores para os pesos
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 4 / 41
Redes Neurais
Perceptron – Função de Ativação
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
Redes Neurais
Perceptron – Função de Ativação
Deve “ativar” o neurônio (valor perto de 1) quando
as entradas corretas forem dadas
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
Redes Neurais
Perceptron – Função de Ativação
Deve “ativar” o neurônio (valor perto de 1) quando
as entradas corretas forem dadas
Deve “desativar” o neurônio (próximo de 0) quando as
entradas “erradas” forem dadas
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
Redes Neurais
Perceptron – Função de Ativação
Deve “ativar” o neurônio (valor perto de 1) quando
as entradas corretas forem dadas
Deve “desativar” o neurônio (próximo de 0) quando as
entradas “erradas” forem dadas
Ou seja, o perceptron devolve 1 se o resultado é
maior que algum limiar e 0 (ou -1) se não
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
Redes Neurais
Perceptron – Função de Ativação
Deve “ativar” o neurônio (valor perto de 1) quando
as entradas corretas forem dadas
Deve “desativar” o neurônio (próximo de 0) quando as
entradas “erradas” forem dadas
Ou seja, o perceptron devolve 1 se o resultado é
maior que algum limiar e 0 (ou -1) se não
No exemplo anterior, o limiar é zero
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
Redes Neurais
Perceptron – Função de Ativação
Deve “ativar” o neurônio (valor perto de 1) quando
as entradas corretas forem dadas
Deve “desativar” o neurônio (próximo de 0) quando as
entradas “erradas” forem dadas
Ou seja, o perceptron devolve 1 se o resultado é
maior que algum limiar e 0 (ou -1) se não
No exemplo anterior, o limiar é zero
Deve ser não-linear
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
Redes Neurais
Perceptron – Função de Ativação
Deve “ativar” o neurônio (valor perto de 1) quando
as entradas corretas forem dadas
Deve “desativar” o neurônio (próximo de 0) quando as
entradas “erradas” forem dadas
Ou seja, o perceptron devolve 1 se o resultado é
maior que algum limiar e 0 (ou -1) se não
No exemplo anterior, o limiar é zero
Deve ser não-linear
Evitando que uma rede de neurônios resulte em uma única
função linear
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
Redes Neurais
Perceptron – Função de Ativação
Possı́veis escolhas:
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 6 / 41
Redes Neurais
Perceptron – Função de Ativação
Possı́veis escolhas:
Função degrau (ou threshold)
Fonte: Adaptado de Slides de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 6 / 41
Redes Neurais
Perceptron – Função de Ativação
Possı́veis escolhas:
Função degrau (ou threshold)
Fonte: Adaptado de Slides de AIMA. Russell & Norvig
Função sigmóide (ou logı́stica)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 6 / 41
Redes Neurais
Perceptron – Função de Ativação
Possı́veis escolhas:
Função degrau (ou threshold)
Fonte: Adaptado de Slides de AIMA. Russell & Norvig
Função sigmóide (ou logı́stica)
A sigmóide tem a vantagem de ser diferenciável
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 6 / 41
Redes Neurais
Perceptron – Função de Ativação
Possı́veis escolhas:
Função degrau (ou threshold)
Fonte: Adaptado de Slides de AIMA. Russell & Norvig
Função sigmóide (ou logı́stica)
A sigmóide tem a vantagem de ser diferenciável
Importante para o algoritmo de aprendizado dos pesos
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 6 / 41
Redes Neurais
Perceptron – Função de Ativação
Em ambas funções há
um limiar em zero
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 7 / 41
Redes Neurais
Perceptron – Função de Ativação
Em ambas funções há
um limiar em zero
O valor real desse
limiar é determinado pelo peso de viés ω0 dado ao
neurônio
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 7 / 41
Redes Neurais
Perceptron – Função de Ativação
Em ambas funções há
um limiar em zero
O valor real desse
limiar é determinado pelo peso de viés ω0 dado ao
neurônio
A unidade é ativada caso a soma das entradas
“reais” (ou seja, sem x0) exceder ω0:
y =


n
X
j=1
ωj xj

 ≥ ω0
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 7 / 41
Redes Neurais
Perceptron – Função de Ativação
Em ambas funções há
um limiar em zero
O valor real desse
limiar é determinado pelo peso de viés ω0 dado ao
neurônio
A unidade é ativada caso a soma das entradas
“reais” (ou seja, sem x0) exceder ω0:
y =


n
X
j=1
ωj xj

 ≥ ω0
Mudar o peso de viés muda a localização do limiar
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 7 / 41
Redes Neurais
Perceptron
Toda função booleana pode ser representada:
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 8 / 41
Redes Neurais
Perceptron
Toda função booleana pode ser representada:
E
g(y) =













1,

y =
n
X
j=1
ωj xj

 ≥ ω0
0,

y =
n
X
j=1
ωj xj

 < ω0
x1 x2 y saı́da
1 1 2 1
1 0 1 0
0 1 1 0
0 0 0 0
Fonte: Adaptado de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 8 / 41
Redes Neurais
Perceptron
Toda função booleana pode ser representada:
E OU
g(y) =













1,

y =
n
X
j=1
ωj xj

 ≥ ω0
0,

y =
n
X
j=1
ωj xj

 < ω0
x1 x2 y saı́da
1 1 2 1
1 0 1 0
0 1 1 0
0 0 0 0
x1 x2 y saı́da
1 1 2 1
1 0 1 1
0 1 1 1
0 0 0 0
Fonte: Adaptado de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 8 / 41
Redes Neurais
Perceptron
Toda função booleana pode ser representada:
E OU NÃO
g(y) =













1,

y =
n
X
j=1
ωj xj

 ≥ ω0
0,

y =
n
X
j=1
ωj xj

 < ω0
x1 x2 y saı́da
1 1 2 1
1 0 1 0
0 1 1 0
0 0 0 0
x1 x2 y saı́da
1 1 2 1
1 0 1 1
0 1 1 1
0 0 0 0
x1 y saı́da
1 -1 0
0 0 1
Fonte: Adaptado de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 8 / 41
Redes Neurais
Perceptrons em rede
Uma rede neural é uma
rede de perceptrons
conectados
Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 9 / 41
Redes Neurais
Perceptrons em rede
Uma rede neural é uma
rede de perceptrons
conectados
As unidades de saı́da dão
a saı́da do programa
Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 9 / 41
Redes Neurais
Perceptrons em rede
Uma rede neural é uma
rede de perceptrons
conectados
As unidades de saı́da dão
a saı́da do programa
Geralmente organizadas
em camadas
Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 9 / 41
Redes Neurais
Perceptrons em rede
Uma rede neural é uma
rede de perceptrons
conectados
As unidades de saı́da dão
a saı́da do programa
Geralmente organizadas
em camadas
Fonte: [6]
Cada unidade recebe entrada somente de unidades da
camada imediatamente anterior
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 9 / 41
Redes Neurais
Perceptrons em rede
Possuem uma ou mais
camadas de unidades
escondidas:
Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 10 / 41
Redes Neurais
Perceptrons em rede
Possuem uma ou mais
camadas de unidades
escondidas:
Unidades que não estão
conectadas à saı́da da rede
Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 10 / 41
Redes Neurais
Perceptrons em rede
Possuem uma ou mais
camadas de unidades
escondidas:
Unidades que não estão
conectadas à saı́da da rede
As camadas escondidas
recebem sinal da Fonte: [6]
entrada (ou de outra camada)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 10 / 41
Redes Neurais
Perceptrons em rede
Possuem uma ou mais
camadas de unidades
escondidas:
Unidades que não estão
conectadas à saı́da da rede
As camadas escondidas
recebem sinal da Fonte: [6]
entrada (ou de outra camada)
Sua saı́da, contudo, não é observada (por isso escondida)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 10 / 41
Redes Neurais
Tipos de redes
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
Redes Neurais
Tipos de redes
Feed-forward networks
Fonte: Slides de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
Redes Neurais
Tipos de redes
Feed-forward networks
Possuem conexões em uma
única direção
Fonte: Slides de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
Redes Neurais
Tipos de redes
Feed-forward networks
Possuem conexões em uma
única direção
Formam um grafo dirigido
acı́clico
Fonte: Slides de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
Redes Neurais
Tipos de redes
Feed-forward networks
Possuem conexões em uma
única direção
Formam um grafo dirigido
acı́clico
Sua saı́da é uma função direta
de sua entrada
s5 = g(ω3,5s3 + ω4,5s4)
= g(ω3,5 g(ω1,3x1 + ω2,3x2)+
ω4,5 g(ω1,4x1 + ω2,4x2))
Fonte: Slides de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
Redes Neurais
Tipos de redes
Feed-forward networks
Possuem conexões em uma
única direção
Formam um grafo dirigido
acı́clico
Sua saı́da é uma função direta
de sua entrada
Não há outro estado interno que
não os próprios pesos da rede
s5 = g(ω3,5s3 + ω4,5s4)
= g(ω3,5 g(ω1,3x1 + ω2,3x2)+
ω4,5 g(ω1,4x1 + ω2,4x2))
Fonte: Slides de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
Redes Neurais
Tipos de redes
Feed-forward networks
Possuem conexões em uma
única direção
Formam um grafo dirigido
acı́clico
Sua saı́da é uma função direta
de sua entrada
Não há outro estado interno que
não os próprios pesos da rede
Mudando os pesos, muda a função
→ aprende
s5 = g(ω3,5s3 + ω4,5s4)
= g(ω3,5 g(ω1,3x1 + ω2,3x2)+
ω4,5 g(ω1,4x1 + ω2,4x2))
Fonte: Slides de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
Redes Neurais
Tipos de redes
Redes recorrentes
Fonte: ML. Mitchell
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
Redes Neurais
Tipos de redes
Redes recorrentes
Redirecionam as saı́das de algumas
unidades à entrada de outras, formando
um ciclo
Fonte: ML. Mitchell
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
Redes Neurais
Tipos de redes
Redes recorrentes
Redirecionam as saı́das de algumas
unidades à entrada de outras, formando
um ciclo
Pode estabilizar, oscilar, ou apresentar
comportamento caótico
Fonte: ML. Mitchell
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
Redes Neurais
Tipos de redes
Redes recorrentes
Redirecionam as saı́das de algumas
unidades à entrada de outras, formando
um ciclo
Pode estabilizar, oscilar, ou apresentar
comportamento caótico
Sua saı́da leva em consideração a
Fonte: ML. Mitchell
entrada atual e o que aprendeu das entradas anteriores
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
Redes Neurais
Tipos de redes
Redes recorrentes
Redirecionam as saı́das de algumas
unidades à entrada de outras, formando
um ciclo
Pode estabilizar, oscilar, ou apresentar
comportamento caótico
Sua saı́da leva em consideração a
Fonte: ML. Mitchell
entrada atual e o que aprendeu das entradas anteriores
A saı́da é copiada e realimentada na rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
Redes Neurais
Tipos de redes
Redes recorrentes
Redirecionam as saı́das de algumas
unidades à entrada de outras, formando
um ciclo
Pode estabilizar, oscilar, ou apresentar
comportamento caótico
Sua saı́da leva em consideração a
Fonte: ML. Mitchell
entrada atual e o que aprendeu das entradas anteriores
A saı́da é copiada e realimentada na rede
Aqui, c(t) é o valor de b no passo t − 1
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
Redes Neurais
Tipos de redes
Redes recorrentes
Redirecionam as saı́das de algumas
unidades à entrada de outras, formando
um ciclo
Pode estabilizar, oscilar, ou apresentar
comportamento caótico
Sua saı́da leva em consideração a
Fonte: ML. Mitchell
entrada atual e o que aprendeu das entradas anteriores
A saı́da é copiada e realimentada na rede
Aqui, c(t) é o valor de b no passo t − 1
Podem simular memória de curto prazo (como um flip-flop)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
Redes Neurais
Tipos de redes
Redes recorrentes (cont.)
Podem ser vistas como se
desdobrando no tempo
Fonte: ML. Mitchell
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 13 / 41
Redes Neurais
Tipos de redes
Redes recorrentes (cont.)
Podem ser vistas como se
desdobrando no tempo
Em que cada instante t dá o momento
em que um exemplo de treino foi
apresentado
Fonte: ML. Mitchell
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 13 / 41
Redes Neurais
Tipos de redes
Redes recorrentes (cont.)
Podem ser vistas como se
desdobrando no tempo
Em que cada instante t dá o momento
em que um exemplo de treino foi
apresentado
Implementam uma relação de
recorrência, na qual b representa o
histórico das entradas
Fonte: ML. Mitchell
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 13 / 41
Redes Neurais
Tipos de redes
Redes recorrentes (cont.)
Podem ser vistas como se
desdobrando no tempo
Em que cada instante t dá o momento
em que um exemplo de treino foi
apresentado
Implementam uma relação de
recorrência, na qual b representa o
histórico das entradas
Várias topologias podem ser usadas.
Essa é só um exemplo Fonte: ML. Mitchell
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 13 / 41
Redes Neurais
Redes de Camada Única
Cada entrada se conecta diretamente à saı́da
Unidades
de entrada
Unidades
de saı́da
ωi,j
x1
x2
Fonte: Slides de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 14 / 41
Redes Neurais
Redes de Camada Única
Cada entrada se conecta diretamente à saı́da
Unidades
de entrada
Unidades
de saı́da
ωi,j
x1
x2
Saı́da do perceptron
Fonte: Slides de AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 14 / 41
Redes Neurais
Redes de Camada Única
Não representam todas as funções
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 15 / 41
Redes Neurais
Redes de Camada Única
Não representam todas as funções
Apenas as linearmente separáveis (pontos em que g(y) = 0
estão separados daqueles em que g(y) = 1 por uma reta)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 15 / 41
Redes Neurais
Redes de Camada Única
Não representam todas as funções
Apenas as linearmente separáveis (pontos em que g(y) = 0
estão separados daqueles em que g(y) = 1 por uma reta)
Fonte: AIMA. Russell & Norvig
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 15 / 41
Redes Neurais
Perceptron Learning Rule
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 16 / 41
Redes Neurais
Perceptron Learning Rule
Regra para atualização dos pesos na rede, que
garantidamente converge para uma solução
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 16 / 41
Redes Neurais
Perceptron Learning Rule
Regra para atualização dos pesos na rede, que
garantidamente converge para uma solução
Um separador linear que classifica os dados perfeitamente, se
eles forem linearmente separáveis e η pequeno
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 16 / 41
Redes Neurais
Perceptron Learning Rule
Regra para atualização dos pesos na rede, que
garantidamente converge para uma solução
Um separador linear que classifica os dados perfeitamente, se
eles forem linearmente separáveis e η pequeno
ωi ← ωi + ∆ωi, com ∆ωi = η(t − s)xi, onde:
η – taxa de aprendizagem (learning rate)
t – saı́da desejada da rede para o exemplo corrente
s – saı́da do perceptron (g(y)) para o exemplo corrente
(t − s) – Erro
xi – cada atributo no exemplo corrente
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 16 / 41
Redes Neurais
Redes de Camada Única: Treinamento
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
Redes Neurais
Redes de Camada Única: Treinamento
Iniciamos com pesos aleatórios
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
Redes Neurais
Redes de Camada Única: Treinamento
Iniciamos com pesos aleatórios
Aplicamos o perceptron iterativamente a
cada exemplo de entrada
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
Redes Neurais
Redes de Camada Única: Treinamento
Iniciamos com pesos aleatórios
Aplicamos o perceptron iterativamente a
cada exemplo de entrada
Mudando os pesos toda vez que ele errar
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
Redes Neurais
Redes de Camada Única: Treinamento
Iniciamos com pesos aleatórios
Aplicamos o perceptron iterativamente a
cada exemplo de entrada
Mudando os pesos toda vez que ele errar
Os pesos são modificados de acordo com a regra de
treinamento do perceptron, que revisa os pesos ωi:
ωi ← ωi + ∆ωi , com ∆ωi = η(t − s)xi
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
Redes Neurais
Redes de Camada Única: Treinamento
Iniciamos com pesos aleatórios
Aplicamos o perceptron iterativamente a
cada exemplo de entrada
Mudando os pesos toda vez que ele errar
Os pesos são modificados de acordo com a regra de
treinamento do perceptron, que revisa os pesos ωi:
ωi ← ωi + ∆ωi , com ∆ωi = η(t − s)xi
(aprende pelo ajuste dos pesos de modo a reduzir o erro no
conjunto de treino)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
Redes Neurais
Perceptron Rule: Taxa de Aprendizagem
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
Redes Neurais
Perceptron Rule: Taxa de Aprendizagem
Modera o grau com que os pesos são mudados em
cada passo
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
Redes Neurais
Perceptron Rule: Taxa de Aprendizagem
Modera o grau com que os pesos são mudados em
cada passo
Geralmente baixa (0,1 por exemplo) e algumas vezes decai à
medida que o número de iterações aumenta
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
Redes Neurais
Perceptron Rule: Taxa de Aprendizagem
Modera o grau com que os pesos são mudados em
cada passo
Geralmente baixa (0,1 por exemplo) e algumas vezes decai à
medida que o número de iterações aumenta
Ideia básica:
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
Redes Neurais
Perceptron Rule: Taxa de Aprendizagem
Modera o grau com que os pesos são mudados em
cada passo
Geralmente baixa (0,1 por exemplo) e algumas vezes decai à
medida que o número de iterações aumenta
Ideia básica:
Se o resultado (s) foi abaixo do desejado (t), temos que
aumentar os pesos, pois a saı́da é proporcional à sua soma
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
Redes Neurais
Perceptron Rule: Taxa de Aprendizagem
Modera o grau com que os pesos são mudados em
cada passo
Geralmente baixa (0,1 por exemplo) e algumas vezes decai à
medida que o número de iterações aumenta
Ideia básica:
Se o resultado (s) foi abaixo do desejado (t), temos que
aumentar os pesos, pois a saı́da é proporcional à sua soma
Fazemos ∆ωi > 0, numa tentativa que o resultado da somatória dê
maior que o threshold, gerando um 1
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
Redes Neurais
Perceptron Rule: Taxa de Aprendizagem
Modera o grau com que os pesos são mudados em
cada passo
Geralmente baixa (0,1 por exemplo) e algumas vezes decai à
medida que o número de iterações aumenta
Ideia básica:
Se o resultado (s) foi abaixo do desejado (t), temos que
aumentar os pesos, pois a saı́da é proporcional à sua soma
Fazemos ∆ωi > 0, numa tentativa que o resultado da somatória dê
maior que o threshold, gerando um 1
η irá regular o tamanho desse aumento
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
Redes Neurais
Delta Rule
A Perceptron rule é válida apenas para a função
degrau
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 19 / 41
Redes Neurais
Delta Rule
A Perceptron rule é válida apenas para a função
degrau
Para a sigmóide, a saı́da g(y) é linear, e não binária
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 19 / 41
Redes Neurais
Delta Rule
A Perceptron rule é válida apenas para a função
degrau
Para a sigmóide, a saı́da g(y) é linear, e não binária
g(y) = σ(y) =
1
1 + e−y
, com y =
n
X
i=0
ωi xi
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 19 / 41
Redes Neurais
Delta Rule
A Perceptron rule é válida apenas para a função
degrau
Para a sigmóide, a saı́da g(y) é linear, e não binária
g(y) = σ(y) =
1
1 + e−y
, com y =
n
X
i=0
ωi xi
Aplicamos então a Delta Rule:
ωi ← ωi + ∆ωi , com ∆ωi = η(t − g(y))g0
(y)xi
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 19 / 41
Redes Neurais
Delta Rule
A Perceptron rule é válida apenas para a função
degrau
Para a sigmóide, a saı́da g(y) é linear, e não binária
g(y) = σ(y) =
1
1 + e−y
, com y =
n
X
i=0
ωi xi
Aplicamos então a Delta Rule:
ωi ← ωi + ∆ωi , com ∆ωi = η(t − g(y))g0
(y)xi
Onde g0
(y) é a derivada da função de ativação:
g(y) =
1
1 + e−y
⇒ g0
(y) =
d
dy
g(y) = g(y)(1 − g(y))
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 19 / 41
Redes Neurais
Redes de Camada Única: Algoritmo
Função PERCEPTRON(Exemplos, Rede): rede neural
repita
para cada e ∈ Exemplos faça
y ←
n
X
j=0
ωj xj [e]
Erro ← t[e] − g(y)
ωj ← ωj + η × Erro × g0
(y) × xj [e]
até Até que algum critério de parada seja satisfeito
retorna A nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
Redes Neurais
Redes de Camada Única: Algoritmo
Conjunto de exemplos,
cada um com entrada
~
x = {x1, . . . , xn} e saı́da ~
t
Função PERCEPTRON(Exemplos, Rede): rede neural
repita
para cada e ∈ Exemplos faça
y ←
n
X
j=0
ωj xj [e]
Erro ← t[e] − g(y)
ωj ← ωj + η × Erro × g0
(y) × xj [e]
até Até que algum critério de parada seja satisfeito
retorna A nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
Redes Neurais
Redes de Camada Única: Algoritmo
rede = {ω1, ω2, . . . , ωk , g(y)},
inicialmente com ωi aleatórios
Função PERCEPTRON(Exemplos, Rede): rede neural
repita
para cada e ∈ Exemplos faça
y ←
n
X
j=0
ωj xj [e]
Erro ← t[e] − g(y)
ωj ← ωj + η × Erro × g0
(y) × xj [e]
até Até que algum critério de parada seja satisfeito
retorna A nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
Redes Neurais
Redes de Camada Única: Algoritmo
xj [e] → j-ésimo atri-
buto do exemplo e
Função PERCEPTRON(Exemplos, Rede): rede neural
repita
para cada e ∈ Exemplos faça
y ←
n
X
j=0
ωj xj [e]
Erro ← t[e] − g(y)
ωj ← ωj + η × Erro × g0
(y) × xj [e]
até Até que algum critério de parada seja satisfeito
retorna A nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
Redes Neurais
Redes de Camada Única: Algoritmo
Note que podemos passar várias
vezes pelo conjunto de treino
Função PERCEPTRON(Exemplos, Rede): rede neural
repita
para cada e ∈ Exemplos faça
y ←
n
X
j=0
ωj xj [e]
Erro ← t[e] − g(y)
ωj ← ωj + η × Erro × g0
(y) × xj [e]
até Até que algum critério de parada seja satisfeito
retorna A nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
Redes Neurais
Redes de Camada Única: Algoritmo
A cada passada pelo con-
junto de treino damos o
nome de época (epoch)
Função PERCEPTRON(Exemplos, Rede): rede neural
repita
para cada e ∈ Exemplos faça
y ←
n
X
j=0
ωj xj [e]
Erro ← t[e] − g(y)
ωj ← ωj + η × Erro × g0
(y) × xj [e]
até Até que algum critério de parada seja satisfeito
retorna A nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
Redes de Camada Única
Derivação da Delta Rule
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 21 / 41
Redes de Camada Única
Derivação da Delta Rule
Partimos do gradiente
negativo do erro →
Gradient Descent
Fonte: ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 21 / 41
Redes de Camada Única
Derivação da Delta Rule
Partimos do gradiente
negativo do erro →
Gradient Descent
O gradiente do erro dará
um vetor que aponta para
o sentido de maior
crescimento dessa função
no espaço Fonte: ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 21 / 41
Redes de Camada Única
Derivação da Delta Rule
Partimos do gradiente
negativo do erro →
Gradient Descent
O gradiente do erro dará
um vetor que aponta para
o sentido de maior
crescimento dessa função
no espaço Fonte: ML. Mitchell.
Ou seja, o negativo do gradiente do erro dará o
sentido da sua maior redução
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 21 / 41
Redes de Camada Única
Derivação da Delta Rule
Usamos então o negativo do
gradiente do erro E(~
ω) para
atualizar os pesos, de modo a
minimizar esse erro
Fonte: ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 22 / 41
Redes de Camada Única
Derivação da Delta Rule
Usamos então o negativo do
gradiente do erro E(~
ω) para
atualizar os pesos, de modo a
minimizar esse erro
(
~
ω ← ~
ω + ∆~
ω
∆~
ω = −η∇E(~
ω) Fonte: ML. Mitchell.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 22 / 41
Redes de Camada Única
Derivação da Delta Rule
Usamos então o negativo do
gradiente do erro E(~
ω) para
atualizar os pesos, de modo a
minimizar esse erro
(
~
ω ← ~
ω + ∆~
ω
∆~
ω = −η∇E(~
ω) Fonte: ML. Mitchell.
Onde ∇E(~
ω) =

∂E
∂ω0
,
∂E
∂ω1
, . . . ,
∂E
∂ωn

Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 22 / 41
Redes de Camada Única
Derivação da Delta Rule
Considere uma unidade linear com saı́da s = g(y)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 23 / 41
Redes de Camada Única
Derivação da Delta Rule
Considere uma unidade linear com saı́da s = g(y)
Onde y =
n
X
i=0
ωi xi
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 23 / 41
Redes de Camada Única
Derivação da Delta Rule
Considere uma unidade linear com saı́da s = g(y)
Onde y =
n
X
i=0
ωi xi
Vamos aprender os ωi que minimizam o erro
quadrático:
E(~
ω) =
1
2
X
d∈D
(td − sd )2
onde sd = g(yd ) e D é o conjunto de exemplos de treino
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 23 / 41
Redes de Camada Única
Derivação da Delta Rule
Fator de
escala do erro
Considere uma unidade linear com saı́da s = g(y)
Onde y =
n
X
i=0
ωi xi
Vamos aprender os ωi que minimizam o erro
quadrático:
E(~
ω) =
1
2
X
d∈D
(td − sd )2
onde sd = g(yd ) e D é o conjunto de exemplos de treino
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 23 / 41
Redes de Camada Única
Derivação da Delta Rule
O gradiente do erro será
∇E(~
ω) =

∂E
∂ω0
,
∂E
∂ω1
, . . . ,
∂E
∂ωn

Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 24 / 41
Redes de Camada Única
Derivação da Delta Rule
O gradiente do erro será
∇E(~
ω) =

∂E
∂ω0
,
∂E
∂ω1
, . . . ,
∂E
∂ωn

∂E
∂ωi
=
∂
∂ωi
1
2
X
d∈D
(td − sd )2
!
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 24 / 41
Redes de Camada Única
Derivação da Delta Rule
O gradiente do erro será
∇E(~
ω) =

∂E
∂ω0
,
∂E
∂ω1
, . . . ,
∂E
∂ωn

∂E
∂ωi
=
∂
∂ωi
1
2
X
d∈D
(td − sd )2
!
=
1
2
X
d∈D
∂
∂ωi
(td − sd )2
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 24 / 41
Redes de Camada Única
Derivação da Delta Rule
O gradiente do erro será
∇E(~
ω) =

∂E
∂ω0
,
∂E
∂ω1
, . . . ,
∂E
∂ωn

∂E
∂ωi
=
∂
∂ωi
1
2
X
d∈D
(td − sd )2
!
=
1
2
X
d∈D
∂
∂ωi
(td − sd )2
∂E
∂ωi
=
X
d∈D
(td − sd )
∂
∂ωi
(td − sd )
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 24 / 41
Redes de Camada Única
Derivação da Delta Rule
Como o valor esperado td independe de ωi, então
∂E
∂ωi
= −
X
d∈D
(td − sd )
∂
∂ωi
sd
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 25 / 41
Redes de Camada Única
Derivação da Delta Rule
Como o valor esperado td independe de ωi, então
∂E
∂ωi
= −
X
d∈D
(td − sd )
∂
∂ωi
sd
Se sd =
X
i
ωixi, então
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 25 / 41
Redes de Camada Única
Derivação da Delta Rule
Como o valor esperado td independe de ωi, então
∂E
∂ωi
= −
X
d∈D
(td − sd )
∂
∂ωi
sd
Se sd =
X
i
ωixi, então
∂
∂ωi
E = −
X
d∈D
(td − sd )xi,d
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 25 / 41
Redes de Camada Única
Derivação da Delta Rule
Como o valor esperado td independe de ωi, então
∂E
∂ωi
= −
X
d∈D
(td − sd )
∂
∂ωi
sd
Se sd =
X
i
ωixi, então
∂
∂ωi
E = −
X
d∈D
(td − sd )xi,d
e ∆ωi = η
X
d∈D
(td − sd )xi,d (perceptron rule)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 25 / 41
Redes de Camada Única
Derivação da Delta Rule
Já se sd = σ(yd), então
∂sd
∂ωi
=
d sd
dy
∂y
∂ωi
= sd (1 − sd )xi
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 26 / 41
Redes de Camada Única
Derivação da Delta Rule
Já se sd = σ(yd), então
∂sd
∂ωi
=
d sd
dy
∂y
∂ωi
= sd (1 − sd )xi
∂
∂ωi
E = −
X
d∈D
(td − sd )sd (1 − sd )xi,d
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 26 / 41
Redes de Camada Única
Derivação da Delta Rule
Já se sd = σ(yd), então
∂sd
∂ωi
=
d sd
dy
∂y
∂ωi
= sd (1 − sd )xi
∂
∂ωi
E = −
X
d∈D
(td − sd )sd (1 − sd )xi,d
e ∆ωi = η
X
d∈D
(td − sd )sd (1 − sd )xi,d (delta rule)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 26 / 41
Redes de Camada Única
Derivação da Delta Rule
Já se sd = σ(yd), então
∂sd
∂ωi
=
d sd
dy
∂y
∂ωi
= sd (1 − sd )xi
∂
∂ωi
E = −
X
d∈D
(td − sd )sd (1 − sd )xi,d
e ∆ωi = η
X
d∈D
(td − sd )sd (1 − sd )xi,d (delta rule)
Lembre que a cada iteração atualizamos os pesos:
(
~
ω ← ~
ω + ∆~
ω
∆~
ω = −η∇E(~
ω)
ou



ωi ← ωi + ∆ωi
∆ωi = −η
∂E
∂ωi
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 26 / 41
Redes Neurais
Redes Multicamadas
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 27 / 41
Redes Neurais
Redes Multicamadas
Possuem camadas em geral totalmente conectadas
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 27 / 41
Redes Neurais
Redes Multicamadas
Possuem camadas em geral totalmente conectadas
O número de unidades escondidas é tipicamente escolhido à
mão
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 27 / 41
Redes Neurais
Redes Multicamadas
Possuem camadas em geral totalmente conectadas
O número de unidades escondidas é tipicamente escolhido à
mão
xi
xj
xk
ωj,i
ωk,j
Unidades de saı́da
Unidades escondidas
Unidades de entrada
Fonte: Slides de AIMA. Russell  Norvig.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 27 / 41
Redes Neurais
Redes Multicamadas – E o viés?
2 possibilidades:
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 28 / 41
Redes Neurais
Redes Multicamadas – E o viés?
2 possibilidades:
Introduzido em cada célula
Fonte: Adaptado de [7]
Compartilhado na camada
Fonte: https://www.forexmt4indicators.com/
wp-content/uploads/2014/10/NN1__1.gif
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 28 / 41
Redes Multicamadas
Medindo o erro
A adição de camadas escondidas traz um problema:
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
Redes Multicamadas
Medindo o erro
A adição de camadas escondidas traz um problema:
Não sabemos qual a saı́da esperada de cada uma delas, pois
os dados de treino não nos dizem isso
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
Redes Multicamadas
Medindo o erro
A adição de camadas escondidas traz um problema:
Não sabemos qual a saı́da esperada de cada uma delas, pois
os dados de treino não nos dizem isso
Por conseguinte, não conseguimos medir o erro
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
Redes Multicamadas
Medindo o erro
A adição de camadas escondidas traz um problema:
Não sabemos qual a saı́da esperada de cada uma delas, pois
os dados de treino não nos dizem isso
Por conseguinte, não conseguimos medir o erro
Contudo, podemos retro-propagar o erro da camada
de saı́da para as escondidas
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
Redes Multicamadas
Medindo o erro
A adição de camadas escondidas traz um problema:
Não sabemos qual a saı́da esperada de cada uma delas, pois
os dados de treino não nos dizem isso
Por conseguinte, não conseguimos medir o erro
Contudo, podemos retro-propagar o erro da camada
de saı́da para as escondidas
Calculamos a partir do gradiente de erro geral
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
Redes Multicamadas
Medindo o erro
A adição de camadas escondidas traz um problema:
Não sabemos qual a saı́da esperada de cada uma delas, pois
os dados de treino não nos dizem isso
Por conseguinte, não conseguimos medir o erro
Contudo, podemos retro-propagar o erro da camada
de saı́da para as escondidas
Calculamos a partir do gradiente de erro geral
Processo de back-propagation
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
Redes Multicamadas
Back-Propagation
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
Redes Multicamadas
Back-Propagation
Calcule os valores de δi = g0
(yi) × (ti − g(yi)) para
as unidades de saı́da, usando o erro observado
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
Redes Multicamadas
Back-Propagation
Calcule os valores de δi = g0
(yi) × (ti − g(yi)) para
as unidades de saı́da, usando o erro observado
Começando da camada de saı́da, repita o seguinte
processo para cada camada na rede, até que a
primeira camada escondida seja atingida
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
Redes Multicamadas
Back-Propagation
Calcule os valores de δi = g0
(yi) × (ti − g(yi)) para
as unidades de saı́da, usando o erro observado
Começando da camada de saı́da, repita o seguinte
processo para cada camada na rede, até que a
primeira camada escondida seja atingida
Propague os valores de δ para a camada anterior
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
Redes Multicamadas
Back-Propagation
Calcule os valores de δi = g0
(yi) × (ti − g(yi)) para
as unidades de saı́da, usando o erro observado
Começando da camada de saı́da, repita o seguinte
processo para cada camada na rede, até que a
primeira camada escondida seja atingida
Propague os valores de δ para a camada anterior
Atualize os pesos entre as duas camadas
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
Redes Multicamadas
Back-Propagation
Calcule os valores de δi = g0
(yi) × (ti − g(yi)) para
as unidades de saı́da, usando o erro observado
Começando da camada de saı́da, repita o seguinte
processo para cada camada na rede, até que a
primeira camada escondida seja atingida
Propague os valores de δ para a camada anterior
Atualize os pesos entre as duas camadas
(A maioria dos neurocientistas nega que essa propagação
ocorra no cérebro)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
Redes Multicamadas
Back-Propagation: Algoritmo
Função BACKPROP(Exemplos, Rede): rede neural
repita
para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório
para cada e = (~
x,~
t) ∈ Exemplos faça
para cada nó i na camada de entrada faça ai ← xi
para c = 2 até C faça
para cada nó j na camada c faça
yj ←
X
i
ωi,j ai aj ← g(yj )
para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj )
para c = C − 1 até 1 faça
para cada nó i na camada c faça
δi ← g0
(yi )
X
j
ωi,j δj
para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai
até Até que algum critério de parada seja satisfeito
retorna a nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
Redes Multicamadas
Back-Propagation: Algoritmo
Conjunto de exemplos,
cada um com entrada
~
x = {x1, . . . , xn} e saı́da ~
t
Função BACKPROP(Exemplos, Rede): rede neural
repita
para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório
para cada e = (~
x,~
t) ∈ Exemplos faça
para cada nó i na camada de entrada faça ai ← xi
para c = 2 até C faça
para cada nó j na camada c faça
yj ←
X
i
ωi,j ai aj ← g(yj )
para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj )
para c = C − 1 até 1 faça
para cada nó i na camada c faça
δi ← g0
(yi )
X
j
ωi,j δj
para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai
até Até que algum critério de parada seja satisfeito
retorna a nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
Redes Multicamadas
Back-Propagation: Algoritmo
rede = {ωi,j , g(y)}
com C camadas
Função BACKPROP(Exemplos, Rede): rede neural
repita
para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório
para cada e = (~
x,~
t) ∈ Exemplos faça
para cada nó i na camada de entrada faça ai ← xi
para c = 2 até C faça
para cada nó j na camada c faça
yj ←
X
i
ωi,j ai aj ← g(yj )
para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj )
para c = C − 1 até 1 faça
para cada nó i na camada c faça
δi ← g0
(yi )
X
j
ωi,j δj
para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai
até Até que algum critério de parada seja satisfeito
retorna a nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
Redes Multicamadas
Back-Propagation: Algoritmo
Propaga adiante as entradas
na rede para calcular as saı́das
Função BACKPROP(Exemplos, Rede): rede neural
repita
para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório
para cada e = (~
x,~
t) ∈ Exemplos faça
para cada nó i na camada de entrada faça ai ← xi
para c = 2 até C faça
para cada nó j na camada c faça
yj ←
X
i
ωi,j ai aj ← g(yj )
para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj )
para c = C − 1 até 1 faça
para cada nó i na camada c faça
δi ← g0
(yi )
X
j
ωi,j δj
para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai
até Até que algum critério de parada seja satisfeito
retorna a nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
Redes Multicamadas
Back-Propagation: Algoritmo
aj é a saı́da do perceptron j
Função BACKPROP(Exemplos, Rede): rede neural
repita
para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório
para cada e = (~
x,~
t) ∈ Exemplos faça
para cada nó i na camada de entrada faça ai ← xi
para c = 2 até C faça
para cada nó j na camada c faça
yj ←
X
i
ωi,j ai aj ← g(yj )
para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj )
para c = C − 1 até 1 faça
para cada nó i na camada c faça
δi ← g0
(yi )
X
j
ωi,j δj
para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai
até Até que algum critério de parada seja satisfeito
retorna a nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
Redes Multicamadas
Back-Propagation: Algoritmo
Propaga os deltas da camada
de saı́da para a de entrada
Função BACKPROP(Exemplos, Rede): rede neural
repita
para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório
para cada e = (~
x,~
t) ∈ Exemplos faça
para cada nó i na camada de entrada faça ai ← xi
para c = 2 até C faça
para cada nó j na camada c faça
yj ←
X
i
ωi,j ai aj ← g(yj )
para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj )
para c = C − 1 até 1 faça
para cada nó i na camada c faça
δi ← g0
(yi )
X
j
ωi,j δj
para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai
até Até que algum critério de parada seja satisfeito
retorna a nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
Redes Multicamadas
Back-Propagation: Algoritmo
Regra de propagação do erro
Função BACKPROP(Exemplos, Rede): rede neural
repita
para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório
para cada e = (~
x,~
t) ∈ Exemplos faça
para cada nó i na camada de entrada faça ai ← xi
para c = 2 até C faça
para cada nó j na camada c faça
yj ←
X
i
ωi,j ai aj ← g(yj )
para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj )
para c = C − 1 até 1 faça
para cada nó i na camada c faça
δi ← g0
(yi )
X
j
ωi,j δj
para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai
até Até que algum critério de parada seja satisfeito
retorna a nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
Redes Multicamadas
Back-Propagation: Algoritmo
Atualiza todos os pesos
da rede usando os deltas
Função BACKPROP(Exemplos, Rede): rede neural
repita
para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório
para cada e = (~
x,~
t) ∈ Exemplos faça
para cada nó i na camada de entrada faça ai ← xi
para c = 2 até C faça
para cada nó j na camada c faça
yj ←
X
i
ωi,j ai aj ← g(yj )
para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj )
para c = C − 1 até 1 faça
para cada nó i na camada c faça
δi ← g0
(yi )
X
j
ωi,j δj
para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai
até Até que algum critério de parada seja satisfeito
retorna a nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
Redes Multicamadas
Back-Propagation: Algoritmo
Note que ∆ωi,j = ηδj ai
Função BACKPROP(Exemplos, Rede): rede neural
repita
para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório
para cada e = (~
x,~
t) ∈ Exemplos faça
para cada nó i na camada de entrada faça ai ← xi
para c = 2 até C faça
para cada nó j na camada c faça
yj ←
X
i
ωi,j ai aj ← g(yj )
para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj )
para c = C − 1 até 1 faça
para cada nó i na camada c faça
δi ← g0
(yi )
X
j
ωi,j δj
para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai
até Até que algum critério de parada seja satisfeito
retorna a nova rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
Redes Multicamadas
Back-Propagation: Visualização
Iniciamos os pesos na rede
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
Redes Multicamadas
Back-Propagation: Visualização
Para cada exemplo de treino, entra-
mos seus atributos nos nós de entrada,
calculando a saı́da de cada unidade
nas camadas escondida e de saı́da
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
Redes Multicamadas
Back-Propagation: Visualização
Para cada exemplo de treino, entra-
mos seus atributos nos nós de entrada,
calculando a saı́da de cada unidade
nas camadas escondida e de saı́da
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
Redes Multicamadas
Back-Propagation: Visualização
Para cada exemplo de treino, entra-
mos seus atributos nos nós de entrada,
calculando a saı́da de cada unidade
nas camadas escondida e de saı́da
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
Redes Multicamadas
Back-Propagation: Visualização
Calculamos δk ← sk(1 − sk)(tk − sk)
para cada unidade de saı́da, onde tk é o
valor-alvo da unidade e sk = g(y) sua saı́da
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
Redes Multicamadas
Back-Propagation: Visualização
Então calculamos
δh ← sh(1 − sh)
X
ωh,kδk
para cada nó escondido
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
Redes Multicamadas
Back-Propagation: Visualização
Ajustamos os pesos de todas as ligações
ωj,i ← ωj,i + ηδi xj , onde xj é a
ativação e η a taxa de aprendizagem
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
Redes Multicamadas
Back-Propagation: Visualização
Ajustamos os pesos de todas as ligações
ωj,i ← ωj,i + ηδi xj , onde xj é a
ativação e η a taxa de aprendizagem
Quando parar?
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
Redes Multicamadas
Back-Propagation: Visualização
Ajustamos os pesos de todas as ligações
ωj,i ← ωj,i + ηδi xj , onde xj é a
ativação e η a taxa de aprendizagem
Quando parar?
Parar em um certo número de iterações?
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
Redes Multicamadas
Back-Propagation: Visualização
Ajustamos os pesos de todas as ligações
ωj,i ← ωj,i + ηδi xj , onde xj é a
ativação e η a taxa de aprendizagem
Quando parar?
Parar em um certo número de iterações?
Parar quando o erro for menor que um determinado
valor? (Curva de treinamento)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
Redes Multicamadas
Curva de Treinamento
Mede o desempenho de
um classificador em um
conjunto de treinamento
fixo enquanto o processo
de aprendizado continua
nesse mesmo conjunto
Número de épocas
Erro
total
no
conjunto
de
treino
Fonte: AIMA. Russell  Norvig.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 33 / 41
Redes Multicamadas
Curva de Treinamento
Mede o desempenho de
um classificador em um
conjunto de treinamento
fixo enquanto o processo
de aprendizado continua
nesse mesmo conjunto
Número de épocas
Erro
total
no
conjunto
de
treino
Soma dos er-
ros quadráticos
Fonte: AIMA. Russell  Norvig.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 33 / 41
Redes Multicamadas
Curva de Treinamento
Mede o desempenho de
um classificador em um
conjunto de treinamento
fixo enquanto o processo
de aprendizado continua
nesse mesmo conjunto
Número de épocas
Erro
total
no
conjunto
de
treino
Critério que o
back-propagation
tenta minimizar
Fonte: AIMA. Russell  Norvig.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 33 / 41
Redes Multicamadas
Curva de Treinamento
Mede o desempenho de
um classificador em um
conjunto de treinamento
fixo enquanto o processo
de aprendizado continua
nesse mesmo conjunto
Quando a soma dos erros
quadráticos em uma passada
inteira no conjunto de treino
Número de épocas
Erro
total
no
conjunto
de
treino
Critério que o
back-propagation
tenta minimizar
Fonte: AIMA. Russell  Norvig.
(uma época) é suficientemente pequeno, podemos dizer que
a rede convergiu (para esses exemplos)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 33 / 41
Redes Multicamadas
Curva de Treinamento: Overfitting
O back-propagation pode,
se o treinamento for
longo, se aproximar não
da função desejada, mas
sim dos exemplos
Número de épocas
Erro
total
no
conjunto
de
treino
Fonte: AIMA. Russell  Norvig.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 34 / 41
Redes Multicamadas
Curva de Treinamento: Overfitting
O back-propagation pode,
se o treinamento for
longo, se aproximar não
da função desejada, mas
sim dos exemplos
Os pesos acabam sendo
ajustados para representar
idiossincrasias dos exemplos
de treino que não são
representativos da
distribuição geral
Número de épocas
Erro
total
no
conjunto
de
treino
Fonte: AIMA. Russell  Norvig.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 34 / 41
Redes Multicamadas
Overfitting: Como contornar
Decrescer cada peso por um fator pequeno em cada
iteração, mantendo o valor dos pesos pequeno
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
Redes Multicamadas
Overfitting: Como contornar
Decrescer cada peso por um fator pequeno em cada
iteração, mantendo o valor dos pesos pequeno
Criar um conjunto de validação (melhor alternativa)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
Redes Multicamadas
Overfitting: Como contornar
Decrescer cada peso por um fator pequeno em cada
iteração, mantendo o valor dos pesos pequeno
Criar um conjunto de validação (melhor alternativa)
O algoritmo retorna a rede resultante do número de épocas
que produzisse o menor erro no conjunto de validação
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
Redes Multicamadas
Overfitting: Como contornar
Decrescer cada peso por um fator pequeno em cada
iteração, mantendo o valor dos pesos pequeno
Criar um conjunto de validação (melhor alternativa)
O algoritmo retorna a rede resultante do número de épocas
que produzisse o menor erro no conjunto de validação
Resolve?
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
Redes Multicamadas
Overfitting: Como contornar
Decrescer cada peso por um fator pequeno em cada
iteração, mantendo o valor dos pesos pequeno
Criar um conjunto de validação (melhor alternativa)
O algoritmo retorna a rede resultante do número de épocas
que produzisse o menor erro no conjunto de validação
Resolve? Às vezes... nem sempre
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
Redes Multicamadas
Overfitting: Como contornar
Decrescer cada peso por um fator pequeno em cada
iteração, mantendo o valor dos pesos pequeno
Criar um conjunto de validação (melhor alternativa)
O algoritmo retorna a rede resultante do número de épocas
que produzisse o menor erro no conjunto de validação
Resolve? Às vezes... nem sempre
Há o perigo dos mı́nimos locais...
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
Redes Multicamadas
Variação
Podemos incluir momento:
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 36 / 41
Redes Multicamadas
Variação
Podemos incluir momento:
A atualização dos pesos na n-ésima iteração depende
parcialmente da atualização que ocorreu na (n-1)-ésima
iteração
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 36 / 41
Redes Multicamadas
Variação
Podemos incluir momento:
A atualização dos pesos na n-ésima iteração depende
parcialmente da atualização que ocorreu na (n-1)-ésima
iteração
Uma iteração corresponde a uma época → uma passada completa
pelo conjunto de treino
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 36 / 41
Redes Multicamadas
Variação
Podemos incluir momento:
A atualização dos pesos na n-ésima iteração depende
parcialmente da atualização que ocorreu na (n-1)-ésima
iteração
Uma iteração corresponde a uma época → uma passada completa
pelo conjunto de treino
Usamos então uma constante 0 ≤ α ≤ 1, chamada
momento, e
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 36 / 41
Redes Multicamadas
Variação
Podemos incluir momento:
A atualização dos pesos na n-ésima iteração depende
parcialmente da atualização que ocorreu na (n-1)-ésima
iteração
Uma iteração corresponde a uma época → uma passada completa
pelo conjunto de treino
Usamos então uma constante 0 ≤ α ≤ 1, chamada
momento, e
∆ωi,j (n) = ηδj xi + α∆ωi,j (n − 1)
δj = g0
(yj )(tj − g(yj ))
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 36 / 41
Redes Multicamadas
Exemplo (Mitchell)
Tarefa: dado o rosto de uma pessoa, dizer para que
direção olha
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 37 / 41
Redes Multicamadas
Exemplo (Mitchell)
Tarefa: dado o rosto de uma pessoa, dizer para que
direção olha
Usou a variação com momento
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 37 / 41
Redes Multicamadas
Exemplo (Mitchell)
Tarefa: dado o rosto de uma pessoa, dizer para que
direção olha
Usou a variação com momento
Treinou em 260 imagens com 90% de precisão
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 37 / 41
Redes Multicamadas
Exemplo (Mitchell)
Tarefa: dado o rosto de uma pessoa, dizer para que
direção olha
Usou a variação com momento
Treinou em 260 imagens com 90% de precisão
Código e detalhes em
www.cs.cmu.edu/~tom/mlbook.html
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 37 / 41
Redes Multicamadas
Exemplo (Mitchell)
Tarefa: dado o rosto de uma pessoa, dizer para que
direção olha
Usou a variação com momento
Treinou em 260 imagens com 90% de precisão
Código e detalhes em
www.cs.cmu.edu/~tom/mlbook.html
Entrada:
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 37 / 41
Redes Multicamadas
Exemplo (Mitchell)
Codificação da entrada:
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
Redes Multicamadas
Exemplo (Mitchell)
Codificação da entrada:
30 × 32 entradas (pixels)
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
Redes Multicamadas
Exemplo (Mitchell)
Codificação da entrada:
30 × 32 entradas (pixels)
Cada pixel representado pela sua
intensidade, entre [0,1]
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
Redes Multicamadas
Exemplo (Mitchell)
Codificação da entrada:
30 × 32 entradas (pixels)
Cada pixel representado pela sua
intensidade, entre [0,1]
Rede:
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
Redes Multicamadas
Exemplo (Mitchell)
Codificação da entrada:
30 × 32 entradas (pixels)
Cada pixel representado pela sua
intensidade, entre [0,1]
Rede:
2 camadas: 3 unidades
escondidas e 4 de saı́da
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
Redes Multicamadas
Exemplo (Mitchell)
Codificação da entrada:
30 × 32 entradas (pixels)
Cada pixel representado pela sua
intensidade, entre [0,1]
Rede:
2 camadas: 3 unidades
escondidas e 4 de saı́da
Taxa de aprendizagem η = 0, 3
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
Redes Multicamadas
Exemplo (Mitchell)
Codificação da entrada:
30 × 32 entradas (pixels)
Cada pixel representado pela sua
intensidade, entre [0,1]
Rede:
2 camadas: 3 unidades
escondidas e 4 de saı́da
Taxa de aprendizagem η = 0, 3
Momento α = 0, 3
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
Redes Multicamadas
Exemplo (Mitchell)
Pesos iniciais (inclusive o
viés):
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 39 / 41
Redes Multicamadas
Exemplo (Mitchell)
Pesos iniciais (inclusive o
viés):
Pequenos e aleatórios nas
unidades de saı́da
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 39 / 41
Redes Multicamadas
Exemplo (Mitchell)
Pesos iniciais (inclusive o
viés):
Pequenos e aleatórios nas
unidades de saı́da
Zero nas unidades de entrada
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 39 / 41
Redes Multicamadas
Exemplo (Mitchell)
Pesos iniciais (inclusive o
viés):
Pequenos e aleatórios nas
unidades de saı́da
Zero nas unidades de entrada
Parada:
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 39 / 41
Redes Multicamadas
Exemplo (Mitchell)
Pesos iniciais (inclusive o
viés):
Pequenos e aleatórios nas
unidades de saı́da
Zero nas unidades de entrada
Parada:
A cada 50 passos no gradient
descent compara com
desempenho no conjunto de
validação. Guarda os pesos do
menor erro
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 39 / 41
Redes Neurais
Representatividade
Que funções podemos representar com essas redes?
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 40 / 41
Redes Neurais
Representatividade
Que funções podemos representar com essas redes?
Booleanas: representadas exatamente com redes de 2
camadas
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 40 / 41
Redes Neurais
Representatividade
Que funções podemos representar com essas redes?
Booleanas: representadas exatamente com redes de 2
camadas
Contı́nuas: aproximadas com pequeno erro por rede com 2
camadas
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 40 / 41
Redes Neurais
Representatividade
Que funções podemos representar com essas redes?
Booleanas: representadas exatamente com redes de 2
camadas
Contı́nuas: aproximadas com pequeno erro por rede com 2
camadas
Arbitrárias: aproximadas com precisão arbitrária por rede
com 3 camadas
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 40 / 41
Referências
1 Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach. Prentice
Hall. 3a ed.
1 Slides do livro: aima.eecs.berkeley.edu/slides-pdf/
2 http://ocw.mit.edu/OcwWeb/Electrical-Engineering-
and-Computer-Science/6-034Spring-2005/LectureNotes/index.htm
3 http://www.andreykurenkov.com/writing/ai/
a-brief-history-of-neural-nets-and-deep-learning/
4 https://towardsdatascience.com/
recurrent-neural-networks-and-lstm-4b601dd822a5
5 Mitchell, T.M.: Machine Learning. McGraw-Hill. 1997.
6 https://www.researchgate.net/publication/273450589_COMBINACAO_LINEAR_DE_
REDES_NEURAIS_ARTIFICIAIS_E_MAQUINAS_DE_VETORES_DE_SUPORTE_PARA_
REGRESSAO_NAS_PREVISOES_DE_VAZOES_MENSAIS_NO_POSTO_266-ITAIPU
7 Kemp, R.; Macaulay, C.; Palcic, B.(1997): Opening the Black Box: the Relationship
between Neural Networks and Linear Discriminant Functions. Analytical Cellular
Pathology, 14(1):19-30.
Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 41 / 41

Mais conteúdo relacionado

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 02
(ACH2044) Inteligência Artificial - Aula 02(ACH2044) Inteligência Artificial - Aula 02
(ACH2044) Inteligência Artificial - Aula 02
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21
Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (20)

(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03
 
(ACH2044) Inteligência Artificial - Aula 02
(ACH2044) Inteligência Artificial - Aula 02(ACH2044) Inteligência Artificial - Aula 02
(ACH2044) Inteligência Artificial - Aula 02
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21
 

Último

Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
joseanesouza36
 
epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
MarceloMonteiro213738
 
Atividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º anoAtividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º ano
fernandacosta37763
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
Professor Belinaso
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
eaiprofpolly
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
djincognito
 
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdfUFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
Manuais Formação
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
Mary Alvarenga
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
Manuais Formação
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
AmiltonAparecido1
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
livrosjovert
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
AurelianoFerreirades2
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
WelberMerlinCardoso
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
todorokillmepls
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 

Último (20)

Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
 
epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
 
Atividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º anoAtividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º ano
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
 
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdfUFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 

(ACH2044) Inteligência Artificial - Aula 19

  • 1. Inteligência Artificial – ACH2016 Aula 19 – Redes Neurais Norton Trevisan Roman (norton@usp.br) 23 de maio de 2019 Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 1 / 41
  • 2. Redes Neurais Inspiração O neurônio biológico Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 2 / 41
  • 3. Redes Neurais Inspiração O neurônio biológico Um neurônio recebe sinais através de inúmeros dendritos, podendo ou não seguir adiante Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 2 / 41
  • 4. Redes Neurais Inspiração O neurônio biológico Um neurônio recebe sinais através de inúmeros dendritos, podendo ou não seguir adiante Se o sinal for superior a um certo limite (threshold), segue em Fonte: AIMA. Russell & Norvig. frente; caso contrário, é bloqueado Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 2 / 41
  • 5. Redes Neurais Inspiração O neurônio biológico Um neurônio recebe sinais através de inúmeros dendritos, podendo ou não seguir adiante Se o sinal for superior a um certo limite (threshold), segue em Fonte: AIMA. Russell & Norvig. frente; caso contrário, é bloqueado Na passagem por um neurônio, um sinal pode ser amplificado ou atenuado, dependendo do dendrito de origem Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 2 / 41
  • 6. Redes Neurais Perceptron Fonte: Adaptado de de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
  • 7. Redes Neurais Perceptron É a unidade básica da rede neural Fonte: Adaptado de de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
  • 8. Redes Neurais Perceptron É a unidade básica da rede neural A mais simples Fonte: Adaptado de de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
  • 9. Redes Neurais Perceptron É a unidade básica da rede neural A mais simples Um nó em um grafo dirigido (a rede neural) Fonte: Adaptado de de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
  • 10. Redes Neurais Perceptron É a unidade básica da rede neural A mais simples Um nó em um grafo dirigido (a rede neural) Fonte: Adaptado de de ML. Mitchell. Cada aresta serve para propagar a ativação de um nó a outro na rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
  • 11. Redes Neurais Perceptron É a unidade básica da rede neural A mais simples Um nó em um grafo dirigido (a rede neural) Fonte: Adaptado de de ML. Mitchell. Cada aresta serve para propagar a ativação de um nó a outro na rede Possui um peso associado, determinado a força e polaridade da conexão Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 3 / 41
  • 12. Redes Neurais Perceptron Cada unidade calcula a soma ponderada de suas entradas y = g(y) = Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 4 / 41
  • 13. Redes Neurais Perceptron Cada unidade calcula a soma ponderada de suas entradas E aplica então uma função de ativação para obter a saı́da y = g(y) = Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 4 / 41
  • 14. Redes Neurais Perceptron Cada unidade calcula a soma ponderada de suas entradas E aplica então uma função de ativação para obter a saı́da Função de ativação y = g(y) = Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 4 / 41
  • 15. Redes Neurais Perceptron Cada unidade calcula a soma ponderada de suas entradas E aplica então uma função de ativação para obter a saı́da Note que já definimos uma entrada x0 e um peso ω0 (viés) y = g(y) = Fonte: Adaptado de ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 4 / 41
  • 16. Redes Neurais Perceptron Cada unidade calcula a soma ponderada de suas entradas E aplica então uma função de ativação para obter a saı́da Note que já definimos uma entrada x0 e um peso ω0 (viés) y = g(y) = Fonte: Adaptado de ML. Mitchell. O aprendizado em um perceptron envolve escolher valores para os pesos Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 4 / 41
  • 17. Redes Neurais Perceptron – Função de Ativação Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
  • 18. Redes Neurais Perceptron – Função de Ativação Deve “ativar” o neurônio (valor perto de 1) quando as entradas corretas forem dadas Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
  • 19. Redes Neurais Perceptron – Função de Ativação Deve “ativar” o neurônio (valor perto de 1) quando as entradas corretas forem dadas Deve “desativar” o neurônio (próximo de 0) quando as entradas “erradas” forem dadas Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
  • 20. Redes Neurais Perceptron – Função de Ativação Deve “ativar” o neurônio (valor perto de 1) quando as entradas corretas forem dadas Deve “desativar” o neurônio (próximo de 0) quando as entradas “erradas” forem dadas Ou seja, o perceptron devolve 1 se o resultado é maior que algum limiar e 0 (ou -1) se não Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
  • 21. Redes Neurais Perceptron – Função de Ativação Deve “ativar” o neurônio (valor perto de 1) quando as entradas corretas forem dadas Deve “desativar” o neurônio (próximo de 0) quando as entradas “erradas” forem dadas Ou seja, o perceptron devolve 1 se o resultado é maior que algum limiar e 0 (ou -1) se não No exemplo anterior, o limiar é zero Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
  • 22. Redes Neurais Perceptron – Função de Ativação Deve “ativar” o neurônio (valor perto de 1) quando as entradas corretas forem dadas Deve “desativar” o neurônio (próximo de 0) quando as entradas “erradas” forem dadas Ou seja, o perceptron devolve 1 se o resultado é maior que algum limiar e 0 (ou -1) se não No exemplo anterior, o limiar é zero Deve ser não-linear Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
  • 23. Redes Neurais Perceptron – Função de Ativação Deve “ativar” o neurônio (valor perto de 1) quando as entradas corretas forem dadas Deve “desativar” o neurônio (próximo de 0) quando as entradas “erradas” forem dadas Ou seja, o perceptron devolve 1 se o resultado é maior que algum limiar e 0 (ou -1) se não No exemplo anterior, o limiar é zero Deve ser não-linear Evitando que uma rede de neurônios resulte em uma única função linear Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 5 / 41
  • 24. Redes Neurais Perceptron – Função de Ativação Possı́veis escolhas: Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 6 / 41
  • 25. Redes Neurais Perceptron – Função de Ativação Possı́veis escolhas: Função degrau (ou threshold) Fonte: Adaptado de Slides de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 6 / 41
  • 26. Redes Neurais Perceptron – Função de Ativação Possı́veis escolhas: Função degrau (ou threshold) Fonte: Adaptado de Slides de AIMA. Russell & Norvig Função sigmóide (ou logı́stica) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 6 / 41
  • 27. Redes Neurais Perceptron – Função de Ativação Possı́veis escolhas: Função degrau (ou threshold) Fonte: Adaptado de Slides de AIMA. Russell & Norvig Função sigmóide (ou logı́stica) A sigmóide tem a vantagem de ser diferenciável Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 6 / 41
  • 28. Redes Neurais Perceptron – Função de Ativação Possı́veis escolhas: Função degrau (ou threshold) Fonte: Adaptado de Slides de AIMA. Russell & Norvig Função sigmóide (ou logı́stica) A sigmóide tem a vantagem de ser diferenciável Importante para o algoritmo de aprendizado dos pesos Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 6 / 41
  • 29. Redes Neurais Perceptron – Função de Ativação Em ambas funções há um limiar em zero Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 7 / 41
  • 30. Redes Neurais Perceptron – Função de Ativação Em ambas funções há um limiar em zero O valor real desse limiar é determinado pelo peso de viés ω0 dado ao neurônio Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 7 / 41
  • 31. Redes Neurais Perceptron – Função de Ativação Em ambas funções há um limiar em zero O valor real desse limiar é determinado pelo peso de viés ω0 dado ao neurônio A unidade é ativada caso a soma das entradas “reais” (ou seja, sem x0) exceder ω0: y =   n X j=1 ωj xj   ≥ ω0 Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 7 / 41
  • 32. Redes Neurais Perceptron – Função de Ativação Em ambas funções há um limiar em zero O valor real desse limiar é determinado pelo peso de viés ω0 dado ao neurônio A unidade é ativada caso a soma das entradas “reais” (ou seja, sem x0) exceder ω0: y =   n X j=1 ωj xj   ≥ ω0 Mudar o peso de viés muda a localização do limiar Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 7 / 41
  • 33. Redes Neurais Perceptron Toda função booleana pode ser representada: Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 8 / 41
  • 34. Redes Neurais Perceptron Toda função booleana pode ser representada: E g(y) =              1,  y = n X j=1 ωj xj   ≥ ω0 0,  y = n X j=1 ωj xj   < ω0 x1 x2 y saı́da 1 1 2 1 1 0 1 0 0 1 1 0 0 0 0 0 Fonte: Adaptado de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 8 / 41
  • 35. Redes Neurais Perceptron Toda função booleana pode ser representada: E OU g(y) =              1,  y = n X j=1 ωj xj   ≥ ω0 0,  y = n X j=1 ωj xj   < ω0 x1 x2 y saı́da 1 1 2 1 1 0 1 0 0 1 1 0 0 0 0 0 x1 x2 y saı́da 1 1 2 1 1 0 1 1 0 1 1 1 0 0 0 0 Fonte: Adaptado de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 8 / 41
  • 36. Redes Neurais Perceptron Toda função booleana pode ser representada: E OU NÃO g(y) =              1,  y = n X j=1 ωj xj   ≥ ω0 0,  y = n X j=1 ωj xj   < ω0 x1 x2 y saı́da 1 1 2 1 1 0 1 0 0 1 1 0 0 0 0 0 x1 x2 y saı́da 1 1 2 1 1 0 1 1 0 1 1 1 0 0 0 0 x1 y saı́da 1 -1 0 0 0 1 Fonte: Adaptado de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 8 / 41
  • 37. Redes Neurais Perceptrons em rede Uma rede neural é uma rede de perceptrons conectados Fonte: [6] Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 9 / 41
  • 38. Redes Neurais Perceptrons em rede Uma rede neural é uma rede de perceptrons conectados As unidades de saı́da dão a saı́da do programa Fonte: [6] Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 9 / 41
  • 39. Redes Neurais Perceptrons em rede Uma rede neural é uma rede de perceptrons conectados As unidades de saı́da dão a saı́da do programa Geralmente organizadas em camadas Fonte: [6] Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 9 / 41
  • 40. Redes Neurais Perceptrons em rede Uma rede neural é uma rede de perceptrons conectados As unidades de saı́da dão a saı́da do programa Geralmente organizadas em camadas Fonte: [6] Cada unidade recebe entrada somente de unidades da camada imediatamente anterior Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 9 / 41
  • 41. Redes Neurais Perceptrons em rede Possuem uma ou mais camadas de unidades escondidas: Fonte: [6] Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 10 / 41
  • 42. Redes Neurais Perceptrons em rede Possuem uma ou mais camadas de unidades escondidas: Unidades que não estão conectadas à saı́da da rede Fonte: [6] Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 10 / 41
  • 43. Redes Neurais Perceptrons em rede Possuem uma ou mais camadas de unidades escondidas: Unidades que não estão conectadas à saı́da da rede As camadas escondidas recebem sinal da Fonte: [6] entrada (ou de outra camada) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 10 / 41
  • 44. Redes Neurais Perceptrons em rede Possuem uma ou mais camadas de unidades escondidas: Unidades que não estão conectadas à saı́da da rede As camadas escondidas recebem sinal da Fonte: [6] entrada (ou de outra camada) Sua saı́da, contudo, não é observada (por isso escondida) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 10 / 41
  • 45. Redes Neurais Tipos de redes Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
  • 46. Redes Neurais Tipos de redes Feed-forward networks Fonte: Slides de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
  • 47. Redes Neurais Tipos de redes Feed-forward networks Possuem conexões em uma única direção Fonte: Slides de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
  • 48. Redes Neurais Tipos de redes Feed-forward networks Possuem conexões em uma única direção Formam um grafo dirigido acı́clico Fonte: Slides de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
  • 49. Redes Neurais Tipos de redes Feed-forward networks Possuem conexões em uma única direção Formam um grafo dirigido acı́clico Sua saı́da é uma função direta de sua entrada s5 = g(ω3,5s3 + ω4,5s4) = g(ω3,5 g(ω1,3x1 + ω2,3x2)+ ω4,5 g(ω1,4x1 + ω2,4x2)) Fonte: Slides de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
  • 50. Redes Neurais Tipos de redes Feed-forward networks Possuem conexões em uma única direção Formam um grafo dirigido acı́clico Sua saı́da é uma função direta de sua entrada Não há outro estado interno que não os próprios pesos da rede s5 = g(ω3,5s3 + ω4,5s4) = g(ω3,5 g(ω1,3x1 + ω2,3x2)+ ω4,5 g(ω1,4x1 + ω2,4x2)) Fonte: Slides de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
  • 51. Redes Neurais Tipos de redes Feed-forward networks Possuem conexões em uma única direção Formam um grafo dirigido acı́clico Sua saı́da é uma função direta de sua entrada Não há outro estado interno que não os próprios pesos da rede Mudando os pesos, muda a função → aprende s5 = g(ω3,5s3 + ω4,5s4) = g(ω3,5 g(ω1,3x1 + ω2,3x2)+ ω4,5 g(ω1,4x1 + ω2,4x2)) Fonte: Slides de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 11 / 41
  • 52. Redes Neurais Tipos de redes Redes recorrentes Fonte: ML. Mitchell Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
  • 53. Redes Neurais Tipos de redes Redes recorrentes Redirecionam as saı́das de algumas unidades à entrada de outras, formando um ciclo Fonte: ML. Mitchell Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
  • 54. Redes Neurais Tipos de redes Redes recorrentes Redirecionam as saı́das de algumas unidades à entrada de outras, formando um ciclo Pode estabilizar, oscilar, ou apresentar comportamento caótico Fonte: ML. Mitchell Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
  • 55. Redes Neurais Tipos de redes Redes recorrentes Redirecionam as saı́das de algumas unidades à entrada de outras, formando um ciclo Pode estabilizar, oscilar, ou apresentar comportamento caótico Sua saı́da leva em consideração a Fonte: ML. Mitchell entrada atual e o que aprendeu das entradas anteriores Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
  • 56. Redes Neurais Tipos de redes Redes recorrentes Redirecionam as saı́das de algumas unidades à entrada de outras, formando um ciclo Pode estabilizar, oscilar, ou apresentar comportamento caótico Sua saı́da leva em consideração a Fonte: ML. Mitchell entrada atual e o que aprendeu das entradas anteriores A saı́da é copiada e realimentada na rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
  • 57. Redes Neurais Tipos de redes Redes recorrentes Redirecionam as saı́das de algumas unidades à entrada de outras, formando um ciclo Pode estabilizar, oscilar, ou apresentar comportamento caótico Sua saı́da leva em consideração a Fonte: ML. Mitchell entrada atual e o que aprendeu das entradas anteriores A saı́da é copiada e realimentada na rede Aqui, c(t) é o valor de b no passo t − 1 Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
  • 58. Redes Neurais Tipos de redes Redes recorrentes Redirecionam as saı́das de algumas unidades à entrada de outras, formando um ciclo Pode estabilizar, oscilar, ou apresentar comportamento caótico Sua saı́da leva em consideração a Fonte: ML. Mitchell entrada atual e o que aprendeu das entradas anteriores A saı́da é copiada e realimentada na rede Aqui, c(t) é o valor de b no passo t − 1 Podem simular memória de curto prazo (como um flip-flop) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 12 / 41
  • 59. Redes Neurais Tipos de redes Redes recorrentes (cont.) Podem ser vistas como se desdobrando no tempo Fonte: ML. Mitchell Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 13 / 41
  • 60. Redes Neurais Tipos de redes Redes recorrentes (cont.) Podem ser vistas como se desdobrando no tempo Em que cada instante t dá o momento em que um exemplo de treino foi apresentado Fonte: ML. Mitchell Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 13 / 41
  • 61. Redes Neurais Tipos de redes Redes recorrentes (cont.) Podem ser vistas como se desdobrando no tempo Em que cada instante t dá o momento em que um exemplo de treino foi apresentado Implementam uma relação de recorrência, na qual b representa o histórico das entradas Fonte: ML. Mitchell Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 13 / 41
  • 62. Redes Neurais Tipos de redes Redes recorrentes (cont.) Podem ser vistas como se desdobrando no tempo Em que cada instante t dá o momento em que um exemplo de treino foi apresentado Implementam uma relação de recorrência, na qual b representa o histórico das entradas Várias topologias podem ser usadas. Essa é só um exemplo Fonte: ML. Mitchell Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 13 / 41
  • 63. Redes Neurais Redes de Camada Única Cada entrada se conecta diretamente à saı́da Unidades de entrada Unidades de saı́da ωi,j x1 x2 Fonte: Slides de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 14 / 41
  • 64. Redes Neurais Redes de Camada Única Cada entrada se conecta diretamente à saı́da Unidades de entrada Unidades de saı́da ωi,j x1 x2 Saı́da do perceptron Fonte: Slides de AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 14 / 41
  • 65. Redes Neurais Redes de Camada Única Não representam todas as funções Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 15 / 41
  • 66. Redes Neurais Redes de Camada Única Não representam todas as funções Apenas as linearmente separáveis (pontos em que g(y) = 0 estão separados daqueles em que g(y) = 1 por uma reta) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 15 / 41
  • 67. Redes Neurais Redes de Camada Única Não representam todas as funções Apenas as linearmente separáveis (pontos em que g(y) = 0 estão separados daqueles em que g(y) = 1 por uma reta) Fonte: AIMA. Russell & Norvig Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 15 / 41
  • 68. Redes Neurais Perceptron Learning Rule Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 16 / 41
  • 69. Redes Neurais Perceptron Learning Rule Regra para atualização dos pesos na rede, que garantidamente converge para uma solução Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 16 / 41
  • 70. Redes Neurais Perceptron Learning Rule Regra para atualização dos pesos na rede, que garantidamente converge para uma solução Um separador linear que classifica os dados perfeitamente, se eles forem linearmente separáveis e η pequeno Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 16 / 41
  • 71. Redes Neurais Perceptron Learning Rule Regra para atualização dos pesos na rede, que garantidamente converge para uma solução Um separador linear que classifica os dados perfeitamente, se eles forem linearmente separáveis e η pequeno ωi ← ωi + ∆ωi, com ∆ωi = η(t − s)xi, onde: η – taxa de aprendizagem (learning rate) t – saı́da desejada da rede para o exemplo corrente s – saı́da do perceptron (g(y)) para o exemplo corrente (t − s) – Erro xi – cada atributo no exemplo corrente Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 16 / 41
  • 72. Redes Neurais Redes de Camada Única: Treinamento Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
  • 73. Redes Neurais Redes de Camada Única: Treinamento Iniciamos com pesos aleatórios Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
  • 74. Redes Neurais Redes de Camada Única: Treinamento Iniciamos com pesos aleatórios Aplicamos o perceptron iterativamente a cada exemplo de entrada Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
  • 75. Redes Neurais Redes de Camada Única: Treinamento Iniciamos com pesos aleatórios Aplicamos o perceptron iterativamente a cada exemplo de entrada Mudando os pesos toda vez que ele errar Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
  • 76. Redes Neurais Redes de Camada Única: Treinamento Iniciamos com pesos aleatórios Aplicamos o perceptron iterativamente a cada exemplo de entrada Mudando os pesos toda vez que ele errar Os pesos são modificados de acordo com a regra de treinamento do perceptron, que revisa os pesos ωi: ωi ← ωi + ∆ωi , com ∆ωi = η(t − s)xi Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
  • 77. Redes Neurais Redes de Camada Única: Treinamento Iniciamos com pesos aleatórios Aplicamos o perceptron iterativamente a cada exemplo de entrada Mudando os pesos toda vez que ele errar Os pesos são modificados de acordo com a regra de treinamento do perceptron, que revisa os pesos ωi: ωi ← ωi + ∆ωi , com ∆ωi = η(t − s)xi (aprende pelo ajuste dos pesos de modo a reduzir o erro no conjunto de treino) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 17 / 41
  • 78. Redes Neurais Perceptron Rule: Taxa de Aprendizagem Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
  • 79. Redes Neurais Perceptron Rule: Taxa de Aprendizagem Modera o grau com que os pesos são mudados em cada passo Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
  • 80. Redes Neurais Perceptron Rule: Taxa de Aprendizagem Modera o grau com que os pesos são mudados em cada passo Geralmente baixa (0,1 por exemplo) e algumas vezes decai à medida que o número de iterações aumenta Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
  • 81. Redes Neurais Perceptron Rule: Taxa de Aprendizagem Modera o grau com que os pesos são mudados em cada passo Geralmente baixa (0,1 por exemplo) e algumas vezes decai à medida que o número de iterações aumenta Ideia básica: Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
  • 82. Redes Neurais Perceptron Rule: Taxa de Aprendizagem Modera o grau com que os pesos são mudados em cada passo Geralmente baixa (0,1 por exemplo) e algumas vezes decai à medida que o número de iterações aumenta Ideia básica: Se o resultado (s) foi abaixo do desejado (t), temos que aumentar os pesos, pois a saı́da é proporcional à sua soma Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
  • 83. Redes Neurais Perceptron Rule: Taxa de Aprendizagem Modera o grau com que os pesos são mudados em cada passo Geralmente baixa (0,1 por exemplo) e algumas vezes decai à medida que o número de iterações aumenta Ideia básica: Se o resultado (s) foi abaixo do desejado (t), temos que aumentar os pesos, pois a saı́da é proporcional à sua soma Fazemos ∆ωi > 0, numa tentativa que o resultado da somatória dê maior que o threshold, gerando um 1 Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
  • 84. Redes Neurais Perceptron Rule: Taxa de Aprendizagem Modera o grau com que os pesos são mudados em cada passo Geralmente baixa (0,1 por exemplo) e algumas vezes decai à medida que o número de iterações aumenta Ideia básica: Se o resultado (s) foi abaixo do desejado (t), temos que aumentar os pesos, pois a saı́da é proporcional à sua soma Fazemos ∆ωi > 0, numa tentativa que o resultado da somatória dê maior que o threshold, gerando um 1 η irá regular o tamanho desse aumento Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 18 / 41
  • 85. Redes Neurais Delta Rule A Perceptron rule é válida apenas para a função degrau Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 19 / 41
  • 86. Redes Neurais Delta Rule A Perceptron rule é válida apenas para a função degrau Para a sigmóide, a saı́da g(y) é linear, e não binária Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 19 / 41
  • 87. Redes Neurais Delta Rule A Perceptron rule é válida apenas para a função degrau Para a sigmóide, a saı́da g(y) é linear, e não binária g(y) = σ(y) = 1 1 + e−y , com y = n X i=0 ωi xi Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 19 / 41
  • 88. Redes Neurais Delta Rule A Perceptron rule é válida apenas para a função degrau Para a sigmóide, a saı́da g(y) é linear, e não binária g(y) = σ(y) = 1 1 + e−y , com y = n X i=0 ωi xi Aplicamos então a Delta Rule: ωi ← ωi + ∆ωi , com ∆ωi = η(t − g(y))g0 (y)xi Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 19 / 41
  • 89. Redes Neurais Delta Rule A Perceptron rule é válida apenas para a função degrau Para a sigmóide, a saı́da g(y) é linear, e não binária g(y) = σ(y) = 1 1 + e−y , com y = n X i=0 ωi xi Aplicamos então a Delta Rule: ωi ← ωi + ∆ωi , com ∆ωi = η(t − g(y))g0 (y)xi Onde g0 (y) é a derivada da função de ativação: g(y) = 1 1 + e−y ⇒ g0 (y) = d dy g(y) = g(y)(1 − g(y)) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 19 / 41
  • 90. Redes Neurais Redes de Camada Única: Algoritmo Função PERCEPTRON(Exemplos, Rede): rede neural repita para cada e ∈ Exemplos faça y ← n X j=0 ωj xj [e] Erro ← t[e] − g(y) ωj ← ωj + η × Erro × g0 (y) × xj [e] até Até que algum critério de parada seja satisfeito retorna A nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
  • 91. Redes Neurais Redes de Camada Única: Algoritmo Conjunto de exemplos, cada um com entrada ~ x = {x1, . . . , xn} e saı́da ~ t Função PERCEPTRON(Exemplos, Rede): rede neural repita para cada e ∈ Exemplos faça y ← n X j=0 ωj xj [e] Erro ← t[e] − g(y) ωj ← ωj + η × Erro × g0 (y) × xj [e] até Até que algum critério de parada seja satisfeito retorna A nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
  • 92. Redes Neurais Redes de Camada Única: Algoritmo rede = {ω1, ω2, . . . , ωk , g(y)}, inicialmente com ωi aleatórios Função PERCEPTRON(Exemplos, Rede): rede neural repita para cada e ∈ Exemplos faça y ← n X j=0 ωj xj [e] Erro ← t[e] − g(y) ωj ← ωj + η × Erro × g0 (y) × xj [e] até Até que algum critério de parada seja satisfeito retorna A nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
  • 93. Redes Neurais Redes de Camada Única: Algoritmo xj [e] → j-ésimo atri- buto do exemplo e Função PERCEPTRON(Exemplos, Rede): rede neural repita para cada e ∈ Exemplos faça y ← n X j=0 ωj xj [e] Erro ← t[e] − g(y) ωj ← ωj + η × Erro × g0 (y) × xj [e] até Até que algum critério de parada seja satisfeito retorna A nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
  • 94. Redes Neurais Redes de Camada Única: Algoritmo Note que podemos passar várias vezes pelo conjunto de treino Função PERCEPTRON(Exemplos, Rede): rede neural repita para cada e ∈ Exemplos faça y ← n X j=0 ωj xj [e] Erro ← t[e] − g(y) ωj ← ωj + η × Erro × g0 (y) × xj [e] até Até que algum critério de parada seja satisfeito retorna A nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
  • 95. Redes Neurais Redes de Camada Única: Algoritmo A cada passada pelo con- junto de treino damos o nome de época (epoch) Função PERCEPTRON(Exemplos, Rede): rede neural repita para cada e ∈ Exemplos faça y ← n X j=0 ωj xj [e] Erro ← t[e] − g(y) ωj ← ωj + η × Erro × g0 (y) × xj [e] até Até que algum critério de parada seja satisfeito retorna A nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 20 / 41
  • 96. Redes de Camada Única Derivação da Delta Rule Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 21 / 41
  • 97. Redes de Camada Única Derivação da Delta Rule Partimos do gradiente negativo do erro → Gradient Descent Fonte: ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 21 / 41
  • 98. Redes de Camada Única Derivação da Delta Rule Partimos do gradiente negativo do erro → Gradient Descent O gradiente do erro dará um vetor que aponta para o sentido de maior crescimento dessa função no espaço Fonte: ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 21 / 41
  • 99. Redes de Camada Única Derivação da Delta Rule Partimos do gradiente negativo do erro → Gradient Descent O gradiente do erro dará um vetor que aponta para o sentido de maior crescimento dessa função no espaço Fonte: ML. Mitchell. Ou seja, o negativo do gradiente do erro dará o sentido da sua maior redução Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 21 / 41
  • 100. Redes de Camada Única Derivação da Delta Rule Usamos então o negativo do gradiente do erro E(~ ω) para atualizar os pesos, de modo a minimizar esse erro Fonte: ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 22 / 41
  • 101. Redes de Camada Única Derivação da Delta Rule Usamos então o negativo do gradiente do erro E(~ ω) para atualizar os pesos, de modo a minimizar esse erro ( ~ ω ← ~ ω + ∆~ ω ∆~ ω = −η∇E(~ ω) Fonte: ML. Mitchell. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 22 / 41
  • 102. Redes de Camada Única Derivação da Delta Rule Usamos então o negativo do gradiente do erro E(~ ω) para atualizar os pesos, de modo a minimizar esse erro ( ~ ω ← ~ ω + ∆~ ω ∆~ ω = −η∇E(~ ω) Fonte: ML. Mitchell. Onde ∇E(~ ω) = ∂E ∂ω0 , ∂E ∂ω1 , . . . , ∂E ∂ωn Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 22 / 41
  • 103. Redes de Camada Única Derivação da Delta Rule Considere uma unidade linear com saı́da s = g(y) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 23 / 41
  • 104. Redes de Camada Única Derivação da Delta Rule Considere uma unidade linear com saı́da s = g(y) Onde y = n X i=0 ωi xi Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 23 / 41
  • 105. Redes de Camada Única Derivação da Delta Rule Considere uma unidade linear com saı́da s = g(y) Onde y = n X i=0 ωi xi Vamos aprender os ωi que minimizam o erro quadrático: E(~ ω) = 1 2 X d∈D (td − sd )2 onde sd = g(yd ) e D é o conjunto de exemplos de treino Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 23 / 41
  • 106. Redes de Camada Única Derivação da Delta Rule Fator de escala do erro Considere uma unidade linear com saı́da s = g(y) Onde y = n X i=0 ωi xi Vamos aprender os ωi que minimizam o erro quadrático: E(~ ω) = 1 2 X d∈D (td − sd )2 onde sd = g(yd ) e D é o conjunto de exemplos de treino Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 23 / 41
  • 107. Redes de Camada Única Derivação da Delta Rule O gradiente do erro será ∇E(~ ω) = ∂E ∂ω0 , ∂E ∂ω1 , . . . , ∂E ∂ωn Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 24 / 41
  • 108. Redes de Camada Única Derivação da Delta Rule O gradiente do erro será ∇E(~ ω) = ∂E ∂ω0 , ∂E ∂ω1 , . . . , ∂E ∂ωn ∂E ∂ωi = ∂ ∂ωi 1 2 X d∈D (td − sd )2 ! Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 24 / 41
  • 109. Redes de Camada Única Derivação da Delta Rule O gradiente do erro será ∇E(~ ω) = ∂E ∂ω0 , ∂E ∂ω1 , . . . , ∂E ∂ωn ∂E ∂ωi = ∂ ∂ωi 1 2 X d∈D (td − sd )2 ! = 1 2 X d∈D ∂ ∂ωi (td − sd )2 Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 24 / 41
  • 110. Redes de Camada Única Derivação da Delta Rule O gradiente do erro será ∇E(~ ω) = ∂E ∂ω0 , ∂E ∂ω1 , . . . , ∂E ∂ωn ∂E ∂ωi = ∂ ∂ωi 1 2 X d∈D (td − sd )2 ! = 1 2 X d∈D ∂ ∂ωi (td − sd )2 ∂E ∂ωi = X d∈D (td − sd ) ∂ ∂ωi (td − sd ) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 24 / 41
  • 111. Redes de Camada Única Derivação da Delta Rule Como o valor esperado td independe de ωi, então ∂E ∂ωi = − X d∈D (td − sd ) ∂ ∂ωi sd Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 25 / 41
  • 112. Redes de Camada Única Derivação da Delta Rule Como o valor esperado td independe de ωi, então ∂E ∂ωi = − X d∈D (td − sd ) ∂ ∂ωi sd Se sd = X i ωixi, então Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 25 / 41
  • 113. Redes de Camada Única Derivação da Delta Rule Como o valor esperado td independe de ωi, então ∂E ∂ωi = − X d∈D (td − sd ) ∂ ∂ωi sd Se sd = X i ωixi, então ∂ ∂ωi E = − X d∈D (td − sd )xi,d Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 25 / 41
  • 114. Redes de Camada Única Derivação da Delta Rule Como o valor esperado td independe de ωi, então ∂E ∂ωi = − X d∈D (td − sd ) ∂ ∂ωi sd Se sd = X i ωixi, então ∂ ∂ωi E = − X d∈D (td − sd )xi,d e ∆ωi = η X d∈D (td − sd )xi,d (perceptron rule) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 25 / 41
  • 115. Redes de Camada Única Derivação da Delta Rule Já se sd = σ(yd), então ∂sd ∂ωi = d sd dy ∂y ∂ωi = sd (1 − sd )xi Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 26 / 41
  • 116. Redes de Camada Única Derivação da Delta Rule Já se sd = σ(yd), então ∂sd ∂ωi = d sd dy ∂y ∂ωi = sd (1 − sd )xi ∂ ∂ωi E = − X d∈D (td − sd )sd (1 − sd )xi,d Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 26 / 41
  • 117. Redes de Camada Única Derivação da Delta Rule Já se sd = σ(yd), então ∂sd ∂ωi = d sd dy ∂y ∂ωi = sd (1 − sd )xi ∂ ∂ωi E = − X d∈D (td − sd )sd (1 − sd )xi,d e ∆ωi = η X d∈D (td − sd )sd (1 − sd )xi,d (delta rule) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 26 / 41
  • 118. Redes de Camada Única Derivação da Delta Rule Já se sd = σ(yd), então ∂sd ∂ωi = d sd dy ∂y ∂ωi = sd (1 − sd )xi ∂ ∂ωi E = − X d∈D (td − sd )sd (1 − sd )xi,d e ∆ωi = η X d∈D (td − sd )sd (1 − sd )xi,d (delta rule) Lembre que a cada iteração atualizamos os pesos: ( ~ ω ← ~ ω + ∆~ ω ∆~ ω = −η∇E(~ ω) ou    ωi ← ωi + ∆ωi ∆ωi = −η ∂E ∂ωi Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 26 / 41
  • 119. Redes Neurais Redes Multicamadas Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 27 / 41
  • 120. Redes Neurais Redes Multicamadas Possuem camadas em geral totalmente conectadas Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 27 / 41
  • 121. Redes Neurais Redes Multicamadas Possuem camadas em geral totalmente conectadas O número de unidades escondidas é tipicamente escolhido à mão Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 27 / 41
  • 122. Redes Neurais Redes Multicamadas Possuem camadas em geral totalmente conectadas O número de unidades escondidas é tipicamente escolhido à mão xi xj xk ωj,i ωk,j Unidades de saı́da Unidades escondidas Unidades de entrada Fonte: Slides de AIMA. Russell Norvig. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 27 / 41
  • 123. Redes Neurais Redes Multicamadas – E o viés? 2 possibilidades: Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 28 / 41
  • 124. Redes Neurais Redes Multicamadas – E o viés? 2 possibilidades: Introduzido em cada célula Fonte: Adaptado de [7] Compartilhado na camada Fonte: https://www.forexmt4indicators.com/ wp-content/uploads/2014/10/NN1__1.gif Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 28 / 41
  • 125. Redes Multicamadas Medindo o erro A adição de camadas escondidas traz um problema: Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
  • 126. Redes Multicamadas Medindo o erro A adição de camadas escondidas traz um problema: Não sabemos qual a saı́da esperada de cada uma delas, pois os dados de treino não nos dizem isso Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
  • 127. Redes Multicamadas Medindo o erro A adição de camadas escondidas traz um problema: Não sabemos qual a saı́da esperada de cada uma delas, pois os dados de treino não nos dizem isso Por conseguinte, não conseguimos medir o erro Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
  • 128. Redes Multicamadas Medindo o erro A adição de camadas escondidas traz um problema: Não sabemos qual a saı́da esperada de cada uma delas, pois os dados de treino não nos dizem isso Por conseguinte, não conseguimos medir o erro Contudo, podemos retro-propagar o erro da camada de saı́da para as escondidas Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
  • 129. Redes Multicamadas Medindo o erro A adição de camadas escondidas traz um problema: Não sabemos qual a saı́da esperada de cada uma delas, pois os dados de treino não nos dizem isso Por conseguinte, não conseguimos medir o erro Contudo, podemos retro-propagar o erro da camada de saı́da para as escondidas Calculamos a partir do gradiente de erro geral Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
  • 130. Redes Multicamadas Medindo o erro A adição de camadas escondidas traz um problema: Não sabemos qual a saı́da esperada de cada uma delas, pois os dados de treino não nos dizem isso Por conseguinte, não conseguimos medir o erro Contudo, podemos retro-propagar o erro da camada de saı́da para as escondidas Calculamos a partir do gradiente de erro geral Processo de back-propagation Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 29 / 41
  • 131. Redes Multicamadas Back-Propagation Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
  • 132. Redes Multicamadas Back-Propagation Calcule os valores de δi = g0 (yi) × (ti − g(yi)) para as unidades de saı́da, usando o erro observado Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
  • 133. Redes Multicamadas Back-Propagation Calcule os valores de δi = g0 (yi) × (ti − g(yi)) para as unidades de saı́da, usando o erro observado Começando da camada de saı́da, repita o seguinte processo para cada camada na rede, até que a primeira camada escondida seja atingida Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
  • 134. Redes Multicamadas Back-Propagation Calcule os valores de δi = g0 (yi) × (ti − g(yi)) para as unidades de saı́da, usando o erro observado Começando da camada de saı́da, repita o seguinte processo para cada camada na rede, até que a primeira camada escondida seja atingida Propague os valores de δ para a camada anterior Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
  • 135. Redes Multicamadas Back-Propagation Calcule os valores de δi = g0 (yi) × (ti − g(yi)) para as unidades de saı́da, usando o erro observado Começando da camada de saı́da, repita o seguinte processo para cada camada na rede, até que a primeira camada escondida seja atingida Propague os valores de δ para a camada anterior Atualize os pesos entre as duas camadas Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
  • 136. Redes Multicamadas Back-Propagation Calcule os valores de δi = g0 (yi) × (ti − g(yi)) para as unidades de saı́da, usando o erro observado Começando da camada de saı́da, repita o seguinte processo para cada camada na rede, até que a primeira camada escondida seja atingida Propague os valores de δ para a camada anterior Atualize os pesos entre as duas camadas (A maioria dos neurocientistas nega que essa propagação ocorra no cérebro) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 30 / 41
  • 137. Redes Multicamadas Back-Propagation: Algoritmo Função BACKPROP(Exemplos, Rede): rede neural repita para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório para cada e = (~ x,~ t) ∈ Exemplos faça para cada nó i na camada de entrada faça ai ← xi para c = 2 até C faça para cada nó j na camada c faça yj ← X i ωi,j ai aj ← g(yj ) para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj ) para c = C − 1 até 1 faça para cada nó i na camada c faça δi ← g0 (yi ) X j ωi,j δj para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai até Até que algum critério de parada seja satisfeito retorna a nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
  • 138. Redes Multicamadas Back-Propagation: Algoritmo Conjunto de exemplos, cada um com entrada ~ x = {x1, . . . , xn} e saı́da ~ t Função BACKPROP(Exemplos, Rede): rede neural repita para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório para cada e = (~ x,~ t) ∈ Exemplos faça para cada nó i na camada de entrada faça ai ← xi para c = 2 até C faça para cada nó j na camada c faça yj ← X i ωi,j ai aj ← g(yj ) para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj ) para c = C − 1 até 1 faça para cada nó i na camada c faça δi ← g0 (yi ) X j ωi,j δj para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai até Até que algum critério de parada seja satisfeito retorna a nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
  • 139. Redes Multicamadas Back-Propagation: Algoritmo rede = {ωi,j , g(y)} com C camadas Função BACKPROP(Exemplos, Rede): rede neural repita para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório para cada e = (~ x,~ t) ∈ Exemplos faça para cada nó i na camada de entrada faça ai ← xi para c = 2 até C faça para cada nó j na camada c faça yj ← X i ωi,j ai aj ← g(yj ) para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj ) para c = C − 1 até 1 faça para cada nó i na camada c faça δi ← g0 (yi ) X j ωi,j δj para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai até Até que algum critério de parada seja satisfeito retorna a nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
  • 140. Redes Multicamadas Back-Propagation: Algoritmo Propaga adiante as entradas na rede para calcular as saı́das Função BACKPROP(Exemplos, Rede): rede neural repita para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório para cada e = (~ x,~ t) ∈ Exemplos faça para cada nó i na camada de entrada faça ai ← xi para c = 2 até C faça para cada nó j na camada c faça yj ← X i ωi,j ai aj ← g(yj ) para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj ) para c = C − 1 até 1 faça para cada nó i na camada c faça δi ← g0 (yi ) X j ωi,j δj para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai até Até que algum critério de parada seja satisfeito retorna a nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
  • 141. Redes Multicamadas Back-Propagation: Algoritmo aj é a saı́da do perceptron j Função BACKPROP(Exemplos, Rede): rede neural repita para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório para cada e = (~ x,~ t) ∈ Exemplos faça para cada nó i na camada de entrada faça ai ← xi para c = 2 até C faça para cada nó j na camada c faça yj ← X i ωi,j ai aj ← g(yj ) para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj ) para c = C − 1 até 1 faça para cada nó i na camada c faça δi ← g0 (yi ) X j ωi,j δj para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai até Até que algum critério de parada seja satisfeito retorna a nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
  • 142. Redes Multicamadas Back-Propagation: Algoritmo Propaga os deltas da camada de saı́da para a de entrada Função BACKPROP(Exemplos, Rede): rede neural repita para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório para cada e = (~ x,~ t) ∈ Exemplos faça para cada nó i na camada de entrada faça ai ← xi para c = 2 até C faça para cada nó j na camada c faça yj ← X i ωi,j ai aj ← g(yj ) para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj ) para c = C − 1 até 1 faça para cada nó i na camada c faça δi ← g0 (yi ) X j ωi,j δj para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai até Até que algum critério de parada seja satisfeito retorna a nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
  • 143. Redes Multicamadas Back-Propagation: Algoritmo Regra de propagação do erro Função BACKPROP(Exemplos, Rede): rede neural repita para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório para cada e = (~ x,~ t) ∈ Exemplos faça para cada nó i na camada de entrada faça ai ← xi para c = 2 até C faça para cada nó j na camada c faça yj ← X i ωi,j ai aj ← g(yj ) para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj ) para c = C − 1 até 1 faça para cada nó i na camada c faça δi ← g0 (yi ) X j ωi,j δj para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai até Até que algum critério de parada seja satisfeito retorna a nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
  • 144. Redes Multicamadas Back-Propagation: Algoritmo Atualiza todos os pesos da rede usando os deltas Função BACKPROP(Exemplos, Rede): rede neural repita para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório para cada e = (~ x,~ t) ∈ Exemplos faça para cada nó i na camada de entrada faça ai ← xi para c = 2 até C faça para cada nó j na camada c faça yj ← X i ωi,j ai aj ← g(yj ) para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj ) para c = C − 1 até 1 faça para cada nó i na camada c faça δi ← g0 (yi ) X j ωi,j δj para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai até Até que algum critério de parada seja satisfeito retorna a nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
  • 145. Redes Multicamadas Back-Propagation: Algoritmo Note que ∆ωi,j = ηδj ai Função BACKPROP(Exemplos, Rede): rede neural repita para cada peso ωi,j ∈ Rede faça ωi,j ← pequeno número aleatório para cada e = (~ x,~ t) ∈ Exemplos faça para cada nó i na camada de entrada faça ai ← xi para c = 2 até C faça para cada nó j na camada c faça yj ← X i ωi,j ai aj ← g(yj ) para cada nó j na camada de saı́da faça δj ← g0(yj ) × (tj − aj ) para c = C − 1 até 1 faça para cada nó i na camada c faça δi ← g0 (yi ) X j ωi,j δj para cada peso ωi,j ∈ Rede faça ωi,j ← ωi,j + η × δj × ai até Até que algum critério de parada seja satisfeito retorna a nova rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 31 / 41
  • 146. Redes Multicamadas Back-Propagation: Visualização Iniciamos os pesos na rede Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
  • 147. Redes Multicamadas Back-Propagation: Visualização Para cada exemplo de treino, entra- mos seus atributos nos nós de entrada, calculando a saı́da de cada unidade nas camadas escondida e de saı́da Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
  • 148. Redes Multicamadas Back-Propagation: Visualização Para cada exemplo de treino, entra- mos seus atributos nos nós de entrada, calculando a saı́da de cada unidade nas camadas escondida e de saı́da Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
  • 149. Redes Multicamadas Back-Propagation: Visualização Para cada exemplo de treino, entra- mos seus atributos nos nós de entrada, calculando a saı́da de cada unidade nas camadas escondida e de saı́da Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
  • 150. Redes Multicamadas Back-Propagation: Visualização Calculamos δk ← sk(1 − sk)(tk − sk) para cada unidade de saı́da, onde tk é o valor-alvo da unidade e sk = g(y) sua saı́da Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
  • 151. Redes Multicamadas Back-Propagation: Visualização Então calculamos δh ← sh(1 − sh) X ωh,kδk para cada nó escondido Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
  • 152. Redes Multicamadas Back-Propagation: Visualização Ajustamos os pesos de todas as ligações ωj,i ← ωj,i + ηδi xj , onde xj é a ativação e η a taxa de aprendizagem Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
  • 153. Redes Multicamadas Back-Propagation: Visualização Ajustamos os pesos de todas as ligações ωj,i ← ωj,i + ηδi xj , onde xj é a ativação e η a taxa de aprendizagem Quando parar? Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
  • 154. Redes Multicamadas Back-Propagation: Visualização Ajustamos os pesos de todas as ligações ωj,i ← ωj,i + ηδi xj , onde xj é a ativação e η a taxa de aprendizagem Quando parar? Parar em um certo número de iterações? Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
  • 155. Redes Multicamadas Back-Propagation: Visualização Ajustamos os pesos de todas as ligações ωj,i ← ωj,i + ηδi xj , onde xj é a ativação e η a taxa de aprendizagem Quando parar? Parar em um certo número de iterações? Parar quando o erro for menor que um determinado valor? (Curva de treinamento) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 32 / 41
  • 156. Redes Multicamadas Curva de Treinamento Mede o desempenho de um classificador em um conjunto de treinamento fixo enquanto o processo de aprendizado continua nesse mesmo conjunto Número de épocas Erro total no conjunto de treino Fonte: AIMA. Russell Norvig. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 33 / 41
  • 157. Redes Multicamadas Curva de Treinamento Mede o desempenho de um classificador em um conjunto de treinamento fixo enquanto o processo de aprendizado continua nesse mesmo conjunto Número de épocas Erro total no conjunto de treino Soma dos er- ros quadráticos Fonte: AIMA. Russell Norvig. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 33 / 41
  • 158. Redes Multicamadas Curva de Treinamento Mede o desempenho de um classificador em um conjunto de treinamento fixo enquanto o processo de aprendizado continua nesse mesmo conjunto Número de épocas Erro total no conjunto de treino Critério que o back-propagation tenta minimizar Fonte: AIMA. Russell Norvig. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 33 / 41
  • 159. Redes Multicamadas Curva de Treinamento Mede o desempenho de um classificador em um conjunto de treinamento fixo enquanto o processo de aprendizado continua nesse mesmo conjunto Quando a soma dos erros quadráticos em uma passada inteira no conjunto de treino Número de épocas Erro total no conjunto de treino Critério que o back-propagation tenta minimizar Fonte: AIMA. Russell Norvig. (uma época) é suficientemente pequeno, podemos dizer que a rede convergiu (para esses exemplos) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 33 / 41
  • 160. Redes Multicamadas Curva de Treinamento: Overfitting O back-propagation pode, se o treinamento for longo, se aproximar não da função desejada, mas sim dos exemplos Número de épocas Erro total no conjunto de treino Fonte: AIMA. Russell Norvig. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 34 / 41
  • 161. Redes Multicamadas Curva de Treinamento: Overfitting O back-propagation pode, se o treinamento for longo, se aproximar não da função desejada, mas sim dos exemplos Os pesos acabam sendo ajustados para representar idiossincrasias dos exemplos de treino que não são representativos da distribuição geral Número de épocas Erro total no conjunto de treino Fonte: AIMA. Russell Norvig. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 34 / 41
  • 162. Redes Multicamadas Overfitting: Como contornar Decrescer cada peso por um fator pequeno em cada iteração, mantendo o valor dos pesos pequeno Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
  • 163. Redes Multicamadas Overfitting: Como contornar Decrescer cada peso por um fator pequeno em cada iteração, mantendo o valor dos pesos pequeno Criar um conjunto de validação (melhor alternativa) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
  • 164. Redes Multicamadas Overfitting: Como contornar Decrescer cada peso por um fator pequeno em cada iteração, mantendo o valor dos pesos pequeno Criar um conjunto de validação (melhor alternativa) O algoritmo retorna a rede resultante do número de épocas que produzisse o menor erro no conjunto de validação Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
  • 165. Redes Multicamadas Overfitting: Como contornar Decrescer cada peso por um fator pequeno em cada iteração, mantendo o valor dos pesos pequeno Criar um conjunto de validação (melhor alternativa) O algoritmo retorna a rede resultante do número de épocas que produzisse o menor erro no conjunto de validação Resolve? Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
  • 166. Redes Multicamadas Overfitting: Como contornar Decrescer cada peso por um fator pequeno em cada iteração, mantendo o valor dos pesos pequeno Criar um conjunto de validação (melhor alternativa) O algoritmo retorna a rede resultante do número de épocas que produzisse o menor erro no conjunto de validação Resolve? Às vezes... nem sempre Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
  • 167. Redes Multicamadas Overfitting: Como contornar Decrescer cada peso por um fator pequeno em cada iteração, mantendo o valor dos pesos pequeno Criar um conjunto de validação (melhor alternativa) O algoritmo retorna a rede resultante do número de épocas que produzisse o menor erro no conjunto de validação Resolve? Às vezes... nem sempre Há o perigo dos mı́nimos locais... Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 35 / 41
  • 168. Redes Multicamadas Variação Podemos incluir momento: Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 36 / 41
  • 169. Redes Multicamadas Variação Podemos incluir momento: A atualização dos pesos na n-ésima iteração depende parcialmente da atualização que ocorreu na (n-1)-ésima iteração Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 36 / 41
  • 170. Redes Multicamadas Variação Podemos incluir momento: A atualização dos pesos na n-ésima iteração depende parcialmente da atualização que ocorreu na (n-1)-ésima iteração Uma iteração corresponde a uma época → uma passada completa pelo conjunto de treino Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 36 / 41
  • 171. Redes Multicamadas Variação Podemos incluir momento: A atualização dos pesos na n-ésima iteração depende parcialmente da atualização que ocorreu na (n-1)-ésima iteração Uma iteração corresponde a uma época → uma passada completa pelo conjunto de treino Usamos então uma constante 0 ≤ α ≤ 1, chamada momento, e Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 36 / 41
  • 172. Redes Multicamadas Variação Podemos incluir momento: A atualização dos pesos na n-ésima iteração depende parcialmente da atualização que ocorreu na (n-1)-ésima iteração Uma iteração corresponde a uma época → uma passada completa pelo conjunto de treino Usamos então uma constante 0 ≤ α ≤ 1, chamada momento, e ∆ωi,j (n) = ηδj xi + α∆ωi,j (n − 1) δj = g0 (yj )(tj − g(yj )) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 36 / 41
  • 173. Redes Multicamadas Exemplo (Mitchell) Tarefa: dado o rosto de uma pessoa, dizer para que direção olha Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 37 / 41
  • 174. Redes Multicamadas Exemplo (Mitchell) Tarefa: dado o rosto de uma pessoa, dizer para que direção olha Usou a variação com momento Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 37 / 41
  • 175. Redes Multicamadas Exemplo (Mitchell) Tarefa: dado o rosto de uma pessoa, dizer para que direção olha Usou a variação com momento Treinou em 260 imagens com 90% de precisão Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 37 / 41
  • 176. Redes Multicamadas Exemplo (Mitchell) Tarefa: dado o rosto de uma pessoa, dizer para que direção olha Usou a variação com momento Treinou em 260 imagens com 90% de precisão Código e detalhes em www.cs.cmu.edu/~tom/mlbook.html Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 37 / 41
  • 177. Redes Multicamadas Exemplo (Mitchell) Tarefa: dado o rosto de uma pessoa, dizer para que direção olha Usou a variação com momento Treinou em 260 imagens com 90% de precisão Código e detalhes em www.cs.cmu.edu/~tom/mlbook.html Entrada: Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 37 / 41
  • 178. Redes Multicamadas Exemplo (Mitchell) Codificação da entrada: Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
  • 179. Redes Multicamadas Exemplo (Mitchell) Codificação da entrada: 30 × 32 entradas (pixels) Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
  • 180. Redes Multicamadas Exemplo (Mitchell) Codificação da entrada: 30 × 32 entradas (pixels) Cada pixel representado pela sua intensidade, entre [0,1] Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
  • 181. Redes Multicamadas Exemplo (Mitchell) Codificação da entrada: 30 × 32 entradas (pixels) Cada pixel representado pela sua intensidade, entre [0,1] Rede: Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
  • 182. Redes Multicamadas Exemplo (Mitchell) Codificação da entrada: 30 × 32 entradas (pixels) Cada pixel representado pela sua intensidade, entre [0,1] Rede: 2 camadas: 3 unidades escondidas e 4 de saı́da Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
  • 183. Redes Multicamadas Exemplo (Mitchell) Codificação da entrada: 30 × 32 entradas (pixels) Cada pixel representado pela sua intensidade, entre [0,1] Rede: 2 camadas: 3 unidades escondidas e 4 de saı́da Taxa de aprendizagem η = 0, 3 Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
  • 184. Redes Multicamadas Exemplo (Mitchell) Codificação da entrada: 30 × 32 entradas (pixels) Cada pixel representado pela sua intensidade, entre [0,1] Rede: 2 camadas: 3 unidades escondidas e 4 de saı́da Taxa de aprendizagem η = 0, 3 Momento α = 0, 3 Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 38 / 41
  • 185. Redes Multicamadas Exemplo (Mitchell) Pesos iniciais (inclusive o viés): Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 39 / 41
  • 186. Redes Multicamadas Exemplo (Mitchell) Pesos iniciais (inclusive o viés): Pequenos e aleatórios nas unidades de saı́da Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 39 / 41
  • 187. Redes Multicamadas Exemplo (Mitchell) Pesos iniciais (inclusive o viés): Pequenos e aleatórios nas unidades de saı́da Zero nas unidades de entrada Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 39 / 41
  • 188. Redes Multicamadas Exemplo (Mitchell) Pesos iniciais (inclusive o viés): Pequenos e aleatórios nas unidades de saı́da Zero nas unidades de entrada Parada: Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 39 / 41
  • 189. Redes Multicamadas Exemplo (Mitchell) Pesos iniciais (inclusive o viés): Pequenos e aleatórios nas unidades de saı́da Zero nas unidades de entrada Parada: A cada 50 passos no gradient descent compara com desempenho no conjunto de validação. Guarda os pesos do menor erro Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 39 / 41
  • 190. Redes Neurais Representatividade Que funções podemos representar com essas redes? Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 40 / 41
  • 191. Redes Neurais Representatividade Que funções podemos representar com essas redes? Booleanas: representadas exatamente com redes de 2 camadas Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 40 / 41
  • 192. Redes Neurais Representatividade Que funções podemos representar com essas redes? Booleanas: representadas exatamente com redes de 2 camadas Contı́nuas: aproximadas com pequeno erro por rede com 2 camadas Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 40 / 41
  • 193. Redes Neurais Representatividade Que funções podemos representar com essas redes? Booleanas: representadas exatamente com redes de 2 camadas Contı́nuas: aproximadas com pequeno erro por rede com 2 camadas Arbitrárias: aproximadas com precisão arbitrária por rede com 3 camadas Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 40 / 41
  • 194. Referências 1 Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach. Prentice Hall. 3a ed. 1 Slides do livro: aima.eecs.berkeley.edu/slides-pdf/ 2 http://ocw.mit.edu/OcwWeb/Electrical-Engineering- and-Computer-Science/6-034Spring-2005/LectureNotes/index.htm 3 http://www.andreykurenkov.com/writing/ai/ a-brief-history-of-neural-nets-and-deep-learning/ 4 https://towardsdatascience.com/ recurrent-neural-networks-and-lstm-4b601dd822a5 5 Mitchell, T.M.: Machine Learning. McGraw-Hill. 1997. 6 https://www.researchgate.net/publication/273450589_COMBINACAO_LINEAR_DE_ REDES_NEURAIS_ARTIFICIAIS_E_MAQUINAS_DE_VETORES_DE_SUPORTE_PARA_ REGRESSAO_NAS_PREVISOES_DE_VAZOES_MENSAIS_NO_POSTO_266-ITAIPU 7 Kemp, R.; Macaulay, C.; Palcic, B.(1997): Opening the Black Box: the Relationship between Neural Networks and Linear Discriminant Functions. Analytical Cellular Pathology, 14(1):19-30. Norton Trevisan Roman(norton@usp.br) 23 de maio de 2019 41 / 41