Tutorial Redes Neurais Artificiais

17
REDES NEURAIS ARTIFICIAIS: UM BREVE TUTORIAL Renato Corrêa Vieira [email protected] Mauro Roisenberg [email protected] Laboratório de Conexionismo e Ciências Cognitivas (L3C) Universidade Federal de Santa Catarina (UFSC) – Florianópolis –SC - Brasil Resumo O estudo das Redes Neurais Artificiais tem alta relevância para os pesquisadores de Inteligência Artificial, sendo objeto de crescentes pesquisas e servindo como valiosa ferramenta para diversas aplicações. Este trabalho tem em seu âmbito geral o objetivo de fazer uma breve introdução as Redes Neurais Artificiais, tentando explorar suas peculiaridades principais, de forma a seguir como um breve guia introdutório aos interessados nesta tecnologia. Tendo em vista que o objetivo deste trabalho é fazer um apanhado geral do assunto, tentaremos nos direcionar para pontos cruciais como a descrição do neurônio biológico, aprendizado e treinamento das Redes Neurais Artificiais, também serão feitos comentários sobre as principais arquiteturas, mostrando uma aplicação real, utilizando para isso o software Matlab 6.0. Este tutorial não tem exigência de nenhum pré-requisito especial, sendo um guia introdutório para o estudante interessado em conhecer a tecnologia das Redes Neurais Artificiais. 1 – Introdução O ser humano é dotado de complexos circuitos neurais cerebrais que constam de variadas conexões entre seus neurônios (sinapses) interagindo entre si de modo a fazer emergir comportamento inteligente. Sendo assim, surge a idéia de que se conseguirmos modelar computacionalmente estas conexões neurais, poderíamos fazer emergir comportamentos também inteligentes em máquinas. Neste contexto, surgem as redes neurais artificiais (RNAs) que são inspiradas na própria natureza das redes de neurônios e sinapses biológicas. Esta idéia de modelagem cerebral forma a vertente da Inteligência Artificial chamada Inteligência Artificial Conexionista.

description

Tutorial de Introdução à Redes Neurais Artificiais.

Transcript of Tutorial Redes Neurais Artificiais

Page 1: Tutorial Redes Neurais Artificiais

REDES NEURAIS ARTIFICIAIS: UM BREVE TUTORIAL

Renato Corrêa Vieira

[email protected]

Mauro Roisenberg [email protected]

Laboratório de Conexionismo e Ciências Cognitivas (L3C)

Universidade Federal de Santa Catarina (UFSC) – Florianópolis –SC - Brasil

Resumo

O estudo das Redes Neurais Artificiais tem alta relevância para os pesquisadores de Inteligência Artificial, sendo objeto de crescentes pesquisas e servindo como valiosa ferramenta para diversas aplicações.

Este trabalho tem em seu âmbito geral o objetivo de fazer uma breve introdução as Redes Neurais Artificiais, tentando explorar suas peculiaridades principais, de forma a seguir como um breve guia introdutório aos interessados nesta tecnologia. Tendo em vista que o objetivo deste trabalho é fazer um apanhado geral do assunto, tentaremos nos direcionar para pontos cruciais como a descrição do neurônio biológico, aprendizado e treinamento das Redes Neurais Artificiais, também serão feitos comentários sobre as principais arquiteturas, mostrando uma aplicação real, utilizando para isso o software Matlab 6.0. Este tutorial não tem exigência de nenhum pré-requisito especial, sendo um guia introdutório para o estudante interessado em conhecer a tecnologia das Redes Neurais Artificiais. 1 – Introdução O ser humano é dotado de complexos circuitos neurais cerebrais que constam de variadas conexões entre seus neurônios (sinapses) interagindo entre si de modo a fazer emergir comportamento inteligente. Sendo assim, surge a idéia de que se conseguirmos modelar computacionalmente estas conexões neurais, poderíamos fazer emergir comportamentos também inteligentes em máquinas. Neste contexto, surgem as redes neurais artificiais (RNAs) que são inspiradas na própria natureza das redes de neurônios e sinapses biológicas. Esta idéia de modelagem cerebral forma a vertente da Inteligência Artificial chamada Inteligência Artificial Conexionista.

Page 2: Tutorial Redes Neurais Artificiais

Outro ponto importante para sedimentar à utilização das redes neurais artificiais é que existem classes de problemas que a complexidade algorítmica é muito grande, de modo a se tornar inviável a resolução algorítmica convencional. Entretanto, o ser humano tem mecanismos intrínsecos que resolvem problemas complexos como reconhecimento de fala e segmentação de imagens de maneira inata.

