apostila redes neurais

48
Redes Neurais Artificiais ÍNDICE 2 – O NEURÔNIO BIOLÓGICO.............................................5 3 – NEURÔNIOS ARTIFICIAIS: O MODELO MCP (MCCULLOCH E PITTS)..........7 4 – FUNÇÕES DE ATIVAÇÃO..............................................9 5 – APRENDIZADO ....................................................11 5.1 – APRENDIZADO SUPERVISIONADO 11 5.2 – CORREÇÃO DE ERROS 12 5.3 – APRENDIZADO NÃO SUPERVISIONADO 13 5.4 – APRENDIZADO HEBBIANO 13 5.5 – APRENDIZADO POR COMPETIÇÃO 14 5.6 – APRENDIZADO POR REFORÇO 15 6 – ALGUMAS ARQUITETURAS DE RNAS....................................17 6.1 – PERCEPTRON DE CAMADA ÚNICA E SEU ALGORITMO DE APRENDIZADO 17 6.2 - PERCEPTRON MULTICAMADAS 20 6.2.1 – Arquitetura MLP.............................................................................................................. 22 6.2.2 – Definição de uma Topologia Ideal para o MLP........................................................... 22 6.2.3 – Otimização da topologia utilizando pruning............................................................... 23 6.2.4 – Treinamento de Redes MLP........................................................................................... 25 6.2.5 – Problemas Enfrentados no Treinamento de Redes MLP............................................. 28 6 CONCLUSÃO.........................................................31 APÊNDICE 1 – ESTUDO DE CASO.........................................32 1 INTRODUÇÃO 32 2 HEPATITE: TIPOS E DIAGNÓSTICOS 32 3 DESCRIÇÃO DOS DADOS UTILIZADOS 33 4 TREINAMENTO, TESTE E VALIDAÇÃO DOS DADOS 34 5 CLASSIFICAÇÃO 34 6 CONCLUSÃO 35 BIBLIOGRAFIA UTILIZADA..............................................36 Conceitos e Aplicações 1

Upload: jhean-pablo

Post on 25-Apr-2015

76 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Apostila Redes Neurais

Redes Neurais Artificiais

ÍNDICE

2 – O NEURÔNIO BIOLÓGICO...............................................................................................................5

3 – NEURÔNIOS ARTIFICIAIS: O MODELO MCP (MCCULLOCH E PITTS)..............................7

4 – FUNÇÕES DE ATIVAÇÃO.................................................................................................................9

5 – APRENDIZADO .................................................................................................................................11

5.1 – APRENDIZADO SUPERVISIONADO 115.2 – CORREÇÃO DE ERROS 125.3 – APRENDIZADO NÃO SUPERVISIONADO 135.4 – APRENDIZADO HEBBIANO 135.5 – APRENDIZADO POR COMPETIÇÃO 145.6 – APRENDIZADO POR REFORÇO 15

6 – ALGUMAS ARQUITETURAS DE RNAS.......................................................................................17

6.1 – PERCEPTRON DE CAMADA ÚNICA E SEU ALGORITMO DE APRENDIZADO 176.2 - PERCEPTRON MULTICAMADAS 20

6.2.1 – Arquitetura MLP....................................................................................................................226.2.2 – Definição de uma Topologia Ideal para o MLP....................................................................226.2.3 – Otimização da topologia utilizando pruning..........................................................................236.2.4 – Treinamento de Redes MLP...................................................................................................256.2.5 – Problemas Enfrentados no Treinamento de Redes MLP.......................................................28

6 CONCLUSÃO.........................................................................................................................................31

APÊNDICE 1 – ESTUDO DE CASO.......................................................................................................32

1 INTRODUÇÃO 322 HEPATITE: TIPOS E DIAGNÓSTICOS 323 DESCRIÇÃO DOS DADOS UTILIZADOS 334 TREINAMENTO, TESTE E VALIDAÇÃO DOS DADOS 345 CLASSIFICAÇÃO 346 CONCLUSÃO 35

BIBLIOGRAFIA UTILIZADA................................................................................................................36

Conceitos e Aplicações 1

Page 2: Apostila Redes Neurais

ÍNDICE DE FIGURAS E TABELAS

FIGURA 1 - COMPONENTES DE UM NEURÔNIO BIOLÓGICO....................................................5

FIGURA 2 - NEURÔNIO DE MCCULLOCH E PITTS.........................................................................7

FIGURA 3 - ALGUMAS FUNÇÕES DE ATIVAÇÃO..........................................................................10

FIGURA 4 - APRENDIZADO SUPERVISIONADO............................................................................12

FIGURA 5 - APRENDIZADO NÃO SUPERVISIONADO..................................................................13

FIGURA 6 APRENDIZADO POR REFORÇO.....................................................................................15

FIGURA 7 - TOPOLOGIA DE UM PERCEPTRON SIMPLES COM UMA ÚNICA SAÍDA.........17

FIGURA 8 - FUNCIONAMENTO DO PERCEPTRON DE UMA CAMADA...................................18

FIGURA 9 - CLASSIFICAÇÃO DO PERCEPTRON JÁ TREINADO..............................................20

FIGURA 10 - REDE MLP COM CAMADA INTERMEDIÁRIA........................................................22

FIGURA 11 - FLUXO DE PROCESSAMENTO DO ALGORITMO BACK-PROPAGATION......26

FIGURA 12 - SUPERFÍCIE DO ERRO DE UMA REDE MLP...........................................................28

TABELA 1 - ARQUITETURAS PARA TREINAMENTO..................................................................34

TABELA 2 - % DE REGISTROS ACEITÁVEIS EM RELAÇÃO A TAXA DE ERRO..................35

Page 3: Apostila Redes Neurais

1 – Introdução

O que são Redes Neurais Artificiais ?

O final da década de 80 foi marcado pelo ressurgimento da área de Redes Neurais Artificiais (RNAs), também conhecida como conexionismo ou sistemas de processamento paralelo e distribuído. Esta forma de computação não é algorítmica, e sim caracterizada por sistemas que, de alguma forma ou de alguma maneira, relembram a estrutura do cérebro humano. Por não ser baseada em regras ou programas, a computação neural constitui em uma alternativa computação algorítmica convencional.

As RNAs são sistemas paralelos distribuídos compostos por unidades de processamentos simples (nodos) que computam determinadas funções matemáticas (normalmente não lineares). Tais unidades são dispostas em uma ou mais camadas e interligadas por um grande número de conexões, geralmente, unidirecionais. Na maioria dos modelos estas conexões estão associadas a pesos, os quais armazenam o conhecimento representado no modelo e servem para ponderar a entrada recebida por cada neurônio da rede. O funcionamento destas redes é inspirado em uma estrutura física concebida pela natureza do cérebro humano.

A solução de problemas através das RNAs é bastante atrativa. Pois o paralelismo constitui-se na característica principal das RNAs, onde esta cria a possibilidade de um desempenho superior em relação a solução de problemas baseados nos modelos convencionais. Em RNAs, o procedimento usual na solução de problemas passa inicialmente por uma fase de aprendizagem, onde um conjunto de exemplos é apresentado para rede, que extrai automaticamente as características necessárias para representar a informação fornecida. Essas características são utilizadas posteriormente para gerar respostas para o problema.

A capacidade de aprender através de exemplos e de generalizar a informação aprendida são, os atrativos principais da solução de problemas através das RNAs. A generalização está associada à capacidade da rede em aprender através de um conjunto reduzido de exemplos, e posteriormente, dar respostas coerentes a dados não apresentados a rede. Isto é uma demonstração que a capacidade das RNAs vai, além de, simplemente mapear relações de entrada e saida. As RNAs são capazes de extrair informações não-apresentadas de forma explícita através de exemplos. Outras características importantes são a capacidade de auto-organização e processamento temporal que, aliadas à aquela citada anteriormente, fazem das RNAs uma ferramenta computacional extremamente poderosa e atrativa para a solução de problemas complexos.

Page 4: Apostila Redes Neurais

Este relatório trata das principais características das RNAs, com enfoque em algumas topologias e apresenta uma solução de um problema utilizando RNAs.

Page 5: Apostila Redes Neurais

2 – O Neurônio Biológico

Como as RNAs são baseadas na estrutura do cérebro (neurônio), serão mostradas as principais características de um neurônio biológico, para uma posterior compreensão, a respeito, do funcionamento das RNAs.

O neurônio biológico é uma célula que pode ser dividida em três seções: o corpo da célula, os dendritos e o axônio, cada uma com funções específicas, porém complementares.

O corpo do neurônio mede apenas alguns milésimos de milímetros e os dendritos apresentam poucos milímetros de comprimento. O axônio pode ser mais longo. Os dendritos têm como função, receber informações, ou impulsos nervosos, oriundas de outros neurônios, e conduzi-las até o corpo celular. Ali, a informação é processada e novos impulsos são gerados. Estes impulsos são transmitidos a outros neurônios (nodos), passando pelo do axônio e atingindo os dendritos dos neurônios seguintes.

