• Nenhum resultado encontrado

INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes Neurais e Reconhecimento de Padrões

N/A
N/A
Protected

Academic year: 2021

Share "INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes Neurais e Reconhecimento de Padrões"

Copied!
64
0
0

Texto

(1)

 Reconhecimento de Padrões - Conceituação

 O que é padrão ?

 O que é representação ?

 Beale e Jackson ([BEA91]) voltam a atenção para o termo padrão e procuram realçar seu entrelaçamento com o termo informação: a maior parte de conteúdo informativo que nossas 'redes neurais' biológicas absorvem se apresentam na forma de padrões. Assim, este texto escrito por exemplo, é apresentado em uma forma complexa de cadeias de caracteres.

 Uhr ([UHR73]) procura caracterizar reconhecimento de padrões, analisando inicialmente os aspectos sobre a captação de informação que os organismos vivos de modo geral apresentam. Para Uhr, é de fundamental importância as atividades de sensação

e percepção, pois é através delas que ocorre qualquer interação

(2)

sensação- Reconhecimento de padrões pode ser encarado como a atividade de mapeamento de um conjunto de instâncias de objetos/entidades para um conjunto de nomes-caracterizadores dos referidos objetos/entidades. Tipos de padrões de interesse não se limitam apenas a objetos concretos tais como figuras, letras, dígitos, mas também entidades abstratas como por exemplo, a beleza de uma mulher, uma partitura de uma música, a profundidade de um teorema matemático ou mesmo a aceptividade a um determinado aroma para uma determinada pessoa.

 FU ([FU76]) relata o fato de que reconhecimento de padrões está intimamente relacionado com a descrição e classificação de medidas obtidas de processos físicos ou mentais.

 Beale e Jackson ([BEA91]) também colocam que o objetivo da tarefa de reconhecimento de padrões é a classificação.

 Jain e Mao ([JAI94]), Andrews ([AND72]), Bezdek ([BEZ81]) entre outros também destacam a classificação como objetivo primordial da tarefa de reconhecimento de padrões.

(3)

 Reconhecimento de Padrões – Uma definição ([BEZ81])

"Quite simply, pattern recognition is a search for structure in data."

 Na definição acima, Bezdek ressalta três aspectos: a tarefa de procura ou busca (search), a estrutura (structure) e os dados (data).

 Os dados podem ser de natureza qualitativa, quantitativa ou ambas; podem ser numéricos, pictoriais, texturais, linguísticos ou qualquer dessas combinações. Exemplos de dados: registros médicos, fotos aéreas, posições das galáxias, impressões digitais, perfil psicológico, componentes químicos, aspectos demográficos, etc.

 A procura ou busca refere-se às técnicas que se utilizam para processar os dados componentes do padrão. Uma exemplo de técnica de busca, que é baseada em heurística, é a do "olhômetro" (eyeball techinique, [BEZ81]). Outro exemplo de técnica, porém mais rigorosa em termos algorítmicos baseia-se no uso da análise estatística.

(4)

 Padrão: um exemplo - Uma figura de borboleta ([BEZ81])

 Os dados são de natureza pictorial. Os dados são os pontos. Mas os dados por si só não dizem nada, não veiculam informação alguma

 A estrutura do padrão indica a disposição geográfica dos pontos (dados), caracterizando as intra e inter-relações; através da estrutura poderiam também ser representadas as diferentes texturas (caso houvessem) dos dados, etc.

 É então o binômio dados-estrutura que apresentará teor informativo, isto é, permitirá que se faça um mapeamento do padrão em questão para algum universo representativo de objetos/entidades.

 A busca ou procura de estruturas em dados seria a ponte, o processo de mapeamento do padrão até o teor informativo intrínseco a ele. Existem diversas técnicas de procura, cada uma apresentando suas vantagens e desvantagens.

(5)

 O processo de reconhecimento de padrões (pattern recognition)

Padrão Dados (explícitos)

Estrutura (implícito) Descritor do padrão

Técnicas para explicitação das estruturas do padrão Caracterização do padrão através de suas estruturas

 Técnicas para reconhecimento de padrões [FU82]

 Técnicas sintáticas (estrutural)

(6)

 Técnicas sintáticas para reconhecimento de padrões

 A idéia nesta abordagem é representar o padrão através de uma estrutura que se caracterize por ser uma sentença de alguma linguagem

 Formalismos: Gramáticas e Reconhecedores para

representação/descrição do padrão

 Exemplo: Gramática para Cromossomos Medianos

Cromossomo mediano X = cbbbabbbbdbbbbabbbcbbbabbbbdbbbbabbb Gramática Gm = (VNm, VTm, Pm, S) onde VNm = {S, A, B, D, H, J, E, F } VTm = { a, b, c, d } = {∩, |, ∪, ∧} Pm = { S → AA, A → cB, B → FBE, B → HDJ, D → FDE, D → d, F → b, E → b, H → a, J → a }

(7)

 Técnicas discriminantes para reconhecimento de padrões

 Andrew ([AND72]) descreve o problema de reconhecimento de padrões como uma transformação a partir do universo P do padrão em questão, para o universo de características F e daí para o universo de classificação C

P → F → C Pré-Processamento do padrão P - Universo do Padrão X = ( x1, x2, x3, x4, ... , xn ) n características F - Universo de Características Y = ( y1, y2, y3, y4, ... , yr ) r características

