Redes Neurais Artificiais (RNA)paginapessoal.utfpr.edu.br/kathya/Disciplinas... · Redes Neurais...
Transcript of Redes Neurais Artificiais (RNA)paginapessoal.utfpr.edu.br/kathya/Disciplinas... · Redes Neurais...
Redes Neurais Artificiais (RNA)
Definições:
1. Técnica inspirada no funcionamento
do cérebro, onde neurônios artificiais,
conectados em rede, são capazes de
aprender e de generalizar.
2. Técnica de aproximação de funções
por regressão não linear.
Capacidade de Generalização
Isso significa que se a rede aprende a lidar com um certo problema, e lhe é apresentado um similar, mas não exatamente o mesmo, ela tende a reconhecer esse novo problema, oferecendo a mesma solução.
Redes Neurais Artificiais (RNA)
Devido à sua estrutura, as Redes Neurais Artificiais são bastante efetivas no aprendizado de padrões a partir de dados:
•não-lineares,
•incompletos,
•com ruído e até
•compostos de exemplos contraditórios.
Inspiração biológica
O neurônio biológico
• Os dendritos tem por função, receber os estímulos transmitidos pelos outros neurônios;
• O corpo de neurônio, também chamado de soma, é responsável por coletar e combinar informações vindas de outros neurônios;
• E finalmente o axônio, protegido por uma bainha de mielina, o canal de saída do neurônio, é responsável por transmitir os estímulos para outros neurônios ou músculos.
O neurônio biológico
O neurônio biológico
O fluxo da informação ocorre sempre no sentido:
Dendritos - Corpo celular - Axônio
Cérebro humano
O neurônio biológico
A chegada de um trem de pulso no botão sináptico localizado na região terminal do axônio provoca a liberação de transmissores na fenda sináptica.
Sinapses podem ser excitatórias (facilitam a passagem do potencial de ação) ou inibitórias (inibem a passagem do potencial de ação).
O neurônio biológico
Neurônios podem se conectar com os músculos ...
O neurônio biológico
Neurônios podem se conectar com os órgãos sensoriais...
O neurônio biológico
• Há cerca de 100 bilhões deles no cérebro e na coluna vertebral.
• A maioria deles está localizado no córtex cerebral, o córtex é identificado popularmente como massa cinzenta.
• O córtex existe apenas nos cérebros de mamíferos.
• O córtex é a estrutura responsável pelas habilidades cognitivas superiores, tais como memória, raciocínio lógico, linguagem, consciência, dentre outras..
O neurônio biológico
• Em média, cada neurônio forma entre mil e dez mil sinapses.
• O cérebro humano possui cerca de 1011 neurônios, e o número de sinapses é de mais de 1014, possibilitando a formação de redes muito complexas.
Neurônio artificial
O neurônio McCulloch-Pitts (MP)
• Modelo matemático de um neurônio biológico proposto em
W.S. McCulloch and W. Pitts (1943). “A logical calculus of the ideas immanent nervous activity”, Bulletin of Mathematical Biophysics, vol.5, p. 115-133
• É bom lembrar que todo modelo é apenas uma aproximação do fenômeno ou objeto real cujas funcionalidades se pretende estudar.
“All models are wrong, but some are useful.”
George E. P. Box
• Assim, o neurônio MP é uma aproximação útil do neurônio real, pois serve até hoje como bloco construtivo básico de algoritmos de redes neurais
O neurônio McCulloch-Pitts (MP)
• Na construção do neurônio MP se está interessado em modelar aspectos ligados ao Processamento da Informação em um neurônio biológico.
• Entende-se por processamento da informação os caminhos e etapas pelas quais passam os potenciais de ação que trafegam de: – um neurônio a outro neurônio,
– receptores sensoriais a um neurônio, ou
– de um neurônio a um atuador (e.g. músculo).
• Assim, devemos desenvolver modelos matemáticos que representem os dendritos, as sinapses, o corpo celular e o axônio.
O neurônio McCulloch-Pitts (MP)
O neurônio McCulloch-Pitts (MP)
• Passo 2: A força (ou eficiência) das conexões sinápticas de uma certa árvore dendrítica é modelada como um fator (peso sináptico), cujo papel é modular o fluxo de sinais passando por uma certa árvore dendrítica.
O neurônio McCulloch-Pitts (MP)
Passo 3: A função do corpo celular de realizar o balanço ou acúmulo energético é modelada por uma operação de somatório sobre as entradas moduladas pelos pesos sinápticos.
𝑢(𝑡): somatório ou ativação 𝑢(𝑡) = 𝑤1𝑥1 +…+𝑤𝑝 𝑥𝑝 − 𝜃
Onde:
𝑥1, 𝑥2, … 𝑥𝑝: entradas
𝑤0, 𝑤1, …𝑤𝑝: pesos sinápticos
𝑤0 = 𝜃
𝑥0: Limiar (bias)
O neurônio McCulloch-Pitts (MP)
• Passo 4: O axônio é modelado como uma chave ON-OFF, que indica se o neurônio respondeu ao estímulo atual. Em outras palavras, se houve ou não o envio de um potencial de ação.
w1
w2
wp
f(u)
x1
x2
xp
u(t)
w0 = theta
y(t)sinais
de
entrada
pesos
sinápticos
junção
aditiva
função
de ativação
saída
w0x0=-1
Bias: entrada fixa
𝑥1, 𝑥2, … 𝑥𝑝: entradas
𝑤0, 𝑤1, …𝑤𝑝: pesos sinápticos
𝑢(𝑡) = 𝑤1𝑥1 + …+𝑤𝑝 𝑥𝑝 − 𝜃
𝑓 = função degrau
𝑦(𝑡) = 𝑓 𝑢 = 1, se 𝑢 > 0
𝑦 𝑡 = 𝑓 𝑢 = 0, caso contrário
Modelo completo do neurônio de McCulloch-Pitts
Componentes do neurônio artificial
• Neurônio Biológico possui de forma resumida: – Dendritos,
– Sinapses,
– Corpo celular
– Axônio
• Neurônio Artificial possui: – As conexões (arestas ponderadas),
– As sinapses (entradas),
– A junção somadora, e
– A função de ativação.
Princípio de funcionamento
A operação de um neurônio artificial se resume em:
• Sinais são apresentados à entrada (xj à xp); • Cada sinal é multiplicado por um peso que indica sua influência na saída da
unidade (w);
• É feita a soma ponderada dos sinais que produz um nível de atividade (u);
• A função de ativação f(u) tem a função de limitar a saída e introduzir não-linearidade ao modelo.
• O bias tem o papel de aumentar ou diminuir a influência do valor das entradas.
• É possível considerar o bias como uma entrada de valor constante 1 ( excitatória) ou -1 (inibitória), multiplicado por um peso igual a .
Princípio de funcionamento
Seja o neurônio artificial mostrado na figura a seguir.
𝑥1, 𝑥2: entradas
𝑤1, 𝑤2: pesos sinápticos
𝜃 : Limiar (bias)
𝑢: ativação
A ativação (𝑢) do neurônio é dada por:
𝑢 = 𝑤1𝑥1 +𝑤2𝑥2 − 𝜃 (1)
Princípio de funcionamento
A equação (1) define um plano em (𝑥1, 𝑥2, 𝑢)
O tracejado indica onde o plano está abaixo do plano (𝑥1, 𝑥2).
Princípio de funcionamento
• Para fins de classificação basta trabalhar no plano (𝑥1, 𝑥2).
• Isto equivale a fazer 𝑢 = 0 na equação do plano, ou seja:
𝑢 = 𝑤1𝑥1 +𝑤2𝑥2 − 𝜃 = 0
• Assim, a equação da reta no plano (𝑥1, 𝑥2) é dada por:
𝑥2 = (𝑤1/𝑤2)𝑥1 + 𝜃/𝑤2 (2)
Princípio de funcionamento
• A equação (2) define a reta em (𝑥1, 𝑥2) apresentada a seguir:
Princípio de funcionamento
• Assim, um neurônio pode ser usado para separar com eficiência duas classes que estejam bem isoladas uma da outra.
• O perceptron de limiar é chamado separador linear
Exemplos de Funções Lógicas
• Exemplo 1(1): Implementando funções lógicas (AND, OR, NOT).
Representação do Problema (Função OR)
Exemplos de Funções Lógicas
• Exemplo 1(2): É possível encontrar uma reta que separe os pontos da Classe 1 (y=1) dos da Classe 2 (y=0)? SIM.
Observação: Na verdade, é possível encontrar infinitas retas que separam as duas classes.
Exemplos de Funções Lógicas
• Exemplo 2: O seguinte neurônio implementa a porta OR.
𝑤1 = 𝑤2 = 1 e 𝜃 = 0,5
𝑦 = 1 se u > 0
𝑦 = 0 se u ≤ 0
Exemplos de Funções Lógicas
• Exemplo 3: O seguinte neurônio implementa a porta AND.
𝑤1 = 𝑤2 = 1 e 𝜃 = 1,5
𝑦 = 1 se u > 0
𝑦 = 0 se u ≤ 0
Exemplos de Funções Lógicas
• Exemplo 4: O seguinte neurônio implementa a porta NOT.
𝑤1 = −1 e 𝜃 = −0,5
𝑦 = 1 se u > 0
𝑦 = 0 se u ≤ 0
Resumo
• O neurônio MP pode ser usado para implementar as portas lógicas AND, OR e NOT porque estas, do ponto de vista geométrico, podem ser interpretadas como um problema de classificação binária (duas categorias).
• O neurônio MP, do ponto de vista geométrico, pode ser interpretado como uma reta (2D), ou um plano (3D) ou ainda um hiperplano (> 3D), que é usado para separar duas categorias de dados distintas.
• Na implementação das portas lógicas AND, OR e NOT, os valores dos pesos e do limiar foram determinados pelo projetista com base na análise geométrica do problema.
Resumo
• Como fazer com que o neurônio MP determine de forma automática os valores dos pesos e do limiar para um problema específico?
• Para que o neurônio MP seja capaz de aprender sozinho a resolver um problema de classificação é necessário dotá-lo de uma regra de aprendizagem.
• Uma regra de aprendizagem nada mais é do que uma equação que altera os valores dos pesos e do limiar em função dos erros cometidos durante a execução da tarefa de classificação.
Rede Perceptron Simples (PS)
• A rede PS é considerada o primeiro algoritmo de redes neurais artificiais.
• A rede PS foi proposta por Frank Rosenblatt em 1958.
F. Rosemblat (1958). “The Perceptron: A probabilistic model for iformation storage
and organization in the brain”, Psychological Review, v.65, p.386-408.
Perceptron Simples = Neurônio de MP + Regra de Aprendizagem
• A regra de aprendizagem é o mecanismo que torna a rede Perceptron Simples um dispositivo inteligente.
Rede Perceptron Simples (PS)
Regra de Aprendizagem do Perceptron
• A atualização do peso depende do erro e da entrada:
𝑤 𝑡 + 1 = 𝑤 𝑡 + 𝑒 𝑡 𝑥 𝑡
• A fim de tornar o processo de ajuste do vetor 𝑤 mais estável, é comum introduzir na equação anterior um fator 𝜼, chamado de passo de aprendizagem:
𝑤 𝑡 + 1 = 𝑤 𝑡 + 𝜂𝑒 𝑡 𝑥 𝑡
Onde: 0 < 𝜂 ≪ 1
Rede Perceptron Simples (PS)
Perceptron Simples = Neurônio MP + Regra de Aprendizagem
𝑤 𝑡 + 1 = 𝑤 𝑡 + 𝜂𝑒 𝑡 𝑥 𝑡
𝑤 𝑡 + 1 = 𝑤 𝑡 + 𝜂𝑒 𝑡 𝑥 𝑡 e 0 < 𝜂 ≪ 1
Algoritmo do Perceptron Simples
1. Início (t=0) 1.1 – Definir valor de 𝜂 entre 0 e 1.
1.2 – Iniciar 𝑤(0) com valores nulos ou aleatórios.
2. Funcionamento 2.1 – Selecionar vetor de entrada 𝑥(𝑡).
2.2 – Calcular ativação 𝑢(𝑡).
2.3 – Calcular saída 𝑦(𝑡).
3. Treinamento 3.1 – Calcular erro: 𝑒 𝑡 = 𝑑 𝑡 − 𝑦(𝑡)
3.2 – Ajustar pesos via regra de aprendizagem.
3.3 – Verificar critério de parada. 3.3.1 – Se atendido, finalizar treinamento.
3.3.2 – Caso contrário, fazer t=t+1 e ir para Passo 2.
Treinamento do neurônio
Treinamento
Treinamento
Treinamento
Treinamento
Treinamento
Treinamento
Treinamento
Treinamento
Classificação de múltiplas classes
Classificação de múltiplas classes
Classificação de múltiplas classes
Classificação de múltiplas classes
Classificação de múltiplas classes
Classificação de múltiplas classes
Classificação de múltiplas classes
Dicas para Projetar uma Rede PS
Dicas para Projetar uma Rede PS
Adaline
• Na mesma época em que Rosenblatt propôs o Perceptron,
Widrow e Hoff propuseram o algoritmo dos mínimos
quadrados (regra delta) para a rede Adaline (Adaptive Linear
Element), similar ao Perceptron, porém com função de
ativação linear ao invés de função degrau.
•O algoritmo backpropagation é uma generalização da regra
delta.
• O objetivo do algoritmo de treinamento é minimizar o erro
quadrático médio (MSE) entre a saída de rede e a saída
desejada.
Adaline
Rede com várias entradas/
saídas
O i-ésimo neurônio
da rede
Adaline
n
i
ii
n
i
i ydeE1
2
1
2 )(
• O gradiente de 𝑬, também denominado de índice de
desempenho ou função custo, fornece a direção de
crescimento mais rápido de 𝑬.
• Portanto, a direção oposta ao gradiente de 𝑬 é a direção de
maior decrescimento.
• A soma dos erros quadráticos para um determinado
padrão é dada por:
onde 𝑤𝐼𝐽 é o peso específico para o neurônio pós-
sináptico 𝐼, da entrada 𝐽 (𝑥𝑗 com 𝑗 = 1,…𝑝), e é a taxa
de aprendizagem (𝑥0 é o bias) .
Adaline
IJ
IJIJw
Eww
O erro pode ser reduzido ajustando-se os pesos da
rede de acordo com:
Adaline
2
1
2 )()( II
p
i IJ
ii
IJIJ
ydw
ydww
E
JII
IJ
III
IJ
j j
jIjjIjII
xydw
yyd
w
E
xwxwffy
)(2)(2
)()(
.xw
Como
Como 𝑤𝐼𝐽 influencia apenas o neurônio 𝐼 ,
Regra delta
• Portanto a regra delta para o Adaline resume-se
em:
• Onde 𝑏𝐼 é o ajuste do peso para o bias (𝑤𝑖0) com 𝑥0 = 1.
)(
)(
IIII
JIIIJIJ
ydbb
xydww
Aprendizagem com Momento
• Aprendizagem com momento usa uma
memória (incremento anterior) para aumentar
a velocidade e estabilizar a convergência
• Equação de correção dos pesos:
Observação: é a constante de momento,
normalmente é ajustada entre 0,5 e 0,9
1 1 nwnwnxnenwnw ijijjiijij
Exemplo de Momento
• Momentum
Problemas não linearmente separáveis
Problemas não linearmente separáveis
Problemas não linearmente separáveis
Problemas não linearmente separáveis
Problemas não linearmente separáveis
Problemas não linearmente separáveis
Problemas não linearmente separáveis
Problemas não linearmente separáveis
Problemas não linearmente separáveis
Problemas não linearmente separáveis
Problemas não linearmente separáveis
Rede Perceptron Multicamadas
Rede Perceptron Multicamadas
Rede Perceptron Multicamadas
Rede Perceptron Multicamadas
Rede Perceptron Multicamadas
Rede Perceptron Multicamadas
Rede Perceptron Multicamadas
Definindo uma Rede MLP
• Arquitetura da rede: número de camadas entrada, saída e
ocultas.
• Função de ativação: sigmoidal, tangente hiperbólica.
• Regra de aprendizagem
• A quantidade de neurônios na camada de entrada e saída
é dada pelo problema a ser abordado.
Definindo uma Rede MLP
• A quantidade de neurônios nas camadas ocultas pode
ser determinado usando heurísticas.
• Deve-se lembrar que: – Um número grande de neurônios na camada oculta aumenta a
capacidade de mapeamento não-linear da rede, mas,
– Se o número for muito grande, o modelo pode se sobre-ajustar
aos dados e diz-se que a rede está sujeita ao sobre-treinamento
(overfitting).
– Uma rede com poucos neurônios na camada oculta pode não ser
capaz de realizar o mapeamento desejado, o que é denominado
de underfitting.
– O underfitting também pode ser causado quando o treinamento é
interrompido de forma prematura.
Definindo uma Rede MLP
• Normalizar os dados de entrada:
– É importante trabalhar com valores de entrada que estejam
contidos num intervalo de [0, 1]para evitar a saturação da função
de ativação (p.e. sigmoidal).
• Inicialização aleatória dos pesos: – Inicializar os pesos e bias a valores randômicos entre -0.5 e 0.5,
ou entre -1 e 1.
– Os valores dos pesos não devem muito grandes nem muito
pequenos, pois, podem gerar dois problemas: saturar as funções
de ativação ou tornar o aprendizado muito lento respectivamente.
Definindo uma Rede MLP
• Treinamento e validação da rede – Os dados dividem-se em 3 grupos: 70% para treinamento, 15%
para teste e 15% para validação.
– Os dados de teste permitem evitar o overfitting, são utilizados
durante o treinamento.
– Os dados de validação são utilizados após o treinamento,
permitem verificar a eficiência da rede.