O ponto de contato entre a terminação axônica de um neurônio e o dentrito de outro é chamado sinapse. É pelas sinapses que os nodos se unem funcionalmente, formando as redes neurais. As sinapses funcionam como válvulas, sendo capazes de controlar a transmissão de impulsos, isto é, o fluxo da informação entre os nodos na rede neural. O efeito das sinapses é variável, é esta variação que dá ao neurônio capacidade de adaptação. Na Figura 1 está ilustrada, de forma simplificada, os componentes do neurônio.

Figura 1 - Componentes de um Neurônio Biológico

Page 6: Apostila Redes Neurais

Os sinais oriundos dos nodos pré-sinápticos são passados para o corpo do neurônio, onde são comparados com outros sinais recebidos pelo neurônio. Se o percentual em um intervalo curto de tempo é suficientemente alto, a célula “dispara”, produzindo um impulso que é transmitido para as células seguintes (nodos pós-sinápticos). Este sistema simples é responsável pela maioria das funções realizadas pelo nosso cérebro. A capacidade de solucionar funções complexas surge com a operação em paralelo de todos os 1011 nodos do nosso cérebro.

Page 7: Apostila Redes Neurais

3 – Neurônios Artificiais: O Modelo MCP (McCulloch e Pitts)

O modelo de neurônio proposto por McCulloch e Pitts (MCP) em 1943 [1] é uma simplificação do que se sabia à respeito do neurônio biológico naquela época. A sua descrição matemática resultou em um modelo com n terminais de entrada x1, x2, . . . ,xn (que representam os dendritos), e apenas um terminal de saída y (que representa o axônio). Para emular o comportamento das sinapses, os terminais de entrada do neurônio têm pesos acoplados w1, w2, . . . ,wn, cujo valores podem ser positivos ou negativos, dependendo das sinapses correspondentes serem inibitórias ou excitatórias. O efeito de uma sinapse particular i no neurônio pós-sináptico é dado por: xi wi. Os pesos determinam “em que grau” o neurônio deve considerar sinais de disparo que ocorrem naquela conexão. Uma descrição do modelo está ilustrado na Figura 2.

Um neurônio dispara quando a soma dos impulsos que ele recebe ultrapassa o seu limiar de excitação chamado de threshold. O corpo do neurônio, por sua vez, é emulado por um mecanismo simples que faz a soma dos valores xi wi recebidos pelo neurônio (soma ponderada). E decide se o neurônio deve ou não disparar (saída igual a 1 ou a 0) comparando a soma obtida ao limiar ou threshold do neurônio. No modelo MCP, a ativação do neurônio é obtida através da aplicação de uma “função de ativação”, que ativa a saída ou não, dependendo do valor da soma ponderada das suas entradas. Na descrição original do modelo MCP, a função de ativação é dada pela função limiar descrita na a seguir. O nodo MCP terá então sua saída ativa quando:

n

iii wx

1

onde n é o número de entradas do neurônio, wi é o peso associado à entrada xi, e é o limiar (threshold) do neurônio.

...

X1

X2

Xn

Y

W1

W2

Wn

Figura 2 - Neurônio de McCulloch e Pitts

McCulloch e Pitts simplificaram seu modelo assumindo que os nodos em cada camada da rede disparam sincronamente, isto é, que todos os nodos são avaliados ao mesmo tempo e também que as entradas em um instante de tempo t produzem a sua saída no tempo t + 1. Em sistemas biológicos, sabe-se que não existe um mecanismo para sincronizar as ações de nodos, nem há restrição para que as suas saídas sejam ativadas em tempos discretos como no modelo MCP. Sabe-se também que o valor da próxima saída dos nodos biológicos depende enormemente das ativações dos neurônios anteriores, já que até mesmo os neuro-transmissores liberados anteriormente levam algum tempo para se re-combinarem, influenciando, assim, as ativações seguintes.

Page 8: Apostila Redes Neurais

Finalmente, pode-se levantar algumas limitações na descrição do modelo MCP original, como:

1. Redes MCP com apenas uma camada conseguem implementar funções linearmente separáveis;

2. Pesos negativos são mais adequados para representar disparos inibidores;

3. O modelo foi proposto com pesos fixos, não ajustáveis. Não há a presença de um algoritmo de aprendizado.

Page 9: Apostila Redes Neurais

4 – Funções de Ativação

A partir do modelo proposto por McCulloch e Pitts foram derivados vários outros modelos que permitem a produção de uma saída qualquer, não necessariamente zero ou um, e com diferentes funções de ativação. A Figura 3 ilustra, graficamente, quatro funções de ativação diferentes: a função linear, a função rampa, a função degrau (step) e a função sigmoidal.

A função de ativação linear, mostrada na Figura 3a, é definida pela equação abaixo.

y = x

Onde é um número real que define a saída linear para os valores de entrada, y é a saída e x é a entrada.

A função linear pode ser restringida para produzir valores constantes em uma faixa [-, +], e neste caso, passa a ser a função rampa mostrada, graficamente, na Figura 3b definida pela notação abaixo.

xse

xsex

xse

y

Os valores máximo e mínimo da saída são -, +. A função rampa é usada geralmente, como uma função linear simplificada.

A função step, ilustrada na Figura 3, é similar a uma função rampa, pois a função produz a saída + para valores de x maiores que zero, caso contrário a função produz o valor de -. A função step é definida por.

0

0

xse

xsey

A função sigmoidal, conhecida também como S-shape, ilustrada na Figura3d, é uma função semi-linear. É possível definir várias funções sigmoidais. Uma das funções sigmoidais mais importantes é a função logística definida por.

Txey

/1

1

Onde parâmetro T determina a suavidade de curva.

Page 10: Apostila Redes Neurais

x

f(x)

x

f(x)

x

f(x)

x

f(x)

(a) (b) (d)(c)

Figura 3 - Algumas funções de ativação

Page 11: Apostila Redes Neurais

5 – Aprendizado

As RNAs possuem a capacidade de aprender através exemplos e fazer interpolações e extrapolações do que aprenderam. No aprendizado conexionista não se procura obter regras como na abordagem simbólica da Inteligência Artificial (IA), mas determinar a intensidade das conexões entre os neurônios. Um conjunto de procedimentos bem definidos para adaptar os parâmetros de uma RNA, afim de que a mesma possa aprender uma determinada função é chamado de algoritmo de aprendizado. Como era de se esperar, não há um único algoritmo de aprendizado. O que temos é um conjunto de ferramentas representadas por diversos algoritmos, cada qual com suas vantagens e desvantagens. Estes algoritmos, basicamente, diferem pela maneira através da qual o ajuste dos pesos é feito.

A utilização de uma RNA na solução de uma tarefa passa, inicialmente, por uma fase de aprendizagem, onde a rede extrai características relevantes de padrões de informações apresentados para a mesma, criando assim uma representação própria para o problema. A etapa de aprendizagem consiste em um processo iterativo de ajuste de parâmetros da rede, os pesos das conexões entre as unidades de processamento, que guardam o conhecimento que a rede adquiriu do ambiente em que está operando. Uma definição geral do que vem a ser aprendizagem pode ser expressa da seguinte forma [11].

“Aprendizagem é o processo pelo qual os parâmetros de uma rede neural são ajustados através de uma forma continuada de estímulos fornecidos pelo ambiente no qual a rede está operando, sendo que o tipo específico de aprendizagem realizado, é definido pela maneira particular como ocorrem os ajustes realizados nos parâmetros”.

Diversos métodos para treinamento de redes foram desenvolvidos, podendo estes serem agrupados em dois paradigmas principais: Aprendizado Supervisionado e Aprendizado Não Supervisionado. Outros dois paradigmas bastante conhecidos são os de Aprendizado por Reforço (que é um caso particular de Aprendizado Supervisionado) e Aprendizado por Competição (que é um caso particular de Aprendizado Não Supervisionado). Nas próximas seções estes paradigmas serão estudados, juntamente, com dois mecanismos de aprendizados encontrados na literatura, Correção de Erros e o Aprendizado Hebbiano.

5.1 – Aprendizado Supervisionado

Este método de aprendizado é o mais comum no treinamento das RNAs, tanto de neurônios com pesos, quanto de neurônios sem pesos, sendo chamado Aprendizado Supervisionado porque a saída desejada que a rede deve resultar é fornecida por um supervisor (professor) externo. O objetivo é ajustar os parâmetros da rede, de forma a encontrar uma ligação entre os pares de entrada e saída fornecidos. A Figura 4 ilustra o mecanismo de Aprendizado Supervisionado. O professor indica, explicitamente, um comportamento bom ou ruim para a rede, visando direcionar o processo de treinamento. A rede tem sua saída corrente (calculada) comparada com a saída desejada, recebendo informações do supervisor sobre o erro da resposta atual. A cada padrão de entrada submetido à rede compara-se a resposta desejada (que representa uma ação ótima a ser realizada pela rede) com a resposta calculada, e os pesos das

Page 12: Apostila Redes Neurais

conexões são ajustados para minimizar o erro. A minimização da diferença é incremental, já que pequenos ajustes são feitos nos pesos à cada etapa de treinamento, de tal forma que estes caminhem, se possível, para uma solução.

