• Nenhum resultado encontrado

INTELIGÊNCIA ARTIFICIAL COM REDES NEURAIS PARA SISTEMAS DESKTOP

N/A
N/A
Protected

Academic year: 2021

Share "INTELIGÊNCIA ARTIFICIAL COM REDES NEURAIS PARA SISTEMAS DESKTOP"

Copied!
30
0
0

Texto

(1)

RODRIGO MORAES DE OLIVEIRA

RA 0502007 – 8º SEMESTRE, CIÊNCIA DA COMPUTAÇÃO

INTELIGÊNCIA ARTIFICIAL COM REDES NEURAIS PARA

SISTEMAS DESKTOP

Jaguariúna

(2)

1

RODRIGO MORAES DE OLIVEIRA

RA 0502007 – 8º SEMESTRE, CIÊNCIA DA COMPUTAÇÃO

INTELIGÊNCIA ARTIFICIAL COM REDES NEURAIS PARA

SISTEMAS DESKTOP

Monografia apresentada à disciplina Trabalho de Conclusão de Curso, do curso de Ciência da Computação da Faculdade de Jaguariúna, sob orientação do Prof. Ms. Silvio Petroli Neto, como exigência parcial para conclusão do curso de graduação.

Jaguariúna

(3)

Ao Prof. Silvio Petroli Neto Pelo entusiasmo e paciência que apresentou nos momentos de aprendizado, orientando sem

(4)

3

“A imaginação é o mais importante que o conhecimento”. (Albert Einstein)

(5)

OLIVEIRA, Rodrigo Moraes. Inteligência Artificial com Redes Neurais para Sistemas

Web. 2008. Monografia (Bacharelado em Ciência da Computação) – Curso de Ciência da

Computação da Faculdade de Jaguariúna, Jaguariúna.

Prof. Ms. Silvio Petroli Neto FAJ – Orientador

Profa. Ms. Christiane FAJ – Bancada

Prof. Ms. Guilherme Unicamp - Bancada

(6)

5

OLIVEIRA, Rodrigo Moraes. Inteligência Artificial com Redes Neurais para Sistemas

Web. 2008. Monografia (Bacharelado em Ciência da Computação) – Curso de Ciência da

Computação da Faculdade de Jaguariúna, Jaguariúna.

RESUMO

Cada vez mais a necessidade de tomadas de decisões se torna fundamental para grandes empresas, especialmente em setores que têm um banco de histórico. Diante de todas as informações juntamente com o uso de IA (Inteligência Artificial) se torna um artifício ou ferramenta de grande utilidade. Através do uso de RNA (Redes Neurais Artificiais) passamos para o computador todo o processo para a análise das informações e obtenção de retorno. No entanto, os sistemas atuais não se utilizam dessa ferramenta especialmente na área comercial, financeiro e etc. Diante do crescimento no desenvolvimento de sistemas se torna interessante a construção destes com RNA para uso de marketing e tomada de decisão.

(7)

SUMÁRIO

1. INTRODUÇÃO ... 6 2. METODOLOGIA ... 7 2.1 Cronograma ... 8 3. CONCEITO ... 9 3.1 Introdução histórica ... 9 3.2 Sistema Nervoso ... 11

3.3 Redes Neurais Artificiais ... 13

3.3.1 Tipos de função de transferência ... 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 Correção Erro ... 16

3.5.2 Aprendizado não-supervisionado ... 18

4. PROJETO DA RNA ... 20

5. ANÁLISE DAS INFORMAÇÕES ... 24

5.1 Treinamento ... 26

5.2 Execução do RNA ... 27

6. CONCLUSÃO ... 28

(8)

7

1. INTRODUÇÃO

No momento em que vivemos necessitamos cada vez mais de sistemas que possibilitam obter resultados através de IA. A Rede Neural tem como objetivo criar uma rede de processamento rápido e eficaz. Através destes sistemas é possível ter a base de conhecimento de um especialista facilitando a tomada de decisões. Com isso em mente é primoroso e satisfatório programar uma rede neural para obter informações desejadas que nenhum sistema comum possa dar. As respostas são baseadas no treino, conhecimento obtido pela rede por um especialista. A eficiência das respostas para definição de padrões é mais bem obtido trabalhando com processamento paralelo, algo possível 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 informações do cliente e a funcionalidade adicional será proporcionada através da RNA. A base para as entradas das informações da RNA são desde idade, sexo, renda e etc. Tendo as informações e o treinamento já efetuado na Rede Neural podem-se obter os resultados sobre qual o tipo de perfil do cliente que possibilite ao funcionário de uma empresa oferecer o pacote de investimento adequado.

