Inteligência Artificial: Uma Abordagem
de Aprendizado de Máquina
Métodos Baseados em
Otimização
Métodos Baseados em Otimização

Algumas técnicas de AM buscam hipótese
recorrendo à otimização de uma função:



Ex. erro médio quadrático
Em problemas supervisionados, rótulo dos objetos é
considerado na formulação
Estudaremos duas técnicas:


Redes Neurais Artificiais (RNAs)
Máquinas de Vetores de Suporte (SVMs)

Support Vector Machines
Redes Neurais Artificiais

Cérebro humano é responsável pelo processamento e controle de diversas informações

Realizamos ações que requerem atenção a diversos
eventos ao mesmo tempo e processamentos variados


Ex. pegar objeto, caminhar, envolvem ação de diversos
componentes, como memória, coordenação, aprendizado
Motivação na construção de máquinas inteligentes
André Ponce de Leon de Carvalho
3
Redes Neurais Artificiais

Sistemas distribuídos inspirados na estrutura
e funcionamento do sistema nervoso

Objetivo: simular capacidade de aprendizado do
cérebro na aquisição de conhecimento
Compostas por várias unidades de processamento (“neurônios”)
Interligadas por um grande número de conexões (“sinapses”)
André Ponce de Leon de Carvalho
4
Histórico
1940
1950
1960
1970
1943 Primeiro modelo de neurônio artificial
W. McCulloch e W. Pitts (neurônio MCP)
McCulloch: psicólogo e neurofisiologista
Pitts: matemático
1980...
Histórico
1940
1950
1960
1970
1980...
1949 Primeiro trabalho demonstrando aprendizado
em redes neurais artificiais (D. Hebb)
Conseguido através de alterações nos pesos de
entrada dos neurônios
Regra de Hebb: baseada no reforço das ligações
entre neurônios excitados
Histórico
1940
1950
1960
1970
1980...
1958 Modelo de RNA Perceptron de F. Rosenblatt
Sinapses ajustáveis com neurônios MCP poderiam
ser treinadas para classificação
Propôs algoritmo de treinamento
Histórico
1940
1950
1960
1970
1980...
1969 Artigo de Minsky e Papert
Perceptron de Rosenblatt não é capaz de resolver
alguns problemas simples
(Perceptron simples é limitado à resolução de problemas linearmente separáveis)
Histórico
1940
1950
1960
1970
1980...
Década de 70 abordagem conexionista adormecida
Alguns poucos trabalhos importantes:
• Redes sem peso
• Sistemas auto-adaptativos
• Memórias associativas e modelos auto-organizáveis
Histórico
1940
1950
1960
1970
1980...
Década de 80: ressurgimento
1982 J. Hopfield: propriedades associativas das
RNAs – relação com sistemas físicos
1986 D. E. Rumelhart e J. L. McClelland
Algoritmo de treinamento back-propagation para
RNAs multi-camadas  resolução de problemas
mais complexos
Histórico
1940
1950
1960
1970
1980...
Interesses mais recentes em RNAs:
• Implementação em hardware
• Modelos mais próximos ao biológico
• Sistemas neurais híbridos
• Busca de algoritmos de treinamento eficientes
Redes Biológicas

Cérebro humano: 1011 neurônios


Cada neurônio processa e se comunica com
milhares de outros continuamente e em paralelo
Cérebro: responsável por funções cognitivas e
execução de funções sensoriomotoras e
autônomas

Tem capacidade de reconhecer padrões e relacioná-los,
usar e armazenar conhecimento por experiência e
interpretar observações
Neurônio Natural

Um neurônio simplificado:
Dendritos
Axônio
Corpo
Sinal
Sinapse
Neurônio
Dendritos são prolongamentos numerosos dos neurônios, especializados na recepção de estímulos
nervosos
Estes estímulos podem ser do
meio ambiente, como de
outros neurônios
Cada dendrito carrega o sinal
elétrico para o corpo
(somma) da célula principal
O somma coleta, combina e
processa as informações
recebidas dos dendritos
Manda informações já processadas para o axônio
Neurônio

