Post on 02-Dec-2015
1
SOCIEDADE EDUCACIONAL DE SANTA CATARINA - SOCIESC
INSTITUTO SUPERIOR TUPY
Juliemar Berri
APLICAÇÃO DE REDES NEURAIS ARTIFICIAIS PARA AUXILIAR EM
DIAGNÓSTICO DE ANÁLISE DE DEMONSTRAÇÕES FINANCEIRAS
Joinville/SC
2011/2
2
JULIEMAR BERRI
APLICAÇÃO DE REDES NEURAIS ARTIFICIAIS PARA AUXILIAR EM
DIAGNÓSTICO DE ANÁLISE DE DEMONSTRAÇÕES FINANCEIRAS
Trabalho de Conclusão de Curso apresentado ao Instituto Superior Tupy como requisito parcial para obtenção do grau de Bacharel em Engenharia de Computação.
Gilberto Luiz de Souza Paula, DSc.
Joinville/SC
2011/2
3
JULIEMAR BERRI
APLICAÇÃO DE REDES NEURAIS ARTIFICIAIS PARA AUXILIAR EM
DIAGNÓSTICO DE ANÁLISE DE DEMONSTRAÇÕES FINANCEIRAS
Este trabalho foi julgado e aprovado em sua forma final, sendo assinado pelos professores da banca examinadora.
Joinville, ___de________________de_____
__________________________________________ Gilberto Luiz de Souza Paula, DSc
__________________________________________
Juliane Candido, MSc
4
__________________________________________ Fabiano Dantas
Dedico esse trabalho primeiramente a Deus e a minha esposa Alinne pela compreensão e apoio durante o trabalho.
5
AGRADECIMENTOS
Agradeço a minha mãe Lenita por todo o apoio dado durante a minha forma-
ção, aos meus colegas de classe que se tornaram verdadeiros amigos para a vida e
aos professores Gilberto e Glaci que a cada revisão e correção contribuíram para a
conclusão do trabalho.
6
“Tenha vontade tenha juventude. Eu sempre desejei isso para mim. E agora que vocês se formam para começar algo novo, eu desejo isso para vocês.”
STEVE JOBS
7
RESUMO
O constante avanço tecnológico percebido mais facilmente na interface dos equipamentos, além de minimizar o volume físico desses equipamentos, vem aumentando e em muito a capacidade de processamento numérico. A inteligência artificial é utilizada em muitos casos porque facilita o reconhecimento de padrões mesmo quando a entrada não está completamente bem definida, esta "plasticidade" além de melhorar os critérios de busca, ainda “caminham” para a individualidade do equipamento, ou seja, o próprio equipamento "compreenderá" o que usuário "quer". Com o objetivo de desenvolver um dispositivo de analise patrimonial fundamentado em Redes Neurais Artificiais, programa-se um software, que, embora nesse trabalho seja de caráter exploratório, permitirá o desenvolvimento de uma ferramenta informática para a poio a decisões contábeis sobre a saúde de uma empresa. Para tanto é preciso entender o que são balanços patrimoniais, as redes neurais artificiais e linguagem de programação. A opção de um algoritmo de Hopfield para esse tipo de análise se deve em um primeiro momento porque se demonstrou eficiente na identificação dos padrões de balanço contábeis oferecidos, e devido ao fato de oferecer mínimos espúrios ao invés de probabilidades de resposta, que são uma vantagem significativa a redes do tipo Backpropagation ou outra qualquer, porque não induzem o usuário, assim, se não for “parecido” com nenhum aprendizado “pre-fere-se” não dizer nada. Os padrões de entrada e saída, mesmo sendo fictícios, ser-vem para demonstrar o funcionamento do software aplicado, afinal por mais que se estude o uso de Inteligência Artificial é mais interessante quando fundamentado na experiência do profissional. Portanto utilizou-se a rede de Hopfield, com programa-ção Java como um sistema especialista fundamentado em redes neurais artificiais para analise de demonstrações financeiras de uma empresa fictícia. Palavras-chave: Rede Neural Artificial, Inteligência Artificial, Balanço patrimonial,
Hopfield.
8
ABSTRACT
The constant technological advancement most noticeable at the interface of the equipment, while minimizing the physical volume of equipment, and much has been increasing the capacity of numerical processing. Artificial intelligence is used in many cases because it facilitates the recognition of patterns even when the input is not completely defined, this "plasticity" in addition to improving the search criteria, still "go" to the individuality of the equipment, in the other words, the equipment "understand" what user "wants." In order to develop a device to analyze equity based on Artificial Neural Networks, Programs, and software, that although this work is exploratory, allow the development of a data proccess tool to support decisions on the financial health of a the company. For this you need to understand what are balance sheets, the artificial neural networks and programming language. The option of a Hopfield algorithm for this type of analysis is due at first because it has been shown effective in identifying patterns of balance sheet provided, and because of present minimum rather than spurious response probabilities, which are a significant advantage to the type Backpropagation networks or any other, because they induce the user, so if it is not "like" with no learning "preferred" say nothing. The patterns of entry and exit, even if fictional, serve to demonstrate the operation of application software, after all no matter what you use study of Artificial Intelligence is more interesting when based on professional experience. Therefore was used the Hopfield network, programming with Java as an expert system based on artificial neural networks for analyzing financial statements of a fictitious company. Keywords: Artificial Neural Networks, Artificial Intelligence, Balance Sheet, Hopfield.
9
LISTA DE ILUSTRAÇÕES
Figura 1 - Conceito dos sistemas de Inteligência Artificial ........................................ 22
Figura 2 – Soluções oferecidas pelo sistema especialista ........................................ 23
Figura 3 – Neurônio biológico.................................................................................... 25
Figura 4 – Neurônio de McCulloch e Pitts com limiar explícito .................................. 26
Figura 5 - Neurônio de McCulloch e Pitts com limiar implícito................................... 27
Figura 6 - Rede neural Percepton multicamada ........................................................ 31
Figura 7 - Rede Hopfield formada de N=4 neurônios ................................................ 35
Figura 8 – Framework Neuroph ................................................................................. 38
Figura 9 – Site Heaton Research .............................................................................. 39
Figura 10 - Cadastro de ativos .................................................................................. 42
Figura 11 - Cadastro de Balanços ............................................................................. 43
Figura 12 - Cadastro de valores de treinamento ....................................................... 43
Figura 13 – Resultado de análise .............................................................................. 44
10
LISTA DE TABELAS
Tabela 1 – Balanços fictícios ..................................................................................... 40
Tabela 2 – Valores com Alterações básicas.............................................................. 41
Tabela 3 – Dados Desconhecidos ............................................................................. 41
11
SUMÁRIO
1 INTRODUÇÃO .................................................................................................. 13
2 CONCEITO DE CONTABILIDADE .................................................................. 16
2.1 ANÁLISE DE DEMONSTRAÇÕES FINANCEIRAS .......................................... 16
2.1.1 Balanço Patrimonial ................................................................................... 17
2.1.1.1 Ativo .............................................................................................................. 18
2.1.1.2 Passivo ......................................................................................................... 18
2.2 CONTABILIDADE E TECNOLOGIA DA INFORMAÇÃO .................................. 19
3 INTELIGÊNCIA ARTIFICIAL ............................................................................ 21
3.1 SISTEMAS ESPECIALISTAS ........................................................................... 22
3.2 REDE NEURAL ARTIFICIAL ............................................................................ 24
3.2.1 Neurônio biológico ..................................................................................... 24
3.2.2 Neurônio Artificial ....................................................................................... 25
3.2.3 Aprendizado ................................................................................................ 27
3.2.3.1 Aprendizado supervisionado ........................................................................ 27
3.2.3.2 Aprendizado não supervisionado ................................................................. 28
3.2.4 Adaline ......................................................................................................... 28
3.2.4.1 Algoritmo de aprendizado ............................................................................. 29
3.2.5 Perceptron ................................................................................................... 29
3.2.5.1 Algoritmo de aprendizado ............................................................................. 30
3.2.6 Redes Neurais Multi Camadas .................................................................. 30
3.2.6.1 Treinamento em redes MLP ......................................................................... 32
3.2.7 Rede Hopifield............................................................................................. 34
4 PROJETO ......................................................................................................... 37
4.1 LINGUAGEM DE PROGRAMAÇÃO ................................................................. 37
4.2 BIBLIOTECAS DE RNA PARA JAVA ............................................................... 37
4.2.1 Neuroph ....................................................................................................... 37
4.2.2 Encog ........................................................................................................... 38
12
4.3 APLICATIVO PARA ANÁLISE DE BALANÇO .................................................. 39
4.3.1 Apresentação do aplicativo ....................................................................... 42
5 CONCLUSÃO ................................................................................................... 45
REFERÊNCIAS ......................................................................................................... 46
13
1 INTRODUÇÃO
Nas últimas três décadas, a evolução e popularização de Redes Neurais
Artificiais foram possíveis graças ao advento de recursos computacionais cada vez
mais potentes com menores custos. Uma Rede Neural Artificial pode ser definida
em neurônio, arquitetura e aprendizagem (FERNANDES 2005).
Entendendo o neurônio como uma unidade de processamento com n entra-
das e que resulta em um sinal de saída ou uma função de transferência. A principal
vantagem de sistemas neurais biológicos em relação a sistemas computacionais
está no fato de que mesmo com “falhas” nos receptores de entrada do sistema bioló-
gico (visão, tato) ele reconhece o cenário no qual está inserido. A exemplo, um rato
não precisa estar na frente de um gato, sentir seu cheiro, e as vibrações do ambi-
ente para fugir, isso é que garante a sua sobrevivência. Modelos computacionais
estruturados estão condenados à extinção em sistemas abertos, porque estes siste-
mas possuem diversas variáveis e sua intensidade também não é exata. Assim
modelos de inteligência artificial buscam a similaridade da convergência a padrões
de respostas dados cenários de entradas. Por isso um sistema fundamentado em
inteligência artificial necessita de uma “fase de treinamento” onde é constituída a
relação entre a entrada e resposta esperada. Entretanto uma Rede Neural Artificial
possui n neurônios e pode ser dividida em três camadas: camada de entrada, onde
os padrões são apresentados; camadas Intermediárias ou Escondidas, onde é reali-
zado o processamento e as conexões e camada de Saída, onde é apresentado o
resultado.
No mundo moderno, as organizações estão cientes das necessidades de
inserção tecnológica e estão cada vez mais flexíveis no que tange ao uso das
informações. Dentre as diversas facilidades da tecnologia e seus sistemas no ambi-
ente empresarial, se pode destacar em âmbito contábil, o aumento da produtividade,
melhoria e garantia da qualidade dos serviços, eficácia e mais facilidade para os
profissionais da área, uma vez que os sistemas baseados em Inteligência Artificial
são capazes de gerar inúmeras suposições e previsões.
Além dos diversos benefícios à empresa, sistemas de informação também
facilitam o acesso às informações nas organizações. É possível destacar com base
neste trabalho acadêmico de conclusão de curso que os Sistemas de Informação
vêm aplicando técnicas inteligentes em sua essência. Onde a área financeira tam-
14
bém se beneficia. Por exemplo, a aplicação de um Sistema Especialista na área
contábil é capaz de ajudar profissionais a tomarem decisão de forma mais ágil, rá-
pida e segura, de acordo com a identificação e característica dos dados inseridos
nele. Com base em tal relevância, poderá uma Rede Neural Artificial auxiliar o
profissional na tomada de decisões contábeis?
A habilidade do ser humano em aprender sempre foi alvo de indagações e
pesquisas, o nome desta capacidade é protopeiria (ARARIBÓIA). Redes Neurais
Artificiais também possuem a capacidade de aprender com exemplos e fazer
interpolações e extrapolações do que aprenderam. Para que uma Rede Neural Artifi-
cial possa aprender uma determinada função são necessários conjuntos de
procedimentos bem definidos conhecidos como algoritmos de aprendizagem
(BRAGA, 2000). Existem diversos métodos para o treinamento, mas que podem ser
agrupados em dois paradigmas: Aprendizado supervisionado e Aprendizado não
supervisionado.
É altamente importante uma boa definição do processo de aprendizado das
Redes Neurais Artificiais. Atualmente existem inúmeras pesquisas voltadas ao pro-
cesso de aprendizado biológico comparado ao artificial. O aprendizado supervisio-
nado tem seu erro minimizado (AZEVEDO, 2000), pois o processo de aprendizado
da rede consiste em apresentar uma entrada e com base no erro de saída é calcu-
lado o ajuste necessário nos pesos sinápticos da rede. Porém existem alguns
parâmetros que devem ser considerados: o tempo requerido por iteração, número de
iterações por padrão de entrada para o erro alcançar um valor mínimo durante a
sessão de treinamento, se a Rede Neural Artificial atingiu um mínimo Local ou
Global, e caso Local se a rede pode escapar dele.
No aprendizado não supervisionado, não existe uma saída desejada, durante
todo o processo de treinamento a Rede Neural Artificial é excitada com padrões de
entrada bem distintos e vai organizando Arbitrariamente os padrões em diversas
categorias. Geralmente este tipo de aprendizado é utilizado em sistemas
classificadores (AZEVEDO, 2000). Desta forma se faz necessário o estudo dos
diferentes algoritmos de Redes Neurais Artificiais, buscando uma convergência
generalizada para auxiliar o profissional de contabilidade em tomadas de decisões
nas demonstrações contábeis.
O objetivo deste trabalho é desenvolver um software aplicativo que utilize
redes neurais para análise de balanços patrimoniais. Para atingir o objetivo foram
15
formulados os seguintes objetivos específicos: estudar balanço patrimonial, Estudar
Redes Neurais Artificiais, escolher uma Rede Neural Artificial específica para
desenvolver o aplicativo, definir uma linguagem de programação e desenvolver o
aplicativo.
A metodologia aplicada consiste inicialmente em uma pesquisa de caráter
exploratório sobre a utilização de Redes Neurais Artificiais na análise de balanços
patrimoniais. Quanto à abordagem, é de uma pesquisa qualitativa. A estratégia utili-
zada de uma pesquisa bibliográfica em livros, artigos científicos e websites. E um
aplicativo utilizando uma Rede Neural Artificial Hopfield especializado em analisar e
identificar padrões em balanços patrimoniais.
Este trabalho estrutura-se em cinco capítulos. Neste capítulo, apresenta-se
uma visão geral do trabalho, informações relacionadas ao tema, o objetivo geral, os
objetivos específicos e metodologia utilizada.
O segundo capítulo apresenta os conceitos de contabilidade, balanço patrimo-
nial, passivo, ativo e a importância da tecnologia da informação na contabilidade.
O terceiro capítulo explora-se a inteligência artificial através de seu histórico e
desafios a serem superados pelo desenvolvedor, é apresentada a importância dos
sistemas especialistas, uma breve visão histórica sobre Rede Neural Artificial,
detalhamento do neurônio biológico e neurônio artificial e as redes neurais artificiais,
Adaline, Perceptron, Redes Neurais Multicamadas e Rede Hopfield. Até este ponto
do trabalho está realizada a fundamentação teórica.
No quarto capítulo é detalhado o processo de desenvolvimento do software
aplicativo, escolha da linguagem de programação a ser utilizada, escolha de projetos
que facilitam a utilização de Rede Neural Artificial, requisitos para o desenvolvimento
do software, demonstração através de tabelas dos resultados obtidos pela aplicação
e apresentação do aplicativo em funcionamento.
Já no quinto capítulo é realizada a conclusão através de uma análise crítica so-
bre os desafios e resultados encontrados na execução do trabalho, e sugestões para
estudos futuros.
16
2 CONCEITO DE CONTABILIDADE
De acordo com Marques (2004, p. 17), “o conceito de contabilidade científico,
é a ciência que estuda e controla o patrimônio das entidades”. Mas também se pode
conceituar contabilidade como ciência que registra os fatos e gera informações do
patrimônio da empresa, sendo este patrimônio o conjunto de riquezas de proprie-
dade física ou jurídica.
Pode ser considerada uma combinação de fatores técnicos que também des-
creve alguns acontecimentos encontrados no patrimônio das empresas, através de
coleta, armazenamento e processamento das informações. Traz como um dos
principais objetivos o estudo dos resultados ou números das empresas, registrando-
os através de demonstrações contábeis todos os acontecimentos financeiros
apresentados. Através destas demonstrações contábeis as empresas conseguem
medir sua saúde financeira, como afirma a lei 6.404/76, que apresenta estas
demonstrações como conteúdo que expõe qualitativamente e quantitativamente os
elementos do patrimônio. Estas demonstrações descritas na lei são conhecidas em
meio contábil, como por exemplo, o Balanço Patrimonial, Demonstração do Resul-
tado do Exercício, Demonstração Fluxo de Caixa, entre outros.
Desta forma afirma Padoveze (2010, p.3) que, “se pode definir contabilidade
como o sistema de informação que controla o patrimônio de uma entidade.” Po-
dendo ser considerada como entidade, o conjunto patrimonial pertencente a uma
pessoa ou empresa.
2.1 ANÁLISE DE DEMONSTRAÇÕES FINANCEIRAS
A análise de demonstrações financeiras é uma importante ferramenta de uso
nas empresas pela área contábil, sendo capaz de demonstrar os resultados e criar
novas simulações financeiras. De acordo com o Código Comercial, em lei 6.404/76
as empresas cuja razão social denominadas em Sociedade Anônima (S.A) ou
também Sociedade por Ações precisam divulgar seu Balanço Patrimonial em mídia,
ressalvo de algumas exceções.
De acordo com Sá (SÁ, 1999), ao analisar as demonstrações contábeis de
uma empresa, é comum o acompanhamento da evolução dos resultados ao longo
17
de vários exercícios consecutivos anuais para avaliar se as empresas estão melho-
rando ou piorando sua situação financeira e patrimonial.
Desta forma, é necessário que se expresse com clareza seu balanço patrimo-
nial, com demonstração dos lucros ou prejuízos acumulados, demonstração do
resultado do exercício do ano e demonstração das origens e aplicações de recursos.
Com a publicação exigida por lei as análises de balanços se tornaram ainda mais
claras e fidedignas.
Considerando as demonstrações contábeis nas empresas, o balanço patrimo-
nial é considerado uma das principais e mais confiáveis declarações financeiras de
uma empresa. É a demonstração que apresenta todos os bens, direitos e obrigações
da empresa. Referenciando a necessidade de existência do Balanço Patrimonial
segundo Pimentel,
O balanço de uma empresa é uma “foto” da empresa, demonstrando suas posições patrimonial e financeira num mesmo dado momento. O balanço pode relatar a situação da companhia a cada ano fiscal ou trimestre. O ba-lanço é precisamente útil para fornecer informações contábeis que ajudam a compreender o que ocorreu com a empresa em um determinado período. (PIMENTEL,2007,p.59)
2.1.1 Balanço Patrimonial
Ao se traduzir o sentido de balanço patrimonial é possível se destinar à aná-
lise qualitativa e quantitativa de uma empresa, em determinada data, situação
patrimonial e financeira. O conteúdo traduzido de um balanço patrimonial é apresen-
tado por Ativo e Passivo. Onde objetivamente o Ativo é a soma de bens e direitos e
o Passivo a soma de obrigações e patrimônio líquido.
Na definição de patrimônio, entende-se como o conjunto de bens, direitos e
obrigações da empresa. Onde em definição de Ativo, está bens, ou coisa palpável e
tangível, define-se também os direitos como: valores de natureza da empresa, de
retorno para a empresa e Bens Intangíveis como por exemplo sua marca.
Em definição do Passivo, ao citar o termo obrigações, compreende-se como
sendo algo avaliado em dinheiro que não é da empresa, mas está em responsabili-
dade e posse da mesma. E por fim, patrimônio líquido é interpretado como sendo
soma do ativo subtraído das obrigações da empresa, é o valor de retorno da em-
presa aos sócios e acionistas.
18
De acordo com Padoneze e Benedicto (PADONEZE; BENEDICTO,2004) se
considera realizado um Ativo quando os valores são recebidos ou transformados em
dinheiro. E um passivo é quando a despesa é paga ou a obrigação que representa é
liquidada.
2.1.1.1 Ativo
Caracterizando as contas principais do Ativo, conforme definido anterior-
mente, se pode citar como bens da empresa, seu caixa e conta bancária, assim
como estoques que são dinheiro investido e também terrenos, carros, móveis e
utensílios. De acordo com Iudícibus (2006, p.138), “ativos representam benefícios
futuros esperados, direitos que foram adquiridos pela entidade como resultado de
alguma transação corrente ou passada”.
Da mesma forma representando os direitos da empresa ou benefícios futuros,
como títulos a receber, impostos a recuperar e também adiantamentos financeiros
realizados. Ainda na subdivisão do Ativo são dispostas a divisão em, Ativo
Circulante e Ativo não Circulante, conforme Lei 11638/2007. Comenta Iudícibus
(2006, p. 153), “o ativo e sua conceituação configuram-se, talvez, como o capítulo
mais importante da teoria contábil, ao lado do capítulo de receitas, despesas, perdas
e ganhos de uma empresa”.
2.1.1.2 Passivo
Ao passivo são destinadas em demonstrativo financeiro as contas no grupo
de obrigações em duplicatas a pagar, impostos a recolher, salários a pagar,
empréstimos bancários entre outras obrigações deste gênero. Uma característica
essencial para caracterizar o Passivo é que a empresa tem uma obrigação no mo-
mento da avaliação. Uma obrigação é o dever ou a responsabilidade de agir ou cum-
prir de uma certa forma. (IUDÍCIBUS, MARION, 2006).
E também complementando o passivo as contas do patrimônio líquido podem
ser exemplificadas no capital social da empresa, investimentos, reservas financeiras
e lucros acumulados. Assim como o Ativo, o Passivo é disposto em mais divisões
como Passivo circulante e Passivo não Circulante. Sendo sempre de importância se
fazer uma distinção entre obrigações presentes e comprometimentos futuros, ambos
19
aparecendo como saldo credor para as empresas. Ainda afirma Iudícibus (2006,
p.157) “O passivo, ou uma exigibilidade é um serviço avaliável em dinheiro, que um
proprietário é obrigado a prestar por uma norma legal ou equitativa para uma
segunda pessoa ou conjunto de pessoas”.
2.2 CONTABILIDADE E TECNOLOGIA DA INFORMAÇÃO
De acordo com o dicionário Aurélio (2009, p.1925) a definição de tecnologia é
simplesmente, “o conjunto de conhecimentos ou princípios científicos, que se apli-
cam a um determinado ramo de atividade, capaz de realizar integração de informa-
ções”. É também perceptível notar que a tecnologia está mais próxima de todos
nesta última década, de forma com que todos que queiram tenham acesso à
informação, a novos conhecimentos e a facilidades que a mesma emprega. De
acordo com Padoveze (2009, p.27) “a informação é o dado que é processado e
armazenado de forma compreensível para seu receptor e que apresenta valor real
para suas decisões correntes ou prospectivas”.
Também nas empresas a mesma tecnologia vem ao encontro com o negócio
e necessidades do dia a dia, facilitando para as empresas a entrada e geração de
informações mais concretas e fidedignas. Assim como em vários segmentos, tam-
bém na contabilidade este acesso às informações facilita na tomada de decisões.
Para que o efeito da tecnologia seja uma parceria de sucesso nas empresas, os
usuários precisam estar cientes das inovações tecnológicas, incorporando-as não
apenas de forma superficial, mas também nos procedimentos contábeis básicos,
situações que exijam uma analise contábil mais apurada e complexa.
A nova forma de se fazer negócio através do apoio da tecnologia está
proporcionando para as empresas uma conquista no ambiente contábil com solu-
ções praticas e inteligentes, que ajudam a melhorar o padrão de qualidade de servi-
ços. A tecnologia, em termos de desenvolvimento, tem despontado, trazendo gran-
des avanços para a sociedade em geral. A mais de três décadas a contabilidade
percebe mudanças significativas devidas transformações sociais e tecnológicas que
contribuíram para aumentar a produtividade e facilitar o acesso às informações.
Conforme afirma Padoveze (2009, p.29) “a tecnologia da informação é todo o con-
junto tecnológico à disposição das empresas para efetivar seu subsistema de
informação e suas operações”.
20
Afirma Padoveze (2009) que a ciência contábil pode se traduzir naturalmente
dentro de um sistema de informação, visto que em caráter de exatidão a contabili-
dade pode ser comparada a mesma arquitetura de um sistema informacional. Hoje
em dia com facilidade à tecnologia e a mesma em favor da Ciência Contábil
proporcionou uma exatidão nas entradas e processamento dos números onde os
erros tornam-se mínimos. O incentivo dos executivos no desenvolvimento de maior
qualidade da informação tem levado os especialistas a aperfeiçoarem continua-
mente nos processos de inovações para a área contábil.
21
3 INTELIGÊNCIA ARTIFICIAL
Inteligência Artificial pode-se traduzir como uma simulação da inteligência hu-
mana na realização de atividades elaboradas por pessoas, que podem ser substituí-
dos pelo uso de recursos da ciência da computação e também seus respectivos
algoritmos inteligentes. Através desta inteligência é possível se resolver problemas
quando se faltam informações, determinar o que é importante, reagir a situações
inesperadas como também prever resultados.
Segundo Rosini e Palmisano (2003 apud RICH, 1988, p.30) “A Inteligência
Artificial é o estudo de como fazer os computadores realizarem tarefas em que, no
momento as pessoas são melhores”. No entanto, a Inteligência Artificial é uma no-
ção que dispõe de múltiplas interpretações, não raro conflitantes ou circulares. A
área de pesquisa que dá origem a Inteligência Artificial na tecnologia é a Ciência da
Computação e a Engenharia da Computação, ambas com o foco em buscar méto-
dos computacionais que possam simular a capacidade racional de resolver proble-
mas, pensar de forma inteligente.
Nestes últimos anos a Inteligência Artificial tem ultrapassado os tradicionais
programas de conversão e tem envolvido áreas como visão computacional, análise e
síntese da voz, lógica difusa, redes neurais artificiais e muitas outras. Nos subcam-
pos que existem na Inteligência se encontra o estudo de modelos redes neurais
(conexões). Então uma rede neural pode ser vista como um modelo matemático
simplificado do funcionamento do cérebro humano. Estes recebem e enviam estímu-
los elétricos entre si, formando uma rede altamente interconectada.
Com o desenvolvimento dos estudos e base teórica da Inteligência Aritificial,
quando há necessidade de se escrever ou desenvolver uma solução inteligente utili-
zando a mesma, é comum que se usam teorias já existentes ao invés de se criar
novas teorias para estes fins. Um sistema desenvolvido com inteligência artificial não
somente é capaz de armazenar e manipular dados e informações como também
representar e manipular o conhecimento. Ou seja, é capaz de deduzir e apresentar
novos resultados em um ambiente o qual é sujeito. Um dos resultados mais úteis
que surgiram das pesquisas em IA, é que fatos e regras, conhecimento declarativo,
podem ser representados separadamente dos algoritmos de decisão - conhecimento
procedimental.
Desta forma, as questões principais a serem contornadas pelo desenvolvedor
22
de um sistema de Inteligência Artificial, segundo figura 1 são:
Figura 1 - Conceito dos sistemas de Inteligência Artificial
Sendo assim, conclui-se que o campo ou espaço de um sistema de Inteligên-
cia Artificial tem por objetivo, o contínuo aumento de inteligência do computador,
com base nos na inteligência natural. Para este fim, se pode definir como sendo uma
junção de técnicas suportadas por computador simulando capacidades dos seres
humanos.
3.1 SISTEMAS ESPECIALISTAS
A medida que se tem necessidade de desenvolver um sistema para processar
informação não numérica, é possível se desenvolver um sistema especialista. O
mesmo é capaz de apresentar conclusões sobre um assunto específico, desde que
seja corretamente orientado e alimentado.
Estes sistemas são aplicações da Inteligência Artificial e são comumente
utilizado nas empresas. Situa-se na área de aplicação da Ciência Cognitiva discipli-
nas como: biologia, neurologia, psicologia, matemática, para verificar como os seres
humanos aprendem, criam, e desenvolvem aplicações baseada no conhecimento
com acompanhamento de um especialista (O´BRIEN, 2004).
Concluiu-se que o sistema especialista útil para os diversos setores da em-
presa, podendo ser utilizado de acordo com a necessidade também específica, facili-
tando a tomada de decisão de maneira precisa e eficaz. Segundo Stair e Reynolds,
estão representadas como Soluções oferecidas pelo Sistema Especialista na Figura
1:
23
Figura 2 – Soluções oferecidas pelo sistema especialista
Fonte: Stair; Reynolds(2002, p.351)
a) Ajuste da meta estratégica – Representam tomadas de decisão na em-
presa, constituem a estrutura de todas as outras atividades da organiza-
ção, podendo os sistemas especialistas sugerir estas metas;
b) Planejamento – A capacidade de alcançar os objetivos corporativos gerais
com planos específicos, ajudar uma organização a competir no mercado e
podem ser investigados por meio dos sistemas especialistas;
c) Projeto - Projetar serviços e produtos requer experiência e conhecimento
do comportamento do mercado. Os sistemas especialistas têm sido
desenvolvidos para auxiliar no desenvolvimento de vários produtos;
d) Tomada de decisão – Esses sistemas sugerem possibilidades diferentes
no que concerne aos problemas e abordagens lógicas do processo de to-
mada de decisão, podendo também, melhorar o processo de aprendizado
para profissionais sem muita experiência, em tomada de decisão;
e) Controle e Monitoramento de Qualidade - Os sistemas especialistas po-
dem ajudar no monitoramento de diversos sistemas e propor soluções
para problemas em outros sistemas, podendo também, ser utilizados para
monitorar a qualidade dos produtos;
24
f) Diagnóstico – O monitoramento determina o estado atual do sistema e o
diagnóstico busca as causas e propõe soluções.
Portanto, são considerados sistemas especialistas, sistemas que fundamen-
tam suas decisões na experiência de um profissional, e são utilizados para solucio-
nar problemas e dúvidas em áreas específicas da empresa. Segundo Turban et al
(2004, p. 376) considera que “sistema especialista é um sistema de computador que
tenta imitar especialistas humanos aplicando metodologias de raciocínio ou conheci-
mento sobre uma área específica”.
3.2 REDE NEURAL ARTIFICIAL
Segundo Braga, Carvalho e Ludemir (2000), “as Redes Neurais Artificiais
(RNAs) são modelos matemáticos que se assemelham às estruturas neurais biológi-
cas e que tem capacidade computacional adquirida por meio de aprendizado e
generalização”. Então, a rede neural absorve dados e, a partir destes, modifica seus
parâmetros de entrada.
Uma Rede Neural Artificial treinada pode ter uma boa capacidade de
generalização independentemente de ter sido controlada durante o treinamento. Boa
parte das pesquisas atual na área, visa o desenvolvimento de modelos e técnicas de
aprendizado que tenham algum controle de generalização (BRAGA; CARVA-
LHO;LUDEMIR, 2000).
Qualquer problema de aproximação de funções contínuas pode ser resolvido
por meio de Redes Neurais Artificiais, independente do número de variáveis
envolvidas.” Conforme ainda afirmam Braga, Carvalho e Ludemir, “uma das
características mais importantes das Redes Neurais Artificiais é que as mesmas são
aproximadoras universais de funções multivariáveis contínuas.
3.2.1 Neurônio biológico
No século XIX o médico Ramon y Cajal em seus diversos estudos sobre o
sistema nervoso central descreveu anatomicamente um neurônio. Assim como qual-
quer outra célula biológica o neurônio é composto de uma membrana celular e pos-
sui papel essencial no funcionamento elétrico de células nervosas.
25
O corpo dessas células nervosas é capaz de projetar extensões filamentares
que são conhecidos como dentritos e axônio, conforme ilustrado na Figura 3. Os
dentritos são filamentos que cobrem um volume maior que o próprio corpo celular
formando uma espécie de árvore. E já o axônio, também chamado de fibra nervosa
é responsável em conectar células nervosas no sistema nervoso. Sendo esta então
a composição considerada o centro de processos metabólicos.
Cada neurônio possui um axônio e este pode chegar a vários metros. Alguns
neurônios encontrados no sistema nervoso central – dos vertebrados, é composto
de uma capa de mielina, uma substância lipída proveniente de células do hipotá-
lamo. Esta mielina é capaz de envolver fibras nervosas fazendo que estas fibras
possam criar os impulsos nervosos mais rápidos, acelerando assim a transmissão
de informação pelo neurônio.
Figura 3 – Neurônio biológico
Fonte: Valença (2006, p.18)
Passou-se a entender o neurônio biológico como sendo basicamente o
dispositivo computacional elementar do sistema nervoso, que possui muitas entra-
das e uma saída (KOVACS, 2006). Principalmente por que o “Spike” que é a ativa-
ção do neurônio dada a configuração de entrada, pode ser visto como um sistema
“ligado” x “desligado” (1,0) no seu comportamento coletivo.
3.2.2 Neurônio Artificial
O neurônio artificial é uma representação matemática do neurônio biológico. A
primeira proposta para representar matematicamente um neurônio foi realizada por
McCulloch e Pitts em 1943. O modelo utiliza uma regra de propagação e uma de
ativação para representar um neurônio biológico. A emissão de sinal é fundamen-
tada na Lei do Tudo ou Nada. Conforme demonstrado por Valença (2007,p.20 ) a
26
representação matemática é descrita nas próximas linhas:
Considere como sendo variáveis de entrada do
neurônio de saída i. a entrada liquida é dada pela seguinte regra de propaga-
ção.
∑
Onde são os pesos sinápticos e é o limiar representado na Figura 4.
Figura 4 – Neurônio de McCulloch e Pitts com limiar explícito
Fonte: Valença (2006, p.20)
A função de ativação neste caso é a função degrau, isto é:
{
Nos algoritmos de aprendizagem, considerar do limiar de forma implícita é
mais adequado. A Figura 5 apresenta uma alternativa de representação do neurônio,
em que o efeito da função limiar é representado por se fazer duas modificações:
27
Figura 5 - Neurônio de McCulloch e Pitts com limiar implícito
Fonte: Valença (2006, p.21)
Adicionou uma entrada de valor fixo
Adicionado novo peso sináptico (VALENÇA, 2006).
3.2.3 Aprendizado
O processo de aprendizado em Redes Neurais Artificiais é constantemente
submetido a intensas pesquisas relacionadas às redes biológicas e neurais. Exis-
tem inúmeros processos de aprendizado adequados a diferentes tipos de redes neu-
rais. Estes processos podem ser divididos em dois tipos: Associativo e não associa-
tivo.
O tipo Associativo é a forma de aprender através do relacionamento entre
pares de estímulos e está relacionado ao modelo de aprendizado para Redes Neu-
rais Artificiais supervisionadas.
Já no tipo não associativo não existem estímulos secundários. Deste modo, é
por meio da repetição de um estímulo que surge a oportunidade de aprender sobre
determinada propriedade. Este tipo é um modelo para Redes Neurais Artificiais não
supervisionadas (KOVACS, 2006).
3.2.3.1 Aprendizado supervisionado
Este é o método mais utilizado para treinamento de Redes Neurais Artificiais.
O objetivo dele é ajustar os parâmetros da rede para encontrar uma ligação entre os
28
pares de entrada e saída. Um mecanismo de avaliação indica um comportamento
esperado da rede a fim de direcionar o processo de treinamento. A saída é compa-
rada com a resposta desejada e recebe informações sobre o erro da resposta cor-
rente. Para todos os padrões apresentados, são comparadas as respostas deseja-
das com as respostas calculadas, ajustando os pesos das conexões para minimizar
o erro.
A grande desvantagem do aprendizado supervisionado é que, na ausência do
avaliador, a rede não irá evoluir e aprender novas estratégias em situações não
apresentadas pelo treinamento da rede. Os algoritmos mais conhecidos para
aprendizado supervisionado são a regra Delta e o algoritmo Backpropagation.
Existem duas formas de implementação do aprendizado supervisionado: off-
line e on-line. Off-line: os dados de treinamento não mudam e, ao obter uma solução
para a rede, ela permanece fixa. Quando novos dados são adicionados ao treina-
mento, ele deve ser refeito. On-line: o conjunto de dados muda continuamente e a
rede está em contínuo processo de adaptação. (BRAGA,2008;AZEVEDO,2000)
3.2.3.2 Aprendizado não supervisionado
O modelo não supervisionado não requer um supervisor. Para estes algorit-
mos é necessária somente a apresentação dos padrões de entrada. Com estes pa-
drões a rede tenta estabelecer uma harmonia através regularidades estatísticas.
Desta forma ela estabelece representações internas para criar características e
separar por meio de classes ou grupos automaticamente.
O sistema de aprendizado não supervisionado pode adquirir uma variedade
de formas distintas, como consistir em uma camada de entrada, uma de saída,
conexões feedforward da entrada para a saída e conexões laterais entre os neurô-
nios da camada de saída.
3.2.4 Adaline
Em 1960, Bernad Widrow, professor da universidade de Stanford, apresentou
em uma conferência do Institute of Radio Eletrônics - IRE hoje conhecida como
Institute of Eletrical and Eletronic Engineers - IEEE um modelo muito simples de
rede neural, o qual ele batizou de Adaptive Linear Neuron - ADALINE. Este modelo é
29
baseado em elementos de processamento que executam operações de soma e
posteriormente é executada uma comparação com um valor linear.
A grande contribuição de Widrow foi o algoritmo de treinamento chamado de
regra Delta que posteriormente deu origem ao algoritmo Back-propaga-
tion.(BRAGA,2008;AZEVEDO,2000)
ADALINE é um modelo linear de Rede Neural Artificial com aprendizado
supervisionado, cuja saída é simplesmente a combinação dos componentes do vetor
de entrada x. Seu valor de saída é limitado a +1 se o resultado do somatório de en-
trada for positivo e a -1 se o resultado do somatório de entrada for negativo. Este
comportamento bipolar tem seus pesos adaptados em função do erro de sua saída
linear ( ∑ ). Isto leva a uma função de custo minimizado por ser quadrática
nos pesos de entrada . Desta forma, se garante a minimização pelo método do
gradiente. (BRAGA,2008).
3.2.4.1 Algoritmo de aprendizado
A regra de aprendizado que Widrow propõe usar a função de entrada antes da
saída ser mapeada, este modelo é conhecido como procedimento de aprendizado
Least Means Square - LMS, ou regra Delta.
Desta forma, a função de saída pode ser:
∑
é o peso para o neurônio , para o neurônio , São entradas para o neurônio
e é a função de entrada para o neurônio , e é um termo chamado de “bias”,
que sempre apresenta uma entrada +1 e um peso adaptativo .
ADALINE não é capaz de aprender a separar funções não linearmente separáveis.
Portanto, não será abordada a sua aplicação para auxiliar no diagnóstico clínico.
(AZEVEDO,2000).
3.2.5 Perceptron
Em 1058 Rosenblatt propôs o modelo Perceptron, que é composto por uma
estrutura de rede, cuja sua unidade básica são nodos MCP, e uma regra de aprendi-
zado. Anos depois ele demonstrou que um nodo MCP treinado com o algoritmo do
30
Perceptron sempre irá convergir caso o problema a ser solucionado possa ser linear-
mente separável.
O modelo original proposto por Rosenblatt era composto por unidade de en-
trada, unidades de associação e por unidades de saída, responsável pelas respos-
tas. Apesar de este modelo possuir três níveis, ele é conhecido como Perceptron de
uma única camada. Isto porque somente os níveis de saída possuem propriedades
adaptativas (AZEVEDO,2000;BRAGA,2008).
3.2.5.1 Algoritmo de aprendizado
A regra de aprendizado de uma rede Perceptron consiste na adaptação dos
seus pesos de forma que a rede execute uma determinada tarefa de classificação.
Conforme demonstrado por (BRAGA,2008) a equação geral para a atualização dos
pesos de um nodo Perceptron simples é demonstrado na equação abaixo.
A limitação desta função está em obter apenas soluções para problemas de
separação de duas classes linearmente separáveis em um tempo finito
(BRAGA,2008) .
3.2.6 Redes Neurais Multi Camadas
Para a solução de problemas não linearmente separáveis é necessária a
utilização de uma ou mais camadas intermediárias. Um ponto de atenção para este
tipo de implementação é que, conforme a distribuição dos dados, a rede pode
convergir para um mínimo local ou levar um tempo considerável para encontrar uma
solução válida. (BRAGA,2008).
Na década de 70 houve uma redução nas pesquisas relacionadas as Redes
Neurais Artificiais por causa da falta de conhecimento de algoritmos para o
treinamento de redes com uma ou mais camadas.
Redes multilayer perceptron MLP possuem um poder computacional bem ele-
vado comparado as de apenas uma camada. Deste modo, MLPs podem tratar da-
dos que não são linearmente separáveis. A precisão e sua implementação depende
apenas do número de nodos nas camadas intermediárias. A Figura 6 representa
uma MLP:
31
Figura 6 - Rede neural Percepton multicamada Fonte: Seielo
Em uma rede multicamadas, o processamento realizado por cada nodo é defi-
nido pela combinação dos processamentos realizados pelos nodos da camada ante-
rior que estão conectados a ele. Para uma rede de apenas duas camadas
intermediárias, o processamento descrito nas próximas linhas ocorre em cada uma
delas (BRAGA,2008).
Primeira camada intermediária: Nodo traça retas no espaço de padrões de
treinamento. Segunda camada intermediária: cada nodo combina as retas traçadas
pelos neurônios da camada anterior conectados a ele, formando regiões convexas,
onde o número de lados é definido pelo número de unidades a ele conectadas. Ca-
mada de saída: Cada nodo forma regiões que são combinações das regiões conve-
xas definidas pelos nodos a ele conectados da camada anterior. Desta maneira, os
nodos definem regiões com formatos abstratos.
As unidades intermediárias de uma rede do tipo MLP funcionam como
detectores de características. Com um número suficientemente elevado de unida-
des intermediárias, é possível formar representações internas para qualquer con-
junto de padrões de entrada.
O número de nodos nas camadas intermediárias na maioria das redes é defi-
nido empiricamente. Este número está diretamente relacionado com a distribuição
32
dos padrões de treinamento e validação da rede. No entanto existem alguns méto-
dos propostos, sendo que, os mais utilizados são:
a) Definir o número de unidade em função do número de entradas e saídas;
b) Utilizar um número de conexões dez vezes menor que o número de exem-
plos. Este método apenas reduz a incidência de overfitting. Caso o número
de exemplos for muito maior que o número de conexões, overfitting é
improvável, mas existe o risco de ocorrer underfitting. Entendendo-se
underfitting como um “subajuste” que ocorre quando a rede não é
suficientemente treinada para se tornar capaz de produzir resultados
satisfatórios ou convergir; E overfitting é considerado um “super-ajuste” e
ocorre quando a rede é demasiadamente treinada e passa a decorar os
dados apresentados.
Para a adequação do número de nodos na camada intermediária os seguintes fatores devem ser analisados:
a) Número de exemplos de treinamento;
b) Quantidade de ruído presente nos exemplos;
c) Complexidade da função a ser aprendida;
d) Distribuição estatística dos dados de treinamento.
A quantidade de unidades de entrada e de saída varia conforme o problema,
para alguns é necessário apenas uma unidade de entrada e uma de saída, já para
outros este valor pode crescer exponencialmente com o número de entradas. A solu-
ção mais eficiente é aquela que o número de unidades cresce de forma polinomial
com o aumento no número de entradas (BRAGA, 2008).
3.2.6.1 Treinamento em redes MLP
Existem vários algoritmos para treinar redes MLP. Estes algoritmos são geral-
mente do tipo supervisionado, e podem ser classificados em dois tipos, estático e
dinâmico.
a) Estático: Não alteram a estrutura da rede, apenas variam apenas os valo-
res de seus pesos;
b) Dinâmico: Podem reduzir ou aumentar o tamanho da rede (número de
camadas, números de nodos nas camadas intermediárias e número de
conexões).
33
O algoritmo mais conhecido para o treinamento deste tipo de rede é o algo-
ritmo back-propagation. A maioria dos métodos de aprendizado para Redes Neurais
Artificiais do tipo MLP utiliza variações deste algoritmo.
Este algoritmo é do tipo supervisionado, que utiliza pares de entrada e saída
desejada, para por meio de um mecanismo de correção de erros ajustar os pesos da
rede. Seu treinamento consiste em dois passos. No primeiro, é apresentado às
unidades da camada de entrada e a partir dessa camada as unidades calculam sua
resposta que é produzida na camada de saída o erro é calculado. E no segundo
passo, este erro é propagado a partir da camada de saída até a camada de entrada
e os pesos das conexões das camadas internas são modificados. Com isso, o erro
vai sendo progressivamente diminuído (FERNANDES,2005; BRAGA 2008) .
O back-propagation está fundamentada na regra delta proposta por Widrow e
Holf, conhecida também como regra delta generalizada. O objetivo deste algoritmo
é definir os erros dos nodos das camadas intermediárias. Com isso é possível ajus-
tar seus pesos através do método do gradiente. A derivação da regra delta generali-
zada é semelhante a da regra delta. Desta forma, a função para a minimização do
erro é uma função quadrática definida pela função abaixo:
∑∑
é a medida do erro total, é o número de padões, é o número de unidades
de saída, é a -ésima saída desejada e é a -ésima saída gerada pela rede.
Esta equação apresenta o erro total cometido pela rede ou a quantidade que para
todos os padrões de um dado conjunto, as saídas geradas são diferentes das saí-
das desejadas (BRAGA,2008).
A regra delta generalizada necessita que as funções de ativação dos nodos
sejam contínuas diferenciáveis. Estas funções são conhecidas como: Funções
semilineares:
∑
A constante representa o numero de entradas do nodo e , o peso da
conexão entre a entrada e o nodo (BRAGA,2008).
Ao utilizar o algoritmo back-propagation possui uma limitação relacionada ao
tempo de treinamento, algumas vezes são necessários milhares de ciclos para se
34
chegar a níveis de erros aceitáveis, principalmente se estiver sendo simulado em
computadores seriais. Pois a CPU calcula as funções para cada unidade e suas
conexões separadamente (FERNANDES, 2005).
Para reduzir o tempo de treinamento do algoritmo de retro propagação e ao
mesmo tempo garantir a estabilidade do processo D. Rumelhart descreveu o método
chamado de momento, no qual ele adiciona um termo para o ajuste de peso, que é
proporcional ao valor da mudança de peso anterior. Uma vez que o ajuste é feito, ele
é guardado e seve para modificar o ajuste dos pesos subseqüentes (AZE-
VEDO,2000). Braga afirma que Redes perceptron multicamadas são as redes mais
utilizadas, por sua facilidade de implementação e por sua simplicidade. Dentro das
aplicações que ele destaca, está a de diagnóstico médico.
3.2.7 Rede Hopifield
É uma implementação de memórias associativa por uma rede recorrente pro-
posta por Hopfield em 1982. Ele descreveu como capacidades computacionais po-
dem ser obtidas através de redes com elementos tipo neurônio (KOVÁCS, 2006).
Este tipo de rede possui apenas uma única camada de unidades de processamento.
A cada unidade é determinado um valor de atividade, ou estudo que é binário.
A cada instante a rede possui um estado. Este estado é um vetor de 1s e 0s. Cada
um dos elementos deste vetor corresponde a uma unidade individual de processa-
mento na rede.
Esta arquitetura torna a rede recursiva, isso porque as saídas de cada uni-
dade são entradas de todas as outras unidades em uma mesma camada conforme
representado pela Figura 7. Cada interconexão possui um peso associado. Este peso
é um valor escalar. denota o peso da unidade para a unidade . Em uma rede
Hopfield os pesos e são iguais, portanto, , . Quando esta igual-
dade é verdadeira significa que a rede possui capacidade de convergência e deste
modo atinge um valor estável (AZEVEDO, 2000).
35
Figura 7 - Rede Hopfield formada de N=4 neurônios
Fonte: Castro (2011, p.01)
Para cada unidade de processamento a rede deve apresentar um estado ini-
cial. Um procedimento de atualização é aplicado e a cada instante uma unidade é
atualizada. O Estado de cada unidade é afetado ou não a cada procedimento. Esta
atualização continua até que todas encontrem um equilíbrio.
Em uma rede Hopfield o neurônio possui dois estados. A saída do neurônio
é caso ele não se encontre ativado e se ele estiver ativado. O neurônio
recebe uma entrada do neurônio com uma força de conexão . A regra de
ativação pode ser observada abaixo,
{
∑
∑
é um “threshold” que deve ser definido para o neurônio ser ativado.
Uma característica marcante em redes deste tipo é o fato de ser assíncronas.
Em cada instante apenas um neurônio muda de estado. Todo o neurônio tem a
mesma probabilidade de ser escolhido para uma possível transição de estado.
A energia em cada nó é definida por:
∑
∑
36
A energia total é definida por:
∑∑ ∑
Apesar de ser chamada de função de energia ela não representa a energia
real de qualquer sistema físico. Ela é uma função objetiva que é minimizada pela
rede. A cada atualização de uma unidade de processamento a energia da rede dimi-
nui ou permanece a mesma (AZEVEDO, 2000).
O comportamento da rede só pode ser válido se os estados estáveis possam
ser selecionados. Para isso existem dois métodos: Diretamente por cálculo e por
treinamento da rede.
37
4 PROJETO
Para cumprir com o objetivo do trabalho serão realizadas as seguintes etapas:
a) definir linguagem de programação;
b) pesquisar bibliotecas de Rede Neural Artificial disponíveis na linguagem
escolhida e definir qual será aplicada no trabalho;
c) definir Redes que serão trabalhadas;
d) desenvolver um aplicativo que utilize as redes escolhidas;
e) comparar a assertividade das redes escolhidas.
4.1 LINGUAGEM DE PROGRAMAÇÃO
Para este trabalho a linguagem de programação escolhida será Java. Java é
uma linguagem relativamente fácil, pois sua sintaxe se assemelha muito com C e
também por possuir uma comunidade muito ativa disposta a ajudar e solucionar
eventuais dúvidas.
4.2 BIBLIOTECAS DE REDES NEURAIS ARTIFICIAIS PARA JAVA
Existem uma infinidade de projetos de Redes Neurais Artificiais desenvolvidos
em Java. Estas bibliotecas visam simplificar o trabalho do desenvolvedor. Graças a
elas o programador dedica maior parte do seu tempo no problema que se deseja
solucionar com a Rede Neural Artificial, sem necessariamente precisar desenvolver
uma Rede Neural Artificial do zero. Os principais projetos construídos sobre a
plataforma Java são: Neuroph e Encog.
4.2.1 Neuroph
É um projeto de redes neurais artificiais em Java que utiliza uma arquitetura
de orientação a objetos. O que chama a atenção neste projeto é o fato dele possuir
um Framework construído sobre a IDE Netbeans. O que facilita a criação de uma
rede neural em minutos. Na Figura 8 é apresentado o Framework Neuroph.
38
Figura 8 – Framework Neuroph
Fonte: Neuroph
Neuroph pode ser considerado um projeto bem completo, sua implementação
abrange as mais variadas Redes Neuras Artificiais.
a) Adaline;
b) Perceptron;
c) Perceptron multicamadas com backpropagation;
d) Hopfield;
e) Kohonen;
f) Hebbian;
g) Rede competitiva;
h) Instar;
i) Outstar;
j) Rede RBF;
k) Fuzzi.
4.2.2 Encog
É uma biblioteca avançada desenvolvida em Java com o intuito de auxiliar o
programador no desenvolvimento de aplicativos que utilizem Redes Neurais Artifici-
ais. Este projeto tem com o seu principal patrocinador o Heaton Research e sua li-
cença está sobre o regime apache 2.0. No site http://www.heatonresearch.com é
possível encontrar vários vídeos e e-Books com foco em Inteligência Artificial. Na
Figura 9 é apresentado o site Heaton Research.
39
Figura 9 – Site Heaton Research Fonte: Heaton Research
Encog suporta os mais variados tipos de arquitetura para Redes Neurais Artifici-
ais. Segue a lista dos tipos suportados.
a) ADALINE;
b) Memória associativa bidirecional;
c) Máquina de Boltzmann;
d) Rede Counterpropagation;
e) Rede Elman;
f) Perceptron;
g) Hopfield;
h) Rede Jordan
i) Rede Função Radial Básica
j) RSOM
k) Kohonen
A biblioteca mais adequada pra o trabalho é a Neuroph. A escolha dela se
justifica pelo fato de possuir um framework. O que facilita na execução de testes e
criação de pequenos protótipos para um melhor entendimento do comportamento da
rede e seu grau de assertividade.
4.3 APLICATIVO PARA ANÁLISE DE BALANÇO
Para que o aplicativo cumpra com o objetivo de utilizar Redes Neurais Artifici-
ais Para análise de balanço foram levantados os seguintes requisitos:
a) possuir cadastro de Ativos;
b) possuir cadastro de Passivos;
c) possuir cadastro de grupos de balanços para treinamento;
40
d) Possuir área para análise de um balanço qualquer.
A Rede Neural Artificial a ser avaliada será Hopfield, e por sua vez esta é uma
rede de memória associativa com entradas e saídas binárias (0 e 1), e neste caso
houve a necessidade de desenvolver uma função de ativação dos neurônios. Para
cada grupo de balanços é calculado a média individual de todos os seus atributos.
Após é necessário calcular a média geral de todos os grupos de balanços. Somam-
se individualmente atributos ativos e atributos passivos, depois se verifica a
porcentagem que o atributo representa em seu grupo é maior ou menor que a
porcentagem encontrada na média geral. Caso seja maior, o valor adotado para o
atributo será um, caso menor ou igual o valor adotado será zero.
O foco do trabalho é desenvolver um modelo computacional, capaz de identificar
se um balanço qualquer, se encaixa, em um grupo de balanços já conhecidos pela
Rede Neural Artificial. Com base em tal relevância a Tabela 1 representa três
balanços fictícios que foram utilizados como base de conhecimento da Rede Neural
Artificial.
Tabela 1 – Balanços fictícios para treinamento
Ativo Balanço
A Balanço
B Balanço
C
Dinheiro em caixa 10000 50000 20000
Depósitos sem juros e contas de compensação 20000 40000 0
Depósitos e investimento com juros < 1 ano 30000 30000 12000
Despesas antecipadas 40000 20000 33000
Investimentos > 1 ano 50000 10000 5000
Passivo
Depósitos à vista 70000 20000 40000
Depósito a curto prazo (< 1 ano) 50000 30000 10000 Empréstimos tomados a curto prazo (< 1
ano) 30000 40000 20000
Outros passivos a curto prazo 10000 70000 48000
Depósito a longo prazo (> 1 ano) 60000 50000 23000 Empréstimos tomados a longo prazo (> 1
ano) 40000 20000 10000
Contas de Quase-Capital 20000 10000 78000 Fonte: Própria
O primeiro passo para verificar se a Rede Neural Artificial está identificando
corretamente os balanços é utilizar os dados já cadastrados como entrada. O
Aplicativo se comportou corretamente e identificou todos os balanços
41
correspondentes. Outro teste relevante é trocar alguns valores de posição e
submete-los ao aplicativo para verificar o comportamento. Na Tabela 2 estão
representados os valores com pequenas intervenções para a Rede Neural Artificial.
Tabela 2 – Valores com Alterações básicas
Ativo Balanço
A Balanço
B Balanço
C
Dinheiro em caixa 10000 40000 20000
Depósitos sem juros e contas de compensação 20000 50000 0
Depósitos e investimento com juros < 1 ano 50000 30000 33000
Despesas antecipadas 40000 20000 12000
Investimentos > 1 ano 30000 10000 5000
Passivo
Depósitos à vista 70000 20000 40000
Depósito a curto prazo (< 1 ano) 50000 30000 10000 Empréstimos tomados a curto prazo (< 1
ano) 30000 40000 48000
Outros passivos a curto prazo 10000 70000 20000
Depósito a longo prazo (> 1 ano) 60000 50000 23000 Empréstimos tomados a longo prazo (> 1
ano) 40000 10000 10000
Contas de Quase-Capital 20000 20000 78000 Fonte: Própria
Ao submeter os dados da Tabela 2 o aplicativo se comporta de forma
esperada. Então se elaborou um conjunto de dados totalmente desconhecidos pelo
aplicativo conforme Tabela 3. Nesta tabela, o Teste A apresentou o tendência ao
balanço de treinamento do tipo B, o Teste B apresentou tendência ao balanço de
treinamento do tipo A e o Teste C tendeu ao balanço de treinamento do tipo C. O
aplicativo apresentou um resultado satisfatório, mas quando executado o Teste D, o
aplicativo não Identificou o padrão que ele se assemelha. Este comportamento pode
ocorrer com por que os dados são apenas fictícios e não representam uma realidade
contábil. Neste caso se faz necessário um estudo direcionado na área contábil com
dados reais.
Tabela 3 – Dados Desconhecidos
Ativo Teste A Teste B Teste C Teste D
Dinheiro em caixa 13280 2840 8420 30400
Depósitos sem juros e contas de compensação 16600 5680 0 12980
Depósitos e investimento com juros < 1 ano 9960 14200 13893 640
Despesas antecipadas 6640 11360 5052 750
Investimentos > 1 ano 3320 8520 2105 3800
42
Passivo
Depósitos à vista 6640 19880 16840 9630
Depósito a curto prazo (< 1 ano) 9960 14200 4210 12435 Empréstimos tomados a curto prazo (< 1
ano) 13280 8520 20208 14650
Outros passivos a curto prazo 23240 2840 8420 6300
Depósito a longo prazo (> 1 ano) 16600 17040 9683 9460 Empréstimos tomados a longo prazo (> 1
ano) 3320 11360 4210 2200
Contas de Quase-Capital 6640 5680 32838 1300 Fonte: Própria
4.3.1 Apresentação do aplicativo
Para que o aplicativo possa contemplar os mais variados segmentos de
empresas, existe o cadastro de Ativos e Passivos. Consiste em uma interface bem
simples onde o usuário define quais serão os ativos e os passivos correspondentes
às análises que serão realizadas. Na Figura 10 é representado este cadastro.
Figura 10 - Cadastro de ativos
Uma rede neural artificial precisa de dados para gerar o conhecimento dela.
No aplicativo existe uma área onde o operador pode cadastrar vários tipos de balan-
ços padrões que geram o conhecimento para o aplicativo. A Figura 11 representa a
interface onde são cadastrados os balanços padrões.
43
Figura 11 - Cadastro de Balanços
Depois de cadastrados os balanços são necessários cadastrar os seus devi-
dos valores para o treinamento da rede neural artificial. Na Figura 12 é representada
a interface para adicionar estes valores.
Figura 12 - Cadastro de valores de treinamento
Após realizados todos os cadastros o aplicativo está pronto para realizar aná-
44
lises de balanços desconhecidos. Para isto é necessário acessar a opção Análise e
informar os valores de um balanço qualquer que se deseja analisar. Ao Executar a
analise o aplicativo irá informar qual dos balanços conhecidos, este novo se
assemelha, caso ele não se assemelhar com nenhum dos já cadastrados o aplica-
tivo informará que desconhece o balanço analisado. A Figura 13 representa a inter-
face para análise de balanços.
Figura 13 – Resultado de análise
45
5 CONCLUSÃO
Com o objetivo de desenvolver um software aplicativo que utilize redes neu-
rais artificiais para análise de balanços patrimoniais, como ferramenta para auxiliar o
profissional contábil a identificar padrões em balanços distintos, utilizou-se a lingua-
gem de programação Java para o desenvolvimento do aplicativo e o projeto Neuroph
como o facilitador para a utilização da Rede Neural Artificial Hopfield.
Realiza-se uma pesquisa teórica que envolve conceitos de contabilidade e
Inteligência Artificial, principalmente sobre Redes Neurais Artificiais através de suas
características e comportamentos distintos entre os diferentes modelos conhecidos.
Após esta etapa realizou-se um estudo sobre qual é a melhor Rede Neural Artificial
para utilizar no aplicativo e entre as estudadas Hopfield apontou ser a mais ade-
quada, por não ser probabilística, ou seja, se ela reconhecer um padrão irá apre-
senta-lo caso contrário o resultado é dado como desconhecido.
Com relação às dificuldades encontradas, elas ajudaram a compreender a
estrutura de decisão de uma Rede Neural Artificial e com isso notou-se que a
utilização de dados fictícios mostrou a eficiência do modelo computacional proposto
para a Rede Neural artificial, mas que se houvesse a utilização de dados reais
poderia haver uma comprovação estatística da eficiência do aplicativo.
Para que o aplicativo se adapte ao cenário para analise de balanços
patrimoniais, é necessário que exista uma área para cadastro de ativos e cadastro
de passivos. Como uma Rede Neural Artificial necessita de Dados para treinamento
também se criou a área onde são cadastrados padrões de balanços já conhecidos
pelo profissional contábil, com o objetivo de treinar a Rede Neural Artificial. Já com a
base de conhecimento devidamente cadastrada, basta o profissional entrar com da-
dos inéditos na área de execução para saber se estes dados se assemelham com
os já cadastrados ou se a rede os desconhece.
Para dar continuidade ao trabalho sugere-se, para futuras pesquisas que,
validem o aplicativo através de dados reais; busquem novos modelos
computacionais e estatísticos para a ativação dos neurônios; utilizem outras redes
neurais de memória associativa para a identificação de balanços patrimoniais.
46
REFERÊNCIAS
ARARIBÓIA, G. Inteligência Artificial: um curso prático. Rio de Janeiro: Livros Técnicos e Científicos Editora Ltda, 1998. AZEVEDO, Fernando Mendes de et al. Redes Neurais: com Aplicações e Controle e em Sistemas Especialistas. Florianópolis: VisualBooks, 2000. BRAGA, Antônio, CARVALHO, André, LUDEMIR, Teresa. Redes Neurais Artificiais: Teoria e Aplicações. 1.Ed. Rio de Janeiro: LTC, 2000. BRAGA, Antônio de Pádua et al. Redes Neurais Artificiais: Teoria e Aplicação. Rio de Janeiro: Livros Técnicos e Científicos Editora S.A., 2000. CASTRO, Fernando Cesar C. de. Redes neurais artificiais. Disponível em:< http://www.ee.pucrs.br/~decastro/RNA_hp/pdf/RNA_C8.pdf>. Acesso em: 19 jun.2011. CHAGAS, Gilson. Contabilidade Geral Simplificada. Brasília, DF: Editora Senac, 2005. FERNANDES, Anita Maria da Rocha. Inteligência Artificial: noções gerais. Florianópolis: VisualBooks, 2005. GONZÁLES, Raúl Rojas. Neural Networks: A Systematic Introduction. Berlin: Springer, 1996. HEATON, Jeff. Introduction Neural Network with Java: 2.Ed. USA: Heaton Research, 2008. HEATON RESEARCH. Disponível em: < http://www.heatonresearch.com >. Acesso em 13 jun.2011. IUDÍCIBUS, Sérgio de. Teoria da Contabilidade. São Paulo: Atlas, 2006. IUDÍCIBUS, MARION, Sérgio de; José Carlos. Introdução à Contabilidade. São Paulo: Atlas, 2006. KOVÁCS, Zsolt lászló. Redes Neurais Artificiais: Fundamentos e aplicações. São Paulo: Livraria da Física, 2006. MARQUES. Wagner Luiz. Contabilidade Gerencial à Necessidade das Empresas. 2. Ed. Cia Norte, PR: 2004. NEUROPH. Disponível em: < http://neuroph.sourceforge.net >. Acesso em: 13 jun.2011. O´BRIEN. James. A. Sistemas de Informação: E as decisões gerenciais na era da internet. 2. ed. São Paulo: Saraiva, 2004.
47
OLIVEIRA, Edson. Contabilidade Informatizada: Teoria e Pratica. 2. ed. São Paulo: Atlas, 2000. PADOVEZE, Clóvis Luís. Sistemas de Informações Contábeis. São Paulo: Atlas, 2009. PADOVEZE, Clóvis Luís. Manual de Contabilidade Básica. São Paulo: Atlas, 2010. PIMENTEL, Alex. Tudo o que você precisa saber sobre economia para conquistar o sucesso financeiro. São Paulo: Digerati Books, 2007. ROSINI E PALMISANO, Alessandro Marco; Angelo. Administração de Sistemas de Informação e a Gestão do Conhecimento. São Paulo: Thonsom, 2003. SÁ, Antonio Lopes de. Dicionário de Contabilidade, 9. ed. São Paulo: Atlas, 1999. SEIELO, The Scientific Electronic Library Online. Disponível em: < http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0104-530X2008000300016>. Acesso em: 11 jun.2011. STAIR E REYNOLDS, Ralph M; George W. Princípios de sistemas de informação. 4. ed. Rio de Janeiro: LTC, 2002. TURBAN, Efraim. Tecnologia da Informação para Gestão – Transformando os negócios na economia digital. São Paulo: Artmed Editora SA 2002. TURBAN, Efraim; McLEAN, Ephraim; WETHERE, James. Tecnologia da informação para gestão: transformando os negócios na economia digital. 3. ed. São Paulo: Bookman, 2004. VALEÇA, Mêuser. Fundamentos de Redes Neurais Artificiais: Exemplos em java. Olinda, PE: Livro Rápido, 2007.