(9)

2. METODOLOGIA

Levantamento Bibliográfico:

- Preparação para estudos sobre IA baseado em livros e pesquisas.

Estudo de IA:

- A primeira etapa sendo o levantamento bibliográfico, consiste na definição do tipo de IA será utilizado.

Estudo de Redes Neurais:

- Iniciada com a utilização do livro ‘Redes Neurais – Delphi’ e o site do ‘Laboratório Virtual em computação natural’. Após a obtenção das informações e estudos, foi decidido trabalhar com redes neurais.

Análise de Requisitos:

- Tendo decidido o tema e os dados que serão levantados, sendo um sistema de venda de carros, se iniciará o levantamento, a análise de requisitos para o treinamento da rede neural.

Projeto do sistema / Implementação:

- Com as informações detalhadas, passará para a fase mais importante, sendo a implementação. O sistema trabalhado em linguagem C#, orientado a objeto com a utilização da API NeuronDotNET. Os dados para o treinamento são arquivados num CSV, ou seja, as informações contidas nas linhas e separadas com ponto e vírgula. Após o desenvolvimento da RNA concluída, iniciará o treinamento da rede para obtenção dos dados e também a efetuação dos testes, tornando cada vez mais o sistema apurado.

Teste / Análise dos resultados:

- Finalmente tendo efetuado todos os processos será analisado quão eficiente foi à criação de um sistema web com inteligência artificial para obtenção das respostas.

(10)

9

2.1 Cronograma

Atividade Fev Mar Abr Mai Jun Jul Ago Set Out Nov

Levantamento Bibliográfico OK OK Estudo de Conceitos sobre IA OK OK Estudo de Redes Neurais OK OK Análise de Requisitos OK OK Projeto do Sistema OK OK Implementação OK OK OK

Testes / Análise dos Resultados

(11)

3.

CONCEITO

3.1 Introdução histórica

“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 século passado, o conceito do uso da máquina para o auxilio do homem remonta a Antiguidade Clássica. Com o passar dos tempos o interesse leva aos estudos da mecânica dando ao homem uma nova concepção. Descartes definiu o ser humano como uma maquina que tem músculos que são controlados pelo cérebro. Baseado nesse conceito Descartes acreditava em que atividades praticadas pelo homem poderiam ser executadas por máquinas com certa limitação.

Assim surge o princípio fundamental e problemático de Inteligência Artificial. Um ser humano é uma máquina capaz de executar um comando resultante de um engenho divino. Um Autômato é capaz de executar um comando resultante de um engenho humano. O desejo de ser um ‘criador’ surge às mentes da época.

O avanço primordial foram os estudos matemáticos no século XVII e XIX. Inicia-se através de Pascal [3] (1623-1662), ao criar a primeira máquina de calcular. Através desse estudo conclui-se que se uma máquina é executar operações lógicas, também seria capaz de raciocinar.

Os trabalhos foram retomados por Babbage (1792-1871) projetando uma máquina de calcular com quatro operações aritméticas básicas e o encadeamento das mesmas. Embora não foi terminado, o objetivo era trabalhar com tabelas matemáticas para cálculos trigonométricas e logarítmicas.

No século XIX que surge Alan Turing [3] que propõe o jogo da imitação. Se a máquina fosse capaz de ganhar, demonstraria a evidencia de máquinas inteligentes. Somente em 1935 surge a máquina abstrata, cujo objetivo descrever de modo rigoroso um processo automático, refazendo o comportamento de um ser humano. Nesse período era somente uma discussão teórica e abstrata sendo posteriormente confirmada com o aparecimento dos primeiro computadores pós-segunda Guerra Mundial.

A partir de 1956 a Inteligência Artificial é reconhecida com o uso de computadores. Com o advento dessas maquinas junto com o conceito surge à idéia de maquinas inteligente,

(12)

11

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 cérebro. Mas como funciona o cérebro? Como ele processa as informações? É possível construir um sistema capaz de raciocinar?

