You are on page 1of 30

RODRIGO MORAES DE OLIVEIRA RA 0502007 8 SEMESTRE, CINCIA DA COMPUTAO

INTELIGNCIA ARTIFICIAL COM REDES NEURAIS PARA SISTEMAS DESKTOP

Jaguarina 2008

RODRIGO MORAES DE OLIVEIRA RA 0502007 8 SEMESTRE, CINCIA DA COMPUTAO

INTELIGNCIA ARTIFICIAL COM REDES NEURAIS PARA SISTEMAS DESKTOP

Monografia apresentada disciplina Trabalho de Concluso de Curso, do curso de Cincia da Computao da Faculdade de Jaguarina, sob orientao do Prof. Ms. Silvio Petroli Neto, como exigncia parcial para concluso do curso de graduao.

Jaguarina 2008
1

Ao Prof. Silvio Petroli Neto Pelo entusiasmo e pacincia que apresentou nos momentos de aprendizado, orientando sem imposio e alegrando-se com cada pequena conquista.
2

A imaginao o mais importante que o conhecimento. (Albert Einstein)


3

OLIVEIRA, Rodrigo Moraes. Inteligncia Artificial com Redes Neurais para Sistemas Web. 2008. Monografia (Bacharelado em Cincia da Computao) Curso de Cincia da Computao da Faculdade de Jaguarina, Jaguarina.

Prof. Ms. Silvio Petroli Neto FAJ Orientador

Profa. Ms. Christiane FAJ Bancada

Prof. Ms. Guilherme Unicamp - Bancada

OLIVEIRA, Rodrigo Moraes. Inteligncia Artificial com Redes Neurais para Sistemas Web. 2008. Monografia (Bacharelado em Cincia da Computao) Curso de Cincia da Computao da Faculdade de Jaguarina, Jaguarina.

RESUMO Cada vez mais a necessidade de tomadas de decises se torna fundamental para grandes empresas, especialmente em setores que tm um banco de histrico. Diante de todas as informaes juntamente com o uso de IA (Inteligncia Artificial) se torna um artifcio ou ferramenta de grande utilidade. Atravs do uso de RNA (Redes Neurais Artificiais) passamos para o computador todo o processo para a anlise das informaes e obteno de retorno. No entanto, os sistemas atuais no se utilizam dessa ferramenta especialmente na rea comercial, financeiro e etc. Diante do crescimento no desenvolvimento de sistemas se torna interessante a construo destes com RNA para uso de marketing e tomada de deciso. PALAVRAS CHAVES: IA, RNA.

SUMRIO

1. INTRODUO ................................................................................................................. 6 2. METODOLOGIA .............................................................................................................. 7 2.1 Cronograma ................................................................................................................. 8 3. CONCEITO ....................................................................................................................... 9 3.1 Introduo histrica.......................................................................................................... 9 3.2 Sistema Nervoso ....................................................................................................... 11 3.3 Redes Neurais Artificiais ........................................................................................... 13 3.3.1 Tipos de funo de transferncia ........................................................................ 13 3.4 Arquiteturas de Rede .................................................................................................. 15 3.4.1 Rede Feedforward com uma nica camada .............................................................. 15 3.4.2 MLP Multiple Layer Perceptron ........................................................................... 15 3.5 Aprendizado ............................................................................................................... 16 3.5.1 Aprendizado Supervisionado ou por Correo Erro ................................................. 16 3.5.2 Aprendizado no-supervisionado ............................................................................. 18 4. PROJETO DA RNA ....................................................................................................... 20 5. ANLISE DAS INFORMAES .................................................................................. 24 5.1 Treinamento .............................................................................................................. 26 5.2 Execuo do RNA ...................................................................................................... 27 6. CONCLUSO ................................................................................................................. 28 7. REFERNCIAS BIBLIOGRFICAS .............................................................................. 29