Seleção/Extração de r características (r < n)

C - Universo de classificação

Base para sistema de tomada de decisão para classificação

(8)

 Homem e Máquina (computador)



O homem é mais inteligente que a máquina

 Mas, por exemplo, um computador calcula a multiplicação de dois inteiros com 9 dígitos mais rápido que o homem

 Já o homem, por exemplo, visualiza e “processa” um cenário melhor que o computador

 Onde está a diferença ? Provavelmente na natureza do “design” do homem e no “design” do computador

 Numa primeira investigação, o cérebro humano é uma massa cinzenta homogênea

 No interior do computador encontram-se inúmeros “chips” de silício

 computador é uma máquina de processamento serial de altíssima velocidade se comparada com o cérebro humano que apresenta uma natureza de operação (“processamento”) em paralelo

 Tarefas mais complexas (reconhecimento visual e sonoro p. ex.) requerem, para melhor performance, processamento paralelo

(9)

Redes neurais artificiais - Propósito ⇒ Tentar implementar em

computador as diretrizes que norteiam o processamento (paralelo) de soluções que o cérebro humano executa para resolver “problemas complexos”.

Redes neurais artificiais - Aprendizado ⇒ Uma das

características mais marcantes do cérebro humano é o fato de o mesmo ter aptidão para aprender coisas e fatos por si só. E o aprendizado é um aspecto desejável na implementação de Redes Neurais Artificiais.

A Estrutura do Cérebro Humano

 O cérebro humano é uma das coisas mais complicadas, bastante estudada em detalhes, porém muito pouco compreendida.

 O cérebro humano: contém aproximadamente dez mil milhões (1010) de unidades básicas denominadas neurônios.

 Cada neurônio se conecta com aproximadamente 10.000 (104) outros neurônios.

(10)

A Estrutura e Funcionamento dos Neurônios



Os dendritos se conectam ao corpo da célula (soma).

 Os dendritos têm por função receber as informações ou impulsos nervosos oriundos de outros neurônios e conduzi-los até o soma.

 A informação que chega ao soma é “processada” e novos impulsos nervosos são transmitidos pelo axônio para os

dendritos dos outros neurônios seguintes (aqueles

aproximadamente 104 conectados !!).

 Sinapse é o nome do ponto de contato entre o terminal axônico

de um neurônio e o dendrito de outro neurônio.

 É pelas sinapses que os neurônios se unem funcionalmente formando as redes neurais.

 As sinapses controlam a transmissão dos impulsos nervosos entre os nodos (neurônios) da rede neural.

 O efeito das sinapses é variável e é esta variação que dá ao neurônio a capacidade de adaptação e, consequentemente, dá à rede neural a capacidade de aprender

(11)
(12)

O Processo de Comunicação no Cérebro

 A comunicação no cérebro ocorre de duas maneiras:

 Sinais químicos através das sinapses

 Sinais elétricos dentro do corpo do neurônio (soma)

 A membrana que envolve o exterior do soma pode gerar impulsos nervosos (elétricos).

 O corpo do neurônio (soma) ao receber os sinais dos outros neurônios (os aproximadamente 104 que estão conectados), combina-os e, se o valor resultante for acima do limiar (threshold) de excitação do neurônio, um impulso elétrico é produzido e propagado para os neurônios seguintes.

 Há uma diferença de potencial (em Volts) entre o interior e o exterior do neurônio, ocasionada pela diferença de concentração de potássio (interno) e de sódio (externo).

 No interior do soma, a concentração de íons de potássio cria um potencial elétrico de –70mV (potencial de repouso) em relação ao exterior.

(13)

O Processo de Comunicação no Cérebro

 Se os impulsos da sinapse reduzirem o potencial de repouso de – 70 mV para –50 mV no soma, o neurônio propaga, através do axônio, os impulsos nervosos para a região das conexões sinápticas, que liberarão moléculas neurotransmissoras que inibirão ou excitarão pulsos elétricos no próximo neurônio.

 Assim, o potencial de disparo de um neurônio é determinado pelo acúmulo de um grande número de entradas inibitórias e excitatórias, medido pelo soma (corpo da célula) num pequeno intervalo de tempo.

 Depois de gerar um impulso, o neurônio entra num período de refração, durante o qual retorna ao seu potencial de repouso enquanto se prepara para a geração de um novo impulso.

(14)

Modelando o Neurônio Básico (McCulloch & Pitts, 1943)

 A função básica de um neurônio biológico é “somar” as suas

“entradas” (inputs) e produzir uma “saída” (output) se a “soma das entradas” for maior que um determinado “valor” limiar (threshold) previamente conhecido do neurônio.

Dendritos = canais de recepção das “entradas” Axônio = canal de transmissão da “saída”

Sinapses = Junções dos axônios de vários neurônios com os dendritos de um determinado neurônio

 Na rede neuronal, algumas sinapses são “bons conctores”, enquanto que outras sinapses são “maus conectores”

 Conclusão: O modelo básico de neurônio artificial deve registrar estas importantes características do neurônio biológico.

O Modelo de McCulloch & Pitts (1943)

 A saída (output) do neurônio será ou “on” ou “off”.

 A saída (output) depende apenas das entradas (inputs).

 As sinapses serão representadas por pesos: assim, uma sinapse que é “bom conector” terá um peso maior, enquanto que uma sinapse que é um “mau conector” terá um peso menor