A unidade básica constituinte do cérebro é o neurônio. Com a rede de neurônios e sinapses se obtém um sistema nervoso. Cada neurônio consiste de um corpo celular, também designado como soma, o qual contém núcleo. Partindo do corpo da célula, existem um número de filamentos denominados dendritos e um filamento mais longo que é denominado de axônio. Os dendritos ligam-se ao redor da célula a outras células e o axônio faz uma conexão mais longa. A estas conexões dá-se o nome de sinapses. O sinal de uma célula a outra se faz mediante uma complicada reação eletroquímica. Substâncias químicas transmissoras são lançadas das sinapses e entram pelos dendritos, aumentando ou baixando o potencial elétrico do corpo da célula. Quando o potencial chega a um limiar, um pulso elétrico ou potencial de ação é mandado pelo axônio. O pulso espalha-se ao longo das conexões existentes pelo axônio, eventualmente, chegando a outras sinapses e lançando transmissores ao corpo de outras células. Sinapses que incrementam o potencial de outras células são denominadas inibitórias. Os neurônios podem formar novas conexões com outros neurônios e é através de tais mecanismos que se forma a base para o aprendizado do cérebro.[2]

O sistema nervoso dá a capacidade de um organismo através de entradas sensórias conseguirem informações sob o meio que vive. Todas as entradas são processadas sendo baseadas no aprendizado obtido no passado e se obtêm uma resposta coerente [1].

Um sistema nervoso é organizado em seguintes níveis: moléculas, sinapses, neurônios, camadas, mapas e sistemas. (veja figura 01).

(13)

Figura 01 (Organização do sistema nervoso biológico) [2]

Como funciona o processamento das entradas num sistema nervoso? Tudo começa com a transmissão de sinais de um neurônio para outro juntamente com a efetividade da transmissão ser modulada possibilitando a adaptação a diferentes situações. A plasticidade permite a capacidade das sinapses serem modificadas tornando a chave fundamental para o aprendizado.

A duas categorias de neurônios: pós-sinápticos e pré-sinápticos. Aos pós-sinápticos ou receptores ficam numa região especializada chamada de sinapse, pois recebem o sinal vindo de outro neurônio. Quanto aos pré-sinápticos desempenham o papel em enviar o sinal ao neurônio correto.

O canal que percorre a transmissão do sinal é chamado de sinapses sendo a junção do axônio de um neurônio pré-sináptico a um dendrito ou neurônio pós-sináptico. (Veja figura 02).

(14)

13

O objetivo do sinal recebido de cada neurônio consiste na alteração do seu estado gerando um pulso elétrico chamado de potencial de ação. A mudança ou ativação do neurônio ocorre apenas quando seu potencial é maior que um dado limiar chamado de threshold. Após a ativação o sinal é propagado para os neurônios presente no sistema nervoso. A interconexão destes neurônios gera uma rede neural para uma capacidade de processamento maior com cada neurônio independente entre todos.

O fator marcante deste é o processamento paralelo e representação distribuída. Observa-se através da divisão ou organização laminar dos neurônios. Diversas áreas desempenham a sua função desde camadas de entradas, intermediarias escondida ou camada de saída. A camada de entrada recebe os sinais sensoriais ou de entrada, a camada de saída envia sinais para outras partes do cérebro e as camadas intermediárias recebem (enviam) sinais de (para) outras camadas do córtex. Isso significa que as camadas intermediárias nem recebem entradas diretamente e nem produzem uma saída do tipo motora, por exemplo.

3.3 Redes Neurais Artificiais

O sistema nervoso é uma poderosa máquina de aprendizado e memória. Tudo ocorre através de modificações tais como a plasticidade do sistema nervoso. Em geral, a aprendizagem global é resultado de alterações locais nos neurônios. Existem diversas formas de modificações possíveis em um neurônio:

• Dendritos podem nascer, assim como também podem ser removidos.

• Alguns dendritos podem se esticar ou serem encolhidos permitindo ou eliminando, respectivamente, a conexão com outras células.

• Novas sinapses podem ser criadas ou sofrerem alterações. • Sinapses também podem ser removidas.

• Todo neurônio pode morrer e também se regenerar.

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

• O processamento básico de informação ocorre em diversas unidades simples