Além disso, as RNAs são dispositivos que permitem tolerância a ruídos e falhas, o que advém da capacidade de generalização das redes, sendo capaz de suportar ruídos e imperfeições no ambiente, ainda mantendo um resultado desejado. Apesar do pouco conhecimento do cérebro humano, além da dificuldade de modelar mesmo o que já sabemos, as pesquisas em redes neurais tem se mostrado bastantes promissoras em diversas áreas, como engenharia, computação e até mesmo nas neurociências. Sendo também de grande utilidade para problemas como reconhecimento de padrões, agrupamento, previsão de séries temporais, etc. Nas próximas seções deste trabalho veremos importantes pontos das RNAs como um breve levantamento de sua história, também veremos como se dá o funcionamento do neurônio artificial, bem como sua relação com o neurônio biológico, então passaremos a tratar do aprendizado e treinamento das redes, dando ênfase ao algoritmo de treinamento Backpropagation e finalmente mostraremos uma aplicação utilizado o software Matlab. 2 – História Podemos considerar que a história das Redes Neurais Artificiais remonta do ano de 1943 quando McCulloch e Pitts conceberam o primeiro modelo de neurônio artificial que se baseia em uma espécie de modelagem matemática do neurônio biológico (McCulloch & Pitts, 1943). O surgimento do neurônio de McCulloch e Pitts foi considerado como marco final da chamada época antiga das Redes Neurais, época esta caracterizada pelas conquistas da psicologia e neurofisiologia, apesar de terem sido feitas maiores conquistas na área da psicologia do que na neurofisiologia. Neste contexto surge a Época Romântica da abordagem conexionista da Inteligência Artificial, esta época teve um grande marco que foi o trabalho de Donald Hebb que sugeriu em seu livro “Organization of Behavior” um modo de proporcionar capacidade de aprendizado às redes neurais artificiais. Além disso, cresceu a intenção em buscar inspiração na própria natureza para fazer emergir comportamentos inteligentes. Nesta fase as pesquisas eram limitadas pela baixa tecnologia computacional existente. A época romântica culminou no famoso encontro do Darthmouth College onde segundo (BARRETO, 1997) foi o primeiro encontro conjunto para estudar a Inteligência Artificial (IA), sendo que os anos que se seguiram ao encontro em Darthmouth foram de muito otimismo para os pesquisadores de IA e estes pensavam que brevemente qualquer problema poderia ser resolvido com inteligência artificial, esta idéia ganhou ainda mais força com o Perceptron de Frank Rosenblatt. O Perceptron era uma rede neural de duas camadas de neurônios capaz de aprender de acordo com a lei de Hebb.

Page 3: Tutorial Redes Neurais Artificiais

Em 1969, Minsky & Papert em seu livro Perceptrons (MINSKY & PAPERT, 1969) provaram que a rede proposta anteriormente por Rosenblatt não era capaz de distinguir padrões linearmente separáveis como o problema do OU-Exclusivo. O livro Perceptrons rapidamente fez as pesquisas em redes neurais artificiais estancarem, pois se gerou uma onda de pessimismo na comunidade acadêmica, esta fase ficou conhecida como Época das Trevas e durou até 1981. Todavia, as pesquisas em inteligência artificial continuaram com o intuito de resolver problemas em domínios restritos, sendo um estopim para o desenvolvimento de sistemas especialistas. A Época de Renascimento (1981-1987) caracterizou-se pelo renascimento da inteligência artificial conexionista, tendo mais a função de preparação para a fase seguinte que seria já a Época Contemporânea, aonde vem acontecendo uma espécie de explosão nas aplicações que utilizam RNAs, esta explosão se deveu a junção de algumas inovações como o algoritmo de treinamento Backpropagatiom, proposto por Paul Werbos em 1974 (porém somente popularizado em 1986 pelo grupo PDP). Além da utilização de várias camadas nas de neurônios, podemos considerar importante também os estudos de John Hopfield que salientava as propriedades associativas de uma classe de redes neurais que apresentava fluxo de dados multidirecional e comportamento dinâmico. (ROISENBERG, 1998). Apesar de tudo, as redes neurais ainda possuem algumas limitações que são campo aberto para pesquisas como a falta de uma análise matemática profunda e estudos sobre computabilidade e complexidade computacional. 3 – Neurônio Biológico Um neurônio típico é composto por um corpo celular ou soma, um axônio tubular e várias ramificações arbóreas conhecidas como dendritos. Os dendritos formam uma malha de filamentos finíssimas ao redor do neurônio. Ao passo que o axônio consta de um tubo longo e fino que ao final se divide em ramos que terminam em pequenos bulbos que quase tocam os dendritos dos outros neurônios. O pequeno espaço entre o fim do bulbo e o dendrito é conhecido como sinapse, através da qual as informações se propagam. O número de sinapses recebidas por cada neurônio variam de 100 a 100.000, sendo que elas podem ser tanto excitatórias como inibitórias. Nas figuras 1 e 2 são mostradas ilustrações de um neurônio artificial e de uma sinapes, respectivamente.

Figura 1 – Neurônio Biológico