(15)
(16)

Modelando o Neurônio Básico (McCulloch & Pitts, 1943)

Formulação matemática

 Supondo que haja n “inputs”, então existem n pesos associados às

n entradas.

 O neurônio calcula a soma ponderada das n entradas: Soma = Peso do “input” 1 * “input 1” +

Peso do “input” 2 * “input 2” +

Peso do “input” 3 * “input 3” + .... + Peso do “input” n * “input n”

= w1 x1 + w2 x2 + w3 x3 + .... + wn xn =

 A soma é comparada com um certo valor do neurônio, o “valor limiar” (threshold value). Se a soma é maior que o valor “threshold”, então a saída do neurônio é 1. Se a soma do neurônio é menor que o valor “threshold”, então a saída do neurônio é 0.

(17)

Modelando o Neurônio Básico (McCulloch & Pitts, 1943)

Formulação matemática – Adaptação do valor “threshold”

 Uma alternativa para a formulação matemática do neurônio é representar o “valor limiar” (threshold value) do neurônio como a entrada 0 (“input” 0) sempre com valor fixo e igual a 1, e o peso do “input” 0 assumir sempre o valor -θθθθ, onde θθθθ é o valor “threshold” do neurônio

 Desta forma, uma entrada com n inputs será representada por n+1 “inputs”, onde a “input” 0 representará o valor “threshold” do neurônio

(18)

Modelando o Neurônio Básico (McCulloch & Pitts, 1943)

 Deve-se ressaltar que o modelo de neurônio de McCulloch & Pitts

é de fato um modelo, e não uma cópia de um neurônio biológico real.

 Frank Rosemblatt denominou este modelo de neurônio de “perceptron”, em 1962. Em seu livro “Principles of Neurodynamics”, ele descreve os perceptrons como redes simplificadas nas quais certas propriedades do sistema nervoso real (biológico) são exageradas, enquanto outras são ignoradas. Cita ainda que os perceptrons não são cópias detalhadas de qualquer sistema nervoso real.

Aprendizado dos Perceptrons

 Conectar perceptrons permite produzir “redes” que podem reconhecer/aprender coisas. Precisamos contudo treinar a “rede” para que ela possa reconhecer alguma coisa.

 Devemos procurar aplicar a mais simples regra possível de aprendizagem de modo a manter o controle da “rede de perceptrons” no sentido de entender seu esquema de reconhecimento de padrões.

 Com relação ao processo de aprendizagem, em geral, “bom

comportamento” é incentivado, enquanto que “mau

(19)

Aprendizado dos Perceptrons

 A estratégia de aprendizado de um perccptron ocorre pelo seu “auto-aprendizado” a partir de seus próprios erros:

 Se o perceptron produz uma saída (output) incorreto, desejamos reduzir as chances desta situação ocorrer novamente.

 Se o perceptron produz uma saída correta, nada é necessário fazer.

Exemplo de Aprendizado

 Suponha que desejemos ter um perceptron capaz de distinguir entre duas classes de objetos: classe A e classe B. A e B poderiam ser, por exemplo, objetos pesados X leves, altos X baixos, de cor clara X de cor escura, etc...

 Para exemplificar, vamos supor que os objetos da classe A sejam letras “A” escritas à mão livre num espaço de 32 X 32 pixels (de cor ou preta ou branca), e os objetos da classe B sejam letras “B” escritas à mão livre num espaço de 32 X 32 pixels (de cor ou preta ou branca).

(20)

Aprendizado dos Perceptrons

Exemplo de Aprendizado

 No exemplo, o perceptron terá 32 x 32 = 1024 “inputs”, um para cada um dos pixels que compõe as imagens de letras A e B.

 Vamos definir previamente que o perceptron deve dar como resposta o valor 1 se o padrão de entrada for um “A” e deve dar como resposta o valor 0 se o padrão de entrada for um “B”.

 Inicialmente, os 1024 pesos (“sinapses”) de cada uma das 1024 “inputs” são gerados aleatoreamente, assim como o “threshold” do perceptron. Neste momento, o perceptron não sabe distinguir objetos entre classe A e classe B.

 Apresenta-se um padrão ao perceptron: se for apresentado um “A”, o perceptron fará a soma ponderada

Σ

X.W que será comparada ao valor “threshold” θ. Se a soma exceder θ, o perceptron apresenta “output” 1, que é o valor de fato esperado para um padrão de “A”. Porém, se o “output” é 0, isto é um erro, e o perceptron deve então se “auto-ajustar” para produzir um “output” 1. Como fazer isto ? Neste exemplo, deve-se tentar aumentar os pesos a fim de forçar a soma ponderada ultrapassar o valor “threshold” θ.

(21)

Aprendizado dos Perceptrons

Exemplo de Aprendizado

 Temos então a diretriz geral da regra para treinar o perceptron fazendo com que o mesmo aprenda:

 Ao apresentar um padrão de “A” para o perceptron e o mesmo responder 0 (indicando “B”) devemos aumentar os pesos para forçar o perceptron a responder 1.

 Ao apresentar um padrão de “B” para o perceptron e o mesmo responder 1 (indicando “A”) devemos diminuir os pesos para forçar o perceptron a responder 0.

 Esta “regra de aprendizagem” (ou “regra de treinamento”) é uma variante da regra proposta em 1949 por Donald Hebb e, por isso, é conhecida como Aprendizagem Hebbiana

 Uma vez que o aprendizado é “guiado” para aquilo que queremos que o perceptron responda, dizemos então que temos um processo de aprendizado supervisionado (supervised learning)