denominadas de neurônios artificiais ou simplesmente neurônios (ou nós);

(15)

• A informação (sinais) é transmitida entre neurônios através de conexões ou sinapses; • A eficiência de uma sinapse, representada por um peso associado, corresponde à

informação armazenada pelo neurônio e, portanto, pela rede neural; e

O conhecimento é adquirido do ambiente através de um processo de aprendizagem

que é, basicamente, responsável por adaptar os pesos das conexões aos estímulos recebidos do ambiente.

Figura 03 (Modelo de neurônio artificial) [2]

O funcionamento de um neurônio consiste na entrada de n valores que serão calculados juntamente com os pesos da sinapse, ou seja, como na figura acima a entrada x0 será multiplicada pelo peso wj0. A função 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 influência do valor da entrada líquida para a ativação do neurônio k. A função de ativação ou transferência é geralmente utilizada com dois propósitos: limitar a saída do neurônio e introduzir não-linearidade no modelo.

ou

3.3.1 Tipos de função de transferência

Tipos vários tipos de função para transferência dentre elas:

- Função de Limiar: Função de ativação ou transferência será igual a um se a saída do neurônio for maior ou igual que zero; ou igual a 0 se a saída for menor que zero.

(16)

15

parâmetro de inclinação da função sigmóide. Variando-se o parâmetro a, obtemos funções sigmóides com diferentes inclinações. Esta função assume um intervalo continuo de valores entre zero e um além de se tornar diferençável enquanto a função limiar não é.

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 saída. Geralmente os neurônios de entrada são lineares, ou seja, eles simplesmente propagam o sinal de entrada para a próxima camada. São também denominados de neurônios sensoriais. Esta rede é denominada feedforward porque a propagação do sinal ocorre apenas da entrada para a saída, ou seja, é apenas no sentido positivo.

3.4.2 MLP – Multiple Layer Perceptron

O conjunto de neurônios artificiais resulta numa rede neural. Um padrão de arquitetura para uma rede neural muito utilizada é MLP (Multiple Layer Perceptron). Este aumento no número de camadas possibilita um aumento de processamento. Para uma rede neural é necessário uma camada de entrada e uma camada de saída podendo existir mais camadas intermediarias que ficam escondidas. A saída de cada camada é utilizada como entrada para próxima camada. (Veja Figura 04)

(17)

3.5 Aprendizado

“Aprendizado é um processo pelo qual os parâmetros livres de uma rede neural são adaptados através de um processo de estimulação pelo ambiente no qual a rede está inserida. O tipo de aprendizagem é determinado pela maneira pela qual a modificação dos parâmetros ocorre.” [4]

3.5.1 Aprendizado Supervisionado ou por Correção Erro

Para a rede neural é necessário o aprendizado ou treinamento assim como o sistema nervoso que temos precisa para conseguir definir um padrão. A premissa é encontrar o conjunto de pesos para que qualquer entrada se aproxime ao valor desejado. O algoritmo de retro propagação do erro leva em consideração a saída desejada a saída obtida. A fase de treinamento tem três paradigmas: aprendizado supervisionado e aprendizado não-supervisionado. [2]

Aprendizado supervisionado, como o próprio nome diz significa o controle, supervisão dos valores utilizados e obtidos nos treinamentos. Há varias utilidades para esse tipo de aprendizado como:

• Classificação e reconhecimento de padrões • Predição de séries temporais

• Identificação de sistemas • Controle de processos

• Projeto de filtros em processamento de sinais

Processo para o treinamento supervisionado é formalizado no modelo em que dada à saída desejada dj(t) para o neurônio j no instante t e yj(t) a resposta observada do neurônio j no mesmo

instante t obtida através do estimulo x(t). Com o par-resposta é possível encontrar o erro observado baseado na fórmula do erro da diferença quadrática como abaixo mostrado.

(18)

17

Figura 05 (Processo de retro-propagação)[2]

Este processo tem como objetivo corrigir o erro observado e maximizar o processamento com a retro-propagação. Os ajustes corretivos são projetados para aproximar passo a passo o sinal de saída da resposta desejada. Este objetivo é alcançado minimizando-se uma função de custo ou índice de desempenho, , definido em termos do sinal de erro ek (n) como [4]:

Os ajustes passo a passo dos pesos sinápticos do neurônio k continuam até o sistema atingir um estado estável. Neste ponto o processo é encerrado. Em particular, a minimização da função de custo resulta na regra delta que tem como finalidade fazer o ajuste ao peso sináptico. Suponha que wkj

do neurônio 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 avançamos em

um passo no processo de aprendizagem. O modo formal da regra pode ser definido como:

“O ajuste feito em um peso sináptico de um neurônio é proporcional ao produto do sinal de erro pelo sinal de entrada da sinapse em questão.” [4]

Tendo calculado o ajuste sináptico , o valor atualizado do peso sináptico é

(19)

Na verdade, e podem ser vistos como os valores do antigo e novo do peso

sináptico , respectivamente.

O algoritmo de aprendizagem pode ser definido:

Modelo de algoritmo de aprendizagem [2]

3.5.2 Aprendizado não-supervisionado

Para este tipo de aprendizado tem como característica a não existência de um supervisor para avaliar o desempenho da rede neural para os conjuntos de pesos desejados. Não se utiliza de métodos para correção de erros e entrada dos dados de entradas consistentes ao contrário os de saída que são desconhecidos. A adaptação da rede neural é baseada na estatística nos dados da entrada com a capacidade de identificar as quais classes os novos padrões pertencem. [2]

Neste caso as redes neurais empregam a algoritmo competitivo de aprendizagem. Os neurônios de saída disputam entre si para se tornarem ativos como o único neurônio vencedor. O objetivo dessa concorrência é para descobrir regularidades estatísticas no conjunto de dados. Neurônios individuais aprendem a se especializar a conjuntos (grupos ou clusters) de padrões similares. Eles se tornam detectores ou extratores de características para diferentes classes dos dados de entrada.

(20)

19

A idéia é encontrar o neurônio cujo vetor de pesos seja o mais parecido ao padrão de entrada. Se um neurônio não responde a um padrão de entrada, ou seja, não é o vencedor, então nenhuma adaptação é sofrida por este neurônio. Entretanto, o neurônio i que ganhou a competição sofre um ajuste ∆ no seu vetor de pesos na direção do vetor de entrada:

onde α indica o tamanho do passo a ser dado na direção de x. O parâmetro α é conhecido como taxa de aprendizagem. A motivação para o uso do treinamento não supervisionado é:

• Técnicas para estimação de densidades de probabilidade, que produzem modelos estatísticos

explícitos para descrever os fenômenos responsáveis pela produção dos dados de entrada. Ex.: redes bayesianas.

• Técnicas de extração de regularidades estatísticas (ou então irregularidades) diretamente dos

(21)

4.

PROJETO DA RNA

Após estudos sobre as redes neurais artificiais se iniciou o desenvolvimento do projeto de um software que implemente uma rede neural, no entanto a implementação deste se tornou custoso pelo tempo disponível. Para isso utilizamos da biblioteca NeuronDotNet[5]. Esta biblioteca feita em C# disponibiliza todas as funcionalidades para a montagem e utilização de RNA possibilitando utilizar com Asp.NET ou Flex. O ponto positivo desta biblioteca é o conteúdo do help disponibilizado como também os diversos exemplos contidos no site http://neurondotnet.freehostia.com/index.html.

Esta API é escrita em C# é compatível com .NET plataform tornando necessário a instalação do framework 2.0 através do download no endereço

http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en. Após a instalação do framework se necessita de um editor ANSI ou Microsoft Visual Studio 2005 ou 2008.

Para iniciar o projeto, primeiramente é necessário definir os passos da montagem de uma RNA.

1. Criação do RNA e arquivo de treinamento 2. Leitura do arquivo

3. Treinamento 4. Execução da RNA

A classe principal para a RNA é BackpropagationNetwork. Esta classe contém métodos fundamentais para o controle e execução da Rede Neural. Portanto se instancia um objeto do tipo BackpropagationNetwork, como abaixo mostrado.

private BackpropagationNetwork network;

(22)

21

É notável o uso de parâmetros contendo a camada de entrada (inputLayer) e saída (OutpLayer). Estes dois objetos são do tipo ActivationLayer. Ao se instanciar o objeto da camada de entrada, oculta e de saída temos de definir o tipo de função de transferência utilizar. A API possibilita utilizar Sigmoid Activation Function, Linear Activation Function,