1. INTRODUO
No momento em que vivemos necessitamos cada vez mais de sistemas que possibilitam obter resultados atravs de IA. A Rede Neural tem como objetivo criar uma rede de processamento rpido e eficaz. Atravs destes sistemas possvel ter a base de conhecimento de um especialista facilitando a tomada de decises. Com isso em mente primoroso e satisfatrio programar uma rede neural para obter informaes desejadas que nenhum sistema comum possa dar. As respostas so baseadas no treino, conhecimento obtido pela rede por um especialista. A eficincia das respostas para definio de padres mais bem obtido trabalhando com processamento paralelo, algo possvel com Redes Neurais Artificiais. O objetivo consiste em criar um sistema com IA utilizando-se de Redes Neurais Artificiais. O problema a ser analisado o perfil de um investidor baseado nas informaes do cliente e a funcionalidade adicional ser proporcionada atravs da RNA. A base para as entradas das informaes da RNA so desde idade, sexo, renda e etc. Tendo as informaes e o treinamento j efetuado na Rede Neural podem-se obter os resultados sobre qual o tipo de perfil do cliente que possibilite ao funcionrio de uma empresa oferecer o pacote de investimento adequado.

2. METODOLOGIA
Levantamento Bibliogrfico: - Preparao para estudos sobre IA baseado em livros e pesquisas.

Estudo de IA: - A primeira etapa sendo o levantamento bibliogrfico, consiste na definio do tipo de IA ser utilizado.

Estudo de Redes Neurais: - Iniciada com a utilizao do livro Redes Neurais Delphi e o site do Laboratrio Virtual em computao natural. Aps a obteno das informaes e estudos, foi decidido trabalhar com redes neurais.

Anlise de Requisitos: - Tendo decidido o tema e os dados que sero levantados, sendo um sistema de venda de carros, se iniciar o levantamento, a anlise de requisitos para o treinamento da rede neural.

Projeto do sistema / Implementao: - Com as informaes detalhadas, passar para a fase mais importante, sendo a implementao. O sistema trabalhado em linguagem C#, orientado a objeto com a utilizao da API NeuronDotNET. Os dados para o treinamento so arquivados num CSV, ou seja, as informaes contidas nas linhas e separadas com ponto e vrgula. Aps o desenvolvimento da RNA concluda, iniciar o treinamento da rede para obteno dos dados e tambm a efetuao dos testes, tornando cada vez mais o sistema apurado.

Teste / Anlise dos resultados: - Finalmente tendo efetuado todos os processos ser analisado quo eficiente foi criao de um sistema web com inteligncia artificial para obteno das respostas.

2.1 Cronograma
Atividade Levantamento Bibliogrfico Estudo de Conceitos sobre IA Estudo de Redes Neurais Anlise de Requisitos Projeto do Sistema Implementao Testes / Anlise dos Resultados OK OK OK OK OK OK OK OK OK OK OK OK OK Fev OK Mar OK Abr Mai Jun Jul Ago Set Out Nov

3. 3.1

CONCEITO Introduo histrica


Uma rede neural artificial um circuito composto por uma grande quantidade

de unidades simples de processamento inspiradas no sistema neural - Nigrin, 1993. Apesar de ser algo inovador no sculo passado, o conceito do uso da mquina para o auxilio do homem remonta a Antiguidade Clssica. Com o passar dos tempos o interesse leva aos estudos da mecnica dando ao homem uma nova concepo. Descartes definiu o ser humano como uma maquina que tem msculos que so controlados pelo crebro. Baseado nesse conceito Descartes acreditava em que atividades praticadas pelo homem poderiam ser executadas por mquinas com certa limitao. Assim surge o princpio fundamental e problemtico de Inteligncia Artificial. Um ser humano uma mquina capaz de executar um comando resultante de um engenho divino. Um Autmato capaz de executar um comando resultante de um engenho humano. O desejo de ser um criador surge s mentes da poca. O avano primordial foram os estudos matemticos no sculo XVII e XIX. Inicia-se atravs de Pascal [3] (1623-1662), ao criar a primeira mquina de calcular. Atravs desse estudo conclui-se que se uma mquina executar operaes lgicas, tambm seria capaz de raciocinar. Os trabalhos foram retomados por Babbage (1792-1871) projetando uma mquina de calcular com quatro operaes aritmticas bsicas e o encadeamento das mesmas. Embora no foi terminado, o objetivo era trabalhar com tabelas matemticas para clculos trigonomtricas e logartmicas. No sculo XIX que surge Alan Turing [3] que prope o jogo da imitao. Se a mquina fosse capaz de ganhar, demonstraria a evidencia de mquinas inteligentes. Somente em 1935 surge a mquina abstrata, cujo objetivo descrever de modo rigoroso um processo automtico, refazendo o comportamento de um ser humano. Nesse perodo era somente uma discusso terica e abstrata sendo posteriormente confirmada com o aparecimento dos primeiro computadores ps-segunda Guerra Mundial. A partir de 1956 a Inteligncia Artificial reconhecida com o uso de computadores. Com o advento dessas maquinas junto com o conceito surge idia de maquinas inteligente, mas ainda existia uma duvida a quanto de podia designar que um sistema inteligente. O
10