(22)

O Algoritmo Básico de Aprendizado dos Perceptrons

1. Inicializar os pesos (“sinapses”) e o valor “threshold”:

• Seja

w

k(t), (0 ≤ k ≤ n) os pesos do padrão k no tempo t, e θ

o valor “threshold” do neurônio.

• Faça

w

0 = -θ e x0 = 1 sempre !!

• Inicialize

w

k(0) para pequenos valores randômicos,

inicializando assim todos os pesos e valor “threshold” 2. Apresente um padrão de entrada e a saída desejada d(t):

• Apresente “input” x0 , x1 , x2 , x3 , .... , xn e “output” d(t), que terá valor 0 ou 1

3. Calcular “output” produzido pelo perceptron y(t) :

y(t) = 1 se S > 0 y(t) = 0 se S < 0

4. Adaptar os pesos do perceptron:

Se y(t) = d(t), está correto então:

w

k(t+1) =

w

k(t) senão:

Se y(t) = 0 e d(t) = 1, então:

w

k(t+1) =

w

k(t) +

x

k(t)

(23)

Algoritmo: Aprendizado dos Perceptrons - Modificações

 Proposta de alteração 1: introduzir um fator multiplicativo ηηηη tal

que 0 < ηηηη ≤ 1 a fim de desacelerar o processo de adaptação de pesos:

4. Adaptar os pesos do perceptron – com fator ηηηη

Se y(t) = d(t), está correto então:

w

k(t+1) =

w

k(t) senão:

Se y(t) = 0 e d(t) = 1, então:

w

k(t+1) =

w

k(t) + ηηηη

x

k(t)

(24)

Algoritmo: Aprendizado dos Perceptrons - Modificações

 Proposta de alteração 2 (Widrow & Hoff):

 Efetuar um mudança “intensa” nos pesos quando a soma ponderada

Σ

X.W está “muito longe” do valor “output” desejado

 Efetuar um mudança “suave” nos pesos quando a soma ponderada

Σ

X.W está “muito perto” do valor “output” desejado

Regra-Delta Widrow-Hoff

 A diferença entre o valor desejado e o valor obtido é chamada de

erro

 O ajuste de pesos ocorre de forma proporcional ao “tamanho” do

erro

= d(t) - y(t)

= 0 se d(t) = y(t)

= +1 se d(t) = 1 e y(t) = 0

(25)

Algoritmo: Aprendizado dos Perceptrons - Modificações

 Proposta de alteração 2 (Widrow & Hoff):

Regra-Delta Widrow-Hoff

4. Adaptar os pesos do perceptron – Regra Delta Widrow-Hoff

= d(t) - y(t)

wk(t+1) = wk(t) + ηηηη