Professor

RNA

Entrada

- +

Erro

Figura 4 - Aprendizado Supervisionado

A desvantagen do Aprendizado Supervisionado é que, na ausência do professor, a rede não conseguirá aprender novas estratégias para situações não cobertas pelos exemplos do treinamento da rede. Os exemplos mais conhecidos de algoritmos de Aprendizado Supervisionado são a regra delta ou correção de erros (vide seção 5.2) [18] e a sua generalização para redes de múltiplas camadas, o algoritmo back-propagation [15].

O Aprendizado Supervisionado pode ser implementado, basicamente, de duas formas: off-line e on-line. Para treinamento off-line, os dados do conjunto de treinamento não mudam, sendo que uma vez obtida uma solução para a rede, esta deve permanecer fixa. Por sua vez, no aprendizado on-line, o conjunto de dados muda, continuamente, visto que a rede deve estar em contínuo processo de adaptação.

Na seção seguinte, será apresentada noção geral sobre o método de aprendizado através da Correção de Erros.

5.2 – Correção de Erros

O processo de aprendizado por correção de erros procura minimizar a diferença entre a soma ponderada das entradas pelo pesos (saída calculada pela rede) e a saída desejada, ou seja, o erro da resposta atual da rede. O termo e(t) denota o erro e deve ser calculado através da seguinte expressão: e(t) = d(t) – y(t), onde d(t) é a saída desejada e y(t) é a resposta atual (calculada) no instante de tempo t. A forma genérica para alteração dos pesos por correção de erros é definida por:

wi(t+1) = wi(t) + e(t) xi(t)

onde é a taxa de aprendizado e xi(t) é a entrada para o neurônio i no tempo t.

Segundo a equação acima, o ajuste dos pesos deve ser proporcional ao produto do erro pelo valor de entrada da sinapse naquele instante de tempo. Esta expressão aparece tanto no algoritmo de treinamento do perceptron [14] quanto no algoritmo para treinamento do ADALINE [18] e posterior generalização para o algoritmo back-propagation [15].

O método de aprendizado por correção de erros também pode ser chamado de regra delta de aprendizado. Este método caracteriza o conceito de aprendizado

Page 13: Apostila Redes Neurais

supervisionado descrito na Seção 5.1. Existem outros conceitos de aprendizado entre eles, o Aprendizado Não Supervisionado mostrado na Seção 5.3.

5.3 – Aprendizado Não Supervisionado

No Aprendizado Não Supervisionado, como o próprio nome sugere, não há um professor ou supervisor para acompanhar o processo de aprendizado. Este método é ilustrado na Figura 5. Para este tipo de aprendizado, somente os padrões de entrada estão disponíveis para rede, ao contrário do Aprendizado Supervisionado, cujo conjunto de treinamento possui pares de entrada e saída. A partir do momento em que a rede estabelece uma harmonia com as regularidades estatísticas da entrada de dados, desenvolve-se nela uma habilidade de formar representações internas para codificar características da entrada e criar novas classes ou grupos automaticamente. Este tipo de aprendizado, só se torna possível, quando existe redundância nos dados de entrada. Sem redundância seria impossível encontrar quaisquer padrões ou características dos dados de entrada.

Meio Externo RNA

Estado do Meio Externo

Resposta

Figura 5 - Aprendizado Não Supervisionado

Uma das vantagens do Aprendizado Não Supervisionado pode ser visualizada na ausência do supervisor ou professor (responsável pela indicação da saída desejada). A desvantagem está, intimamente, ligada ao conjunto de dados para treinamento, onde este deve ser redundante para que a rede consega abstrair características em seu treinamento.

5.4 – Aprendizado Hebbiano

Os resultados obtidos por Hebb [6] motivaram os primeiros métodos de aprendizado em RNAs. Como originalmente postulado, a regra de Hebb propõe que o peso de uma conexão sináptica deva ser ajustado, caso exista sincronismo entre os “níveis de atividade” das entrada e saídas. Caso dois neurônios, em lados distintos da sinapse, são ativados sincronamente, teremos um fortalecimento desta sinapse. Entretanto, se os neurônios forem ativados assincronamente, a sinapse será enfraquecida ou mesmo eliminada. Em outras palavras, se o neurônio pré-sináptico tiver grande influência na ativação do neurônio pós-sináptico, a conexão entre eles dever ser reforçada.

A sinapse Hebbiana possui quatro características principais:

Mecanismo interativo: dentro do aprendizado Hebbiano, não se pode analisar atividades pré-sinápticas de forma isolada; qualquer modificação na sinapse Hebbiana depende (estatisticamente ou deterministicamente) da interação entre os dois tipos de atividades (pré e pós-sinápticos).

Mecanismo local: uma sinapse Hebbiana é uma transmissão com sinais contínuos que produz modificações sinápticas locais que são entradas

Page 14: Apostila Redes Neurais

específicas. É a partir do mecanismo local que sinapses Hebbianas efetuam Aprendizado Não Supervisionado.

Mecanismo dependente do tempo: as modificações em uma sinapse Hebbiana dependem do momento exato de ocorrência das atividades pré e pós-sinápticas.

Mecanismo correlacional ou conjuncional: a sinapse Hebbiana pode ser chamada de sinapse conjuncional pelo fato de que a ocorrência conjunta de atividades pré e pós-sinápticas é suficiente para que haja uma modificação. Além disso, pode também ser chamada de sinapse correlacional, porque uma correlação entre estas mesmas atividades é suficiente para gerar mudanças.

Pode-se expressar o postulado de Hebb em termos matemáticos a partir da seguinte equação, que consiste em uma regra para a mudança do peso sináptico wij