objetivo principal construir um sistema inteligente capaz de aprender, perceber o seu meio envolvente, raciocinar baseado em conceitos complexos.

3.2

Sistema Nervoso
O conceito de um sistema de redes neurais consiste em simular o funcionamento de

um crebro. Mas como funciona o crebro? Como ele processa as informaes? possvel construir um sistema capaz de raciocinar? A unidade bsica constituinte do crebro o neurnio. Com a rede de neurnios e sinapses se obtm um sistema nervoso. Cada neurnio consiste de um corpo celular, tambm designado como soma, o qual contm ncleo. Partindo do corpo da clula, existem um nmero de filamentos denominados dendritos e um filamento mais longo que denominado de axnio. Os dendritos ligam-se ao redor da clula a outras clulas e o axnio faz uma conexo mais longa. A estas conexes d-se o nome de sinapses. O sinal de uma clula a outra se faz mediante uma complicada reao eletroqumica. Substncias qumicas transmissoras so lanadas das sinapses e entram pelos dendritos, aumentando ou baixando o potencial eltrico do corpo da clula. Quando o potencial chega a um limiar, um pulso eltrico ou potencial de ao mandado pelo axnio. O pulso espalha-se ao longo das conexes existentes pelo axnio, eventualmente, chegando a outras sinapses e lanando transmissores ao corpo de outras clulas. Sinapses que incrementam o potencial de outras clulas so denominadas inibitrias. Os neurnios podem formar novas conexes com outros neurnios e atravs de tais mecanismos que se forma a base para o aprendizado do crebro.[2] O sistema nervoso d a capacidade de um organismo atravs de entradas sensrias conseguirem informaes sob o meio que vive. Todas as entradas so processadas sendo baseadas no aprendizado obtido no passado e se obtm uma resposta coerente [1]. Um sistema nervoso organizado em seguintes nveis: molculas, sinapses, neurnios, camadas, mapas e sistemas. (veja figura 01).

11

Figura 01 (Organizao do sistema nervoso biolgico) [2]

Como funciona o processamento das entradas num sistema nervoso? Tudo comea com a transmisso de sinais de um neurnio para outro juntamente com a efetividade da transmisso ser modulada possibilitando a adaptao a diferentes situaes. A plasticidade permite a capacidade das sinapses serem modificadas tornando a chave fundamental para o aprendizado. A duas categorias de neurnios: ps-sinpticos e pr-sinpticos. Aos ps-sinpticos ou receptores ficam numa regio especializada chamada de sinapse, pois recebem o sinal vindo de outro neurnio. Quanto aos pr-sinpticos desempenham o papel em enviar o sinal ao neurnio correto. O canal que percorre a transmisso do sinal chamado de sinapses sendo a juno do axnio de um neurnio pr-sinptico a um dendrito ou neurnio ps-sinptico. (Veja figura 02).

Figura 02 (Neurnio biolgico)[2]

12

O objetivo do sinal recebido de cada neurnio consiste na alterao do seu estado gerando um pulso eltrico chamado de potencial de ao. A mudana ou ativao do neurnio ocorre apenas quando seu potencial maior que um dado limiar chamado de threshold. Aps a ativao o sinal propagado para os neurnios presente no sistema nervoso. A interconexo destes neurnios gera uma rede neural para uma capacidade de processamento maior com cada neurnio independente entre todos. O fator marcante deste o processamento paralelo e representao distribuda. Observa-se atravs da diviso ou organizao laminar dos neurnios. Diversas reas desempenham a sua funo desde camadas de entradas, intermediarias escondida ou camada de sada. A camada de entrada recebe os sinais sensoriais ou de entrada, a camada de sada envia sinais para outras partes do crebro e as camadas intermedirias recebem (enviam) sinais de (para) outras camadas do crtex. Isso significa que as camadas intermedirias nem recebem entradas diretamente e nem produzem uma sada do tipo motora, por exemplo.