xk(t) onde 0 < ηηηη ≤ 1

 Quando o algoritmo de treinamento de perceptron utilizar a Regra-Delta Widrow-Hoff, o perceptron é chamado ADALINE (adaptative linear neurons)

 Quando os muitos perceptrons ADALINE são interconectados chamamos a “rede de perceptrons” de MADALINE (multiple

(26)

Perceptrons – uma perspectiva vetorial

 Se representarmos as n entradas (“inputs”) do padrão e a “input” 0 (que sempre vale 1) do “threshold” num vetor X, podemos encarar o algoritmo de aprendizagem dos perceptrons de uma forma vetorial: X = (x0, x1, x2, ..., xn)

 Ao encarar o algoritmo de aprendizagem dos perceptrons forma vetorial, os pesos (“sinapses”) serão também representados de forma vetorial (obs: o peso w0 sempre será igual a -θ, o valor “threshold” do neurônio): W = (w0, w1, w2, ..., wn)

 A saída (“output”) do perceptron será sempre ou 0 ou 1 de modo a classificar duas classes distintas de padrões, digamos classe A e classe B.

 Sob o ponto de vista vetorial, isto significa que o perceptron irá tentar “descobrir”, através do algoritmo de aprendizagem, uma “linha divisória” que separa os padrões da classe A dos padrões da classe B.

 Se a dimensão dos padrões de entrada é n = 1 ou n = 2, então a “linha divisória” será uma reta.

 Se a dimensão dos padrões de entrada é n = 3, então a “linha

divisória” será um plano.

 Se a dimensão dos padrões de entrada é n > 3, então a “linha

(27)

Perceptrons – uma perspectiva vetorial

Exemplo 1 - Suponha a classificação de pessoas como aptas

ou não aptas para jogar basquete. Suponha que a classificação

se baseia apenas no peso e na altura das pessoas. Temos

então:

Entradas (“input”): (1) peso (2) altura ⇒ dimensão do padrão: n = 2

Classificação: “Classe A” : pessoa apta

“Classe B” : pessoa não apta

(28)

Perceptrons – uma perspectiva vetorial

Exemplo 2 - Suponha um jogo de dados onde o jogador

lança três distintos dados, A, B e C, e ganha o jogo se e

somente se os três dados lançados apresentarem número

menor que 4. Caso contrário o jogador perde o jogo. Então:

Entradas (“input”): (1) Número do Dado A (2) Número do Dado B (3) Número do Dado C ⇒ dimensão do padrão:

n = 3

Classificação: “Classe A” : Jogador Ganha o Jogo

“Classe B” : Jogador Perde o Jogo

Saída (“output”): 1 para Ganha o Jogo e 0 para Perde o Jogo

Neste caso de n = 3, o perceptron tentará “construir” o plano que é a “linha divisória” dos padrões Classe A e Classe B.

(29)

Perceptrons – uma perspectiva vetorial

Exemplo 3 - Vamos supor que os padrões a serem

reconhecidos pelo perceptron sejam letras “A” escritas à mão

livre num espaço de 32 X 32 pixels (de cor ou preta ou

branca), e letras “B” escritas à mão livre num espaço de 32 X

32 pixels (de cor ou preta ou branca). Temos então:

Entradas (“input”): (1) Cor do pixel 1 da matriz de 32 X 32 pixels (2) Cor do pixel 2 da matriz de 32 X 32 pixels (3) Cor do pixel 3 da matriz de 32 X 32 pixels ... ....

(1024) Cor do pixel 1024 da matriz de 32 X 32 pixels

dimensão do padrão: n = 1024

Classificação: “Classe A” : letras A

“Classe B” : letras B

(30)

Perceptrons – uma perspectiva vetorial



Sintetizando:

 O perceptron tenta, através do ajuste dos valores do vetor de pesos W via algoritmo de aprendizagem, gerar a “linha divisória” que classifica padrões em duas classes distintas (denominadas aqui genéricamente de Classe A e Classe B)

No exemplo acima, o perceptron parte de uma “linha divisória” inicial gerada aleatoriamente (linha 0) e, progressivamente ao ser “treinado” tem seu vetor de pesos ajustado até conseguir gerar a verdadeira “linha divisória” que separa os padrões do tipo Classe A e do tipo Classe B. No exemplo, a “linha divisória” 30 já classifica os padrões, porém a continuação do algoritmo de treinamento permite a obtenção da “linha divisória” 35.

(31)

Perceptrons – Limitação

 É possível provar matematicamente que o perceptron é capaz de “descobrir” via algoritmo de aprendizagem (Regra Delta – Widrow-Hoff) a “linha divisória” entre dois padrões distintos caso essa “linha divisória” exista !

 Existem porém situações em que as classes de padrões não são “linearmente separáveis”. Neste caso o perceptron falha ao tentar distinguir os padrões das (genéricas) Classe A e Classe B.

 Em 1969 Minsky & Pappert em seu livro Perceptrons apresentaram um exemplo de incapacidade de reconhecimento dos perceptrons: O problema do OU-Exclusivo (XOR problem)

(32)

Perceptrons – Limitação

Problema do OU-Exclusivo (XOR problem)

 Vamos exemplificar o problema do OU-exclusivo (XOR problem)

através da seguinte situação:

 Suponha um jogo de moedas onde o jogador lança duas moedas distintas, moeda A e moeda B e ganha o jogo se e somente se uma única moeda (ou a moeda A ou a moeda B) apresentar cara. Caso contrário o jogador perde o jogo. Então:

Entradas (“input”)

Moeda A: Cara (1) ou Coroa(0) Moeda B: Cara (1) ou Coroa(0)

Classificação “Classe A” : Ganha o Jogo “Classe B” : Perde o Jogo

 Não existe “linha divisória” para o Jogo. O perceptron é incapaz de reconhecer o padrão de ganhador e o padrão de perdedor deste jogo !

(33)

Perceptron Multicamada (Multilayer perceptron)

 Minsky & Papert (1969) em seu livro Perceptrons apresentaram a limitação do perceptron com o problema do OU-exclusivo (XOR

problem)

 A “área” de redes neurais sofreu um grande impacto então e somente em 1986 com a publicação do livro Parallel Distributed

Processing dos autores McClelland & Rumelhart o tema das redes

neurais voltou a despertar interesse.

 McClelland & Rumelhart (1986) apresentaram o modelo de perceptrons multicamadas (multilayer perceptrons) visando superar a limitação do perceptron (com relação ao XOR problem)

 Werbos (1974) e Parker (1982) mostraram ter apresentado trabalhos semelhantes ao de McClelland & Rumelhart (1986), porém é atribuído a estes últimos o mérito do “renascimento” das redes neurais.

(34)

Alterando o modelo de perceptron – Tentativa 1

 Para o problema do OU-exclusivo (XOR problem) pode-se tentar utilizar mais de um perceptron, cada um com o objetivo específico de identificar pequenos “pedaços” “linearmente separáveis” dos padrões e combinar as saídas destes perceptrons:

 À primeira vista parece que a proposta funciona, porém, ao se analisar mais detalhadamente ver-se-á que não funciona:

 O problema deve-se ao fato de cada neurônio receber “inputs” ou 0 ou 1 e assim, o neurônio receptor não “conhece” os valores processados pelos neurônios anteriores que o “alimentaram”.

 Aprendizagem consiste em “calcular” os pesos (“intensidades”) das conexões sinápticas dos neurônios e a intensidade 0 ou 1 recebida pelo neurônio impossibilita sua adaptação sináptica.

(35)

O problema do “output” ou 0 ou 1 dos neurônios



O “output” do neurônio é função da soma ponderada de

seus “inputs”: Quando esta soma é maior que o “threshold”

do neurônio, o “output” é 1. Caso contrário, o “output” é 0.

 Para que o “output” represente melhor a “intensidade” da soma ponderada em relação ao “threshold” pode-se utilizar não a “função degrau”, mas alguma função com alguma “declividade suave”

(36)

Perceptron Multicamada (Multilayer perceptron)

 O modelo perceptron multicamada apresenta no mínimo 2 camadas: camada de entrada (input layer) e camada de saída (output layer). Se a topologia da rede utilizar mais camadas, cada uma delas é denominada camada escondida (hidden layer)

 Além disso, o “output” de cada neurônio, não é mais necessariamente o valor 0 ou o valor 1, mas sim um valor neste intervalo [0,1] calculado por uma função “sigmoidal” (com “declividade suave”)

 E pelo fato de se ter mudado a “função de threshold” de cálculo do “output” do neurônio, é necessário alterar a regra de aprendizagem do perceptron multicamada.

(37)

Aprendizado do Perceptron Multicamada

 A regra de aprendizagem para o perceptron multicamada é a chamada regra delta generalizada (generalized delta rule) ou regra da retropropagação (backpropagation rule) proposta em 1986 por Rumelhart, McClelland e Willians

 Lembre-se que aprendizagem é ajuste de pesos (“sinapses”) da rede neural através do seu treinamento via apresentação dos padrões de interesse.

Estratégia de aprendizagem

1) Definir uma função erro que represente a diferença entre o “output” efetivamente calculado pelo neurônio e o “output” que é esperado que o neurônio forneça. Ao longo do treinamento, a meta é diminuir continuamente o valor desta função erro.