Page 4: Tutorial Redes Neurais Artificiais

Figura 2 – Representação da sinapse neural

A célula nervosa tem um potencial de repouso devido aos íons Na+ e K – estarem em concentrações diferentes dentro e fora da célula, de modo que qualquer perturbação na membrana do neurônio provoca uma série de alterações durante um curto período de tempo. A alteração na concentração dos íons Na+ e K – gera um trem de pulso que se expande localmente nas proximidades dos dendritos. Dependendo da intensidade do estímulo, este trem de pulso pode exceder um certo limiar no corpo celular e gerar um sinal com amplitude constante ao longo do axônio. Na fronteira do momento do disparo do neurônio, é gerado um potencial de ação que impulsiona o fluxo do sinal gerado pelo corpo celular para outras células. O pulso elétrico gerado pelo potencial de ação libera neurotransmissores que são substâncias químicas contidas nos bulbos do axônio, estes neurotransmissores são repassados para os dendritos do neurônio seguinte. Assim, quando o conjunto de neurotransmissores que chegam aos dendritos de um determinado neurônio atinge um certo limiar, eles disparam de novo um potencial de ação que vai repetir todo o processo novamente. Convém ressaltar que as sinapses podem ser excitatórias, facilitando o fluxo dos sinais elétricos gerados pelo potencial de ação, como podem também ser inibitórias que tem como característica dificultar a passagem desta corrente. Esta seção teve o intuito de apenas contextualizar a inspiração biológica a qual as redes neurais artificiais são idealizadas, para mais informações acerca do funcionamento do sistema neural, o leitor pode consultar (NICHOLLS2000) e (LAVINE, 1983) que foram utilizados como literatura base para esta seção.

Page 5: Tutorial Redes Neurais Artificiais

4 – Neurônio Artificial Apesar dos esforços em se modelar os neurônios biológicos tudo que se conseguiu até hoje foi uma aproximação elementar. Neste trabalho mostraremos uma generalização do modelo proposto por Azevedo (Apud Roisenberg, 1998). A figura 3 ilustra este modelo.

Figura 3 – Neurônio Artificial

Neste modelo as entradas do neurônio uj podem ser saídas de outros neurônios, entradas externas, um bias ou qualquer combinação destes elementos. Estas entradas são ponderadas pelos pesos wij que são inspirados na força da conexão sináptica. Desta forma, temos o chamado net do neurônio que é geralmente o somatório de todas as entradas multiplicadas pelos seus respectivos pesos. Ou seja:

ij

n

ji wunet ∑=1

Sendo que wij significa o peso da conexão sináptica do neurônio i para o neurônio j. Também temos a função de ativação φ que só existe em neurônios dinâmicos, pois os estados futuros dos neurônios são afetados tanto pelo net de entrada como pelo estado atual do neurônio, ou seja, este tipo de neurônio tem uma certa “memória”que permite guardar esta informação de estados anteriores. Entretanto, em grande parte da literatura considera-se a função de ativação constante, tornando os neurônios em entidades estáticas. (ROISENBERG, 1998) A função de saída η é quem produz a saída do neurônio e normalmente tem forma contínua e crescente, de tal sorte que seu domínio geralmente se encontra no âmbito dos números reais. Geralmente utiliza-se como função de saída as funções lineares, sigmoidal ou logística e a função tangente hiperbólica. 5 – Topologia das Redes Neurais Artificiais Para a vasta maioria dos problemas práticos um único neurônio não é suficiente, sendo assim utiliza-se neurônios interconectados, sendo que a decisão de

: :

un

u3

u2

u1

wn

w3

w2 y

net i φ η

Page 6: Tutorial Redes Neurais Artificiais

como interconectar os neurônios é uma das mais importantes decisões a se tomar em um projeto de uma rede neural artificial No tocante de como os neurônios se interligam, é conveniente ressaltar a utilização de camadas intermédiárias (ou ocultas) que permitem as RNAs implementar superfícies de decisão mais complexas. Estas camadas permitem que seus elementos se organizem de tal forma que cada elemento aprenda a reconhecer características diferentes do espaço de entrada, assim, o algoritmo de treinamento deve decidir que características devem ser extraídas do conjunto de treinamento. A desvantagem em utilizar camada escondida é que o aprendizado se torna muito mais difícil. As redes neurais artificiais podem ser diretas ou recorrentes, sendo que a principal diferença entre elas é que na primeira os neurônios não recebem realimentação em suas entradas, ou seja, seu grafo não tem ciclos. Atualmente as redes neurais diretas são as mais utilizadas, principalmente pelo advento da popularização do algoritmo de treinamento backpropagation. Este tipo de rede pode ser considerado um aproximador universal de funções, sendo que seu nível de precisão dependerá principalmente do número de neurônios, bem como da escolha eficiente do conjunto de exemplos.