3.3

Redes Neurais Artificiais


O sistema nervoso uma poderosa mquina de aprendizado e memria. Tudo ocorre

atravs de modificaes tais como a plasticidade do sistema nervoso. Em geral, a aprendizagem global resultado de alteraes locais nos neurnios. Existem diversas formas de modificaes possveis em um neurnio:
Dendritos podem nascer, assim como tambm podem ser removidos. Alguns dendritos podem se esticar ou serem encolhidos permitindo ou eliminando, respectivamente, a conexo com outras clulas. Novas sinapses podem ser criadas ou sofrerem alteraes. Sinapses tambm podem ser removidas. Todo neurnio pode morrer e tambm se regenerar.

Uma RNA (Rede Neural Artificial) constitui a mesma estrutura de um sistema nervoso com unidades interconectadas chamadas de neurnios artificiais ou Perceptron [2] como mostrado na figura 03. O modelo de uma rede neural tem a seguintes caractersticas:

O processamento bsico de informao ocorre em diversas unidades simples denominadas de neurnios artificiais ou simplesmente neurnios (ou ns);

Os neurnios esto interconectados gerando redes de neurnios, ou redes neurais;

13

A informao (sinais) transmitida entre neurnios atravs de conexes ou sinapses; A eficincia de uma sinapse, representada por um peso associado, corresponde informao armazenada pelo neurnio e, portanto, pela rede neural; e

O conhecimento adquirido do ambiente atravs de um processo de aprendizagem que , basicamente, responsvel por adaptar os pesos das conexes aos estmulos recebidos do ambiente.

Figura 03 (Modelo de neurnio artificial) [2]

O funcionamento de um neurnio consiste na entrada de n valores que sero calculados juntamente com os pesos da sinapse, ou seja, como na figura acima a entrada x0 ser multiplicada pelo peso wj0. A funo de soma tem o papel de efetuar a soma de todas as entradas ponderadas pelos seus pesos respectivos. O limiar ou bias tem o papel de aumentar ou diminuir a influncia do valor da entrada lquida para a ativao do neurnio k. A funo de ativao ou transferncia geralmente utilizada com dois propsitos: limitar a sada do neurnio e introduzir no-linearidade no modelo.

ou

3.3.1 Tipos de funo de transferncia


Tipos vrios tipos de funo para transferncia dentre elas: - Funo de Limiar: Funo de ativao ou transferncia ser igual a um se a sada do neurnio for maior ou igual que zero; ou igual a 0 se a sada for menor que zero.

- Funo Sigmide: A forma mais comum de funo de transferncia utilizada na construo de redes neurais artificiais. A funo logstica um exemplo onde a o
14

parmetro de inclinao da funo sigmide. Variando-se o parmetro a, obtemos funes sigmides com diferentes inclinaes. Esta funo assume um intervalo continuo de valores entre zero e um alm de se tornar diferenvel enquanto a funo limiar no .

3.4

Arquiteturas de Rede

3.4.1 Rede Feedforward com uma nica camada


Este caso mais simples de rede em camadas consiste em uma camada de entrada e uma camada de sada. Geralmente os neurnios de entrada so lineares, ou seja, eles simplesmente propagam o sinal de entrada para a prxima camada. So tambm denominados de neurnios sensoriais. Esta rede denominada feedforward porque a propagao do sinal ocorre apenas da entrada para a sada, ou seja, apenas no sentido positivo.

3.4.2 MLP Multiple Layer Perceptron


O conjunto de neurnios artificiais resulta numa rede neural. Um padro de arquitetura para uma rede neural muito utilizada MLP (Multiple Layer Perceptron). Este aumento no nmero de camadas possibilita um aumento de processamento. Para uma rede neural necessrio uma camada de entrada e uma camada de sada podendo existir mais camadas intermediarias que ficam escondidas. A sada de cada camada utilizada como entrada para prxima camada. (Veja Figura 04)

Figura 04 (Modelo de Multiple Layer Perceptron MLP) [2]

15

3.5