2) Ao se apresentar algum padrão para a rede, os neurônios da

output layer fornecem seus “outputs” que são ajustados pela

função erro.

3) Como o erro nos neurônios na output layer foi causado “diretamente” pelos neurônios da hidden layer, a “taxa de ajuste”

(38)

Matemática do Aprendizado do Perceptron Multicamada

Definições de símbolos:

Função erro para o padrão p

“output” desejada (alvo – target) para o padrão p no nodo (neurônio) j

“output” efetivamente fornecido para o padrão p pelo nodo (neurônio) j

Peso “sináptico” entre o nodo (neurônio) i e o nodo (neurônio) j

 Vamos definir a seguinte função erro:

(1)

 O “output” de cada nodo (neurônio) j para o padrão p pode ser assim representado:

(39)

Matemática do Aprendizado do Perceptron Multicamada

 O “output” para cada nodo (neurônio) j é calculado por uma

“função sigmoidal” fj que tem como variável independente a

soma ponderada netj. Assim temos:

(3)

 Vamos escrever:

(4)

(40)

Matemática do Aprendizado do Perceptron Multicamada

 Podemos caracterizar a taxa de variação do erro em função da taxa

de mudança dos pesos do nodo (neurônio) j da seguinte forma: (6)

 Assim a igualdade (4) fica:

(7)

 Minimizar o valor do erro Ep significa “ conduzir” a mudança de pesos proporcional a δpj opi ou seja:

(8)

 Precisamos agora saber o valor de δpj para cada um dos nodos

(neurônios) da rede. Sabendo este valor, podemos então minimizar o erro Ep.

(41)

Matemática do Aprendizado do Perceptron Multicamada

 Tomando-se a equação (6) obtemos:

(9)

 Considerando o segundo termo de (9) e a partir de (3) temos:

(10)

 Considerando o primeiro termo de (9). A partir de (1) podemos diferenciar Ep em relação a Opj e obtemos:

(11)

 Assim, para nodos j (neurônios) da output layer temos:

(42)

Matemática do Aprendizado do Perceptron Multicamada

 Para nodos (neurônios) da hidden layer, cujo valor “alvo” não é

conhecido podemos escrever o primeiro termo de (9) assim:

(13) (14)

 Assim, para nodos j (neurônios) da hidden layer temos:

(43)

Matemática do Aprendizado do Perceptron Multicamada

 As equações (12) e (15) representam a taxa de variação da função erro em relação aos pesos na rede, fornecendo um método de redução do erro Ep.

(12)

(15)

 A função erro Ep é proporcional aos erros nos nodos (neurônios) subsequentes de modo que o erro tem que ser calculado

inicialmente para os nodos(neurônios) da output layer (usando (12)) e então ser retropropagado (backpropagation) este “ajuste” para os nodos da camada anterior.

 É a retropropagação do “ajuste” do erro de onde deriva o nome da rede perceptron multicamada como rede backpropagation.

(44)

Matemática do Aprendizado do Perceptron Multicamada



Resta apenas definir a função f usada nas equações (12) e

(15). Esta deve ser uma função sigmoidal continuamente

derivável. Uma função sigmoidal comumente escolhida é a

seguinte:

onde 0 < f(net) < 1 e k é uma constante positiva que controla a “expansão” da função.

 A principal razão de uso desta função deve-se ao fato de sua derivada ser simples sob o ponto de vista matemático. Dado que

(45)

Algoritmo – Aprendizado perceptron multicamada

1. Inicializar os pesos (“sinapses”) e o valor “threshold”:

• Seja

w

k(t), (0 ≤ k ≤ n) os pesos do padrão k no tempo t, e θ

o valor “threshold” do neurônio.

• Faça

w

0 = -θ e x0 = 1 sempre !!

• Inicialize

w

k(0) para pequenos valores randômicos,

