59
1 R R E E D D E E S S N N E E U U R R A A I I S S A A R R T T I I F F I I C C I I A A I I S S MARIA INÊS VASCONCELLOS FURTADO

Apostila Redes Neurais

Embed Size (px)

DESCRIPTION

Apostila contendo os principais tipos de redes neurais e suas descrições

Citation preview

  • 1

    RRREEEDDDEEESSS NNNEEEUUURRRAAAIIISSS

    AAARRRTTTIIIFFFIIICCCIIIAAAIIISSS

    MARIA INS VASCONCELLOS FURTADO

  • 2

    INTRODUO A REDES NEURAIS 3

    1.1 - HISTRICO DE REDES NEURAIS 3 1.2 APLICAES 4 1.3 - INSPIRAO BIOLGICA 5 1.4 O MODELO DE UM NEURNIO ARTIFICIAL 6 1.5 TIPOS DE FUNO DE ATIVAO 8

    ARQUITETURAS E APRENDIZADOS 11

    2.1 INTRODUO 11 2.2 - PRINCIPAIS ARQUITETURAS DE REDES NEURAIS 11 2.3 TIPOS DE APRENDIZADO 13

    REGRA DE HEBB 16

    3.1 INTRODUO 16 3.2 ALGORITMO DE HEBB 16 3.3 EXERCCIOS PROPOSTOS 21

    REDES PERCEPTRON 22

    4.1 SEPARABILIDADE LINEAR 22 4.2 REDES PERCEPTRONS 23 4.3 ALGORITMO DE TREINAMENTO DO PERCEPTRON 24 4.4 EXERCCIOS RESOLVIDOS 30 4.5 EXERCCIOS PROPOSTOS 34

    REDES ADALINE 35

    5.1 INTRODUO 35 5.2 ALGORITMO DE TREINAMENTO 36 5.3 APLICAO 37 5.4 EXERCCIOS RESOLVIDOS 41 5.5 EXERCCIOS PROPOSTOS 42

    BACKPROPAGATION 43

    6.1 - CORREO DE PESOS 43 6.2 - ALGORITMO BACKPROPAGATION 45 6.3 - PROBLEMAS DE TREINAMENTO 45

    ANEXO 1 49

    ANEXO 2 49

    ANEXO 3 53

    ANEXO 4 57

    ANEXO 5 58

    ANEXO 6 59

  • 3

    INTRODUO A REDES NEURAIS

    1.1 - Histrico de Redes Neurais

    As primeiras informaes mencionadas sobre a neuro computao datam de 1943, em artigos de

    McCulloch e Pitts, em que sugeriam a construo de uma mquina baseada ou inspirada no

    crebro humano.

    Muitos outros artigos e livros surgiram desde ento, porm, por um longo perodo de tempo,

    pouco resultado foi obtido.

    Em 1949 Donald Hebb escreveu um livro intitulado A Organizao do Comportamento. Suas

    idias no eram completamente novas, mas Hebb foi o primeiro a propor uma lei de

    aprendizagem especifica para as sinapses dos neurnios.

    Em 1951 foi construdo primeiro neuro computador, denominado Snark, por Mavin Minsky. O

    Snark operava com sucesso, ajustando seus pesos automaticamente, entretanto, nunca executou

    qualquer funo de processamento de informao interessante, mas serviu de inspirao para as

    idias de estruturas que o sucederam.

    Em 1956 nasceram os dois paradigmas da Inteligncia Artificial, a simblica e o conexionista.

    A Inteligncia Artificial Simblica tenta simular o comportamento inteligente humano

    desconsiderando os mecanismos responsveis por tal, ou seja, no possui uma inspirao

    biolgica.

    A Inteligncia Artificial Conexionista acredita que construindo um sistema que simule a

    estrutura do crebro, este sistema apresentar inteligncia, ser capaz de aprender, assimilar,

    errar e aprender com seus erros.

    Em 1957 e 1958, surgiu o primeiro neuro computador a obter sucesso (Mark I Perceptron)

    criado por Frank Rosenblatt, Charles Wightman e outros. Seu interesse inicial para a criao do

    Perceptron era o reconhecimento de padres.

    Aps Rosenblatt, Bernard Widrow, com a ajuda de alguns estudantes, desenvolveram um novo

    tipo de elemento de processamento de redes neurais chamado de Adaline, equipado com uma

    poderosa lei de aprendizado, que diferente do Perceptron ainda permanece em uso.

    Widrow fundou a primeira companhia de hardware de neurocomputadores e componentes.

    Os anos seguintes foram marcados por um entusiasmo exagerado de muitos pesquisadores, que

    prometiam mquinas to poderosas quanto o crebro humano e que surgiriam em um curto

  • 4

    espao de tempo. Isto tirou quase toda a credibilidade dos estudos desta rea e causou grandes

    aborrecimentos aos tcnicos de outras reas.

    Um perodo de pesquisa silenciosa seguiu-se durante 1967 a 1982, quando poucas pesquisas

    foram publicadas devido aos fatos ocorridos anteriormente. Entretanto, aqueles que

    pesquisavam nesta poca, e todos os que se seguiram no decorrer de treze anos conseguiram

    novamente estabelecer um campo concreto para o renascimento da rea.

    Skurnick, um administrador de programas da DARPA (Defense Advanced Research Projects

    Agency), fundou em 1983 um centro de pesquisas em neuro computao. Este ato no s abriu

    as portas para a neuro computao, como tambm deu DARPA o status de uma das lderes

    mundiais em se tratando de "moda" tecnolgica.

    John Hopfield, renomado fsico de reputao mundial, se interessou pela neuro computao, e

    incentivou e difundiu os princpios da neuro computao entre importantes cientistas,

    matemticos e tecnlogos altamente qualificados.

    Em 1986 o campo de pesquisa "explodiu" com a publicao do livro "Processamento

    Distribudo Paralelo editado por David Rumelhart e James McClelland.

    Em 1987 ocorreu em So Francisco a primeira conferncia de redes neurais em a IEEE

    International Conference on Neural Networks, e tambm foi formada a International Neural

    Networks Society (INNS).

    Desde 1987, muitas universidades anunciaram a formao de institutos de pesquisa e programas

    de educao em neuro computao.

    1.2 Aplicaes

    Reconhecimento de padres

    Extrao de caractersticas

    Classificao

    Categorizao (Clusterizaes)

    Estimativa e previso

    Otimizao

    Aproximao de funes.

    As redes neurais artificiais so aplicadas resoluo de vrios problemas, a seguir mostramos suas

    principais aplicaes.

  • 5

    1.3 - Inspirao biolgica

    O crebro humano considerado o mais fascinante processador baseado em carbono existente,

    sendo composto por aproximadamente 10 bilhes neurnios.

    Todas as funes e movimentos do organismo esto relacionados ao funcionamento destas

    pequenas clulas. Os neurnios esto conectados uns aos outros atravs de sinapses, e juntos formam

    uma grande rede, chamada REDE NEURAL.

    As sinapses transmitem estmulos atravs de diferentes concentraes de Na+ (Sdio) e K+

    (Potssio), e o resultado disto pode ser estendido por todo o corpo humano. Esta grande rede

    proporciona uma fabulosa capacidade de processamento e armazenamento.

    O sistema nervoso formado por um conjunto extremamente complexo de neurnios. Nos

    neurnios a comunicao realizada atravs de impulsos.

    Rede neural artificial (RNA) uma tentativa de simular o funcionamento das redes neurais

    biolgicas. um modelo formado por componentes interligados que trabalham de maneira paralela e

    distribuda, cada um destes componentes conhecido como neurnio artificial e est fortemente

    baseado no processamento de um neurnio biolgico. A rede robusta, ou seja, se um dos

    componentes parar de funcionar no compromete o funcionamento total. A rede capaz de aprender,

    generalizar e armazenar informaes tal como o crebro humano.

    Figura: Neurnio Biolgico - esquemtico

  • 6

    Figura: Neurnio Biolgico

    Os principais componentes dos neurnios so:

    Os dendritos tm por funo, receber os estmulos transmitidos pelos outros neurnios;

    O corpo de neurnio tambm chamado de soma responsvel por coletar e combinar

    informaes vindas de outros neurnios;

    O axnio constitudo de uma fibra tubular que pode alcanar at alguns metros, e

    responsvel por transmitir os estmulos para outras clulas.

    1.4 O modelo de um neurnio artificial

    Figura: Modelo inicial do Neurnio Artificial

    X2 w1i w2i

    wNi

    Yi :

    X1

    XN

  • 7

    O neurnio artificial formado pelos seguintes componentes:

    Conjunto de entradas X1, X2,..., XN.

    Pesos associados a cada entrada W1, W2,..., WN. Chamamos cada peso de sinapse.

    Um somador para ponderar as respectivas entrada com os pesos associados.

    Uma sada produzida Yi.

    Precisamos, no entanto, modificar a figura anterior, pois apenas o somatrio causaria um estouro no

    valor de sada do neurnio. Para resolver este problema adicionamos uma funo de ativao para

    restringir a amplitude da sada. Acrescentamos ainda um parmetro chamado bias que tem o efeito de

    aumentar ou diminuir a entrada liquida da funo de ativao dependendo se ele positivo ou negativo.

    O esquema modificado est representado na figura a seguir.

    Figura Neurnio com funo de ativao (bias)

    Conjunto de formulas necessrias para definir um neurnio.

    =

    =N

    iiii xwv

    0

    Podemos considerar o bias como um peso de uma entrada X0 que vale +1. Sendo assim

    podemos simplificar as formulas do neurnio.

    i

    N

    iiii bxwv +=

    =1

    De acordo com essa modificao o modelo do neurnio se transforma no esquema da figura a

    seguir.

    X2 w1i w2i

    wNi

    Yi :

    X1

    XN

    (v) vi

    bi

    Yi = (vi)

    Yi = (vi)

  • 8

    Figura Neurnio sem bias explicito

    1.5 Tipos de funo de ativao

    Precisamos de uma funo de ativao que limite o valor de sada do neurnio, portanto, esta

    funo no pode tender ao infinito quando os valores de vi crescem. A seguir apresentamos algumas

    das funes que podem ser usadas como funo de ativao de um neurnio.

    Funo de Limiar

    Funo Rampa

    X1

    b W1i

    wNj

    Yi :

    1

    XN

    (v) vi

    (v) = 1 se v >= 0 0 se v < 0

    (v) = 1 se v >= v se -

  • 9

    Funo sigmoide

    Existem duas condies necessarias para que uma funo matemtica possa ser usada como

    funo de ativao em uma rede neural artificial:

    A funo deve ser continua.

    Os limites da funo quando x tende a infinito devem ser diferentes de infinitos.

    Exemplo 1: Seja a seguinte funo matematica f(x) = 2x, est funo pode ser usada como funo de

    ativao ?

    Resoluo:

    A funo f(x) = 2x satisfaz a primeira condio pois continua, porm no satisfaz a segunda:

    Sendo assim, no pode ser usada como funo de ativao.

    Exemplo 2: Seja a seguinte funo matemtica representada pelo grfico a seguir, est funo pode ser

    usada como funo de ativao ?

    Resoluo:

    (v) = tanh(v)

    (x)

    x 0

    x+

    lim f(x) = + x -

    lim f(x) = -

    f(x

    -2

    2

    x

  • 10

    Sim, a funo pode ser usada como funo de ativao de uma rede neural, pois: 1) A funo continua. 2)

    Exerccios Propostos 1.6.1) Dadas as funes matemticas abaixo, diga qual ou quais podem ser usadas como funo de

    ativao e justifique.

    a) f(x) = 1/x

    b) f(x) = ex

    c) f(x) = x2

    x+ lim f(x) = 2 x -

    lim f(x) = -2

    0

    f(v

    v

    f(x)

    0 x

    f(x)

    0 x

  • 11

    ARQUITETURAS E APRENDIZADOS

    2.1 Introduo

    A rede neural artificial um sistema de neurnios ligado por conexes sinpticas e dividido em

    camadas, geralmente redes neurais com trs camadas resolvem quase todos os tipos de problemas

    existentes, as camadas esto dispostas em:

    Camada de entrada neurnios de entrada recebem os estmulos do meio externo.

    Primeira Camada neurnios internos ou ocultos.

    Segunda Camada neurnios de sada, que se comunicam com o exterior, produzindo o

    resultado esperado.

    2.2 - Principais arquiteturas de redes neurais

    A definio da arquitetura de uma RNA um parametro muito importante na sua consepo,

    extremamente importante escolher bem a arquitetura para resolver determinado problema, visto que, os

    problemas se adaptam as forma das arquiteturas. Para definir uma arquitetura necessrio considerar

    os seguintes parametros:

    Nmero de camadas da rede.

    Quanto ao nmero de camadas da rede podemos ter:

  • 12

    Redes de camada nica s existe um neuronio entre qualquer entrada e qualquer sada.

    Redes de multiplas camadas Existe mais de um neuronio entre alguma entrada e alguma sada.

    Figura: Rede Neural Artificial de 2 camadas com 4 entradas e 2 sadas

    Nmero de neurnios em cada camada.

    O nmero de neurnios em cada camada varia de problema para problema e deve ser

    devidamente analisado em cada caso.

    Tipo de conexo entre os neuronios.

    Os neuronios podem ter conexes de dois tipos:

    Redes feedforward ou aciclica a sada na i-sima camada da rede no pode ser usada como

    entrada de neuronios de camadas inferiores ou igual a i.

    Exemplo: Figuras A, B e C

    Redes feedback ou ciclica a sada na i-sima camada da rede usada como entrada de neuronios

    de camadas inferiores ou igual a i. Exemplo figura D

    Topologia da rede.

    Redes Fracamente conectadas Existem entradas que no esto conectadas a todos os neuronios,

    assim como existem neuronios cuja sada no alimenta todos os neuronios da camada posterior.

    Exemplo figura C

    Redes Fortemente conectadas Todas as entradas esto conectadas a todos os neuronios, assim

    como a sada de todos os neuronios alimenta todos os neuronios da camada posterior. Exemplo

    figura A e B

  • 13

    2.3 Tipos de Aprendizado

    Redes Neurais Artificiais possuem a capacidade de aprender atraves de exemplos e fazer

    interpolaes e extrapolaes do que aprenderam, ou seja, so capazes de generalizar. No processo de

    aprendizado, as conexes so ajustadas para encontrar resultados especficos de acordo com o que se

    pretende ensinar a rede. Atravs de um processo, que chamamos treinamento ou aprendizado, o sistema

    se adapta, ajustando as conexes entre os elementos de processamento.

    Um conjunto de procedimentos bem definidos para adaptar os parmetros de uma rede neural

    para que a mesma possa aprender uma determinada funo, chamado de algoritmo de aprendizado.

    Figura A Figura B

    Figura D

    Figura E

    Figura C

  • 14

    Como era de se esperar no existe apenas um algoritmo de aprendizado, ao contrario existem vrios

    cada qual abordando uma tcnica diferente. Esses algoritmos diferem basicamente pela maneira pela

    qual o ajuste dos pesos realizado.

    A utilizao de uma RNA na soluo de um determinado problema passa inicialmente por uma

    fase de aprendizado, quando a rede extrai informaes relevantes dos padres apresentados a ela e cria

    uma representao prpria para o problema. A etapa de aprendizado consiste de um processo iterativo

    de ajuste dos pesos sinapticos, que ao final do processo guardam o conhecimento que a rede adquiriu.

    Aps a etapa de aprendizado ou treinamento a rede capaz de operar resolvendo o problema

    que lhe foi proposto.

    A arquitetura da rede define, dentre outros parmetros, a que tipo de treinamento a rede ser

    submetida, capacitando-a a resolver o problema. Os algoritmos podem ser divididos em trs classes:

    aprendizado supervisionado, aprendizado no-supervisionado e aprendizado por reforo.

    O aprendizado supervisionado utiliza um agente externo supervisor para indicar rede a

    resposta desejada para o padro de entrada. Atravs do erro, que a diferena entre os valores

    esperados e os valores obtidos, o agente externo ajusta os parmetros da rede. Este ajuste feito at que

    o erro seja minimizado, passando a no existir mais ou atingindo um valor considerado satisfatrio. A

    partir deste momento, diz-se que a rede adquiriu conhecimento e apresenta-se treinada.

    Figura Diagrama de Blocos do Treinamento Supervisionado

    O aprendizado no-supervisionado no tem uma sada-alvo, sendo a prpria rede dever ser

    capaz de extrair as caractersticas relevantes dos impulsos, classificando-os em grupos pr-existentes.

    Meio Supervisor

    Sistema de Aprendizado

    Sinal de Erro

    Resposta

    Atual

    Resposta Desejada

    +

    -

  • 15

    Dado um impulso externo, a rede dever ser capaz de, extradas as caractersticas relevantes, agrup-las

    de acordo com as semelhanas em uma classe j criada. Caso nenhuma classe semelhante seja

    encontrada, o sistema dever ento criar uma nova classe para o padro de entrada apresentado.

    Figura Diagrama de Blocos do Treinamento No-Supervisionado

    O Aprendizado por Reforo pode ser considerado uma variante do aprendizado supervisionado,

    no qual no se dispe de respostas corretas, mas pode-se saber se as respostas que a rede produziu so

    corretas ou no.

    Neste algoritmo, um crtico ir observar o funcionamento do sistema. Caso as respostas a

    determinados impulsos sejam satisfatrias, deve-se reforar as conexes que levam a estas respostas e,

    caso contrrio, estas conexes devem ter um menor peso.

    um mtodo baseado em tentativa e erro, pois os ajustes dos pesos a serem tomados iro

    depender unicamente das respostas produzidas pelo sistema durante o treinamento. O que o diferencia

    do treinamento supervisionado que o supervisor sabe exatamente como ajustar os pesos no caso de

    erro. Este tipo de treinamento representado em um diagrama de blocos a seguir.

    Figura Diagrama de Blocos do Treinamento por Reforo

    Meio Sistema de Aprendizado

    Vetor descrevendo o estado do meio

    Crtico

    Sistema de Aprendizado Aes

    Reforo Primrio

    Meio

    Heurstica de Reforo

    Vetor de Entrada

  • 16

    REGRA DE HEBB

    3.1 Introduo

    Os resultados obtidos por Hebb motivaram os primeiros mtodos de aprendizagem em RNA. A

    idia bsica consiste no fato de que, se um neurnio biolgico recebe uma entrada de outro neurnio e

    ambos se encontram altamente ativados, ento, a ligao entre eles reforada. Aplicando-se esta

    observao ao esquema de RNA poderamos dizer que se uma unidade i recebe uma entrada de outra

    unidade j altamente ativada, ento, a importncia desta conexo deve ser aumentada, isto , o valor do

    peso entre as unidades deve ser acrescido. A maneira mais simples de se representar matematicamente

    esta relao representada pela equao abaixo:

    Wij(novo) = Wij(antigo) + YiYj (equao 3.1)

    3.2 Algoritmo de Hebb

    Vamos aplicar o algoritmo de aprendizado de Hebb para treinar uma rede neural que simule o

    comportamento da funo lgica and ou (e).

    Utilizaremos a seguinte funo de ativao:

    Entrada 1 Entrada 2 Sada

    1 1 1

    1 0 -1

    0 1 -1

    0 0 -1

    Yi Yj

    Wij j i

    (v)

    v

    1

    -1

    (v) = 1 se v >= 0 -1 se v < 0

  • 17

    Passo 1: Inicializar os pesos das sinapses com zero

    Para cada par entrada sada, ajuste os pesos das sinapses.

    Primeiro par entrada sada.

    X1 X2 Y

    1 1 1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 1*0 + 1*0 + 1*0 = 0

    Y1 = 1

    W11(novo) = W11(antigo) + X1Y1

    W11(novo) = 0 + 1*1 = 1

    W21(novo) = W21(antigo) + X2Y1

    W21(novo) = 0 + 1*1 = 1

    b1(novo) = b1(antigo) + 1*Y1

    b1(novo) = 0 + 1*1 = 1

    W21

    Y1

    W11

    1

    X1

    X2

    b1

    0

    Y

    0

    1

    X1

    X2

    0

    v = xi wi i=0

    N

  • 18

    Segundo par entrada sada.

    X1 X2 Y

    1 0 -1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 1*1 + 0*1 + 1*1 = 2

    Y1 = 1

    W11(novo) = W11(antigo) + X1Y1

    W1(novo) = 1 + 1*1 = 2

    W21(novo) = W21(antigo) + X2Y1

    W2(novo) = 1 + (0)*(1) = 1

    b1(novo) = b1 (antigo) + 1*Y1

    b1(novo) = 1 + 1*(1) = 2

    Terceiro par entrada sada.

    X1 X2 Y

    0 1 -1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 0*2 + 1*1 + 1*2 = 3

    Y1 = 1

    1

    Y

    1

    1

    X1

    X2

    1

    1

    Y

    2

    1

    X1

    X2

    2

  • 19

    W11(novo) = W11(antigo) + X1Y1

    W11(novo) = 2 + 0*(1) = 2

    W21(novo) = W21(antigo) + X2Y1

    W21(novo) = 1 + (1)*( 1) = 2

    b1 (novo) = b1(antigo) + 1*Y1

    b1 (novo) = 2 + 1*1 =3

    Quarto par entrada sada.

    X1 X2 Y

    0 0 -1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 0*2 + 0*2 + 1*3= 3

    Y1 = 1

    W11(novo) = W11(antigo) + X1Y1

    W11(novo) = 2 + (0)*(1) = 2

    W21(novo) = W21(antigo) + X2Y1

    W21(novo) = 2 + (0)*(1) = 2

    b1 (novo) = b1 (antigo) + 1Y1

    b1 (novo) = 3 + 1*( 1) = 4

    2

    Y

    2

    1

    X1

    X2

    3

    2

    Y

    2

    1

    X1

    X2

    4

  • 20

    Aps varias apresentaes do conjunto de treinamento os pesos no se alteram mais a rede

    atinge estabilidade. Cada apresentao do conjunto de treinamento chamada de poca.

    A figura abaixo mostra os pesos finais

    Agora podemos testar a rede e verificar se ela aprendeu corretamente.

    Conjunto de padres da rede

    Quando apresentamos o par X1 = 1 e X2 = 1 a rede deve apresentar na sada o valor de sada 1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 1* 2 + 1* 2 + 1*(-3) = 1 Y1= 1 A rede acertou, produziu o valor de sada 1 como esperado. Quando apresentamos o par X1 = 1 e X2 = 0 a rede deve apresentar na sada o valor de sada -1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 1* 2 + 0* 2 + 1*(-3) = -1 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado. Quando apresentamos o par X1 = 0 e X2 = 1 a rede deve apresentar na sada o valor de sada -1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 0* 2 + 1* 2 + 1*(-3) = -1 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado. Quando apresentamos o par X1 = 0 e X2 = 0 a rede deve apresentar na sada o valor de sada -1.

    Entrada 1 Entrada 2 Sada

    1 1 1

    1 0 -1

    0 1 -1

    0 0 -1

    2

    Y

    2

    1

    X1

    X2

    -3

  • 21

    v1 = X1* w11 + X2* w21 + 1*b1 v1 = 0* 2 + 0* 2 + 1*(-3) = -3 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado.

    3.3 Exerccios Propostos

    3.3.1) Considere o seguinte conjunto de treinamento, construa a rede neural com bias, inicialize os

    pesos e o bias com zero, utilize funo de ativao limiar com igual a zero e treine a utilizando regra

    de Hebb, faa uma poca.

    3.3.2) Repita o exerccio anterior com os mesmos dados utilizando a seguinte funo de ativao: 3.3.3) Considere uma rede neural com um neurnio treine esta rede para simular o comportamento da

    funo OR ou OU utilizando a regra de Hebb, funo de ativao limiar com =1 , utilize duas

    pocas, inicialize os pesos e o bias com 0.1.

    X1 X2 D 1 1 1 1 -1 1 -1 1 1 -1 -1 -1

    3.3.3) Considere os seguintes parmetros de uma rede neural. Construa a topologia da rede e

    calcule as sadas:

    Matriz de pesos W=

    Vetor de bias b=[-0.5, 0.1, -0.4]

    Vetor de entradas X=[1, 0.5]

    X1 X2 Sada 1 1 1 1 -1 -1 -1 1 1 -1 -1 1

    1

    -1

    f(v)

    1 v

    -1

    f(v) = 1 se v >=1 v se 1 < v

  • 22

    REDES PERCEPTRON

    4.1 Separabilidade Linear

    Um problema pode ser dito linearmente separvel se possvel representar o problema num

    plano bi-dimensional e traar uma reta separando as classes do problema.

    Exemplo: Voltamos ao exemplo da porta lgica and, cujos padres so descritos a seguir:

    X1 X2 Y

    1 1 1

    1 0 0

    0 1 0

    0 0 0

    Conseguimos separar atravs de uma reta as duas classes do problema. Toda vez que um

    problema for considerado linearmente separvel pode ser resolvido por redes neurais de uma nica

    camada e especialmente por perceptrons.

    Vejamos agora um exemplo de um tipo de problema que no linearmente separvel. Vamos

    considerar uma porta lgica XOR ou exclusivo, cujos padres so descritos a seguir:

    X1 X2 Y

    1 1 0

    1 0 1

    0 1 1

    0 0 0

    Neste caso no conseguimos traar uma reta e separar as classes diferentes do problema

  • 23

    4.2 Redes Perceptrons

    Redes do tipo perceptron um tipo de rede simples de uma camada, consiste em um ou mais

    neurnios de sada j conectados s entradas i atravs de pesos Wij. No caso mais simples a rede possui

    um s neurnio k, como indicado na figura abaixo.

    O conjunto de equaes da rede dado por:

    A funo de ativao proposta originalmente por McCullock e Pitts, uma funo limiar:

    Para este caso, o limiar de ativao do neurnio (acima do qual dizemos que o neurnio dispara)

    zero, mas o modelo permite estabelecer um limiar de ativao diferente de zero. A funo limiar se

    modifica.

    vi = xi wij i=0 N

    Yi = (vi)

    W21

    Y1

    W11

    1

    X1

    X2

    b1

    (v) = 1 se v >= 0 0 se v < 0

    (v) = 1 se v >= 0 0 se v < 0

  • 24

    Os neurnios da rede perceptron podem ser empregados para separar em classes distintas os

    padres de entradas. Se a entrada lquida for maior que o limiar, o padro dessa entrada pertence

    classe 1, caso contrrio, pertence classe 0.

    Como exemplo, uma rede neural que simula o comportamento de uma porta lgica and.

    X1 X2 Y

    1 1 1

    1 0 0

    0 1 0

    0 0 0

    A separao entre as duas classes dada pela equao:

    X1w11 + X2w21 + b1 = 0

    Que a equao de uma famlia de retas que podem separar as classes.

    4.3 Algoritmo de treinamento do perceptron

    Esta regra foi proposta por Rosemblatt (1959) e apresenta algumas mudanas em relao regra

    de Hebb. A funo de ativao passou a permitir um limiar diferente de zero. Foi introduzido um

    fator de aprendizado (0 <

  • 25

    1 Inicie aleatoriamente os pesos e bias (= 0, por simplicidade)

    2 Repita

    Para cada padro (entrada e sada desejada) faa

    Calcule as sadas.

    se Y D ento

    Para cada conexo faa

    Wij(novo)= Wij(antigo)+ * Xi * Dj

    at que os pesos no sofram mais alteraes.

    Exemplo:

    Vamos aplicar o algoritmo de aprendizado do Perceptron para treinar uma rede neural que

    simule o comportamento da funo lgica and ou (e).

    Utilizaremos a seguinte funo de ativao, e = 0.2:

    Entrada 1 Entrada 2 Sada

    1 1 1

    1 0 -1

    0 1 -1

    0 0 -1

    Passo 1: Inicializar os pesos das sinapses com zero

    Para cada par entrada sada, ajuste os pesos das sinapses.

    0.2

    (v)

    v

    1

    -1

    (v) = 1 se v >= 0.2 -1 se v < 0.2

    0

    Y

    0

    1

    X1

    X2

    0

  • 26

    Primeiro par entrada sada.

    X1 X2 D

    1 1 1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 0*1 + 0*1 + 0*1 = 0

    Y1 = -1

    D1 = 1

    W11(novo) = W11 (antigo) + * X1* D1

    W11 (novo) = 0 + 1*1*(1) = 1

    W21 (novo) = W21(antigo) + * X2* D1

    W21 (novo) = 0 + 1*1*(1) = 1

    b1(novo) = b1 (antigo) + * 1* D1

    b1(novo) = 0 + 1*1*(1) = 1

    Segundo par entrada sada.

    X1 X2 D

    1 0 -1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 1*1 + 1*0 + 1*1 = 2

    Y1 = 1

    D1 = -1

    W11 (novo) = W11 (antigo) + * X1* D1

    W11 (novo) = 1 + 1*1*(-1) = 0

    1

    Y

    1

    1

    X1

    X2

    1

  • 27

    W21 (novo) = W21 (antigo) + * X2* D1

    W21 (novo) = 1 + 1*0*(-1) = 0

    b1 (novo) = b1 (antigo) + * 1* D1

    b1 (novo) = 1 + 1*1*(-1) = 0

    Terceiro par entrada sada.

    X1 X2 D

    0 1 -1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 0*0 + 1*0 + 1*0 = 0

    Y1 = -1

    D1 = -1

    Y = D No h alterao.

    Quarto par entrada sada.

    X1 X2 D

    0 0 -1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 0*0 + 0*0 + 0*-1 = 0

    Y1 = -1

    D1 = -1

    Y igual a D neste caso na h alterao seguimos para o prximo passo. Cada passada do conjunto de

    treinamento chamada de poca. Acabamos de mostrar a primeira poca.

    0

    Y

    0

    1

    X1

    X2

    0

  • 28

    Segunda poca.

    X1 X2 1 V Y D W1 W2 b

    1 1 1 -1 -1 1 0 0 -1

    1 0 1 1 1 -1 0 1 -1

    0 1 1 0 0 -1 0 0 -2

    0 0 1 -2 -1 -1 0 0 -2

    Terceira poca.

    X1 X2 1 V Y D W1 W2 b

    1 1 1 -2 -1 1 1 1 -1

    1 0 1 0 0 -1 0 1 -2

    0 1 1 -1 -1 -1 0 1 -2

    0 0 1 -2 -1 -1 0 1 -2

    Quarta poca.

    X1 X2 1 V Y D W1 W2 b

    1 1 1 -1 -1 1 1 2 -1

    1 0 1 0 0 -1 0 2 -2

    0 1 1 0 0 -1 0 1 -3

    0 0 1 -3 -1 -1 0 1 -3

    Quinta poca.

    X1 X2 1 V Y D W1 W2 b

    1 1 1 -2 -1 1 1 2 -2

    1 0 1 -1 -1 -1 1 2 -2

    0 1 1 0 0 -1 1 1 -3

    0 0 1 -3 -1 -1 1 1 -3

    Sexta poca.

    X1 X2 1 V Y D W1 W2 b

    1 1 1 -1 -1 1 2 2 -2

    1 0 1 0 0 -1 1 2 -2

    0 1 1 -1 -1 -1 1 2 -3

    0 0 1 -3 -1 -1 1 2 -3

  • 29

    Stima poca.

    X1 X2 1 V Y D W1 W2 b

    1 1 1 0 0 1 2 3 -2

    1 0 1 0 0 -1 1 3 -3

    0 1 1 0 0 -1 1 2 -4

    0 0 1 -4 -1 -1 1 2 -4

    Oitava poca.

    X1 X2 1 V Y D W1 W2 b

    1 1 1 -1 -1 1 2 3 -3

    1 0 1 -1 -1 -1 2 3 -3

    0 1 1 0 0 -1 2 2 -4

    0 0 1 -4 -1 -1 2 2 -4

    Nona poca.

    X1 X2 1 V Y D W1 W2 b

    1 1 1 0 0 1 3 3 -3

    1 0 1 0 0 -1 2 3 -4

    0 1 1 -1 -1 -1 2 3 -4

    0 0 1 -4 -1 -1 2 3 -4

    Dcima poca.

    X1 X2 1 V Y D W1 W2 b

    1 1 1 1 1 1 2 3 -4

    1 0 1 -2 -1 -1 2 3 -4

    0 1 1 -1 -1 -1 2 3 -4

    0 0 1 -4 -1 -1 2 3 -4

    Aps 10 pocas a rede neural se estabilizou, ou seja, seus pesos no sofrem mais alteraes.

    Podemos testar e verificar se a rede aprendeu de fato a reconhecer os padres ensinados.

    Conjunto de padres da rede

  • 30

    Quando apresentamos o par X1 = 1 e X2 = 1 a rede deve apresentar na sada o valor de sada 1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 1* 2 + 1* 3 + 1*(-4) = 1 Y1= 1 A rede acertou, produziu o valor de sada 1 como esperado. Quando apresentamos o par X1 = 1 e X2 = 0 a rede deve apresentar na sada o valor de sada -1. v1= X1* w11 + X2* w21 + 1*b1 v1 = 1* 2 + 0* 3 + 1*(-4) = -2 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado. Quando apresentamos o par X1 = 0 e X2 = 1 a rede deve apresentar na sada o valor de sada -1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 0* 2 + 1* 3 + 1*(-4) = -1 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado. Quando apresentamos o par X1 = 0 e X2 = 0 a rede deve apresentar na sada o valor de sada -1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 0* 2 + 0* 3 + 1*(-4) = -4 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado.

    4.4 Exerccios Resolvidos

    4.4.1) Considere o seguinte conjunto de treinamento.

    a) Esboce o grfico de X1 por X2 e diga se o problema linearmente separvel.

    X1 X2 Sada 1 1 1 1 -1 -1 -1 1 1 -1 -1 1

    Entrada 1 Entrada 2 Sada

    1 1 1

    1 0 -1

    0 1 -1

    0 0 -1

  • 31

    Resoluo:

    Sim, o problema linearmente separvel pois podemos separar as classes atravs de uma famlia de

    retas.

    b) Quantas camadas e quantos neurnios deve ter a rede neural utilizada para reconhecer os dados

    acima?

    Resoluo:

    Uma camada e um neurnio pois o problema linearmente separvel e possui sada binria.

    4.4.2) Considere o conjunto de treinamento abaixo. Treine a rede utilizando o algoritmo do perceptron

    durante uma poca, considere = 0.5, inicialize os pesos e o bias com 0.1, utilize funo de ativao

    limiar com igual a zero.

    X1 X2 Sada 1 1 1 1 -1 -1 -1 1 -1 -1 -1 1

    Resoluo:

    Para cada par entrada sada, ajuste os pesos das sinapses.

    Primeiro par entrada sada.

    X1 X2 D 1 1 1

    1

    -1 (-1,-

    (-1,1) (1,1)

    X1

    X2

    1

    -1

    0.1

    Y

    0.1

    1

    X1

    X2

    0.1

  • 32

    v1 = X1* w11 + X2* w21 + 1*b1 v1 = 0.1*1 + 0.1*1 + 0.1*1 = 0.3 Y1 = 1 D1 = 1 Y1 igual a D1 no h alteraes.

    Segundo par entrada sada.

    X1 X2 D 1 -1 -1

    v1 = X1* w11 + X2* w21 + 1*b1 v1 = 1*0.1+ (-1)*0.1 + 1*0.1 = 0.1 Y1 = 1 D1 = -1 W11(novo) = W11(antigo) + * X1* D1 W11(novo) = 0.1 + 0.5*1*(-1) = -0.4 W21(novo) = W21 (antigo) + * X2* D1 W21 (novo) = 0.1 + 0.5*(-1)*(-1) = 0.6 b1(novo) = b1(antigo) + * 1* d b1(novo) = 0.1 + 0.5*1*(-1) = - 0.4

    Terceiro par entrada sada.

    X1 X2 D -1 1 -1

    v1 = X1* w11 + X2* w21 + 1*b1 v1 = (-1)*(-0.4) + 1*0.6 + 1*(-0.4) = 0.6

    0.1

    Y

    0.1

    1

    X1

    X2

    0.1

    0.6

    Y

    -0.4

    1

    X1

    X2

    -0.4

  • 33

    Y1 = 1 D1 = -1 W11(novo) = W11(antigo) + * X1* D1 W11(novo) = -0.4 + 0.5*(-1)*(-1) = 0.1 W21(novo) = W21(antigo) + * X2* D1 W21(novo) = 0.6 + 0.5*(1)*(-1 ) = 0.1 b1(novo) = b1(antigo) + * 1* D1 b1(novo) = (-0.4) + 0.5*1*(-1)= - 0.9

    Quarto par entrada sada.

    X1 X2 D -1 -1 1

    v1 = X1* w11 + X2* w21 + 1*b1 v1 = (-1)*( 0.1) + (-1)*0.1 + 1*(-0..9) = -1.1 Y1 = -1 D1 = 1 W11(novo) = W11(antigo) + * X1* D1 W11(novo) = 0.1 + 0.5*(-1)*(1) = -0.4 W21(novo) = W21(antigo) + * X2* D1 W21(novo) = 0.1 + 0.5*(-1)*(1) = -0.4 b1(novo) = b1(antigo) + * 1* d1 b1(novo) = (-0.9) + 0.5*1*(1)= - 0.4

    0.1

    Y

    0.1

    1

    X1

    X2

    -0.9

    -0.4

    Y

    -0.4

    1

    X1

    X2

    -0.4

  • 34

    4.5 Exerccios Propostos

    4.5.1) Considere uma rede neural com um neurnio treine esta rede para simular o comportamento da

    funo OR ou OU algoritmo do perceptron, funo de ativao limiar com =1 , utilize duas pocas,

    inicialize os pesos com 0.2. Utilize =0.5

    X1 X2 D 1 1 1 1 -1 1 -1 1 1 -1 -1 -1

    4.5.2) Considere a seguinte rede neural de uma camada, com duas entradas, trs neurnios na camada

    de sada, funo de ativao limiar com = 0.2 e seja os seguintes parmetros:

    Matriz de pesos W= Vetor de bias b=[-0.3, -0.5, 0.8] Vetor de entradas X=[1, 0.4] Vetor de sadas D=[1, 1 , -1] a) Construa a topologia da rede e calcule as sadas Y1, Y2 e Y3. b) Treine a rede durante uma poca com o algoritmo do perceptron. Use = 0.5

    4.5.3) Sabese que os vetores (1, 1, 1, 1) e (1, 1, 1, 1) so membros de uma classe, enquanto os

    vetores (1, 1, 1, 1) e (1, 1, 1, 1) no so. Apresente o treinamento de uma rede de Perceptron para

    classificar os vetores e apresente os resultados obtidos. Utilize funo de ativao limiar com = 1,

    Use = 0.5, treine por duas pocas. Diga se necessrio continuar o treinamento.

    4.5.4) seja o conjunto de treinamento abaixo. Treine uma rede neural com o algoritmo do perceptron,

    funo de ativao limiar com =1 , utilize duas pocas, inicialize os pesos com 0.5. Utilize =0.7.

    Diga se o problema linearmente separvel.

    X1 X2 D 1 1 -1 1 -1 -1 -1 1 -1 -1 -1 1

    0.4 0.4 0.5

    0.7 0.2 0.7

  • 35

    REDES ADALINE

    5.1 Introduo

    O modelo de RNA Adaline, Widrow e Hoff em 1960, inicialmente foi chamado de

    (ADAptative LINear Element) e posteriormente de (ADAptative LInear NEuron). So RNA bem

    simples possuem a arquitetura do neurnio idntica a do Perceptron, tendo como diferencial a regra de

    aprendizado, neste caso chamada de regra delta.

    Na sua forma mais simples formada por apenas um neurnio, com varias entradas uma sada e

    um bias.

    Porm da mesma forma que no Perceptron, a rede pode ter vrios neurnios recebendo as

    mesmas entradas em uma nica camada de sada.

    A funo de ativao utilizada pelas redes Adaline a mesma utilizada pelo perceptron, ou seja,

    uma funo bipolar (1, -1). Podendo ser a funo limiar que conhecemos com ajustvel.

    : :

    Wn

    Y1

    W1

    1

    X1

    Xn

    b1

    Wm1

    W1n

    : :

    Y1 W11 1 X1

    b1

    : :

    Wmn Yn

    n Xm

    bn

    (v) = se v >=

    -1 se v <

  • 36

    Podemos utilizar ainda a seguinte funo de ativao:

    5.2 Algoritmo de Treinamento

    A regra de aprendizado das redes adaline, conhecida por regra delta, o principio bsico

    ajustar os pesos a partir do erro na sada da rede. O erro (tambm chamado custo) para um neurnio

    dado pela seguinte equao:

    Onde Dk a sada desejada (fornecida no padro p de entrada/sada) e Yk a sada realmente

    obtida (fornecida pela rede quando apresentado o padro p). Padro p qualquer membro do conjunto

    de treinamento.

    A regra capaz de atualizar corretamente os pesos a cada iterao, com entradas binrias ou

    contnuas.

    A tendncia do erro a cada apresentao do conjunto de treinamento diminuir at chegar bem

    prximo de zero. Quando trabalhamos com uma rede com mais de um neurnio na primeira camada,

    precisamos calcular o erro na sada da rede e minimiza-lo. Portanto se apenas somarmos os erros de

    cada neurnio i os erro negativos poderiam anular os erro positivos e dar uma falsa estabilizao da

    rede. Para evitar este problema utilizaremos o erro quadrtico, a funo de erro dada a seguir:

    [ ]=

    =N

    iii ydN

    E1

    2

    21

    Onde N o nmero total de neurnios na camada de sada. O fator unicamente para ajuste

    do algoritmo de treinamento. Como o erro E funo da sada da rede Yk, e esta funo dos pesos wi,

    podemos dizer que o erro E funo dos pesos da rede. Ou seja: E = f(w1, w2, ... ,wN).

    Assim, a idia minimizar o erro ajustando os pesos, ou seja, encontrar o mnimo da funo de

    erro. Este mnimo dado pela derivada parcial da funo de erro em relao a cada peso:

    ek = Dk - Yk (equao 5.1)

    f(v) = 1 se v >= v se < v < -1 se v

  • 37

    O gradiente da funo de erro o vetor composto pelas derivadas parciais da funo de erro em relao

    a cada peso e aponta para a direo de crescimento da funo, da mesma forma que a derivada em uma

    funo monovalorada f(x). Assim, a idia variar os pesos de forma a caminhar na direo contrria ao

    gradiente, que a direo de maior diminuio do valor da funo de erro. Ou seja, queremos:

    Onde uma constante de proporcionalidade, tambm chamada de taxa de treinamento.

    Realizando as devidas manipulaes matemticas:

    Wij (novo) = Wij(antigo) + * Xi * (Dj - Yj)

    O algoritmo de treinamento pode ser assim resumido:

    1 - Inicie os pesos e bias com valores aleatrios pequenos

    2 - Repita

    Para cada padro (entrada e sada desejada) faa

    Calcule as sadas Y

    Para cada conexo faa

    Wij(novo) = Wij(antigo) + * Xi * (Dj - Yj)

    b(novo) = b(antigo) + * 1* (Dj - Yj)

    at que um erro pequeno tenha sido atingido

    5.3 Aplicao

    Vamos construir uma rede neural que simule o comportamento de uma porta lgica OR ou OU.

    X1 X2 D

    1 1 1

    1 0 1

    0 1 1

    0 0 -1

    -1 1

    (v)

    v

    1

    -1

    Wi = - E Wi

    vi = xi wi = Yi i=0

    N

    Wi = - Xi(di yi)

  • 38

    Vamos usar a seguinte funo de ativao.

    Passo 1 Iniciar os pesos e o bias com valores aleatrios pequenos

    Vamos inicializar os pesos com 0.1 inclusive o bias vamos usar =0.25

    Primeiro par entrada sada.

    X1 X2 D

    1 1 1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 1*0.1 + 1*0.1 + 1*0.1 = 0.3

    Y1 = 0.3

    D1 = 1

    e1 = D1-Y1 = 1 0.3 = 0.7

    W11(novo) = W11(antigo) + X11* e1

    W11(novo) = 0.1 + 0.25*1*0.7 = 0.28

    W21(novo) = W21(antigo) + X2* e1

    W21(novo) = 0.1 + 0.25*1*0.7 = 0.28

    b1(novo) = b1(antigo) + * 1* e1

    b1(novo) = 0.1 + 0.25*1*0.7 = 0.28

    0.1

    Y

    0.1

    1

    X1

    X2

    0.1

    (v) = 1 se v >= 1

    v se -1

  • 39

    Segundo par entrada sada.

    X1 X2 D

    1 0 1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 1*0.28 + 0*0.28 + 1*0.28 = 0.46

    Y1 = 0.46

    D1 = 1

    e1 = D1-Y1 = 1 0.46= 0.54

    W11(novo) = W11(antigo) + X1* e1

    W11(novo) = 0.28 + 0.25*1*0.54 = 0.41

    W21(novo) = W21(antigo) + X2* e1

    W21(novo) =0.28 + 0.25*0*0.54 = 0.28

    b1(novo) = b1(antigo) + * 1* e1

    b1(novo) =0.28 + 0.25*1*0.54 = 0.41

    Terceiro par entrada sada.

    X1 X2 D

    0 1 1

    0.28

    Y

    0.28

    1

    X1

    X2

    0.28

    0.28

    Y

    0.41

    1

    X1

    X2

    0.41

  • 40

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 0*0.41 + 1*0.28 + 1*0.41 = 0.69

    Y1 = 0.69

    D1 = 1

    e1 = D1-Y1 = 1 0.69= 0.31

    W11(novo) = W11(antigo) + X1* e1

    W11(novo) = 0.41 + 0.25*0*0.31 = 0.41

    W21(novo) = W21(antigo) + X2* e1

    W21(novo) =0.28 + 0.25*1*0.31 = 0.36

    b1(novo) = b1(antigo) + * 1* e1

    b1 (novo) =0.41 + 0.25*1*0.31 = 0.49

    Quarto par entrada sada.

    X1 X2 D

    0 0 -1

    v1 = X1* w11 + X2* w21 + 1*b1

    v1 = 0*0.41 + 0*0.36 + 1*0.49 = 0.49

    Y1 = 0.49

    D1 = 1

    e1 = D1-Y1 = - 1 0.49= -1.49

    W11 (novo) = W11(antigo) + X1* e1

    W11 (novo) = 0.41 + 0.25*0*(-1.49) = 0.04

    0.36

    Y

    0.41

    1

    X1

    X2

    0.49

  • 41

    W21(novo) = W21(antigo) + X2* e1

    W21 novo) =0.36 + 0.25*1*(-1.49) =- 0.09

    b1 (novo) = b1 (antigo) + * 1* e

    b1 (novo) =0.49 + 0.25*1*(-1.49)= 0.12

    5.4 Exerccios Resolvidos

    5.4.1) Considere a seguinte rede neural de uma camada, com duas entradas, trs neurnios na camada

    de sada, funo de ativao limiar com = 0.2 e seja os seguintes parmetros:

    Matriz de pesos W=

    Vetor de bias b=[-0.3, -0.5, 0.8]

    Vetor de entradas X=[1, 0.4]

    Vetor de sadas D=[1, 1 , -1]

    c) Treine a rede durante uma poca utilizando regra delta com a seguinte funo de ativao e = 0.6

    Resoluo:

    e1 = D1 - Y1= 1-1=0 No h alterao

    W11(novo) = 0.3

    e2 = D2 -Y2 = 1-(-1)=2

    W12(novo) = W12(antigo) +

    X1* e2

    W12(novo) = 0.4 + (0.6)*(1)*(2) = 1.6

    e3 = D3 -Y3 = -1-(1)=-2

    W13 (novo) = W13 (antigo) +

    X1* e3

    W13(novo) = 0.5 + (0.6)*(1)*(-2) = -0.7

    e1 = Y1 D1 = 1-1=0 No h alterao W21(novo) = 0.6

    e2 = Y2 D2 = 1-(-1)=2

    W22 (novo) = W22 (antigo) +

    X2* e2

    W22(novo) = 0.2 + (0.6)*(0.4)*(2) = 0.68

    e3 = D3 - Y3 = -1-(1)=-2

    W23 (novo) = W23 (antigo) +

    X2* e3

    W23(novo) = 0.7 + (0.6)*(0.4)*(-2) = 0.22

    -0.09

    Y

    0.04

    1

    X1

    X2

    0.12

    0.3 0.4 0.5

    0.6 0.2 0.7

    f(v) = 1 se v >=0.2

    v se 0.2 < v

  • 42

    5.5 Exerccios Propostos

    5.5.1) Considere uma rede do tipo Adaline treine-a para verificar se uma pessoa est doente ou no,

    para isso considere as seguintes entradas:

    Nome Febre Enjo Dor Doente? Joo S S N S

    Maria N S N N Pedro N S S S Carlos S N S S Joana N N N N

    =1;

    Pesos iniciais 0.2

    pocas = 2

    Aps as duas pocas verifique se necessrio parar o treinamento.

    Faa um grfico da evoluo do erro durante o treinamento.

    5.5.2) Considere os seguintes parmetros da RNA, treine duas pocas, utilizando a regra delta.

    Matriz de pesos W= Vetor de bias b=[0.5, 0.1, 0.4]

    Vetor de entradas X=[1, 0.5]

    Vetor de sadas D = [1, 1, 1]

    =0.3

    Funo de ativao

    5.5.3) Considere a seguinte rede neural de uma camada, com trs entradas, dois neurnios na camada de sada, funo de ativao limiar com = 0.5 e seja os seguintes parmetros:

    Matriz de pesos W= Vetor de bias b=[-0.2, 0.1]

    Vetor de entradas X=[1, 0.5, 0.3]

    Vetor de sadas D=[1, -1]

    =0.7

    Treine duas pocas, utilizando a regra delta.

    0.1 0.4 0.5

    0.2 -0.3 0.6

    f(v) = 1 se v >=0.4

    -1 se v< 0.4

    0.3 0.2 0.4 0.1 0.5 0.5

  • 43

    BACKPROPAGATION Este um algoritmo de treinamento supervisionado para redes do tipo feedforward que tenham

    neurnios com qualquer funo de ativao que seja derivvel. Este algoritmo permite modificar aos

    poucos os valores das sinapses de modo a otimizar a sada da rede.

    Seja uma entrada xk em uma rede, como a representada na figura a seguir - na qual a sinapse wij se

    apresenta em destaque que produz sinais internos vjk e vik e uma sada ky~

    . O caminho glik o

    ganho para pequenos sinais da sada da sinapse wij sada ly~

    .

    .

    .

    .

    .

    .

    .

    wijvj

    ui

    g1ik

    gMik

    k1y

    ~

    kMy

    ~

    k1x

    kNx

    Figura Sinal Feedforward

    Se o erro encontrado for retropropagado (derivado do nome backpropagation), isto , propagado

    a partir da camada de sada at a camada de entrada, ela tentar estabelecer o quanto cada sinapse

    contribuiu para o erro, e este ser usado para ajust-las.

    6.1 - Correo de Pesos

    A correo dos pesos em uma rede feedforward feita atravs de um ciclo onde os pares

    entrada-sada do conjunto de treinamento so apresentados no processo de aprendizagem. Podem ser

    executados das seguintes maneiras principais:

    a) Batelada: Neste processo, todas as P entradas (ou um nmero delas estatisticamente

    representativos) so apresentadas rede; o seu erro mdio calculado e somente aps esse clculo

    dado o passo para a correo dos pesos (equao (1)), o que torna este processo muito lento e, por

    isso, pouco utilizado.

    ijanteriorij

    novoij www += (1)

  • 44

    b) Regra Delta Modificada: Para acelerar o processo anterior, reduz-se o nmero de pares

    entrada-sada usados para tomar uma mdia. No caso extremo, a mdia aproximada pelo valor

    instantneo, e a cada par (xk, yk) a sinapse wij atualizada pela equao (2):

    ki

    kjij v2 w = (2)

    Isto corresponde a tomar o gradiente do erro quadrtico instantneo, para a entrada k, como uma

    estimativa do gradiente do erro mdio quadrtico. Se for suficientemente pequeno o valor de wij

    permanece razoavelmente constante durante vrios passos de treinamento. A figura a seguir representa

    esquematicamente a maneira de se calcular a Regra Delta.

    Figura Regra Delta

    Este processo equivalente ao de Batelada, pois a soma dos diversos wij equivalente ao

    obtido pela mdia dos gradientes do erro quadrtico instantneo. A vantagem deste processo no

    necessitar de memria para extrair a mdia dos dados e o valor de no precisa ser to pequeno. A

    desvantagem que a convergncia pode ser mais oscilatria do que o processo Batelada.

    c) Momento: A atualizao feita passo a passo como na Regra Delta, mas o valor de wij

    uma ponderao entre o calculado no passo atual e os calculados anteriormente, como no

    Batelada - equao (3).

    ( ) calculadoijanteriorijij w 1w w += (3)

  • 45

    Tipicamente = 0,9. Este um processo intermedirio entre a Regra Delta Modificada e a

    Batelada, que tenta reunir a rapidez e simplicidade do primeiro, com a maior estabilidade na

    convergncia do segundo.

    6.2 - Algoritmo Backpropagation

    Dado um conjunto de treinamento com L pares E/S, uma rede de M camadas treinada pelo

    seguinte algoritmo:

    1. As variveis de E/S so normalizadas, fazendo-se uma transformao algbrica para que variem no

    intervalo 1 e 1;

    2. Escolhe-se para inicializar um conjunto de parmetros Wm e bm, para m = 1, ...M Este valor

    geralmente varia entre 0,1 e 0,1;

    3. Escolhe-se uma taxa de aprendizado . Se este valor for grande, a rede pode divergir e, se for

    pequeno, pode tornar o processo muito lento. Um valor tpico fica entre 0,05 e 0,1. Uma

    possibilidade iniciar com uma valor maior no comeo, para acelerar a convergncia, e menor ao

    final, para garantir um ajuste fino;

    4. O nmero de camadas inicialmente definido como 1. Se o problema no chegar a uma soluo,

    opta-se por duas camadas;

    5. Para a camada de sada, considera-se uma regra: se a sada for contnua, usa-se a funo linear, e, se

    a sada for lgica, a funo tangente hiperblica;

    6. Estabelece-se algum critrio de parada, seja este um nmero mximo de iteraes ou que o valor

    esperado atinja um limite mximo;

    7. Calculam-se os erros de sada, da camada de sada e das camadas subseqentes;

    8. Atualizam-se as sinapses mediante o ganho obtido;

    9. Recalcula-se o vetor sinapse e retorna passo 7 at satisfazer o critrio de parada.

    6.3 - Problemas de Treinamento

    1 - Mnimos Locais

    O treinamento um processo de otimizao por gradiente em uma superfcie, como a da figura

    3, apresenta problemas inerentes a este processo. Um dos problemas que, como a funo custo no

    quadrtica, podem ocorrer mnimos locais.

  • 46

    Figura Exemplo de Superfcie de Erro

    Nesta superfcie existem vales com menor profundidade que outros; estes so os mnimos

    locais, e no representam a melhor soluo. Porm o algoritmo backpropagation pode permitir a

    entrada em um mnimo local, no permitindo que se encontre a melhor soluo do problema mapeado

    pela rede. Para resolver este problema, pode-se usar um tipo de treinamento chamado simulated

    annealing, que muito mais complexo e lento que o mtodo convencional do gradiente descendente.

    Mnimos locais

    Mnimo global

    Figura a - Mnimos Locais de uma Funo

    Figura b - Mnimos Locais de uma Funo

    2 - Paralisia

  • 47

    A forma da funo F0(w) depende da funo a minimizar. As superfcies de erros sigmoidais

    podem apresentar regies com pequenos declives, isto , um gradiente de F0 muito pequeno. Na figura,

    se w for deslocado para uma regio de gradiente pequeno, o treinamento fica praticamente paralisado,

    pois como wij proporcional ao gradiente ficar muito pequeno.

    F0 (w)

    Wij

    Figura Funo Erro

    3 - Passo de Treinamento

    dado pelo tamanho do passo () que o algoritmo utiliza para caminhar na superfcie.

    Valores muito pequenos de tornam o treinamento longo e os grandes podem provocar divergncia.

    Para a maioria dos casos, se xk tem suas componentes normalizadas (|xik| 1, i, k) e o maior nmero

    de sinapses que alimenta um neurnio Nmax o, treinamento converge se a equao (4) for verdadeira.

    2maxN

    1 (4)

    Isto considerado um limite muito conservador; tipicamente escolhido no entorno de 0,1.

    Outro problema que, se o erro mnimo no fim do treinamento ainda for elevado os acrscimos

    s sinapses sero grandes e ele oscilar em torno de um valor timo. Isto pode ser contornado iniciando

    o treinamento com um valor de maior e diminu-lo progressivamente.

    4 - Pesos Iniciais

    Os valores iniciais das sinapses devem ser pequenos, para evitar a paralisia j nos primeiros

    passos de treinamento, devido a valores elevados de ui. Portanto, se um neurnio i alimentado por N

    sinapses, o valor inicial de ui pode ser limitado a |ui| 1 se cada sinapse do neurnio i for limitada a

    |wij| 1/N.

  • 48

    5 - Testes realizados pela rede

    Uma RNA realiza o tanto treinamento como o teste com os pares entrada-sada (xk, yk)

    disponveis. Estes so divididos em dois conjuntos: o de treinamento e o de teste. A rede treinada com

    o conjunto de pares de treinamento, e a performance obtida medida com o conjunto de pares de teste.

    Isto necessrio porque um treinamento prolongado demais (overtraining) leva a rede a uma super-

    especializao sobretudo se houver poucos pares entrada-sada disponveis para o.

    A figura apresenta a evoluo tpica do erro medido no conjunto de treinamento (linha

    tracejada) e no conjunto de teste (linha cheia) em funo do nmero de passos de treinamento. claro

    que o treinamento deve ser parado em n = nc.

    F0

    nnc

    TESTE

    TREINAMENTO

    Figura Erro no Treinamento

  • 49

    ANEXO 1

    Viso Geral da Computao Natural

  • 50

    ANEXO 2 RNAs - Desenvolvimento de Aplicaes

    Coleta de dados e separao em conjuntos

    Os dois primeiros passos do processo de desenvolvimento de RNAs so a coleta de dados

    relativos ao problema e a sua separao em um conjunto de treinamento e outro de testes. Esta tarefa

    requer uma anlise cuidadosa sobre o problema para minimizar ambigidades e erros nos dados. Alm

    disso, os dados coletados devem ser significativos e cobrir amplamente o domnio do problema; no

    devem cobrir apenas as operaes normais ou rotineiras, mas tambm as excees e as condies

    limites do domnio do problema.

    Normalmente, os dados coletados so separados em duas categorias: dados de treinamento, que

    sero utilizados para o treinamento da rede e dados de teste, que sero utilizados para verificar sua

    performance sob condies reais de utilizao. Alm dessa diviso, pode-se usar tambm uma

    subdiviso do conjunto de treinamento, criando um conjunto de validao, utilizado para verificar a

    eficincia da rede quanto a sua capacidade de generalizao durante o treinamento.

    Depois de determinados estes conjuntos, eles so, geralmente, colocados em ordem aleatria

    para preveno de tendncias associadas ordem de apresentao dos dados. Alm disso, pode ser

    necessrio pr-processar estes dados, atravs de normalizaes, escalonamentos e converses de

    formato para torn-los mais apropriados sua utilizao na rede.

    Configurao da rede

    O terceiro passo a definio da configurao da rede, que pode ser dividido em trs etapas:

    1) Seleo do paradigma neural apropriado aplicao.

    2) Determinao da topologia da rede a ser utilizada - o nmero de camadas, o nmero de unidades em

    cada camada, etc.

    3) Determinao de parmetros do algoritmo de treinamento e funes de ativao. Este passo tem um

    grande impacto na performance do sistema resultante.

    Existem metodologias, "dicas" e "truques" na conduo destas tarefas - normalmente de forma

    emprica. A definio da configurao de redes neurais ainda considerada uma arte, que requer

    grande experincia dos projetistas.

  • 51

    Treinamento

    O quarto passo o treinamento da rede, seguindo o algoritmo escolhido,ajustando os pesos das

    conexes. importante considerar, nesta fase, alguns aspectos tais como a inicializao da rede, o

    modo de treinamento e o tempo de treinamento.

    Uma boa escolha dos valores iniciais dos pesos da rede pode diminuir o tempo necessrio para o

    treinamento. Normalmente, os valores iniciais dos pesos da rede so nmeros aleatrios uniformemente

    distribudos, em um intervalo definido.

    Quanto ao tempo de treinamento, vrios fatores podem influenciar a sua durao, porm sempre

    ser necessrio utilizar algum critrio de parada. O critrio de parada do algoritmo backpropagation

    no bem definido, sendo geralmente utilizado um nmero mximo de ciclos. Mas, devem ser

    consideradas a taxa de erro mdio por ciclo e sua capacidade de generalizao. Pode ocorrer que em

    um determinado instante do treinamento a generalizao comece a degenerar, causando o problema de

    overtraining, ou seja, a rede se especializa no conjunto de dados do treinamento e perde a capacidade

    de generalizao.

    O treinamento deve ser interrompido quando a rede apresentar uma boa capacidade de

    generalizao e quando a taxa de erro for menor que o erro admissvel. Assim, deve-se encontrar um

    ponto timo de parada com erro mnimo e capacidade de generalizao mxima.

    Teste

  • 52

    O quinto passo o teste da rede. Durante esta fase o conjunto de teste utilizado para

    determinar a performance da rede com dados que no foram previamente utilizados. Esta performance

    medida uma boa indicao de sua performance real.

    Devem ser considerados ainda outros testes como anlise do comportamento da rede utilizando

    entradas especiais e anlise dos pesos atuais da rede, pois se existirem valores muito pequenos, as

    conexes associadas podem ser consideradas insignificantes e assim serem eliminadas (prunning). De

    modo inverso, valores substantivamente maiores que os outros poderiam indicar que houve over-

    training da rede.

    Integrao

    Finalmente, com a rede treinada e avaliada, ela pode ser integrada em um sistema do ambiente

    operacional da aplicao. Para maior eficincia da soluo, este sistema dever conter facilidades de

    utilizao como interface conveniente e facilidades de aquisio de dados atravs de planilhas

    eletrnicas, interfaces com unidades de processamento de sinais, ou arquivos padronizados. Uma boa

    documentao do sistema e o treinamento de usurios so necessrios para o sucesso do mesmo. Alm

    disso, o sistema deve periodicamente monitorar sua performance e fazer a manuteno da rede quando

    for necessrio ou indicar aos projetistas a necessidade de retreinamento. Outras melhorias podero

    ainda ser sugeridas quando os usurios forem se tornando mais familiarizados com o sistema, estas

    sugestes podero ser muito teis em novas verses ou em novos produtos.

  • 53

    ANEXO 3

    Passos do Algoritmo Backpropagation

    11 PPAASSSSOO:: Calcular, no sentido feedforward, o valor que entra em cada neurnio, utilizando a

    frmula:

    =

    +=n

    1jjj

    cij

    ci bxwu

    onde:

    uic a entrada que chega no neurnio i da camada c;

    wij peso sinptico que liga o neurnio i (camada anterior) ao neurnio j (camada

    posterior);

    xj neurnio i (camada anterior);

    bj bias que est interligado ao neurnio j.

    22 PPAASSSSOO:: Calcular o que sai de cada neurnio. A sada depende da funo de ativao:

    Linear vj = uj;

    Tangente hiperblica vj = tgh uj uj;

    Degrau vj = 1, se uj > 0 e vj = 0, se uj

  • 54

    Para neurnio tipo linear e degrau gi = 1

    Para neurnio tipo tgh gi = 1 vi2.

    66 PPAASSSSOO:: Calcular o erro que ser retropropagado, considerando o ganho dos neurnios, usando a

    frmula:

    i = gi * i

    77 PPAASSSSOO:: Retropropagar o erro, utilizando o passo de treinamento , a fim de calcular a variao

    das sinapses:

    wij = 2 vi i

    88 PPAASSSSOO:: Atualizar as sinapses:

    winovo = wi

    anterior + wij

    EXEMPLO:

    Na rede, os neurnios 1, 2, 3 e 5 so do tipo tangente hiperblica e o neurnio 4 do tipo linear.

    O treinamento do tipo Regra Delta com passo = 0,1. apresentado o par X = {0.1, 0.7} e Y = {

    0.2, 1}.

    Quais os novos valores das sinapses aps o primeiro passo de treinamento?

    1

    X1

    X2

    Y1

    Y2

    -.1

    .3 .1

    .2

    -.1

    .1

    .2 .3

    .9

    .1

    .5

    -.1

    .2

    -.1 1.1

    2

    3

    4

    5

  • 55

    =

    +=n

    jjj

    cij

    ci bxwu

    1

    1A CAMADA

    u1 = w11 x1 + w12 x2 + b1 = .2 * .1 + .2 * .7 + 1 * (-.1) = .06

    u2 = .1 * (-.1) + .7 * .3 + 1 * .3 = .5

    u3 = .1 * .1 + .7 * .9 + .1 * 1 = .74

    vj = tgh uj uj

    v1 = .06 v2 = .5 v3 = .74

    2A CAMADA

    u4 = v1 w14 + v2 + w24 + v3 + w34 = .06 * .1 + .5 * (-.1) + .74 * (-.1) = -.078

    u5 = .06 * .5 + .5 * .2 + .74 * 1.1 = .944

    vj = tgh uj uj v4 = -.078 = y1

    vj = uj v5 = .944 = y2

    CLCULO DO ERRO realobtidoi yy = 1 = -0.078 0.2 = - 0.278

    2 = .93 - 1.0 = - .07

    CLCULO DO GANHO

    g1 = 1 (.06)2 = .9964

    g2 = 1-(.5)2 = .75

    g3 = 1-(.74)2 = .4524

    g4 = 1 (linear)

    g5 = 1 - (-.93)2 = .1351

    CALCULO DO i = gi * i

    4 = g4 * 4 = 1 * (-.278) = - .278

    5 = g5 * 2 = .1351 * .07 = .009

    Neurnio linear gi = 1

    Neurnio tgh gi = 1 vi2

  • 56

    1 = g1 * (w14 * 4 + w15 * 5) = .9964 * (.1 *(-.278) + .5 * .009) = -.02322

    2 = g2 * (w24 * 4 + w25 * 5) = .75 * (-.1 * (-.278) + .2 * .009) = .0222

    3 = g3 * (w34 * 4 + w35 * 5) = .4524 * (-.1 * (-.278) + 1.1 * .009) = .01706

    CALCULO DA VARIAO DO PESO wij = 2 * * vi * i

    Obs: Foram escolhidos 3 pesos, aleatoriamente. O clculo deve ser feito para todos os pesos da RNA.

    w14 = 2 * * v1 * 4 = 2 * .1 * (.06) * (-.278) = - .0033

    w15 = 2 * * v1 * 5 = 2 * .1 * (.06) * .009 = .00011

    wx1,3 = 2 * * x1 * 3 = 2 * .1 * 0,1 * (.01706) = .00034

    ATUALIZAO DOS PESOS winovo = wianterior + wij

    w41 = .1 + (-.0033) = .0967

    w51 = .5 + (.00011) = .50011

    w3 x1 = .1 + .00034 = .10034

  • 57

    ANEXO 4

    Evoluo das Principais RNAs

  • 58

    ANEXO 5

    reas de Aplicao de RNAs

    TABELA: REAS DE APLICAO POR TIPOS DE REDES

    APLICAO DIRETA,

    MULTICAMADA (RETROPROPAGAO)

    HOPFIELD

    BOLTZMANN

    SOM

    (KOHONEN)

    Classificao * * * * Processamento de Imagem * Tomada de deciso * * * Otimizao * * * TABELA: REAS DE APLICAO DE ALGUNS TIPOS DE RNAS, PELA SUA ESTRUTURA

    ESTRUTURA UMA CAMADA CONEXES LATERAIS

    MAPA DE VETOR TOPOLGICO

    DUAS CAMADAS DIRETAS E REVERSAS

    MLTIPLAS CAMADAS, DIRETAS

    Tipo de rede Hopfield SOM

    (Kohonen) ART MLPs

    Rede de Boltzmann

    rea de aplicao

    Auto associao

    Auto-associao Hetero-associao

    Otimizao

    Reconhecimento de padres

    Reconhecimento de padres

    Otimizao Otimizao Reconhecimento

    de padres

    Compresso de dados

    Compresso de dados Filtros

  • 59

    ANEXO 6

    (v)

    =

    1

    se v

    >=

    INTRODUO A REDES NEURAIS41.1 - Histrico de Redes Neurais41.2 Aplicaes51.3 - Inspirao biolgica61.4 O modelo1.1 - Histrico de Redes Neurais1.2 Aplicaes1.3 - Inspirao biolgica1.4 O modelo de um neurnio artificial1.5 Tipos de funo de ativao

    Arquiteturas e Aprendizados2.1 Introduo2.2 - Principais arquiteturas de redes neurais2.3 Tipos de Aprendizado

    Regra de Hebb3.1 Introduo3.2 Algoritmo de Hebb3.3 Exerccios Propostos

    Redes Perceptron4.1 Separabilidade Linear4.2 Redes Perceptrons4.3 Algoritmo de treinamento do perceptron4.4 Exerccios Resolvidos4.5 Exerccios Propostos

    Redes Adaline5.1 Introduo5.2 Algoritmo de Treinamento5.3 Aplicao5.4 Exerccios Resolvidos5.5 Exerccios Propostos

    Backpropagation6.1 - Correo de Pesos6.2 - Algoritmo Backpropagation6.3 - Problemas de Treinamento

    Anexo 1Anexo 3Anexo 4Anexo 5Anexo 6