Escolar Documentos
Profissional Documentos
Cultura Documentos
Inteligência Artificial Com Redes Neurais para Sistemas Desktop
Inteligência Artificial Com Redes Neurais para Sistemas Desktop
Jaguariúna
2008
RODRIGO MORAES DE OLIVEIRA
Jaguariúna
2008
1
Ao Prof. Silvio Petroli Neto
Pelo entusiasmo e paciência que apresentou nos momentos de aprendizado, orientando sem
imposição e alegrando-se com cada pequena conquista.
2
“A imaginação é o mais importante que o conhecimento”.
(Albert Einstein)
3
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.
4
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.
5
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
7. REFERÊNCIAS BIBLIOGRÁFICAS .............................................................................. 29
6
1. INTRODUÇÃO
7
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.
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.
8
2.1 Cronograma
Atividade Fev Mar Abr Mai Jun Jul Ago Set Out Nov
Levantamento OK OK
Bibliográfico
Estudo de Conceitos OK OK
sobre IA
Estudo de Redes OK OK
Neurais
Análise de Requisitos OK OK
Projeto do Sistema OK OK
Implementação OK OK OK
Testes / Análise dos OK OK
Resultados
9
3. CONCEITO
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,
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.
11
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).
12
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.
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:
13
• A informação (sinais) é transmitida entre neurônios através de conexões ou sinapses;
ou
14
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 é.
15
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]
• Identificação de sistemas
• Controle de processos
16
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:
determinado por:
17
Na verdade, e podem ser vistos como os valores do antigo e novo do peso
sináptico , respectivamente.
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]
18
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 é:
19
4. PROJETO DA RNA
20
É 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.
// Conectar as camadas
new BackpropagationConnector(inputLayer, hiddenLayer);
new BackpropagationConnector(hiddenLayer, outputLayer);
// Instanciação da rede
network = new BackpropagationNetwork(inputLayer, outputLayer);
// Treinamento
TrainingSet trainingSet = new TrainingSet(8, 5);
21
A leitura do arquivo é feito com o seguinte código.
new double[] {
Double.Parse(l[8]),
Double.Parse(l[9]),
Double.Parse(l[10]),
Double.Parse(l[11]),
Double.Parse(l[12])
})
);
}
stream.Close();
network.SetLearningRate(0.7d);
22
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 });
23
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;
1 camada oculta com 8 neurônios;
5 saídas;
24
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:
25
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
Tabela 02 (Treinamento para RNA)
26
No arquivo de treinamento usamos uma amostragem das informações que definem o
perfil do investidor como no caso acima.
27
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.
28
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.
29