Logarithmic Activation Function, Sine Activation Function, Tanh Activation Function.

Através do tipo de função utilizado, ocorrerá diferenças nos resultados obtidos. Abaixo é demonstrado como instanciar o objeto definindo neste a quantidade de neurônios.

ActivationLayer inputLayer = new LinearLayer(8); ActivationLayer hiddenLayer = new SigmoidLayer(8); ActivationLayer outputLayer = new SigmoidLayer(5);

No protótipo utilizamos na camada de entrada com oito neurônios a função de transferência linear e na camada oculta com oitos neurônios e uma saída com cinco neurônios à função de ativação Sigmóide.

Após a instanciação das camadas, o próximo passo é conectar as camadas para efetuar a interação entre como mostrado abaixo.

// Conectar as camadas

new BackpropagationConnector(inputLayer, hiddenLayer); new BackpropagationConnector(hiddenLayer, outputLayer);

// Instanciação da rede

network = new BackpropagationNetwork(inputLayer, outputLayer);

O próximo passo é a criação do arquivo de treinamento. No protótipo criado, o arquivo de treinamento consiste com os valores de entrada e saída separados por ponto e vírgula. Antes da leitura do arquivo é necessário criar o objeto para o treinamento da RNA. A classe TrainingSet contém as funções para o treinamento. A instanciação deste objeto tem como parâmetro a quantidade de neurônios e quantidade de neurônios de saída como abaixo.

// Treinamento

(23)

A leitura do arquivo é feito com o seguinte código.

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 informações adicionamos um objeto TrainingSample que tem um array de entrada e um array de saída do RNA. O array deve conter exatamente as quantidades definidas no objeto TraininSet. A API possibilita definir a porcentagem de aprendizado da RNA através da função SetLearningRate como exemplo abaixo.

network.SetLearningRate(0.7d);

A inicialização da rede neural é feito pelo método Initialize da classe BackpropagationNetwork. O treinamento é o próximo passo através da função Learn. Abaixo temos o exemplo.

(24)

23

A execução da rede com valores de entrada é pela função Run. Esta função recebe como parâmetro um array de valores como utilizado no protótipo e mostrado abaixo.

double[] result = network.Run(new double[] { 0d, 1d, 3d, 30d, 0d, 2000d, 2d, 3d });

Obteremos o retorno da RNA através de um array de valores para analisar o resultado. Para maiores informações acesse o site http://neurondotnet.freehostia.com/index.html no link USER MANUAL aonde terá todas as definições das classes com suas propriedades, métodos utilizados e disponíveis.

(25)

5.

ANÁLISE DAS INFORMAÇÕES

Tendo toda a arquitetura de uma rede neural pronta se inicia o estudo com as informações desejadas. Como base utilizou o uso da rede neural para a indicação do perfil do investidor financeiro [1]. Digamos que certo bancário precise classificar por perfis de investimento um determinado conjunto de clientes investidores em sua base de dados. Tendo uma base histórica é necessário classificá-la para leva adiante um novo plano de marketing do banco. Neste caso utilizaremos uma RNA para classificar os clientes considerando as características. Necessita-se classificar os perfis de clientes investidores que precisa obter sendo: agressivo, arrojado, equilibrado, reservado e defensivo (Tabela 01).

Perfil Descrição

Agressivo O cliente investe, praticamente, em modalidades de alto risco.

Arrojado O cliente concentra seus investimentos em modalidades de alto e médio risco. Equilibrado O cliente concentra em modalidades de médio risco, não caracterizando um

perfil arrojado nem reservado.

Reservado O cliente concentra seus investimentos em modalidades de médio e baixo risco.

Defensivo O cliente investe, praticamente, em modalidades de baixo risco. Tabela01 (Perfis dos clientes e descrição.)

Após a definição dos tipos de clientes que deseja determinar, se necessita definir as entradas da rede como abaixo descrito:

1. Número de investimentos de alto risco por ano; 2. Número de investimentos de médio risco por ano; 3. Número de investimentos de baixo risco por ano; 4. Idade;

5. Sexo; 6. Renda;

7. Prazo médio de investimento; 8. Escolaridade

A partir das variáveis se defini a estrutura da rede MLP como descrito abaixo:  8 entradas;

(26)

25