Concentrações de potássio (negativo) e sódio (positivo) criam diferenças de potencial
V
+ 40 mV
Tempo
- 50 mV
- 70 mV
Disparo
Repouso
Neurônio
Axônios são prolongamentos
dos neurônios, responsáveis pela condução dos
impulsos elétricos até outro
local mais distante
São responsáveis pela
transmissão de estímulos
Alguns axiônios de um
humano adulto podem
chegar a mais de um metro
de comprimento
Sinapse é o nome dado à conexão entre neurônios
Cada sinapse tem um peso,
que caracteriza a força da
conexão entre dois
neurônios
Os sinais são transportados
através de sinapses por
substâncias químicas chamadas neurotransmissores
Redes Biológicas

Neurônios são bem mais lentos que os circuitos
elétricos, mas o cérebro é capaz de realizar muitas
tarefas mais rápido que qualquer computador



Redes neurais biológicas trabalham de forma massivamente paralela
Neurônios estão organizados em cerca de 1000 nódulos principais, cada um com 500 redes neurais
E cada neurônio pode estar ligado a centenas ou até
milhares de outros neurônios
Rede Neural Artificial

Uma Rede Neural Artificial (RNA) é um sistema
computacional que apresenta um modelo inspirado na
estrutura neural do cérebro humano

Componentes básicos:
Neurônio: unidade computacional básica da rede
Arquitetura: estrutura topológica de como os neurônios são
conectados
Aprendizagem: processo que adapta a rede de modo a
computar uma função desejada, ou realizar uma tarefa
Neurônio artificial

Unidade de processamento fundamental de uma RNA
Entradas
Pesos
x1
x2
...
w2
∑
fa
Saída
y
xd
Sinal
Objeto x com d atributos fornece entrada
Pesos para as entradas são dados pelo vetor w
É realizada uma soma ponderada da entrada, à qual é aplicada uma
função de ativação, que fornece a saída final (previsão)
Neurônio artificial

Entrada total do neurônio:
d
u
x jwj
x1
w
x2
w2
1
a
j
j
y
wd
xd
Conexões podem ser excitatórias (peso > 0) ou inibitórias (peso < 0)
Neurônio artificial
Funções de ativação

Funções de ativação mais comuns:

Linear: fa(u) = u

Threshold ou limiar: fa(u) =
1 , se u≥Φ
0, se u
(ou -1)

Sigmoide Logística: fa(u) = 1/(1 + e- u)

Tangente hiperbólica: f a(u) = (1 - e- u)
(1 +e- u)
Função linear
f(u)
u
f(u) = u
Função limiar
f(u)
u
1, se u
f(u) =
0, se u
Função sigmoide logística
f(u)
1
f(u) =1/(1 + e- u)
Função de limiar diferenciável
Função tangente hiperbólica
f(u)
+1
- u
(1
e
)
f(u) =
(1 +e- u)
-1
Topologia

Definida por:




Número de camadas da RNA
Número de neurônios em cada camada
Grau de conectividade dos neurônios
Presença ou não de conexões de retropropagação
Topologia

Neurônios podem estar dispostos em camadas


Neurônio pode receber como entrada a saída de neurônios
da camada anterior
E enviar sua saída para entrada de neurônios em camada
seguinte
camada de
camada de
entrada
saída
conexões
camadas intermediárias
Topologia

Rede multicamadas:

Pode ter diferentes padrões de conexões entre neurônios:
Completamente conectada: neurônios
estão todos conectados aos da camada
anterior/seguinte
Parcialmente conectada: neurônios
estão conectados a
apenas alguns neurônios da camada
anterior/seguinte
Localmente conectada: neurônios
conectados encontram-se em uma região específica
Topologia

Rede multicamadas:

Pode ter diferentes arranjos de conexões:
Redes feedforward:
processamento da camada de entrada à de
saída
Tipo mais comum
Redes recorrentes:
apresentam conexões de retroalimentação (uso em sistemas dinâmicos)
Grades: matriz de
nodos
0
0
1
1
0
0
Topologia

Escolhas dependem de vários fatores:





Complexidade do problema
Dimensionalidade da entrada
Características dinâmicas ou estáticas
Conhecimento a priori
Representatividade dos dados
Aprendizado