Nas redes neurais recorrentes existe pelo menos um ciclo de retroalimentação, onde algum neurônio fornece o seu sinal de saída para a entrada de outro neurônio. Este tipo de rede se comporta melhor com problemas dinâmicos e que portanto necessitam de dinâmica da rede neural, entretanto neste trabalho trataremos apenas das redes neurais diretas, pela sua maior popularização. para saber mais sobre redes neurais recorrentes, procurar em (CLEEREMANS, SERVAN-SCHREIBER, MCCLELLAND, J., 1989) (CASEY,1993) e (BURROWS e NIRANJAN, 1993)

As figuras 4 e 5 ilustram redes neurais diretas e recorrentes, respectivamente. É importante salientar que as conexões entre neurônios podem ser feitas de outras diversas maneiras, ou seja, podemos fazer ligações entre neurônios da mesma camada, podemos fazer ligações entre todos neurônios de uma camada com apenas alguns de outra camada, e assim por diante. A disposição das ligações dependerá de que tipo de rede neural se deseja utilizar, bem como novas arquiteturas ainda são objeto de pesquisa e o campo ainda está aberto para inovações neste sentido.

Figura 4 – Rede Neural Direta.

Page 7: Tutorial Redes Neurais Artificiais

Figura 5 – Rede Neural Recorrente

6 – Aprendizado: Algoritmo Backpropagation O conhecimento das redes neurais artificiais (RNA) se dá através da ponderação que os pesos da conexão entre os neurônios de diferentes camadas trocam entre si. Ou seja, encontrar solução para um determinado problema utilizando RNA seria, a grosso modo, encontrar a melhor topologia de rede, bem como ajustar corretamente os pesos das conexões entre os neurônios. A forma de aprendizado das RNAs podem ser classificadas em dois tipos: supervisionado e não supervisionado. O aprendizado supervisionado inere em sua estrutura uma espécie de instrutor que confere o quanto a rede está próxima de uma solução aceitável, adaptando na concepção do treinamento os pesos entre os neurônios, de modo a prover uma menor diferença entre as saídas desejadas e a obtida. Já o aprendizado não-supervisionado não possui conhecimento a priori das saídas da rede, e funciona de modo a distinguir classes de padrões diferentes dos dados apresentados à rede, através de algoritmos de aprendizado baseados geralmente em conceitos de vizinhança e agrupamento. Na aprendizagem não-supervisionada a rede é ajustada de acordo com regularidades estatísticas dos dados de entrada, de tal forma que ela cria categorias, otimizando em relação aos parâmetros livres da rede uma medida da qualidade que é independente da tarefa a ser executada. Para mais informações sobre aprendizado não supervisionado, consultar (KOHONEN, 1987) e (FREEMAN SKAPURA, 1992). Neste trabaho focaremos apenas o tipo de aprendizado supervisionado, apresentando o algoritmo de treinamento backpropagation, o qual é a alternativa mais utilizada para treinamento de redes neurais diretas. O algoritmo backpropagation provê um aprendizado supervisionado, isto é, ele procura achar iterativamente a mínima diferença entre as saídas desejadas e as saídas obtidas pela rede neural, segundo um erro mínimo. Desta forma, ajustando os pesos entre as camadas através da retropropagação do erro encontrado em cada iteração.

Uma solução para superar o problema do aprendizado da classificação de padrões não-linearmente separáveis é a utilização de uma camada intermediária de neurônios, chamada Camada Escondida ("Hidden Layer"), de modo a poder implementar superfícies de decisão mais complexas. A característica principal da

Page 8: Tutorial Redes Neurais Artificiais

camada escondida é que seus elementos se organizam de tal forma que cada elemento aprenda a reconhecer características diferentes do espaço de entrada, assim, o algoritmo de treinamento deve decidir que características devem ser extraídas do conjunto de treinamento. A desvantagem em utilizar camada escondida é que o aprendizado se torna muito mais difícil.

Como até o início dos anos 70 nenhum algoritmo de aprendizado para estas redes multicamadas havia sido desenvolvido, as pesquisas na área de redes neurais acabaram caindo em descrédito, até que nos anos 80, um algoritmo chamado Retro-propagação ou Backpropagation, veio fazer renascer o interesse geral pelas redes neurais.

O algoritmo Backpropagation foi desenvolvido de maneira independente por vários pesquisadores trabalhando em diferentes áreas aproximadamente na mesma época. Em 1974, Werbos (WERBOS, 1974) apresentou o algoritmo enquanto desenvolvia sua tese de doutorado em estatística e o chamou de "Algoritmo de Realimentação Dinâmica". Parker (PARKER, 1982) redescobriu o algoritmo e chamou-o de "Algoritmo de Aprendizado Lógico". Porém, foi com o trabalho de Rumelhart, Hinton e Williams (RUMELHART e MCCLELLAND, 1986) do grupo PDP ("Parallel Distributed Processing") do MIT em 1986 divulgou e popularizou o uso do Backpropagation para o aprendizado em redes neurais. O algoritmo Backpropagation é hoje em dia a técnica de aprendizado supervisionado mais utilizada para redes neurais unidirecionais multicamadas.