inicializando assim todos os pesos e valor “threshold” 2. Apresente um padrão de entrada e a saída desejada :

• Apresente “input” Xp = x0 , x1 , x2 , x3 , .... , xn : n é o

número de nodos (neurônios) da input layer.

Apresente “output” desejado (valor dos neurônios da output

layer): Tp = t1 , t2 , t3 , .... , tm : m é o número de nodos da

output layer.

• Para propósitos de classificação todo elemento de Tp vale 0, exceto um único elemento tk que valerá 1, indicando a classe

a que pertence o padrão de entrada Xp.

(46)

Algoritmo – Aprendizado perceptron multicamada

4. Adaptar os pesos: Partindo da output layer e efetuando

backpropagation

onde wij representa o peso do nodo (neurônio) i para o nodo

(neurônio) j, η é um termo de ganho e δpj o termo do erro para o

padrão p sobre o nodo (neurônio) j.

Para os nodos (neurônios) da output layer:

Para os nodos (neurônios) da hidden layer:

onde o somatório envolve os K nodos (neurônios) da camada anterior ao nodo (neurônio) j.

(47)

Perceptron multicamada e o problema do OU-exclusivo

 Desde que o problema do OU-exclusivo (XOR problem) foi

mostrado como sendo um “barreira” aos perceptrons, tornou-se o paradigma de referência de julgamento de performance de diversos sistemas neurais.

(48)

Perceptron multicamada e o problema do OU-exclusivo

 Uma solução para o problema do OU-exclusivo (XOR problem)

 Como o padrão de entrada neste caso envolve apenas as “inputs” 00, 01, 10 ou 11, é possível utilizar a função degrau f ao invés de uma função sigmoidal.

 Deve-se observar que esta topologia de rede utiliza apenas duas camadas (input layer e output layer)

(49)

Perceptron multicamada e o problema do OU-exclusivo

 Outra solução para o problema do OU-exclusivo (XOR problem)

 Como o padrão de entrada neste caso envolve apenas as “inputs” 00, 01, 10 ou 11, é possível utilizar a função degrau f ao invés de uma função sigmoidal.

(50)

Comportamento de aprendizado do perceptron multicamda

 Conforme apresentado anteriormente, o aprendizado da rede perceptron multicamada baseia-se na minimização da função erro Ep (ou função energia) da rede. Basicamente, Ep representa o

quanto a resposta de saída da rede se difere da resposta desejada de saída da rede.

 Observa-se que a função erro é função dos pesos e “inputs” da rede

 À medida em que a rede for sendo treinada, é possível traçar o gráfico mostrando a variação da função erro Ep.

(51)

Comportamento de aprendizado do perceptron multicamda



Suponha inicialmente um padrão de entrada de dimensão

n = 1 (por exemplo, a nota final do aluno em química):

 Desta forma a função erro Ep está em função de apenas um peso (e

um “input”) advindo do nodo (neurônio) de entrada

 Assim, ao longo do treinamento da rede multicamada Ep irá variar

em função do único peso w1 que ela ajusta via algoritmo

backpropagation (à medida em que se apresentam padrões para o

treinamento). Podemos visualizar esta variação num gráfico bidimensional:

(52)

Comportamento de aprendizado do perceptron multicamda



Suponha agora um padrão de entrada de dimensão n = 2

(por exemplo, os “inputs” binários do OU-exclusivo):

 Desta forma a função erro Ep está em função de dois pesos (e dois

“inputs”) advindo dos nodos (neurônios) de entrada

 Assim, ao longo do treinamento da rede multicamada Ep irá variar em função de dois pesos w1 e w2 que ela ajusta via algoritmo

backpropagation (à medida em que se apresentam padrões para o

treinamento). Podemos visualizar esta variação num gráfico tridimensional:

(53)

Comportamento de aprendizado do perceptron multicamda

 Não podemos visualizar gráficos da função erro para padrões para padrões de dimensão n ≥ 2 pois precisaríamos de no mínimo 4 ou mais eixos de apresentação

 Devemos então tentar visualizar o comportamento da

minimização da função erro Ep em gráficos 3-D, imaginando que

todos os n ≥ 2 pesos que influenciam Ep estão devidamente

(54)

Comportamento de aprendizado do perceptron multicamda

 Outra forma de visualizar a superfície da função erro Ep é imaginá-la uma cama elástica larga inicialmente em repouso num primeiro momento, e em seguida soltar diversas bolas pesadas (de chumbo por exemplo) em diversos pontos da cama elástica. Queremos descobrir o ponto “mais fundo” da cama elástica após soltar todas as bolas sobre a mesma.

 Devemos considerar um espaço vetorial de dimensão n ≥ 1 onde cada um dos n eixos representa um determinado peso w. O problema é descobrir o vetor de pesos W que melhor classifique os padrões desejados.

(55)

Perceptron multicamada no papel de Classificador



Conforme apresentado anteriormente, o

perceptron

“simples” pode não conseguir encontrar a “linha divisória”

que separa dois padrões distintos (Classe A e Classe B),

conforme visto no exemplo do problema do OU-exclusivo.

 Com o perceptron multicamada (multilayer perceptron) foi mostrado que é possível resolver o problema do OU-exclusivo, ou seja encontrar uma “linha divisória” para os padrões Classe A (00, 11) e Classe B (01, 10) em questão. Para isso, foi preciso