(regra do produto de atividade):

)()(.)( txtytw jiij

onde é uma constante positiva que determina a taxa de aprendizado, yi é a saída desejada no instante de tempo t e xj é a entrada do neurônio j no instante de tempo t.

Apesar dos vetores de entrada e saída serem fornecidos (como no Aprendizado Supervisionado), a regra de Hebb é classificada como Aprendizado Não Supervisionado, já que não existe supervisor externo para verificar a qualidade da resposta da rede para prover um ajustes de pesos. Neste caso, o treinamento da rede é feito, independentemente, da resposta atual, através de um mecanismo local à sinapse.

5.5 – Aprendizado por Competição

Aprendizado por Competição é um caso particular de Aprendizado Não Supervisionado [2, 8, 3]. A idéia neste caso é, dado um padrão de entrada, fazer com que as unidades de saída disputem entre si para serem ativadas. Existe, portanto, uma competição entre as unidades de saída para decidir qual delas será a vencedora e, consequentemente, terá a sua saída ativada e seus pesos atualizados no treinamento. As unidades de entrada são diretamente conectadas às unidades de saída, sendo que estas últimas também podem estar ligadas entre si via conexões laterais inibitórias, ou negativas. A unidade de saída com maior ativação inicial terá mais chance de vencer a disputa com as outras unidades, que perderão o poder de inibição ao longo do tempo sobre as unidades de maior ativação. A unidade mais forte fica ainda mais forte e seu efeito inibidor sobre as outras unidades de saída torna-se dominante. Com o tempo, todas as outras unidades de saída ficarão completamente inativas, exceto a vencedora. Este tipo de inibição mútua também é conhecido como winner tasks all.

Um algoritmo simples de aprendizado competitivo é:

1. Apresentar um vetor de entrada;

2. Calcular a ativação inicial de cada unidade de saída;

Page 15: Apostila Redes Neurais

3. Deixar as unidades de saída competirem até que apenas uma permaneça ativa;

4. Aumentar os pesos sobre as conexões entre as unidades de saída ativa e as unidades de entrada ativas. Com isso, a unidade de saída terá maior probabilidade de ficar ativa na próxima repetição do padrão.

Um problema neste algoritmo é que uma unidade de saída pode se tornar dominante e ficar ativa todo tempo, podendo captar para si todo o espaço de entrada. A solução para tal problema está em racionar os pesos, de tal forma que a soma dos pesos sobre as linhas de entrada de uma unidade seja limitada a 1. Para aumentar o peso de uma conexão, é preciso diminuir o peso de outra, tal que.

wj = xj / M - wj

para todo j = 1, 2, . . . , n, onde wj é o peso da conexão da unidade de entrada j com a unidade ativa, xj é o valor do j-ésimo bit de entrada, M é o número de unidades de entrada ativas no vetor de entrada e é a taxa de aprendizagem.

Este algoritmo funciona em muitos casos, porém, às vezes, uma unidade de saída ganha sempre. Uma solução para este problema é a leaky learning [4] que foi desenvolvido por Grossberg. O Aprendizado por Competição é a base dos modelos ART de Grossberg [4] e dos mapas de Kohonen [8, 9].

5.6 – Aprendizado por Reforço

Aprendizado por Reforço pode ser visto como um caso particular de Aprendizado Supervisionado. A principal diferença entre o Aprendizado Supervisionado clássico e o Aprendizado por Reforço é a medida de desempenho usada em cada um dos sistemas. No Aprendizado Supervisionado, a medida de desempenho é baseada no conjunto de respostas desejadas usando um critério de erro conhecido, enquanto que, no Aprendizado por Reforço o desempenho é baseado em qualquer medida que possa ser fornecida ao sistema. No Aprendizado por Reforço, a única informação de realimentação fornecida à rede é se uma determinada saída está correta ou não, isto é, não é fornecida a rede a resposta correta para o padrão de entrada. O Aprendizado por Reforço é ilustrado na Figura 6.

Crítico

RNA

Reforço / Penalidade

ação

Aprendizado por Reforço

Figura 6 Aprendizado por Reforço

Aprendizado por Reforço é uma forma de aprendizado on-line obtido por um mapeamento de entrada-saída, através de um processo de triagem de erro desenvolvido para maximizar o índice de desempenho escalar chamada de sinal de

Page 16: Apostila Redes Neurais

reforço. O termo Aprendizagem por Reforço foi, inicialmente, citado por Minsky [13] em seus estudos iniciais de IA. A idéia básica que está por trás do termo “reforço” tem sua origem em estudos experimentais sobre aprendizado dos animais [5]. Neste contexto, é interessante lembrar a Lei do Efeito [17] que diz quanto maior a satisfação obtida com uma certa experiência em um animal, maiores as chances dele aprender. Sutton [16] conceitualiza o Aprendizado por Reforço como:

“Se uma ação tomada pelo sistema de aprendizagem é seguida de estados satisfatórios, então a tendência do sistema de produzir esta ação particular é reforçada. Se não for seguida de estados satisfatórios, a tendência do sistema de produzir esta ação é enfraquecida”.

Neste capítulo foi apresentado os principais tipos de aprendizados. O modelo mais utilizado atualmente é o Aprendizado Supervisionado. No próximo capítulo será mostrado duas arquiteturas no universo das RNAs, perceptron de uma camada, e o perceptron multicamadas. Ambas arquiteturas utilizam o conceito do Aprendizado Supervisionado em seus algoritmos.

Page 17: Apostila Redes Neurais

6 – Algumas Arquiteturas de RNAs

Nesta seção será abordado o modelo perceptron de única e múltiplas camadas. O perceptron foi proposto por Rosenblatt [14] e originou-se do trabalho de McCullch e Pitts [1].

6.1 – Perceptron de Camada Única e seu Algoritmo de Aprendizado

O trabalho original que enfocou o modelamento de um neurônio e sua capacidade computacional de solucionar problemas, teve início com as pesquisas de McCulloch e Pitts [1]. Naquela época surgiram os primeiros computadores digitais e entende-se que a associação de um modelo artificial de um neurônio com a capacidade de resolver funções Booleanas está, provavelmente, ligada ao pensamento vigente na época de que era possível construir uma máquina inteligente através de operadores lógicos básicos. Foi somente com o trabalho de Frank Rosenblatt em 1958 [14] que o conceito aprendizado em RNAs foi introduzido. O modelo proposto por Rosenblatt, conhecido como perceptron, era composto por uma estrutura de rede tendo como unidades básicas nodos MCP e uma regra de aprendizado. Alguns anos mais tarde, Rosenblatt demostrou o teorema de convergência do perceptron, o qual mostra que um nodo MCP treinado com o algoritmo de aprendizado do perceptron sempre converge, caso o problema em questão seja linearmente separável [19].

A topologia original descrita por Rosenblatt era composta por unidades de entrada (retina), por um nível intermediário formado pelas unidades de associação e por um nível de saída formado pelas unidades de resposta. Embora, esta topologia original possua três níveis, ela é conhecida como perceptron de um única camada, já que somente o nível de saída (unidade de resposta) possui propriedades adaptativas. A Figura 7 mostra um esboço da topologia do perceptron.

Entrada

Associação

Resposta

r

Figura 7 - Topologia de um perceptron simples com uma única saída

Apesar de ter causado grande euforia na comunidade cientifica da época, o perceptron não teve vida muito longa, já que duras críticas de Minsky e Papert [12] foram feitas em relação à sua capacidade computacional, causando, assim, um grande impacto sobre as pesquisas em RNAs, o que levou a um grande desinteresse pela área durante os anos 70 e início dos anos 80.

Esta visão pessimista sobre a capacidade do perceptron e das RNAs de um maneira geral mudou, devido as descrições da rede de Hopfield em 1982 [7] e do

Page 18: Apostila Redes Neurais

algoritmo de back-propagation (que será visto nas próximas seções). Foi em conseqüência destes trabalhos que a área de RNAs ganhou novo impulso, ocorrendo a partir do final dos anos 80, uma forma de expansão no número de trabalhos de aplicação e teóricos envolvendo RNAs e técnicas correlatadas.

O algoritmo de aprendizagem do perceptron utiliza o algoritmo de correção de erros como base. Pode-se ilustrar o funcionamento e o método de aprendizagem do perceptron de uma camada através da formulação exemplo.

Dada uma rede do tipo perceptron formada por 3 terminais de entrada utilizando pesos iniciais de w0 = 0.4, w1 = -0.5, w2 = 0.6; valor threshold = 0.5 e a taxa de aprendizado = 0.4 (Figura 8).

Ensinar a rede gerar a saída –1 para o padrão 001 saída de 1 para o padrão 110.

Após a rede treinada, determinar a que classe pertence os padrões 111, 000, 100, 011.

Utilize como função de ativação a função step

01

01

xse

xsey

Solução:

wixi

w0 = 0.4

w2 = 0.6

w1 = -0.5

0.50

0

1

-1

1

1

0

1

-1

x1

x3

x2d

Figura 8 - Funcionamento do Perceptron de uma camada

xi = padrões de entrada.

d = valor desejada para saída após processamento da rede.

Processamento para o padrão 001:

y = (-1 . 0,5) + (0 . 0,4) + (0 . –0,5) + (1 . 0,6)

y = 0,1 [aplicar função de ativação]

Page 19: Apostila Redes Neurais

y = 1, onde y representa a saída do padrão processado

De acordo com o processamento da rede, percebe-se que a saída está incorreta em relação a saída desejada, deve-se então aplicar o algoritmo de treinamento do perceptron:

wi = wi + e xi | e = (d – y)

w3 = 0,5 + 0,4 . (-1 -1) . -1 w3 = 1.3 | w3 =

w0 = 0,4 + 0,4 . (-1 -1) . 0 w0 = 0,4

w1 = -0,5 + 0,4 . (-1 -1) . 0 w1 = -0.5

w2 = 0,6 + 0,4 . (-1 -1) . 1w2 = -0.2

Com os pesos atualizados de acordo com o algoritmo de aprendizagem, deve-se processar o padrão de entrada novamente.

Processamento para o padrão 001:

y = (-1 . 1,3) + (0 . 0,4) + (0 . -0.5) + (1 . -0,2)

y = -1,5 [aplicar a função de ativação]

y = -1

Neste momento, verifica-se que a saída desejada é igual a saída obtida pela rede, com isso não é necessário a atualização dos pesos, pois a rede emitiu uma saída correta.

Processamento para o padrão 110:

y = (-1 . 1,3) + (1 . 0,4) + (1 . -0.5) + (0 . -0,2)

y = -1.4 [aplicar a função de ativação] y = -1

Novamente, percebe-se que a saída emitido pela rede está incorreta em relação a saída desejada, deve-se então aplicar o algoritmo de treinamento do perceptron:

wi = wi + e xi | e = (d – y)

w3 = 1.3 + 0,4 . (1 - (-1) ) . -1 w3 = 0,5 w0 = 0,4 + 0,4 . (1 - (-1) ) . 1

Page 20: Apostila Redes Neurais

w0 = 1,2

w1 = -0,5 + 0,4 . (1 - (-1) ) . 1 w1 = 0.3

w2 = -0,2 + 0,4 . (-1 - (-1) ). 0w2 = -0.2

Com os pesos atualizados de acordo com o algoritmo de aprendizagem, deve-se processar o padrão de entrada novamente.

Processamento para o padrão 110:

y = (-1 . 0,5) + (1 . 1,2) + (1 . 0,3) + (0 . -0,2)

y = 1 [aplicar a função de ativação]

y = 1

Neste momento, verifica-se que a saída desejada é igual a saída obtida pela rede, com isso não é necessário a atualização dos pesos, pois a rede emitiu uma saída correta.

Com o treinamento realizado, pode-se então classificar os padrões 111, 000, 100, 011 e obter as saídas 1, -1, 1, -1 respectivamente. A Figura 9 ilustra tal classificação

Figura 9 - Classificação do Perceptron já treinado

6.2 - Perceptron Multicamadas

Conforme citado na seção anterior, as redes de uma só camada resolvem apenas problemas linearmente separáveis. A solução de problemas não linearmente separáveis passa pelo uso de redes com uma ou mais camadas intermediárias, ou escondidas. Segundo [20], uma rede com camada uma intermediária pode implementar qualquer função contínua. A utilização de duas camadas intermediárias permite a aproximação de qualquer função [21].

Page 21: Apostila Redes Neurais

Com a utilização desta arquitetura é necessário, então, encontrar uma forma de treinar tal rede. Uma possibilidade seria a divisão da rede em um conjunto de sub-rede para cada camada, com treinamento independente. Uma rede com uma camada intermediária pode ser formada por um conjunto de redes perceptron, uma rede para cada grupo de entradas linearmente separáveis. Na camada de saída, uma outra rede combina as saídas produzidas pelas redes da primeira camada, gerando, assim, a classificação final. Esta solução esbarra na dificuldade de dividir um problema em subproblemas. Geralmente, esta divisão ou não é possível ou muito complicada.

Uma outra alternativa seria treinar a rede completa de uma só vez. O problema agora esta em como treinar os nodos da camada intermediária desta rede. Quais seriam a respostas desejadas para estes nodos? Ou melhor, como seria definido o erro destes nodos? O problema passa agora ser a definição do erro dos nodos das camadas intermediárias. Se uma função de ativação do tipo limiar (função threshold) for utilizada, a avaliação do erro será bastante complexa, uma vez, que os nodos das camadas intermediárias e de saída não saberão quão distantes as respostas de seus nodos estarão dos valores desejados, este é um dos problemas da rede perceptron. Uma alternativa seria a utilização de funções de ativação lineares. No entanto, uma rede com mais de uma camada cujos nodos utilizarão funções de ativação lineares é equivalente a uma rede de uma só camada. Esta afirmação pode ser, facilmente, provada:

Seja uma Rede Neural com uma camada intermediária e funções de ativação lineares. Seja x o vetor de entrada e wA e wB as matrizes de pesos para nodos da primeira e segunda camadas, respectivamente. O vetor de saída da rede é gerado de acordo com:

y = (x wA). wB

Utilizando propriedades da Álgebra Linear [22], tem-se que:

(wA e wB) wC | wC = wA . wB

Logo:

y = x . wC

onde x é o vetor de entrada, y o vetor de saída e wA, wB, e wC, são vetores de pesos.

Para treinar redes com mais de uma camada foi proposto um método que se baseia em gradiente descendente [15]. Afim de que, este método possa ser utilizado, a função de ativação precisa ser contínua, diferençiável e, de preferência não decrescente. A função de ativação deve informar os erros cometidos pela rede para as camadas anteriores com a maior precisão possível. A alternativa utilizada para superar os problemas acima citados foi a utilização de funções de ativação do tipo sigmoidal.

Esta seção tem por objetivo descrever e explicar o funcionamento das RNAs do tipo perceptron multicamadas, ou MLP (do inglês MultiLayer Perceptron), que são RNAs que apresentam pelo menos uma camada intermediária ou escondida [15].

Page 22: Apostila Redes Neurais

6.2.1 – Arquitetura MLP

Conforme visto nas seções anteriores, a inexistência ou desconhecimento de algoritmos para treinar redes com uma ou mais camadas intermediárias foi uma das causas para redução das pesquisas em RNAs na década de 70. Tal problema foi primeiro apontado por Minsky e Papert, no livro “Perceptrons” [12] e, por representar uma redução no universo de aplicações de RNAs, causou uma diminuição drástica tanto do número de pesquisadores que trabalhavam na área quanto no financiamento de projetos envolvendo RNAs.

As redes MLP apresentam um poder computacional maior do que aquele apresentado pelas redes sem camadas intermediárias. As redes MLP’s podem tratar com dados que não são linearmente separáveis. A precisão obtida e a implementação de uma rede MLP dependem do número de nodos utilizados nas camadas intermediárias, e um dos problemas é a definição de uma função de ativação. Na Figura 10 é apresentada um rede MLP típica.

camada de entrada

camada intermediária

camada de saída

Figura 10 - Rede MLP com camada intermediária

Conforme já observado, um dos principais aspectos relacionados ao projeto de redes MLP diz respeito à função de ativação utilizada. Diversas funções de ativação têm sido propostas para redes multicamadas. Estas funções são não lineares e diferenciáveis. As funções precisam ser diferenciáveis para que o gradiente possa ser calculado, direcionando o ajuste dos pesos. A função de ativação mais utilizada é sigmoidal logística. A orientação da sigmoidal é determinada pela direção do vetor de pesos w. O valor do termo de polarização, corresponde ao peso wo, determina a localização da função sigmoidal, ou seja, define a posição da função com relação ao eixo da ordenada.

6.2.2 – Definição de uma Topologia Ideal para o MLP

A definição de um topologia de uma rede do tipo MLP está intimamente ligada com a definição dos nodos de camada intermediária; este número é, geralmente, definido empiricamente e depende, fortemente, da distribuição dos padrões de treinamento e validação da rede. Alguns métodos, no entanto, têm sido propostos. Os mais utilizados são:

Definir o número de unidades em função do número de entradas e saídas;

Page 23: Apostila Redes Neurais

Utilizar um número de conexões dez vezes menor que o número de exemplos. Este método apenas reduz a incidência de overfitting (rede memoriza padrões de treinamento, ao invés de extrair as características). Se o número de exemplos for muito maior que o número de conexões, overfitting é improvável, mas pode ocorrer underfitting (a rede não converge durante o seu treinamento).

O número adequado de nodos na camada intermediária depende de vários fatores, como:

Número de exemplos de treinamento;

Quantidade de ruído presente nos exemplos;

Complexidade da função a ser aprendida;

Distribuição estatística dos dados de treinamento.

Existem problemas que necessitam apenas de uma unidade de entrada e uma unidade de saída, e outros que podem precisar de milhares de unidades intermediárias. O número de unidades intermediárias pode também, em alguns casos, crescer, exponencialmente, com o número de entradas. A solução neural mais eficiente é aquela onde o número de unidades cresce apenas polinomialmente com o aumento do números de unidades de entrada.

Para solução de problemas práticos de reconhecimento de padrões, aloca-se para a rede um número de unidades intermediárias suficiente para a solução do problema. Deve-se ter cuidado para não utilizar unidades demais, o que pode levar a rede memorizar padrões de treinamento, ao invés de extrair as características gerais que permitirão a generalização ou reconhecimento de padrões não vistos durante o treinamento (este problema é chamado de overfitting), não utilizar um número muito pequeno, que possa forçar a rede a gastar tempo em excesso tentando encontrar uma representação ótima (as unidade utilizadas podem ficar sobrecarregadas, tendo que lidar com um elevado número de restrições).

6.2.3 – Otimização da topologia utilizando pruning

Conforme observado nos parágrafos anteriores, uma das maiores dificuldades em se definir a estrutura de uma RNA é o fiel dimensionamento de sua topologia. Normalmente, o número de camadas e o número de nodos em cada camada é definido em função de uma inspeção prévia nos dados e da complexidade do problema. Uma vez definida a topologia inicial, a estrutura final mais adequada para o modelamento é, normalmente, obtida através de refinamentos sucessivos, que pode levar a um tempo de dimensionamento alto, já que este tem um grande componente empírico.

O objetivo desta etapa de ajuste é a obtenção de uma topologia de rede que modele com precisão os dados do conjunto de treinamento, mas também resulte em uma aproximação com boa capacidade de generalização. Como, na maioria dos casos, os conjunto de treinamento de uma RNA é composto de dados experimentais, estes contêm, implicitamente, erros inerentes aos processos de amostragem. Desta forma, a

Page 24: Apostila Redes Neurais

aproximação através de RNAs deve ser feita visando a obtenção de uma estrutura que seja capaz de modelar os dados sem modelar o ruído contido neles.

Este é um problema no projeto de RNAs conhecida na literatura como bias and variance delemma [23], que envolve a obtenção de um modelo que não seja muito rígido a ponto de não modelar fielmente os dados, mas que também não seja, excessivamente, flexível a ponto de modelar também o ruído.

O equilíbrio entre a rigidez e flexibilidade da rede é obtido através de seu dimensionamento. Quanto maior a sua estrutura, maior o número de parâmetros livres ajustáveis e, consequentemente, maior a sua flexibilidade. Porém, quando os dados são apresentados à rede, não se tem real conhecimento de sua complexidade, daí a dificuldade do problema de dimensionamento.

Uma forma de evitar o overfitting é estimar o erro de generalização durante o processo de treinamento [24]. Para isto, o conjunto de dados é dividido em conjunto de treinamento e conjunto de validação. O conjunto de treinamento é utilizado na modificação dos pesos e o conjunto de validação é utilizado para estimar a capacidade de generalização da rede durante o processo de aprendizagem.

O treinamento deve ser interrompido quando o erro do conjunto de validação começar a subir, ou seja, quando a rede começar a incorporar o ruído presente nos dados o que causa degradação na sua capacidade de generalização [24]. Embora, esta alternativa possa se mostrar eficiente em algumas situações, a sua utilização é limitada para os casos em que um conjunto de treinamento muito grande está disponível, já que os dados do conjunto de validação não podem ser utilizados para treinamento.

Uma outra solução conhecida é adoção de técnicas de pruning [24] que, por sua vez, envolvem a eliminação de pesos e nodos irrelevantes para a função executada pela rede. Existem, basicamente, dois tipos de métodos de pruning: métodos baseados na avaliação da sensibilidade da saída e os métodos que envolvem modificações na função de custo [24]. A filosofia dos métodos do primeiro grupo é a retirada de elementos da rede e subsequente verificação da variação do erro de saída [25, 26, 27]. Caso a retirada do elemento não cause grande variação no erro de saída, conclui-se que a rede é pouco sensível a este e que o mesmo pode ser retirado sem perda da capacidade da rede modelar dados.

A desvantagem deste método é que a retirada dos elementos não considera a correlação entre eles, Um exemplo de situação em que este método poderia falhar seria o caso de dois nodos que anulam as suas saídas em uma camada intermediária da rede. Como um par eles não causam nenhum efeito na saída de rede, mas individualmente, podem ter um grande efeito quando a remoção de um deles é analisada [24].

Por sua vez, os métodos que envolvem modificação na função de custo [28, 10], utilizam, em uma primeira etapa, termos de regularização [29] adicionados ao termo de erro padrão. A idéia deste algoritmos é a obtenção de soluções com pesos de norma mínima, para isto, as soluções com valores altos de pesos são penalizadas durante o treinamento. Começa-se com uma rede com topologia super-dimensionada e desta são retirados os pesos irrelevantes.

Page 25: Apostila Redes Neurais

Como exemplo, forma geral da função custo para o treinamento do algoritmo weight decay [136] é apresentada na equação seguinte. Pode-se então observar que se minimiza não somente a soma dos erros quadráticos, mas também a norma de vetor de pesos.

2

1

2 ||||2

1)(

2

1wydJ

k

iii

onde k é o número de nodos de saída, di e saída desejada do nodo i, yi a saída gerada pelo nodo i e w o vetor de pesos.

Uma vez obtida uma solução com pesos de norma mínima, aqueles com valores muito pequenos são então considerados irrelevantes e eliminados, Espera-se então obter uma solução com um fiel equilíbrio entre a rigidez e a flexibilidade da rede. A contrapartida para esta abordagem, que parece mais elegante, é a busca de uma solução com norma mínima também depende do ajuste de forma empírica do parâmetro de regularização . Quando este é nulo somente a soma dos erros quadráticos é minimizada quando possui valor muito grande a solução para a vetor de pesos tende para w = 0. Portanto, um valor satisfatório intermediário deve ser encontrado.

Uma solução para contornar este problema é, obviamente, incluir o parâmetro como uma das vaiáveis a serem ajustadas, porém, isto incorpora mais complexidade ao processo de treinamento. Outros procedimentos para a construção de redes com estrutura otimizada é a utilização de redes construtivas.

6.2.4 – Treinamento de Redes MLP

Existem, atualmente, vários algoritmos para treinar rede MLP [30, 31, 32, 33, 34, 35]. Estes algoritmos são do tipo supervisionado. De acordo com os parâmetros que eles atualizam, os algoritmos para treinamento de redes do tipo MLP podem ser classificados em:

Estáticos;

Dinâmicos.

Como os algoritmos estáticos não alteram a estrutura da rede, variando apenas os valores de seus pesos, os algoritmos dinâmicos podem tanto reduzir quanto aumentar o tamanho da rede (número de camadas, número de nodos nas camadas intermediárias e número de conexões). Quando se utiliza o aprendizado estático, a mesma regra de aprendizado é empregada para redes do tipo MLP com diferentes tamanhos e formatos. Interessante observar que topologias diferentes podem resolver o mesmo problema.

O algoritmo de aprendizado mais conhecido para treinamento destas redes é o back-propagation [30]. A maioria dos métodos de aprendizado para RNAs do tipo MLP utiliza variações deste algoritmo. O back-propagation foi um dos principais responsáveis pelo ressurgimento de interesse em RNAs, por ocasião da publicação do livro Parallel Distributed Processing, mais conhecido como PDP, em 1986 [30]. Embora a popularização deste algoritmo tenha surgido a partir de 1986, ele foi proposto

Page 26: Apostila Redes Neurais

muito antes, com diferentes propósitos, por diferentes pequisadores como : Bryson e Ho [36] (1969), Werbos [37] (1974) , Parker [38] (1985) e Le Cun [39] (1985).

O back-propagation é um algoritmo supervisionado, que utiliza pares (entrada, saída desejada) para, através de um mecanismo de correção de erros, ajustar os pesos da rede. O treinamento ocorre em duas fases, onde cada fase percorre a rede em um sentido. Estas duas fases são chamadas de fase forward e fase backward. Estão ilustrada estas duas fases na Figura 11.

fase forward

fase Backward

Figura 11 - Fluxo de Processamento do algoritmo back-propagation.

A fase forward envolve os seguintes passos:

1 – A entrada é apresenta à primeira camada da rede, a camada C0.

2 – Para cada camada Ci a partir da camada de entrada

2.1 – Após os nodos da camada Ci (i > 0)

Calcular os sinais de saída, estes servem como entrada para a definição das saídas produzidas pelos nodos da camada Ci+1.

3 – As saídas produzidas pelos nodos da última cada são comparadas às saídas desejadas

A fase backward envolve as etapas listadas a seguir:

1 – A partir da última camada, até chegar na camada de entrada:

1.1 – Os nodos da camada atual ajustam seus pesos de forma a reduzir seus erros

1.2 – O erro de um nodo da camada intermediária é calculado, utilizando os erros dos nodos da camada seguinte conectados a ele, ponderado pelos pesos das conexões entre eles

Page 27: Apostila Redes Neurais

O algoritmo back-propagation, que faz uso destas duas fases, é apresentado a seguir:

1 – Inicializar pesos e parâmetros

2 – Repita até o erro ser mínimo ou a realização de um dado número de ciclos:

2.1 – Para cada padrão de treinamento X

2.1.1 – Definir saída da rede através de fase forward

2.1.2 – Comparar saídas produzidas com as saídas desejadas

2.1.3 – Atualizar pesos do nodos através da fase backward

O back-propagation é baseado na regra proposta por Widrow e Hoff [18], sendo também chamada de regra delta generalizada. Este algoritmo propõe uma forma de definir o erro dos nodos das camadas intermediárias, possibilitando o ajuste de seus pesos. Os ajustes dos pesos são realizados utilizando o método do gradiente. Na literatura da análise numérica, a regra delta generalizada é conhecida como “método da bola pesada” [40].

A derivação da regra delta generalizada é simples e semelhante à derivação da regra delta. Também neste caso, a função a ser minimizada é uma função erro, definida pela soma doe erros quadráticos e representada por:

p

k

i

pi

pi ydE

1

2)(2

1

onde E é a medida de erro total, p é o número de padrões, k é o número de unidades de saída, di é a i-ésima saída desejada e yi é a i-ésima saída gerada pela rede. Esta equação define o erro total cometido pela rede, ou a quantidade que, para todos os padrões p de um dado conjunto, as saídas geradas pela rede diferem das saídas desejadas.

A regra delta generalizada requer que as funções de ativação utilizadas pelos nodos sejam contínuas, diferenciáveis, geralmente, não decrescente da entrada total recebida pelo nodo. Estas funções são chamadas de funções semi-lineares. A Equação abaixo ilustra o cálculo do valor de ativação.

)( pjj

pj netfy

onde:

n

iji

pi

pj wxnet

1

A constante n represente o número de conexões de entrada do nodo j e wij o peso da conexão entre a entrada p

ix e o nodo j.

Page 28: Apostila Redes Neurais

Há garantia de convergência se a superfície do erro for simples. Uma forma de visualizar a influência do treinamento da rede no valor do erro está ilustrada pela superfície de erro da Figura 12. Esta Figura ilustra um caso simples de uma rede com apenas um nodo e duas conexões. Os valores dos pesos da rede definem a coordenada de um ponto da superfície do erro. O erro produzido pela rede, para cada combinação de valores de pesos, é pela altura da superficie naquele ponto.

Solução Desejada

Superfície do erro

Figura 12 - Superfície do Erro de uma Rede MLP

As três equações anteriores mostram como encontrar o erro global da rede e como encontrar o erro local de um determinado padrão de entrada, processadas as duas equações anteriores deve-se aplicar e equação seguinte que ajustará os pesos das diversas camadas:

ijji xw ou

)()()()1( txttwtw ijijij

onde )( jjj yd para camada de saída e iijj w para camadas intermediárias, i

unidade em questão, j camada em questão.

6.2.5 – Problemas Enfrentados no Treinamento de Redes MLP

Um dos problemas enfrentados no treinamento de rede MLP diz respeito à definição de seus parâmetros. A seleção dos parâmetros de treinamento do algoritmo back-propagation é um processo pouco conhecido, muitas vezes chamado de “magia negra”. Pequenas diferenças nestes parâmetros podem levar a grandes divergências tanto no tempo de treinamento como na generalização obtida.

Esta é uma dúvida que surge, naturalmente. Em que momento parar de treinar a rede? Existem vários métodos para a determinação do momento que o treinamento deva ser encerrado. Estes métodos são chamados de critérios de parada. Os critérios de paradas mais utilizados são:

1. Encerrar o treinamento após n ciclos;

2. Encerrar o treinamento após o erro quadrático médio ficar abaixo de uma constante c.

Page 29: Apostila Redes Neurais

3. Encerrar o treinamento quando a percentagem de classificações corretas estivarem acima de uma constante c (mais indicados para saídas binárias);

4. Combinação dos métodos acima.

Outro aspecto que precisa ser observado é freqüência das atualizações dos pesos. A freqüência de ajustes dos pesos influência o desempenho obtido durante o treinamento. Duas abordagens diferentes têm sido utilizadas quanto à freqüência (periodicidade) para o ajuste de pesos pelo algoritmo back-propagation:

Por padrão (on-line);

Por ciclo (batch).

Existem vantagens e desvantagens em cada uma destas abordagens. Na abordagem por padrão, os pesos são atualizados após a apresentação de cada padrão de treinamento. Esta abordagem é estável se a taxa de aprendizado for pequena (é a aconselhável reduzir progressivamente esta taxa). Quando taxas elevadas são utilizadas, a rede torna-se instável. A abordagem por padrão é mais rápida, principalmente, se o conjunto de treinamento for grande e redundante. Outra vantagem desta técnica e que ela requer menos memória.

Na abordagem por ciclo, por sua vez, os pesos são atualizados após todos os padrões terem sido apresentados. Esta técnica é mais estável, mas ela pode ser lenta, se o conjunto de treinamento for grande e redundante. Esta abordagem apresenta uma estimativa mais precisa do vetor gradiente, ao custo da necessidade de mais memória. A escolha da abordagem a ser utilizada depende da aplicação e da distribuição estatística dos dados.

O principal problema diz respeito a lentidão do algoritmo para superfícies complexas. Uma forma de minimizar este problema é considerar efeitos de segunda ordem (taxa de momentum) para o gradiente descendente. Não é raro o algoritmo convergir para mínimos locais.

Mínimos locais são pontos na superfície de erro que apresentam uma solução estável, embora não seja correta. Algumas técnicas são utilizadas tanto para acelerar o algoritmo back-propagation como para reduzir a incidência de mínimos locais:

Utilizar taxa de aprendizado decrescente;

Adicionar nós intermediários;

Utilizar um termo momentum;

Entre as várias técnicas utilizadas para acelerar o processo de treinamento e evitar mínimos locais, a adição de um termo momentum [236] é uma das mais freqüentes. O termo momentum é representado por:

))1()(()()()()1( twtwtxttwtw ijijijijij

onde é taxa de momentum a ser utilizada no processamento do aprendizado da rede.

Page 30: Apostila Redes Neurais

A inclusão da taxa de momentum na fórmula de ajuste dos pesos aumenta a velocidade de aprendizado (aceleração), reduzindo o perigo de instabilidade. A taxa momentum pode acelerar o treinamento em regiões muito planas para a superfície de erro. Além disso, ele suprime a oscilação de pesos em valores de ravinas.

Nesta seção foi mostrado as principais arquiteturas utilizadas na área de RNAs. Dentre os tópicos estudados destacam-se os algoritmos de aprendizagem do modelo MLP. Para um entendimento completo sobre tais conceitos apresentados o Apêndice 1, utiliza um rede MLP para a previsão de vida em doentes com hepatite.

Page 31: Apostila Redes Neurais

6 Conclusão

A utilização de RNAs pode ser considerada uma arte. Dentre os fatores inseridos no contexto de RNAs, pode-se destacar a configuração de dados para o treinamento, a escolha e análise das possíveis topologias. Ambos fatores citados são considerados de vital importância para que se obtenha uma solução plausível para um determinado problema.

Este trabalho discutiu alguns conceitos sobre RNA’s, dando ênfase as arquiteturas Perceptron de uma e de multiplas camadas.

Page 32: Apostila Redes Neurais

Apêndice 1 – Estudo de Caso

1 Introdução

As RNAs são consideradas ferramentas de grande potencial em diversas áreas do conhecimento, isto ocorre devido a sua grande capacidade de aprendizagem. Tais redes podem classificar e reconhecer diversos padrões, como por exemplo, áudio, imagem, etc.

O objetivo deste estudo é classificar a perspectiva de vida em doentes com hepatite, utilizando Redes Neurais do tipo MLP.

Foi utilizada uma abordagem tradicional em relação aos experimentos com rede MLP, que pode ser verificada em [41].

Os dados utilizados neste trabalho são de domínio público e podem ser encontrados no endereço www.ics.uci.edu/~mlearn/ MLSumary.html.

2 Hepatite: Tipos e Diagnósticos

Segundo [42], hepatite é um termo genérico que designa a inflamação do fígado, seja ela por conseqüência da agressão direta ou parte de um processo sistêmico. As hepatites mais comuns são as virais e as tóxicas. Dentre os processos tóxicos, encontram-se a hepatite medicamentosa, causada por ingestão excessiva ou inadequada de medicamentos; a hepatite decorrente de usos de drogas e alcoólica, que também pode ser crônica, ou seja, se dá por lesão direta à célula hepática e é a causa mais freqüente de cirrose. Entende-se por hepatite crônica, a inflamação do fígado por um período superior a 6 meses.

Existem vários tipos de hepatite, dentre estes tipos encontram-se:

Hepatite A - de transmissão fecal-oral e com a contaminação pela água e pelos alimentos, não se transmite pelo sangue, a não ser durante o período agudo. A taxa de mortalidade é muito baixa e não há relato de hepatite crônica por Hepatite A.

Hepatite B - se transmite por contato com sangue infectado, por via sexual ou pela chamada transmissão vertical, isto é, da mãe infectada para o recém nascido, no momento do parto. Os grupos de risco incluem os homossexuais, usuários de drogas intravenosas, pacientes em hemodiálise e profissionais da saúde. A hepatite pode ter cura completa, tornar-se fulminante ou câncer de fígado.

Hepatite C – tem alta incidência entre usuários de drogas intravenosas, com 80 % dos casos contraídos por transfusão de sangue.

Hepatite D - causada pelo agente delta e se desenvolve somente com a associação da Hepatite B. É epidêmica em algumas áreas, especialmente, na Amazônia.

Hepatite E - transmitida pela água e epidêmica na Ásia, no norte da África e no México. A sua transmissão é fecal-oral.

Hepatite F - causada por partícula viral detectada em pacientes submetidos a transplante hepático.

Page 33: Apostila Redes Neurais

A identificação dos diferentes tipos de hepatite se faz pela detecção do vírus, no sangue do paciente. O quadro clínico é, extremamente variável, podendo ocorrer casos completamente sem sintomas, só detectados por exames de laboratórios, além dos quadros de morte em poucos dias (hepatite fulminante).

O período de incubação varia de duas a seis semanas na Hepatite A, de seis semanas a seis meses na Hepatite B. A doença se manifesta por sintomas gerais de mal estar, fadiga intensa, náuseas e vômitos, febres, dor na região do fígado, que se apresenta de tamanho aumentado, fezes esbranquiçadas e urina escura. Cinco dias após o aparecimento dos sintomas tem início uma fase ictérica, em que a pele e as conjuntivas se apresentam amareladas. A doença aguda regride de duas a três semanas, os exames de laboratórios que monitoram a evolução da doença só revelam resultados normais após nove semanas (Hepatite A) ou dezesseis semanas (Hepatite B e C). A Hepatite C é verificada em 1% dos casos.

3 Descrição dos Dados Utilizados

A base de dado utilizada, como descrito na introdução, é de domínio publico. Esta base possui 155 instâncias, isto é, os dados de 155 pacientes. Cada instância possui 20 atributos descritos a seguir:

Atributos binários:

- Sexo.

- Steroid: Substância química presente em nosso organismo.

- Antivírus: Substância química presente em algumas pessoas.

- Fadiga: Sinais de cansaço após pequenos esforços físicos.

- Malaise: Enzima presente em nosso organismo.

- Anorexia: Substância química presente em nosso organismo.

- Fígado Inchado.

- Fígado Duro.

- Baço palpável.

- Spiders: Substância química presente em algumas pessoas.

- Ascites: Enzima presente em nosso organismo.

- Varices: Substância química encontrada em nosso organismo.

- Histologia: Estudo da células do paciente

- Classificação. Vivo ou Morto

Atributos numéricos:

- Idade.

Page 34: Apostila Redes Neurais

- Birilubin. Proteína encontrada em nosso organismo

- Fosfato.

- Sgot: Substância química encontrada em nosso organismo.

- Albumin. Proteína encontrada na gema do ovo.

- Protime: Substância química encontrada em nosso organismo.

A classificação dos dados é de responsabilidade do atributo “classificação”. Este atributo mostra se o paciente com determinadas características, valores dos demais atributos, encontra-se no estado vivo ou morto.

4 Treinamento, Teste e Validação dos Dados

A arquitetura utilizada neste estudo de caso, é o MLP mostrado no Capítulo 6. O algoritmo de aprendizagem utilizado é o back-propagation e o tipo de aprendizado é o supervisionado.

Para o treinamento, teste e validação da rede do tipo MLP foram utilizadas as topologias mostradas na Tabela 1.

Camada 1 Camada 2 Camada 319 5 119 6 119 7 119 8 1

Tabela 1 - Arquiteturas para Treinamento

Em tais topologias foram empregadas várias partições da base de dados. A divisão destas partições foram baseadas em [41].

A taxa de aprendizado foi inicializada em 0,54. Utilizou-se a taxa de momentum inicializada em 0,60. O erro mínimo aceitável para o treinamento foi determinado na casa de 0,04.

Através destes atributos pode-se classificar, dentre as topologias que foram utilizadas, qual se portou da melhor forma para solução deste problema.

5 Classificação

Dentro do processo de classificação podemos destacar os seguintes atributos:

% registros que variaram de 0 à 0,04 em relação a taxa de erro aceitável no processo de treinamento;

% registros que foram classificados corretamente após o treinamento da rede.

A Tabela 2 mostra como as diferentes topologias se portaram em relação aos atributos analisados.

Page 35: Apostila Redes Neurais

Topologia % de erro aceitável.19-5-1 83,0019-6-1 88,6719-7-1 87,6719-8-1 89,67

Tabela 2 - % de Registros Aceitáveis em Relação a Taxa de Erro

De acordo com os atributos classificatórios analisados, pode-se perceber que a topologia que melhor se adaptou em relação ao problema questionado (doentes com hepatite), foi a que utilizou 19 neurônios na camada de entrada, 8 neurônios na camada interna e 1 neurônio na cada de saída.

O processo de escolha da topologia está, intimamente, relacionado à questão da distribuição dos dados empregados para o treinamento, teste e validação da rede.

6 Conclusão

A utilização de RNAs voltada à área de medicina pode ser muito útil se considerada uma ferramenta auxiliar para os especialistas inseridos dentro desta área.

Este estudo de caso, analisou as perspectivas de vida de doentes com hepatite utilizando RNAs, mostrando as topologias e os resultados obtidos.

Page 36: Apostila Redes Neurais

Bibliografia Utilizada

[1] – W.S. McCulloch and W. Pitts. A Logical Calculus of the Ideas Immanent in Nervous Activity. Bulletin of Mathematical Biophysics, 5:115-133, 1943.

[2] – K. Fukushima. Cognitron: A Self-Organising Multilayered Neural Network. Biol. Cybern., 23:121-134, 1975

[3] – S. Grossberg. Adaptive Pattern Recognition and Universal Recoding: Parallel Development and Coding of Neural Feature Detectors. Biol. Cybern., 24:121-134, 1976.

[4] – S. Grossberg. Competitive Learning: From Interactive Activation to Adaptive Resonance. Cognitive Science, 11:23-63, 1987.

[5] – S. E. Hampson. Connectionistic Problem Solving: Computational Aspects of Biological Learning. Berlin: Birkhauser, 1990.

[6] – D. O. Hebb. The Organization of Behavior. Wiley, 1949.

[7] – J. J. Hopfield. Neural Networks and Physical Systems with Emergent Collective Properties. Proc. Nat. Acad. Sci., 79:2554-8, 1982.

[8] – T. Kohonen. Self-organized Formation of Topologically Correct Feature Maps. Biological Cybernetics, 43, 1982.

[9] – T. Kohonen. Self-Organization and Associative Memory. Springer-Verlag, Berlim 3 edition, 1989.

[10] – Y. Le Cun, J.S. Denker S.A. Solla. Optimal Brain Damage. In D.S. Touretzky, editor, Neural Information Processing Systems, volume 2, pages 598-605, Denver 1989, 1990. Morgan Kaufmann, San Mateo.

[11] – J. M. Mendel and R. W. McLaren. Adaptive, Learning, and Pettern Recognition Systems; Theory and Applications, chapter Reinforcement-learning control and pattern recogniton systems, pages 287-318. New York: Academic Press, 70.

[12] – M. Minsky and S. Papert. Perceptrons: an Introduction to Computational Geometry. MIT Press, Massachusetts, 1969.

[13] – M. L. Minsky. Steps Towards Artificial Intelligence. In Proc. of the Institute of Radio Engineers 49, pages 8-32 1961.

[14] – F. Rosenblatt. The Perceptron: A Probabilistic Model for Information Storange and Organization in the Brain. Psychol. Rev., 65:386-408, 1958.

[15] – D. E. Rumelhart, G. E. Hinton, and R. J. Williams. Learning Representations by Back-propagation Error. Nature, 323:533-536, 1986.

[16] – R. S. Sutton. A. G. Barto, and R. J. Willians. Reinforcement Learning is Direct Adaptive Optimal Control. In Proc. of the American Control Coference, pages 2143-2146: 1991.

Page 37: Apostila Redes Neurais

[17] – E. L. Thorndike, Animal Intelligence. Darien, 1911.

[18] – B. Widrow and M.E. Hoff. Adaptative Switching Circuits. Institute of Radio Enginners. Western Electronic Show and Convention, 1960.

[19] – K. Sycara. Using Case-Based Reasoning for plan Adaptation and Repair. In Case Based Reasoning Workshop, DARPA, pages 425-434, Morgan Kaufmann, 1988.

[20] – G. Cybenko. Approximation by Superpositons of a Sigmoid Function. Mathematics of Control, Signals and Systems, 2:303-314, 1989.

[21] – G. Cybenko. Continuos Valued Neural Network with two Hidden Layers are Sufficient. Technical Report, Departament of Computer Science, Tufts University, 1988.

[22] – D. Lay. Algebra Linear and its Applications. Addison Wesley, 1997.

[23] – S. Geman, E. Bienenstock, and R. Doursat. Neural Network and the Bias-variance Dilemma. Neural Computation, 4:1-58, 1992.

[24] – Russel Reed. Pruning Algorithms – A survey. IEEE Transactions on Neural Networks, 4(5):740-746, 1993.

[25] – M. C. Mozer and P. Smolensky. Skeletonization: A Technique for Trimming the fat from a Network via Rebalance Assessment. In D. S. Touretzky, editor, Advances in Neural Information Processing System 1, pages 107-115. Morgan Kaufmann, 1989

[26] – Ehud D. Karnin. A Simple Procedure for Pruning Back-Propagation Trained Neural Networks. IEEE Transactions on Neural Networks, 1:(2):239-242, 1990.

[27] – Y. Le Cun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard, and L.D. Jackel. Handwritten Digit Recognition with a Back-propagation Network. In D.S. Touretzky, editor, Neural Information Processing Systems, volume 2, pages 396-404, Denver 1989, 1990. Morgan Kaufmann, San Mateo.

[28] – Geoffrey E. Hinton and Stephen J. Nowlan. How Learning Can Guide Evolution Complex Systems, 1(1):495-502, June 1987.

[29] – A. N. Tikhonov And V. Y. Arsenin. Solutions of III-Posed Problems. V.H. Winston & Sons, John Wiley & Sons, Washington D.C., 1977. Translation editor Fritz John.

[30] – D. E. Rumelhart and J. L. McClelland. Parallel Distributed Processing, volume 1: Foundations. The MIT Press, 1986.

[31] – S. E. Fahlman. An Empirical Study of Learning Speed in Back-propagation Network. Technical Report, Carnegie Mellow University, 1988.

[32] – M. Riedmiller. Rprop – Description and Implementation Details. Techinical Report Universty of Karlsruhe, 1994.

Page 38: Apostila Redes Neurais

[33] – B. Pearlmutter. Gradient Descent: Second Order Momentum and Saturation Erro. In J. E. Moody, S. Hanson, and R. Lippmann, editors, Advances in Neural Information Processing Systems 2, pages 887-894. Morgan Kaufmann, 1992.

[34] - R. Barletta. An Introduction to Case-based Reasoning. AI Expert, pages 43-49, 1991.

[35] – M. Hagan and M. Menhaj. Training Feedforward Network with The Marquardt Algorithm. IEEE Transactions on Neural Networks, 5(6):989-993, November 1994.

[36] – A. E. Bryson and Y. Ho. Applied Optimal Control. Blaisdell, 1969.

[37] – P. Werbos. Beyond Regression: News Tools For Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University, 1974.

[38] – D. Parker Learning Logic: Casting the Cortex of the Human Brain in Silicon Technical Report, Center for Computational Research in Economics and Management Science, MIT, 1985.

[39] – Y. Le Cun. A learning Procedure for Assymetric Threshold Network. In Proceedings of Cognitiva 85, pages 599-604, 1985.

[40] – D. Bertsekas. Non Linear Progamming. Athena Scientific, 1995.

[41] – Lutz Prechelt. Problem 1 – A Set of Neural Network Benchmark Problems and Benchmarking Rules. Technical Report, University Karlsruhe Germany, 1994.

[42] – Nova Enciclopédia Barsa. Encyclopaedia Britânica do Brasil Publicações Ltda. Rio de Janeiro – São Paulo, 1998. Volume 7, páginas 356, 357.