Aprendizado

Aprendizado um processo pelo qual os parmetros livres de uma rede neural so adaptados atravs de um processo de estimulao pelo ambiente no qual a rede est inserida. O tipo de aprendizagem determinado pela maneira pela qual a modificao dos parmetros ocorre. [4]

3.5.1 Aprendizado Supervisionado ou por Correo Erro


Para a rede neural necessrio o aprendizado ou treinamento assim como o sistema nervoso que temos precisa para conseguir definir um padro. A premissa encontrar o conjunto de pesos para que qualquer entrada se aproxime ao valor desejado. O algoritmo de retro propagao do erro leva em considerao a sada desejada a sada obtida. A fase de treinamento tem trs paradigmas: aprendizado supervisionado e aprendizado nosupervisionado. [2] Aprendizado supervisionado, como o prprio nome diz significa o controle, superviso dos valores utilizados e obtidos nos treinamentos. H varias utilidades para esse tipo de aprendizado como:

Classificao e reconhecimento de padres Predio de sries temporais Identificao de sistemas Controle de processos Projeto de filtros em processamento de sinais

Processo para o treinamento supervisionado formalizado no modelo em que dada sada desejada dj(t) para o neurnio j no instante t e yj(t) a resposta observada do neurnio j no mesmo instante t obtida atravs do estimulo x(t). Com o par-resposta possvel encontrar o erro observado baseado na frmula do erro da diferena quadrtica como abaixo mostrado.

ej(t) = (dj(t) yj(t)) ou

16

Figura 05 (Processo de retro-propagao)[2]

Este processo tem como objetivo corrigir o erro observado e maximizar o processamento com a retro-propagao. Os ajustes corretivos so projetados para aproximar passo a passo o sinal de sada da resposta desejada. Este objetivo alcanado minimizando-se uma funo de custo ou ndice de desempenho, , definido em termos do sinal de erro ek (n) como [4]:

Os ajustes passo a passo dos pesos sinpticos do neurnio k continuam at o sistema atingir um estado estvel. Neste ponto o processo encerrado. Em particular, a minimizao da funo de custo resulta na regra delta que tem como finalidade fazer o ajuste ao peso sinptico. Suponha que wkj do neurnio k excitado por um elemento xj (n) do vetor de sinal x(n) no passo de tempo n. De acordo com a regra definido por:

Onde

uma constante positiva que determina a taxa de aprendizado quando avanamos em

um passo no processo de aprendizagem. O modo formal da regra pode ser definido como: O ajuste feito em um peso sinptico de um neurnio proporcional ao produto do sinal de erro pelo sinal de entrada da sinapse em questo. [4] Tendo calculado o ajuste sinptico determinado por: , o valor atualizado do peso sinptico

17

Na verdade, sinptico , respectivamente.

podem ser vistos como os valores do antigo e novo do peso

O algoritmo de aprendizagem pode ser definido:

Modelo de algoritmo de aprendizagem [2]

3.5.2 Aprendizado no-supervisionado


Para este tipo de aprendizado tem como caracterstica a no existncia de um supervisor para avaliar o desempenho da rede neural para os conjuntos de pesos desejados. No se utiliza de mtodos para correo de erros e entrada dos dados de entradas consistentes ao contrrio os de sada que so desconhecidos. A adaptao da rede neural baseada na estatstica nos dados da entrada com a capacidade de identificar as quais classes os novos padres pertencem. [2] Neste caso as redes neurais empregam a algoritmo competitivo de aprendizagem. Os neurnios de sada disputam entre si para se tornarem ativos como o nico neurnio vencedor. O objetivo dessa concorrncia para descobrir regularidades estatsticas no conjunto de dados. Neurnios individuais aprendem a se especializar a conjuntos (grupos ou clusters) de padres similares. Eles se tornam detectores ou extratores de caractersticas para diferentes classes dos dados de entrada.

18

A idia encontrar o neurnio cujo vetor de pesos seja o mais parecido ao padro de entrada. Se um neurnio no responde a um padro de entrada, ou seja, no o vencedor, ento nenhuma adaptao sofrida por este neurnio. Entretanto, o neurnio i que ganhou a competio sofre um ajuste no seu vetor de pesos na direo do vetor de entrada:

onde indica o tamanho do passo a ser dado na direo de x. O parmetro conhecido como taxa de aprendizagem. A motivao para o uso do treinamento no supervisionado :

Tcnicas para estimao de densidades de probabilidade, que produzem modelos estatsticos explcitos para descrever os fenmenos responsveis pela produo dos dados de entrada. Ex.: redes bayesianas.

Tcnicas de extrao de regularidades estatsticas (ou ento irregularidades) diretamente dos dados de entrada. Ex.: redes de Kohonen.

19

4.

PROJETO DA RNA
Aps estudos sobre as redes neurais artificiais se iniciou o desenvolvimento do projeto

de um software que implemente uma rede neural, no entanto a implementao deste se tornou custoso pelo tempo disponvel. Para isso utilizamos da biblioteca NeuronDotNet[5]. Esta biblioteca feita em C# disponibiliza todas as funcionalidades para a montagem e utilizao de RNA possibilitando utilizar com Asp.NET ou Flex. O ponto positivo desta biblioteca o contedo do help disponibilizado como tambm os diversos exemplos contidos no site http://neurondotnet.freehostia.com/index.html. Esta API escrita em C# compatvel com .NET plataform tornando necessrio a instalao do framework 2.0 atravs do download no endereo http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531508D977D32A6&displaylang=en. Aps a instalao do framework se necessita de um editor ANSI ou Microsoft Visual Studio 2005 ou 2008. Para iniciar o projeto, primeiramente necessrio definir os passos da montagem de uma RNA. 1. Criao do RNA e arquivo de treinamento 2. Leitura do arquivo 3. Treinamento 4. Execuo da RNA A classe principal para a RNA BackpropagationNetwork. Esta classe contm mtodos fundamentais para o controle e execuo da Rede Neural. Portanto se instancia um objeto do tipo BackpropagationNetwork, como abaixo mostrado. private BackpropagationNetwork network; network = new BackpropagationNetwork(inputLayer, outputLayer);

20

notvel o uso de parmetros contendo a camada de entrada (inputLayer) e sada (OutpLayer). Estes dois objetos so do tipo ActivationLayer. Ao se instanciar o objeto da camada de entrada, oculta e de sada temos de definir o tipo de funo de transferncia utilizar. A API possibilita utilizar Sigmoid Activation Function, Linear Activation Function, Logarithmic Activation Function, Sine Activation Function, Tanh Activation Function. Atravs do tipo de funo utilizado, ocorrer diferenas nos resultados obtidos. Abaixo demonstrado como instanciar o objeto definindo neste a quantidade de neurnios.

ActivationLayer inputLayer = new LinearLayer(8); ActivationLayer hiddenLayer = new SigmoidLayer(8); ActivationLayer outputLayer = new SigmoidLayer(5); No prottipo utilizamos na camada de entrada com oito neurnios a funo de transferncia linear e na camada oculta com oitos neurnios e uma sada com cinco neurnios funo de ativao Sigmide. Aps a instanciao das camadas, o prximo passo conectar as camadas para efetuar a interao entre como mostrado abaixo.

// Conectar as camadas new BackpropagationConnector(inputLayer, hiddenLayer); new BackpropagationConnector(hiddenLayer, outputLayer); // Instanciao da rede network = new BackpropagationNetwork(inputLayer, outputLayer); O prximo passo a criao do arquivo de treinamento. No prottipo criado, o arquivo de treinamento consiste com os valores de entrada e sada separados por ponto e vrgula. Antes da leitura do arquivo necessrio criar o objeto para o treinamento da RNA. A classe TrainingSet contm as funes para o treinamento. A instanciao deste objeto tem como parmetro a quantidade de neurnios e quantidade de neurnios de sada como abaixo.

// Treinamento TrainingSet trainingSet = new TrainingSet(8, 5);

21