Uma descrição sumária da operação da rede é apropriada neste instante para ilustrar como o Backpropagation é utilizado para o aprendizado de problemas de mapeamento complexo. Basicamente, a rede aprende um conjunto pré-definido de pares de exemplos de entrada/saída em ciclos de propagação/adaptação. Depois que um padrão de entrada foi aplicado como um estímulo aos elementos da primeira camada da rede, ele é propagado por cada uma das outras camadas até que a saída seja gerada. Este padrão de saída é então comparado com a saída desejada e um sinal de erro é calculado para cada elemento de saída.

O sinal de erro é então retro-propagado da camada de saída para cada elemento da camada intermediária anterior que contribui diretamente para a formação da saída. Entretanto, cada elemento da camada intermediária recebe apenas uma porção do sinal de erro total, proporcional apenas à contribuição relativa de cada elemento na formação da saída original. Este processo se repete, camada por camada, até que cada elemento da rede receba um sinal de erro que descreva sua contribuição relativa para o erro total. Baseado no sinal de erro recebido, os pesos das conexões são então atualizados para cada elemento de modo a fazer a rede convergir para um estado que permita a codificação de todos os padrões do conjunto de treinamento.

Como podemos ver da descrição acima, o Backpropagation utiliza o mesmo princípio da Regra Delta, qual seja, a minimização de uma função custo, no caso, a soma dos erros médios quadráticos sobre um conjunto de treinamento, utilizando a técnica de busca do gradiente-descendente. Por esta razão, o algoritmo Backpropagation também é chamado muitas vezes de Regra Delta Generalizada

Page 9: Tutorial Redes Neurais Artificiais

("Generalized Delta-Rule"). A modificação principal em relação a Regra Delta foi a utilização de funções contínuas e suaves como função de saída dos neurônios ao invés da função de limiar lógico. Como as funções de saída passaram a ser deriváveis, isto permitiu a utilização da busca do gradiente-descendente também para os elementos das camadas intermediárias. 6.1 – Formalização matemática do Algoritmo Backpropagation Neste trabalho iremos dar apenas uma descrição resumida sobre como funciona a matemática do algoritmo backpropagation, para saber mais detalhes ver (FREEMAN & SKAPURA, 1992) e (HAYKIN, 1994). Para isto, utilizaremos como referência a arquitetura unidirecional apresentada na figura 5.

1

i

n

x

x

x

k1

ki

kn

1

j

p

lm

1

bias bias

w jih

θjhnetkj

h

1

1

11

1

1

fjh net

kjh( )

wpjo

θponetkp

o fpo net

kpo( )

Camada deEntrada

Camada Escondida

Camada deSaída

...

......

...

...

...

Figura 5 – Arquitetura unidirecional multi-camada

Suponhamos que tenhamos um conjunto de P pares de vetores (X1,Y1), (X2,Y2), ..., (XP, YP), no nosso conjunto de treinamento e que são exemplos de um mapeamento funcional definido como:

Y X X Yn m= ∈ℜ ∈ℜφ ( ) : , (1)

Desejamos treinar a rede de modo que ela consiga aprender uma aproximação da forma: O Y X X Yn m= ′ = ′ ∈ℜ ′ ∈ℜφ ( ) : , (2) O mapeamento funcional que foi proposto acima pode ser entendido como um conjunto de coordenadas cartesianas em que para cada xi de entrada existe um yi de saída, assim escolhendo para uma função qualquer um bom exemplo de pontos P(xi,yi) a rede será capaz, depois de treinada, de interpolar entre eles para

Page 10: Tutorial Redes Neurais Artificiais

reconhecer pontos não apresentados no conjunto de exemplos, desta forma aproximando a função.

Continuando a descrição temos que os elementos de entrada distribuem os valores dos exemplos para os elementos da camada escondida, sendo que o valor do net para o jésimo elemento da camada escondida vale:

net w xkjh

jih

i

n

ki jh= +

=∑

1

θ (3)

onde w jih é o peso da conexão entre o iésimo elemento da camada de entrada e o

jésimo elemento da camada escondida h e θ p0 é o termo opcional chamado bias que

provê um valor fictício de entrada igual a 1, dando um grau de liberdade maior para a função de saída do neurônio. Assumindo que os neurônios são estáticos o valor da função de ativação será igual ao net, assim temos que o valor de saída para um neurônio da camada escondida vale:

i f netkj jh

kjh= ( ) (4)

Da mesma forma para os neurônios da camada de saída teremos:

net w ikpo

pio

kjj

l

po= +

=∑

1

θ (5)

o f netkp po

kpo= ( ) (6)