(A) Organizar os nodos (neurônios) da rede em camadas

(B) Utilizar uma função “threshold” que não a função degrau (“output” ou 0 ou 1)

(56)

Perceptron multicamada no papel de Classificador

 Considere um nodo I1 (neurônio) que se encontre na input layer de

uma rede neural, “alimentado” pelos n “inputs” do padrão (camada “retina”).

 O nodo I1 “alimentado” pelos n “inputs” é capaz de gerar uma “linha divisória” classificando, digamos, Classe A e Classe B. Suponha, por exemplo, um padrão de dimensão n = 2. Assim a “linha divisória” será uma reta.

(57)

Perceptron multicamada no papel de Classificador



Considere agora que a Input layer possui um segundo nodo

I

2

, capaz de gerar uma “linha divisória” classificando,

digamos, Classe C e Classe D. Supondo ainda um padrão

de dimensão n = 2 temos:

(58)

Perceptron multicamada no papel de Classificador

 Combinando as saídas dos nodos (neurônios) I1 e I2 obtemos a

combinação de duas “linhas divisórias” que geram regiões

convexas ou “envelopes convexos” (convex hulls) abertos ou

fechados.

 Observação: Uma região é convexa se for possível traçar uma linha reta entre dois pontos quaisquer pertencentes à região sem “sair” da mesma.

(59)

Perceptron multicamada no papel de Classificador

 Se aumentarmos a dimensão n do padrão de entrada, ou seja, se

inserirmos mais nodos (neurônios) na input layer obteremos mais e mais cantos de uma figura (região de classificação !!) sempre

convexa.

• 2 neurônios →→→→ 2 “linhas divisórias” →→→→ 4 regiões convexas

• 3 neurônios →→→→ 3 “linhas divisórias” →→→→ 7 regiões convexas

• 4 neurônios →→→→ 4 “linhas divisórias” →→→→ 11 regiões convexas

 Resumindo: Quando a topologia da rede neural tem a camada da “retina”, a input layer e a output layer, consegue-se apenas classificar padrões que se enquadrem em regiões convexas.

(60)

Perceptron multicamada no papel de Classificador

 Na maioria dos casos as regiões de classificação são não convexas. Como a rede neural irá então efetuar a a classificação ?

 Ao acrescentarmos mais uma camada de neurônios (hidden layer) à rede neural, esta passa a ter as seguintes camadas:

“retina” → input layer hidden layer output layer

 Aí sim, a rede neural será capaz de classificar padrões que se situam em regiões não convexas.

 Isto porquê cada neurônio da hidden layer é capaz de identificar, como “linha divisória”, uma região convexa, e a combinação de diversas regiões convexas (provenientes dos diversos neurônios da

(61)

Perceptron multicamada no papel de Classificador

 Três camadas de unidades de perceptrons (input layer, hidden

layer e output layer) permitem formar regiões não convexas das

mais variadas e diversas formas, permitindo então a tarefa de classificação de padrões.

 A complexidade dos “formatos” das regiões não convexas é limitada apenas pela quantidade de neurônios presentes na topologia da rede e sua distribuição pelas camadas.

(62)

Perceptron multicamada no papel de Classificador

 A literatura sobre redes neurais apresenta alguma inconsistência quando tenta descrever a topologia das redes neurais com respeito ao número de camadas da rede e seu potencial de reconhecimento.

 Para a situação anteriormente apresentada, alguns autores considerariam uma rede neural com 4 camadas e não uma rede neural de 3 camadas.

 Vamos então aqui definir um critério de contagem do número de camadas da rede neural.

• Critério: Considere como camada de uma rede neural, aquela que é “alimentada” por conexões que apresentam pesos.

 Temos então 3 camadas:

1) da camada “retina” para input layer 2) da camada input layer para hidden layer 3) da camada hidden layer para output layer.

 E assim é possível implementar um classficador, qualquer que seja a complexidade dos padrões a serem classificados.

(63)

Perceptron multicamada no papel de Classificador

(64)

Perceptron multicamada no papel de Classificador

Referências

Documentos relacionados

Na verificação da viabilidade dos grãos, fo - ram usadas, lâminas preparadas para es- timativa do número de grãos/flor sendo amostrados 50 grãos por lâmina, totali- zando 500

[...] A infância superada se expressa em memorialismo, a não superada em ficção (ou em poesia, ou em qualquer outra forma de arte cujos conteúdos possam ser

A adoção da Lei n.º 7/2008, de 15 de fevereiro, que estabelece as bases do ordenamento e da gestão sustentável dos recursos aquícolas das águas interiores e define os

Vascular access for chronic hemodialysis using modified bovinc arterial graft artcriovenous fistula.. llemodia1ysis: asuccess- fu1 therapy for chronic

Portanto, diante de tudo que foi apresentado, para obter uma melhor análise sobre a influência da dependência financeira dos agentes militares sobre os gastos e o grau de

Como se sabe, o foco fechado na esfera dos “homens livres pobres” deixa de fora do roman- ce as duas camadas principais da sociedade, entre as quais se estabeleciam as

Apesar da existência do projeto desde 2004 e da inserção da ação como área de atuação do Mafra em Forma da SMS - programa institucionalizado por meio de lei - o desafio atual

O desenho e a tabela da página 81 dão uma série de medidas para vedações estáticas com O’Rings (cuja configuração se assemelha à aplicação em hastes onde não haja