A leitura do arquivo feito com o seguinte cdigo. StreamReader stream = new StreamReader(@"treinamento.txt"); string linha = null; while ((linha = stream.ReadLine()) != null) { string[] l = linha.Split(';'); trainingSet.Add(new TrainingSample( new double[] { Double.Parse(l[0]), Double.Parse(l[1]), Double.Parse(l[2]), Double.Parse(l[3]), Double.Parse(l[4]), Double.Parse(l[5]), Double.Parse(l[6]), Double.Parse(l[7]) }, new double[] { Double.Parse(l[8]), Double.Parse(l[9]), Double.Parse(l[10]), Double.Parse(l[11]), Double.Parse(l[12]) }) ); } stream.Close(); Na leitura das informaes adicionamos um objeto TrainingSample que tem um array de entrada e um array de sada do RNA. O array deve conter exatamente as quantidades definidas no objeto TraininSet. A API possibilita definir a porcentagem de aprendizado da RNA atravs da funo SetLearningRate como exemplo abaixo.

network.SetLearningRate(0.7d);

A inicializao da rede neural feito pelo mtodo Initialize da classe BackpropagationNetwork. O treinamento o prximo passo atravs da funo Learn. Abaixo temos o exemplo. network.Initialize(); network.Learn(trainingSet, 1000);
22

A execuo da rede com valores de entrada pela funo Run. Esta funo recebe como parmetro um array de valores como utilizado no prottipo e mostrado abaixo. double[] result = network.Run(new double[] { 0d, 1d, 3d, 30d, 0d, 2000d, 2d, 3d }); Obteremos o retorno da RNA atravs de um array de valores para analisar o resultado. Para maiores informaes acesse o site http://neurondotnet.freehostia.com/index.html no link USER MANUAL aonde ter todas as definies das classes com suas propriedades, mtodos utilizados e disponveis.

23

5.

ANLISE DAS INFORMAES


Tendo toda a arquitetura de uma rede neural pronta se inicia o estudo com as

informaes desejadas. Como base utilizou o uso da rede neural para a indicao do perfil do investidor financeiro [1]. Digamos que certo bancrio precise classificar por perfis de investimento um determinado conjunto de clientes investidores em sua base de dados. Tendo uma base histrica necessrio classific-la para leva adiante um novo plano de marketing do banco. Neste caso utilizaremos uma RNA para classificar os clientes considerando as caractersticas. Necessita-se classificar os perfis de clientes investidores que precisa obter sendo: agressivo, arrojado, equilibrado, reservado e defensivo (Tabela 01). Perfil Agressivo Arrojado Equilibrado Reservado Defensivo Descrio O cliente investe, praticamente, em modalidades de alto risco. O cliente concentra seus investimentos em modalidades de alto e mdio risco. O cliente concentra em modalidades de mdio risco, no caracterizando um perfil arrojado nem reservado. O cliente concentra seus investimentos em modalidades de mdio e baixo risco. O cliente investe, praticamente, em modalidades de baixo risco.
Tabela01 (Perfis dos clientes e descrio.)

Aps a definio dos tipos de clientes que deseja determinar, se necessita definir as entradas da rede como abaixo descrito: 1. Nmero de investimentos de alto risco por ano; 2. Nmero de investimentos de mdio risco por ano; 3. Nmero de investimentos de baixo risco por ano; 4. Idade; 5. Sexo; 6. Renda; 7. Prazo mdio de investimento; 8. Escolaridade A partir das variveis se defini a estrutura da rede MLP como descrito abaixo: 8 entradas; 1 camada oculta com 8 neurnios; 5 sadas;
24

Para uma rede neural as informaes devem ser numricas, portanto h necessidade de converter as informaes para os valores apropriados como tambm as suas faixas de intervalo. Abaixo se descreve os valores numricos para as informaes e suas normalizaes ou faixa de valores: 1. Nmero de investimentos (Alto, Mdio e Baixo Risco): 0 a 10; 2. Idade: 10 a 60 anos; 3. Sexo: a. 0 masculino; b. 1 feminino; 4. Renda: 100 a 10.000; 5. Prazo mdio de investimento (PMI): 1 a 12 meses; 6. Escolaridade: a. 0 nenhuma; b. 1 1 grau completo; c. 2 2 grau completo; d. 3 3 grau completo; 7. Perfil: a. 1 Agressivo; b. 2 Arrojado; c. 3- Equilibrado; d. 4- Reservado; e. 5 Defensivo; Com todas as informaes prontas necessita efetuar o treinamento da rede neural.

25

5.1

Treinamento
Cria-se um arquivo treinamento.txt que contm os valores de entrada com o valor de