Para uma rede neural as informações devem ser numéricas, portanto há necessidade de converter as informações para os valores apropriados como também as suas faixas de intervalo. Abaixo se descreve os valores numéricos para as informações e suas normalizações ou faixa de valores:

1. Número de investimentos (Alto, Médio 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 médio 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;

(27)

5.1 Treinamento

Cria-se um arquivo ‘treinamento.txt’ que contém os valores de entrada com o valor de saída desejado. Abaixo temos um exemplo deste (Tabela 02).

N˚ NInvAR NInvMR NInvBR Idade Sexo Renda PMI Escol. Perfil

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

(28)

27

No arquivo de treinamento usamos uma amostragem das informações que definem o perfil do investidor como no caso acima.

5.2 Execução do RNA

Inicializando a rede neural passamos a entrar com as informações do arquivo que efetua a correção dos pesos. Tendo finalizado o processo, pode-se utilizar o RNA para qualquer tomada de decisão para a indicação do perfil do cliente para o investimento no banco ou financeira.

No protótipo ao aplicar os dados do treinamento e executado obteve o resultado como mostrado abaixo.

Figura 06 (Resultado obtido no protótipo da RNA)

Utilizamos as seguintes informações para as entradas: - O cliente teve nenhum investimento de alto risco; - Participou num investimento de médio risco; - Teve três investimentos de baixo risco; - Com idade de 30 anos;

- Masculino;

- Renda de R$ 2000,00;

- Prazo médio de investimento de dois meses; - Terceiro grau completo (Faculdade);

Como mostrado em valor o erro total, isto significa que a margem de variação é de 0,05 para o valor de saída. Assim o valor de saída definido entre zero e um como padrão para as cinco saídas não está com valores inconsistentes. Quanto menor o erro total melhor a confiabilidade da informação obtida.

(29)

6.

CONCLUSÃO

Concluindo a análise das informações, nota-se que a rede neural ajuda em muito quanto à tomada de decisão. Mas tudo envolve o treinamento da RNA para obter melhor resultado e a boa definição das camadas e neurônios. Um bom treinamento consiste na obtenção das informações que impactam no resultado e a execução deste no sistema. Claro que um RNA nunca substituirá um ser humano experiente, no entanto, muitas vezes a tomada de decisão com o auxilio de um RNA facilita em muito vários setores desde financeiro, comercial, áreas de saúde 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.

(30)

29

7.

REFERÊNCIAS BIBLIOGRÁFICAS

[1] MEDEIROS, L.F.; Redes Neurais em DELPHI. 2ª

Ed. Visual Books, 2006. 206p.

[2] LVCON, Laboratório Virtual em Computação Natural. Disponível em http://lsin.unisantos.br/lvcon/tema?tema=2, recuperado em 10/12/2007. [3] CITI, Estudo sobre Inteligência Artificial. Disponível em

http://www.citi.pt/educacao_final/trab_final_inteligencia_artificial/index_centro.html, recuperado em 01/04/2008.

[4] Haykin, S.; Redes Neurais Princípios e Pratica. 2ª Ed. Bookman, 2001, 900p. [5] NeuronDotNet, NeuronDotNet. Disponível em http://neurondotnet.freehostia.com, recuperado em 10/11/2008.

Referências

Documentos relacionados

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

Magaldi não só aceita a obra do padre como sendo a primeira manifestação de teatro brasileiro, como entende que suas limitações devem-se mais ao gênero ao qual

requerimentos de Outorga Prévia (OP) e de Outorga de Direito de Uso de Recursos Hídricos (OD) para os empreendimentos de saneamento básico. Manual de Outorga do Paraná 2007 –

E, para que chegue ao conhecimento dos interessados, foi passado o presente Edital, publicado na forma legal e afixado em lugar público, ficando os responsáveis

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

(José Félix da Silva, comerciante e ex-colono da Serra do Mel / Vila.. Como o Projeto ocupava tão grande extensão geográfica, seria necessário um grande número de colonos, vindos

Perceber a deficiência como um fenômeno possibilita um novo olhar ao conceito, pois deixa de lado as informações já estabelecidas, para que a construção do conceito aconteça a

Os exemplos citados acima não são isolados e escassos e é por isso que nos propomos a analisar e documentar, por meio deste estudo diacrônico, os estereótipos de gênero presentes