Como queremos minimizar o erro tal qual a regra Delta, definiremos o erro como sendo a diferença entre o valor desejado e o valor calculado pela rede, assim teremos para um único neurônio a seguinte formulação para o erro:

E y okp kp kp= − ( ) (7)

E para todos os neurônios podemos formular um erro total utilizando o erro médio quadrático sendo assim, teremos:

E Ek kpp

m

==

∑12

2

1

(8)

Como o que interessa é encontrar o menor erro quadrático, a busca na superfície de erros se dá pelo gradiente negativo, ou seja, a direção de modificações dos pesos será dada de acordo com a direção que o vetor gradiente seguir na superfície. A formulação matemática do vetor gradiente não será mostrada neste trabalho, ficando a cargo do leitor interessado buscar na bibliografia citada. Finalmente, temos que a atualização dos pesos dos neurônios da camada de saída será dada por:

Page 11: Tutorial Redes Neurais Artificiais

w t w t w tpjo

pjo

k pjo( ) ( ) ( )+ = +1 ∆ (9)

Onde,

∆ k pjo

kp kp po

kpo

kjw y o f net i= − ′η ( ) ( )

Sendo que o fator η é um parâmetro chamado taxa de aprendizado que escala a mudança dos pesos na direção do gradiente.

Convém ressaltar que a função f po precisa ser uma função diferenciável para

que seja possível implementar a busca do gradiente descendente.

Os cálculos para os neurônios das camadas escondidas são similares, salvo pelo fato de não sabermos a priori qual o valor desejado de saída para os neurônios destas camadas. Assim, o cálculo é feito em função das saídas desejadas pela camada de saída, pois estas estão intimamente ligadas com as saídas dos neurônios das camadas intermediárias.

Em determinadas superfícies de erro o vetor gradiente pode oscilar bastante entre pontos da superfície, dificultando e diminuindo a velocidade de convergência para o erro médio quadrático desejado. Sendo assim, surge um termo chamado de momento que tenta contornar este tipo de situação.