sada desejado. Abaixo temos um exemplo deste (Tabela 02).


N 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 NInvAR 0 1 1 0 2 3 3 1 0 0 1 2 0 0 0 0 2 3 1 3 2 3 1 0 1 2 0 0 4 1 NInvMR NInvBR Idade 1 2 1 1 1 1 1 1 4 0 1 2 0 2 0 2 1 2 2 1 2 0 1 1 0 0 2 0 0 1 3 0 1 1 0 1 0 4 0 3 4 0 2 0 1 3 1 1 4 1 0 0 1 2 0 0 2 4 0 1 30 24 28 35 25 40 23 30 27 45 36 21 38 28 42 36 30 32 37 29 26 22 32 30 37 24 29 45 20 28 Sexo 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 Renda PMI 2000 2500 3000 1000 2300 4000 2800 1800 2000 2500 3100 1700 2500 1500 3000 3500 3200 2900 3200 2500 2900 1700 1500 1600 1500 1400 2000 3200 1700 2100 2 1 4 6 1 2 1 2 3 3 4 2 5 2 8 4 1 2 1 3 2 1 3 4 6 3 3 6 1 3 Escol. 3 3 2 1 2 2 3 1 2 2 3 2 2 1 2 3 3 3 3 2 2 1 1 1 1 1 2 3 1 2 Perfil 5 3 3 4 2 1 1 4 3 5 5 2 5 3 5 4 1 1 4 2 2 1 3 4 2 1 4 5 1 3

Tabela 02 (Treinamento para RNA)

26

No arquivo de treinamento usamos uma amostragem das informaes que definem o perfil do investidor como no caso acima.

5.2

Execuo do RNA
Inicializando a rede neural passamos a entrar com as informaes do arquivo que

efetua a correo dos pesos. Tendo finalizado o processo, pode-se utilizar o RNA para qualquer tomada de deciso para a indicao do perfil do cliente para o investimento no banco ou financeira. No prottipo ao aplicar os dados do treinamento e executado obteve o resultado como mostrado abaixo.

Figura 06 (Resultado obtido no prottipo da RNA)

Utilizamos as seguintes informaes para as entradas: - O cliente teve nenhum investimento de alto risco; - Participou num investimento de mdio risco; - Teve trs investimentos de baixo risco; - Com idade de 30 anos; - Masculino; - Renda de R$ 2000,00; - Prazo mdio de investimento de dois meses; - Terceiro grau completo (Faculdade); Como mostrado em valor o erro total, isto significa que a margem de variao de 0,05 para o valor de sada. Assim o valor de sada definido entre zero e um como padro para as cinco sadas no est com valores inconsistentes. Quanto menor o erro total melhor a confiabilidade da informao obtida.

27

6.

CONCLUSO
Concluindo a anlise das informaes, nota-se que a rede neural ajuda em muito

quanto tomada de deciso. Mas tudo envolve o treinamento da RNA para obter melhor resultado e a boa definio das camadas e neurnios. Um bom treinamento consiste na obteno das informaes que impactam no resultado e a execuo deste no sistema. Claro que um RNA nunca substituir um ser humano experiente, no entanto, muitas vezes a tomada de deciso com o auxilio de um RNA facilita em muito vrios setores desde financeiro, comercial, reas de sade e etc. Existe um universo gigantesco a ser explorado pela RNA e certeza no futuro ser muito utilizado nos sistemas sendo o diferencial entre outros sistemas.

28

7.

REFERNCIAS BIBLIOGRFICAS

[1] MEDEIROS, L.F.; Redes Neurais em DELPHI. 2 Ed. Visual Books, 2006. 206p. [2] LVCON, Laboratrio Virtual em Computao Natural. Disponvel em http://lsin.unisantos.br/lvcon/tema?tema=2, recuperado em 10/12/2007. [3] CITI, Estudo sobre Inteligncia Artificial. Disponvel em http://www.citi.pt/educacao_final/trab_final_inteligencia_artificial/index_centro.html, recuperado em 01/04/2008. [4] Haykin, S.; Redes Neurais Princpios e Pratica. 2 Ed. Bookman, 2001, 900p. [5] NeuronDotNet, NeuronDotNet. Disponvel em http://neurondotnet.freehostia.com, recuperado em 10/11/2008.

29