Ajuste dos pesos das conexões
w(t+1) = w(t) + Δ w(t)
(

Algoritmos de aprendizado
Conjunto de regras bem definidas para ensinar a
rede a resolver um dado problema

Divergem na maneira como os pesos são ajustados


Em como Δ w é calculado
Aprendizado
ajustar pesos para reduzir
competição entre neurônios
(supervisionado)
sos ajustados, geralmente
Hebbiano: baseados na regra
vos, a conexão entre eles
(não supervisionado)
(não supervisionado)
Termodinâmico (Boltzmann):
seados em princípios ob-
Perceptron

Desenvolvida por Rosemblat em 1958

Utiliza modelo de McCulloch-Pitts como
neurônio

Rede mais simples para classificação de
dados linearmente separáveis

Dados que podem ser separados por um
hiperplano
Perceptron

Na realidade, é RNA com uma única camada



Estado de ativação
1 = ativo
0 = inativo


Pode ser usado +1 e -1 também
Aprendizado por correção de erro

Obter valor de incremento Δ w(t) para que
valor
w(t+1) = w(t) + Δ w(t) esteja mais próximo
da ( solução desejada que w(t)
Aprendizado Perceptron

Considere um neurônio arbitrário

Com entradas x’e pesos w’

Ativação =
i
w’i x’i = w’ . x’
Produto interno

Condição de disparo: w’ . x’ = θ

Ou w’ . x’ - θ = 0
Limiar de ativação
Aprendizado Perceptron

w’ . x’ - θ = 0 é equivalente a adicionar um
peso w0 com valor - θ às entradas do
neurônio e conectá-lo a uma entrada com
valor fixo x0 = 1
) w = (-θ , w1, ..., wn)


x = (1, x1, ..., xn)
x
1
2
x
x3
w1
2
w
w3
f
-
+1
Aprendizado

Considere o par de treinamento {x, yd} e a
saída atual da rede y

Erro devido à saída atual: e = yd – y
y
0
0
1
1
yd
0
1
0
1
e
0
1
-1
0
Aprendizado
y
0
( w


. x < 0, já que y = 0
e
1
w(t)
||w|| ||x|| cos( α ) < 0


yd
1
α = ângulo entre vetores w e x
cos(α ) < 0
α > 90º
. α
x
Aprendizado

Mudança plausível para w é somá-lo a um
vetor na direção de x


(
Para modificar ângulo
Aprendizado

η = taxa de aprendizado

0< η <1

Taxas pequenas
Estimativas estáveis de peso
Aprendizado lento

Taxas grandes
Aprendizado rápido
Captação de mudanças no
processo

Taxas variáveis
Instabilidade

Maiores no começo
Aprendizado
y
1
yd
0
w . x > 0, já que y = 1
 (
||w|| ||x|| cos( α ) > 0

cos(α ) > 0
α
< 90º
e
-1

w(t)
.α
x
Aprendizado

Mudança plausível para w é subtraí-lo de um
vetor na direção de x


(
Para modificar ângulo
Vetor η x
ηx
w(t)
. w(t+1)
x
Assim, w(t) = - x(t)
(w(t+1) = w(t) - η x(t)
Como e = -1, podemos escrever:
w(t+1) = w(t) + η ex(t)
Aprendizado

Para duas situações de erro possíveis,
chegou-se à mesma regra de atualização:
(

w(t+1) = w(t) + η ex(t)
Logo,
Δw(t) = η ex(t), se y ≠ yd
0, se y = yd
Ajuste de pesos deve ser proporcional ao produto do
erro pelo valor de entrada da sinapse
Aprendizado por correção de erro

Superfície de erro


Superfície multi-dimensional representando gráfico
da função de custos X peso
Objetivo do aprendizado:

A partir de um ponto qualquer da superfície, mover em
direção a um mínimo global
Superfície de erro
Erro
mínimo global
Parâmetros livres
Superfície de erro
Erro
X
mínimos locais
mínimo global
Parâmetros livres
Algoritmo de treinamento Perceptron

Teorema de convergência:

Se é possível classificar um conjunto de entradas
linearmente, uma rede Perceptron fará a
classificação


21/11/11
Em um número finito de passos
Mas tempo pode ser proibitivo!
Redes Neurais - André Ponce de Leon F. de
48
Algoritmo de treinamento
Algoritmo de treinamento de RNA Perceptron
Entrada: Conjunto de treinamento D = {(xi ,yi), i = 1,...n}
Saída: Rede Perceptron com pesos ajustados
Iniciar pesos da rede com valores baixos
repita
para cada xi faça
Calcular valor da saída produzida pela rede f(xi)
erro e = yi - f(xi)
se e > 0 então
Ajustar pesos do neurônio w(t+1) = w(t) + ηex(t)
até que erro = 0 (ou erro < ε)
21/11/11
Redes Neurais - André Ponce de Leon F. de
49
Algoritmo de treinamento
Vetor peso ideal
6
5
3
4
2
1
21/11/11
Redes Neurais - André Ponce de Leon F. de
50
Algoritmo de treinamento
3
2
1
5
4
8
21/11/11
6
Redes Neurais - André Ponce de Leon F. de
7
51
Algoritmo de teste

Uso da RNA treinada
Algoritmo de teste de RNA Perceptron
Entrada: Exemplo de teste x e RNA Perceptron com pesos ajustados
Saída: previsão para classificação de x
Apresentar x à entrada da RNA
Calcular a saída f(x)
Retorne f(x)
21/11/11
Redes Neurais - André Ponce de Leon F. de
52
Exemplo

Dada uma rede Perceptron com:

E
Três terminais de entrada, utilizando pesos iniciais
w1 = 0.4, w2 = -0.6 e w3 = 0.6, e limiar = 0.5:

Ensinar a rede com os dados (001, -1) e (110, +1)


Utilizar taxa de aprendizado η = 0.4
Definir a classe dos dados: 111, 000, 100 e 011
Exemplo
x1
Situação
desejada
y
x2
-1
001
x3
Limiar
110
+1
Exemplo
a) Treinar a rede
a.1) Para o dado 001
(yd = -1)
Passo 1: definir a saída da rede
u = 0(0.4) + 0(-0.6) + 1(0.6) -1(0.5) = 0.1
y = +1 (uma vez 0.1≥ 0)
0
Passo 2: atualizar pesos (y ≠ yd)
)
w1 = 0.4 + 0.4(0)(-1 - (+1)) = 0.4
-1
001
=
110
w2 = -0.6 + 0.4(0)(-1 - (+1)) = -0.6
w3 = 0.6 + 0.4(1)(-1 - (+1)) = -0.2
w0 = 0.5 + 0.4(-1)(-1 - (+1)) = 1.3 (bias)
+1
Exemplo
a) Treinar a rede
a.2) Para o dado 110
(y d = +1)
Passo 1: definir a saída da rede
u = 1(0.4) + 1(-0.6) + 0(-0.2) -1(1.3) = -1.5
y = -1 (uma vez -1.5 < 0)
y
)
Passo 2: atualizar pesos (y ≠ yd)
-1
w1 = 0.4 + 0.4(1)(1 - (-1)) = 1.2
001
w2 = -0.6 + 0.4(1)(1 - (-1)) = 0.2
w3 = -0.2 + 0.4(0)(1 - (-1)) = -0.2
110
w0 = 1.3 + 0.4(-1)(1 - (-1)) = 0.5 (bias)
+1
Exemplo
a) Treinar a rede
a.3) Para o dado 001
Passo 1: definir a saída da rede
u = 0(1.2) + 0(0.2) + 1(-0.2) -1(0.5) = -0.7
y = -1 (uma vez -0.7 < 0)
Passo 2: atualizar pesos
Como y = yd, os pesos não precisam ser
y
:
-1
001
110
(yd = -1)
+1
modificados
Exemplo
a) Treinar a rede
a.4) Para o dado 110
y
:
-1
Passo 1: definir a saída da rede
u = 1(1.2) + 1(0.2) + 0(-0.2) -1(0.5) = +0.9
y = +1 (uma vez 0.9 > 0)
Passo 2: atualizar pesos
Como y = yd, os pesos não precisam ser
001
110
(y d = +1)
+1
modificados
Exemplo
b) Testar a rede
b.1) Para o dado 111
u = 1(1.2) + 1(0.2) + 1(-0.2) -1(0.5) = 0.7
y = +1 (porque 0.7 0)
b.2) Para o dado 000
u = 0(1.2) + 0(0.2) + 0(-0.2) -1(0.5) = -0.5
y = -1 (porque -0.5 < 0)
Exemplo
b) Testar a rede
b.3) Para o dado 100
u = 1(1.2) + 0(0.2) + 0(-0.2) -1(0.5) = 0.7
y = +1 (porque 0.7 0)
b.4) Para o dado 011
u = 0(1.2) + 1(0.2) + 1(-0.2) -1(0.5) = -0.5
y = -1 (porque -0.5 < 0)
Download

Cap7RN