O termo de momento faz com que a alteração dos pesos na iteração corrente dependa proporcionalmente também a alteração de pesos da iteração anterior. A adição deste termo é feita na regra de atualização dos pesos dada em (9). Assim teremos:

)()()1( twtwtw opjk

opj

opj ∆+=+ α ,

Onde α é o termo de momento.

6.2 – Considerações Práticas É interessante fazer um comentário a respeito de que valores utilizar para os parâmetros que tangem o treinamento de uma rede neural artificial. Todavia, estas recomendações são para a maioria dos problemas, podendo existir problemas em que a solução mais viável foge dos comentários aqui recomendados, isto é uma forte premissa que sugere que as redes neurais artificiais ainda precisam de uma análise matemática mais profunda. Podemos iniciar citando que os pesos devem ser inicializados com valores aleatórios e pequenos, geralmente no intervalo de [-0,1,0,1]. Isto é explicado pelo fato de que a utilização de pesos de grande magnitude pode levar a uma saturação nos neurônios da camada intermediária.

Page 12: Tutorial Redes Neurais Artificiais

Devemos também citar que quanto melhor a escolha dos exemplos, isto é, um equilíbrio entre quantidade e qualidade, melhor será a resposta da rede, pois ela terá um intervalo abrangente para interpolar. O parâmetro taxa de aprendizado que é o valor do “passo” que o vetor gradiente irá dar na superfície de erro geralmente deve ficar entre 0,1 à 0,3 , pois valores muito grandes para este parâmetro pode fazer o vetor gradiente ficar “saltando” de um lado para o outro na superfície de erros. O termo de momento deve ter um valor “alto” como 0,8 e 0,9 para que o vetor gradiente fuja de mínimos locais, bem como mantenha uma direção adequada a ser seguida. O treinamento deve ser paralisado quando um erro médio quadrático aceitável for achado ou se um certo número de épocas (iterações) pré-fixadas forem atingidas. É importante ressaltar que o exagero no treinamento pode levar a rede a piorar sua capacidade de generalização. O número de camadas intermediárias e de neurônios geralmente é obtido por tentativa-e-erro, sendo a experiência a principal heurística do projetista da RNA. Todavia, deve se levar em consideração que com um número muito pequeno de neurônios a rede pode não ter recursos suficientes para aprender. Além disso, a utilização de um número muito grande de neurônios e conexões pode fazer a rede perder sua capacidade de interpolação, pois ela decora os exemplos, ficando assim “cristalizada”. 7 - Aplicação

Neste trabalho iremos abordar o problema da interrupção da ventilação mecanicamente assistida1. A interrupção do suporte respiratório para um paciente que esteja recebendo ventilação mecânica requer a avaliação da capacidade do paciente de continuar respirando sem auxílio, de maneira estável clínica e fisiologicamente.

Retirar o auxílio prematuramente pode levar ao sofrimento do paciente, enquanto que deixar tempo a mais, representa gasto desnecessário de um recurso escasso e pode ser porta para entrada de infecções no paciente.

Métodos tradicionais de avaliação do momento de retirada da ventilação assistida não são confiáveis (um médico especialista ressaltou que um método atualmente utilizado para tomar a decisão é “verificar se o paciente tem um ‘brilho’ no olhar”).

Geralmente o médico deve tomar esta decisão baseado nas seguintes variáveis que são facilmente obtidas dos pacientes:

§ Pico negativo da pressão inspiratória (cm.H2O). § Taxa respiratória (respirações/minuto). § Volume Tidal.

Neste contexto treinaremos uma RNA com o algoritmo backpropgation com 21 tentativas de interromper a ventilação mecanicamente assistida, neste conjunto 9 tiveram sucesso e 12 falharam. Em suma, a rede receberá 21 exemplos (tabela 1), onde cada um deles será formado pelas seguintes entradas: pressão inspiratória 1 Esta aplicação foi proposta em (Ashutosch et al, 1992)

Page 13: Tutorial Redes Neurais Artificiais

negativa (PIN) em cm .H2O; volume tidal (VT) e taxa respiratória(TR) dada em respirações por minuto e obterá como resposta se o médico teve sucesso ou falha em retirar o equipamento.

Esta rede terá três neurônios na camada de entrada, cada um deles representando as variáveis descritas acima, além disso, terá apenas uma camada escondida, bem como um único neurônio na camada de saída que representará se o especialista teve sucesso ou falha em retirar o equipamento.

Tabela 1 – Conjunto de treinamento da RNA PIN VT TR Resultado -24 300 24 Sucesso -30 500 17 Falha -23 300 29 Sucesso -26 265 44 Falha -18 370 32 Falha -22 350 30 Falha -10 320 29 Falha -60 650 16 Sucesso -20 225 46 Falha -24 276 38 Falha -15 270 40 Falha -30 250 30 Sucesso -42 950 13 Sucesso -12 220 32 Falha -20 124 33 Falha -42 750 24 Sucesso -32 530 21 Sucesso -40 916 22 Sucesso -30 500 19 Sucesso -25 412 30 Falha -28 400 38 Falha

Depois da rede ser treinada com os dados descritos na tabela 1 ela deve ser capaz de acertar o resultado (sucesso ou falha) para novas entradas que não foram apresentadas a rede no momento do treinamento. Sendo assim, separamos um conjunto de testes que a rede deve ser capaz de prever o resultado correto. Este conjunto de testes está descrito na tabela 2.

Tabela 2 – Conjunto de testes PIN VT TR Resultado -40 465 23 Sucesso -15 450 25 Falha -22 400 41 Falha -28 310 24 Falha * -48 380 24 Sucesso -34 530 28 Sucesso -40 740 19 Sucesso

Page 14: Tutorial Redes Neurais Artificiais

-42 550 27 Sucesso -55 480 19 Sucesso

Este tipo de problema é facilmente resolvido com o auxílio das redes neurais

artificiais, para mostrar esta resolução utilizaremos o software Matlab 6.0 que é um ambiente de desenvolvimento bastante difundido tanto no contexto acadêmico, quanto no âmbito comercial. O Matlab é uma poderosa ferramenta para problemas de cunho matemático, tendo ferramentas gráficas avançadas para análise e visualização de dados. Além disso, o Matlab possui uma toolbox exclusiva para redes neurais artificiais, isto é, possui um conjunto de funções pré-definidas que são de grande valia para o projetista de redes neurais artificiais.

Voltando ao problema, o conjunto de treinamento foi então apresentado a rede neural para que o algoritmo backpropagation atuasse, sendo importante salientar que escolhemos 0,05 como valor de erro médio quadrático que o algoritmo deveria alcançar, isto significa que o algoritmo backpropagation irá fazer várias iterações de atualização dos pesos até atingir este valor de erro. Na figura 6 mostramos o gráfico de busca do vetor gradiente na superfície de erro.

Figura 6 – Gráfico do andamento do treinamento O treinamento procedeu sem problemas e a rede conseguiu convergir para o valor de erro que determinamos. Alguns parâmetros do algoritmo backpropagation utilizados para treinar esta rede são descritos na tabela 3.

Tabela 3 – Parâmetros utilizados para o algoritmo Backpropagation Parâmetros Valor

Taxa de aprendizagem 0,01 Erro 0.05

Número de neurônios na camada oculta 6 ou 5 Função de transferência da camada oculta tangente sigmoidal Função de transferência da camada saída sigmoidal

Como a rede já foi treinada podemos apresentar as entradas do conjunto de

testes de forma que ela deve ser capaz de apresentar a saída correta, ou seja, os valores das variáveis (PIN, VT e TR) serão apresentados aos neurônios de entrada e a rede será capaz de interpolar entre o que ela já aprendeu para dar seu veredicto de sucesso ou falha.

Page 15: Tutorial Redes Neurais Artificiais

Obtivemos ótimos resultados neste problema, pois a rede deu o resultado correto em todos os casos. Nas figuras 7 e 8 são mostrados os gráficos do resultado desejado do teste e do resultado obtido pela rede, percebe-se que ambos os gráficos são iguais, confirmando o acerto de 100%.

8 – Considerações Finais As redes neurais artificiais vêm ganhando cada vez mais adeptos, de modo que as pesquisas nesta área estão evoluindo geometricamente, portanto, isto a torna uma tecnologia bastante promissora para o desenvolvimento de aplicações utilizando inteligência artificial. O sucesso das redes neurais está diretamente relacionado com a sua alta versatilidade no que tange o escopo de suas aplicações, pois existem aplicações para as mais variadas áreas, podendo ser utilizada para tarefas que vão desde o desenvolvimento de sistemas especialistas, passando por aplicações nas neurociências e podendo servir até mesmo para problemas complexos de análise estatística. O problema da ventilação mecanicamente assistida citado neste trabalho serviu para mostrar a viabilidade para a solução de problemas utilizando RNAs. È importante ressaltar que poderíamos resolver este problema utilizando outros parâmetros ou outras arquiteturas de redes neurais, a maneira que resolvemos foi escolhida para manter o escopo pretendido neste trabalho.

Este documento teve o intuito de fazer dar uma visão global sobre o assunto, isto significa que os leitores interessados em mais detalhes devem consultar as referências bibliográficas descritas, além disso, os autores se colocam a disposição para eventuais dúvidas e sugestões. 8 – Referências Bibliográficas ASHUTOSCH et al. Prediction criteria for successful weaning from respiratory support: Statistical and connectionist analyses. Critical Care Medicine, Vol. 20, No.9. pp 1295-1301, 1992.

Figura 7 – Gráfico das saídas desejadas para o conjunto de teste

Figura 8 – Gráfico das saídas emitidas pela rede para o conjunto de teste

Page 16: Tutorial Redes Neurais Artificiais

AZEVEDO, F. M. Contribution to the Study of Neural Networks In Dynamical Expert Systems. Ph.d. thesis, Institut d´Informatique, FUNDP, Belgium, 1993. Barreto, Jorge M. Inteligência Artificial: No limiar do século XXI. Duplic Edições, 1997. Burrows, T. and NIRAJAN, M. The use of feed-forward and recurrent networks for system identi_cation. Technical Report CUED F-INFENG TR158, Cam- bridge University Engineering Dept., Cambridge U., Cambridge, UK, Dec. 1993. Casey, M. Computation dynamics in discrete-time recurrent neural networks. In Proceedings of the Annual Research Symposium, volume 3, p. 78{95, UCSD, La Jolla, CA, 1993. Institute for Neural Computation. CLEEREMANS, A., SERVAN-SCHREIBER, D., and MCCLELLAND, J. Finite state automata and simple recurrent neural networks. Neural Computation, (3):372{381, 1989. FREEMAN, James A. & SKAPURA, David M. Neural Networks: Algorithms, Applications and Programming Techniques. Addison-Wesley Publishing, 1992. HAYKIN, Simon. Neural Networks: a comprehensive foundation. IEEE Press, 1994 KAELBLING L. P., LITTMAN. L. , MOORE A. W. Reinforcement Learning: A Survey. In: Journal of Artificial Intelligence Research, Volume 4, p. 237-285, 1996 KOHONEN,T. Self Organization and Associative Memory. Springer-Verlag, Berlin, 1987. LAVINE, R. A. Neurophysiology: The Fundamentals. The Collamore Press, 1983. McCulloch, W.S. & PITTS, W. A Logical Calculus of the Ideas Immanent in Nervous Activity. Bulletin of Mathematical Biophysics 5 (1943), 115-133 MINSKY, M. L. & PAPERT, S. A. Perceptrons: an introduction to computacional geometry. The MIT Press, Massachussets, 1969 NICHOLLS, J. G. et a.l From Neuron to Brain. Sinauer Associates, Inc., 2000. Parker, D. Learning logic. Invention Report S81-64, File 1, O_ce of Techno- logy Licensing, Stanford University, 1982. ROISENBERG, M."Emergência da Inteligência em Agentes Autônomos através de Modelos Inspirados na Natureza". Tese de Doutorado. Departamento de Engenharia Elétrica, 1998.

Page 17: Tutorial Redes Neurais Artificiais

RUMELHART,D. E., MCCLELLAND J. L., and PDP Group. Parallel Distributed Pro- cessing, volume 1, Foundations. The MIT Press, Cambridge, Massachusetts, 1986. WERBOS, P. J. Beyond regression: new tools for prediction and analysis in the behavioral sciences. PhD thesis, Harvard University, Cambridge, MA, 1974.