Buscar

Resultados de Análise de dados com Redes MLP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

UNIVERSIDADE ESTADUAL DO MARANHÃO
CENTRO DE CIENCIAS TECNOLOGICAS
CURSO DE ENGENHARIA DA COMPUTAÇÃO
Eryck de Araujo Oliveira 11092037
Robson Sousa Monteiro 11092040
Relatório Técnico Científico 
Estudo de Caso em Redes Neurais Artificias, Tema: Diabetes 
São Luís – MA
2014
Eryck de Araujo Oliveira 11092037
Robson Sousa Monteiro 11092040
Relatório Técnico Científico 
Estudo de Caso em Redes Neurais Artificiais, Tema: Diabetes 
Relatório Técnico como requisito parcial para obtenção de aprovação na disciplina Redes Neurais Artificiais, no Curso de Engenharia da Computação, na Universidade Estadual do Maranhão.
Prof. Dr. Lucio Campos
São Luís – MA
2014
INTRODUÇÃO
As Redes Neurais Artificiais (RNA’s) são técnicas computacionais que seguem um modelo matemático guiado em uma estrutura neural de organismos inteligentes e que adquirem conhecimento através da experiência. Uma grande rede neural artificial pode ter centenas ou milhares de unidades de processamento, já o cérebro de um mamífero pode ter vários bilhões de neurônios.
Uma rede neural artificial é composta por várias unidades de processamento, cujo funcionamento é bastante simples. Essas unidades, geralmente são conectadas por canais de comunicação que estão associados a determinado peso, na qual fazem operações apenas sobre seus dados locais, que são entradas recebidas pelas suas conexões. O comportamento inteligente de uma Rede Neural Artificial vem das interações entre as unidades de processamento da rede.
A maioria dos modelos de redes neurais possui alguma regra de treinamento, onde os pesos de suas conexões são ajustados de acordo com os padrões apresentados, sendo assim, elas aprendem através de exemplos. As arquiteturas neurais são tipicamente organizadas em camadas, com unidades que podem estar conectadas às unidades da camada posterior.
A rede neural passa por um processo de treinamento a partir dos casos reais conhecidos, adquirindo, a partir daí, a sistemática necessária para executar adequadamente o processo desejado dos dados fornecidos. Sendo assim, a rede neural é capaz de extrair regras básicas a partir de dados reais, diferindo da computação programada, onde é necessário um conjunto de regras rígidas pré-fixadas e algoritmos.
Redes neurais podem ser classificadas de acordo com a arquitetura em que foram implementadas, topologia, características de seus nós, regras de treinamento, e tipos de modelos, mas geralmente as camadas são classificadas em três grupos:
Camada de Entrada: padrões são apresentados à rede;
Camadas Intermediárias ou Ocultas: onde é feita a maior parte do processamento, através das conexões ponderadas; podem ser consideradas como extratoras de características;
Camada de Saída: onde o resultado final é concluído e apresentado.
A aplicação de redes neurais pode ser classificada em classes distintas: Reconhecimento de padrões e Classificação, Processamento de imagem e visão, Identificação de sistema e Controle e Processamento de sinais. É importante verificar que uma determinada aplicação de um sistema baseado em rede neural não precisa necessariamente ser classificada em apenas uma das citadas acima.
Quanto aos ciclos, podem ser classificadas como sendo:
Redes Diretas: são redes neurais cujo grafo não possui ciclos e podem ser representadas em camadas. Por exemplo, os neurônios que recebem sinais de excitação do meio externo estão na camada de entrada; os neurônios que estão na saída são chamados de camada de saída.
Redes com ciclos: são redes em que o grafo de conectividade contém pelo menos um ciclo. São também chamadas redes com realimentação ou com feedback.
Redes simétricas: são redes cuja matriz (do grafo de conectividade) é simétrica, sendo um caso particular das redes com ciclos.
Para o desenvolvimento de uma aplicação de uma rede neural é necessário percorrer as seguintes etapas: Coleta de dados e separação em conjuntos; Configuração da rede; Treinamento; Teste; Integração;
Aplicações de redes neurais são inúmeras. Muitos recebem sua primeira introdução lendo a respeito das técnicas no prognóstico de mercados financeiros. 
Grupos de investimento conhecidos utilizam redes neurais para analisar pelo menos uma parte do mercado financeiro e fazerem suas seleções. Outras aplicações conhecidas são: análise e processamento de sinais; controle de processos; robótica; classificação de dados.
REDES MLP (MultiLayer Perceptron)
A solução de problemas não linearmente separáveis passa pelo uso de redes com uma ou mais camadas intermediárias, ou escondidas.
Com a utilização desta arquitetura é necessário, então, encontrar uma forma de treinar tal rede. Uma possibilidade seria a divisão da rede em um conjunto de sub-rede para cada camada, com treinamento independente. Uma rede com uma camada intermediária pode ser formada por um conjunto de redes perceptron, uma rede para cada grupo de entradas linearmente separáveis. Geralmente, esta divisão ou não é possível ou muito complicada.
Uma outra alternativa seria treinar a rede completa de uma só vez. O problema passa agora ser a definição do erro dos nodos das camadas intermediárias. Se uma função de ativação do tipo limiar (função threshold) for utilizada, a avaliação do erro será bastante complexa, uma vez, que os nodos das camadas intermediárias e de saída não saberão quão distantes as respostas de seus nodos estarão dos valores desejados, este é um dos problemas da rede perceptron. Uma alternativa seria a utilização de funções de ativação lineares.
Para treinar redes com mais de uma camada foi proposto um método que se baseia em gradiente descendente (HUMELHART, 1986). Afim de que, este método possa ser utilizado, a função de ativação precisa ser contínua, diferencial e, de preferência não decrescente. A função de ativação deve informar os erros cometidos pela rede para as camadas anteriores com a maior precisão possível. A alternativa utilizada para superar os problemas acima citados foi a utilização de funções de ativação do tipo sigmoidal.
Arquitetura MLP
As redes MLP apresentam um poder computacional maior do que aquele apresentado pelas redes sem camadas intermediárias. As redes MLP’s podem tratar com dados que não são linearmente separáveis. A precisão obtida e a implementação de uma rede MLP dependem do número de nodos utilizados nas camadas intermediárias, e um dos problemas é a definição de uma função de ativação.
Um dos principais aspectos relacionados ao projeto de redes MLP diz respeito à função de ativação utilizada. Diversas funções de ativação têm sido propostas para redes multicamadas. Estas funções são não lineares e diferenciáveis. As funções precisam ser diferenciáveis para que o gradiente possa ser calculado, direcionando o ajuste dos pesos. A função de ativação mais utilizada é sigmoidal logística.
Definição de Uma Topologia Ideal Para o MLP
A definição de uma topologia de uma rede do tipo MLP está intimamente ligada com a definição dos nodos de camada intermediária; Existem problemas que necessitam apenas de uma unidade de entrada e uma unidade de saída, e outros que podem precisar de milhares de unidades intermediárias. O número de unidades intermediárias pode também, em alguns casos, crescer, exponencialmente, com o número de entradas. A solução neural mais eficiente é aquela onde o número de unidades cresce apenas polinomialmente com o aumento dos números de unidades de entrada.
Deve-se ter cuidado para não utilizar unidades demais, o que pode levar a rede memorizar padrões de treinamento, ao invés de extrair as características gerais que permitirão a generalização ou reconhecimento de padrões não vistos durante o treinamento (este problema é chamado de overfitting), não utilizar um número muito pequeno, que possa forçar a rede a gastar tempo em excesso tentando encontrar uma representação ótima (as unidade utilizadas podem ficar sobrecarregadas, tendo que lidar com um elevado número de restrições).
Treinamento De RedesMLP
Existem, atualmente, vários algoritmos para treinar rede MLP [4, 5, 6, 7, 8, 9]. Estes algoritmos são do tipo supervisionado. De acordo com os parâmetros que eles atualizam, os algoritmos para treinamento de redes do tipo MLP podem ser classificados em: Estáticos e Dinâmicos.
Como os algoritmos estáticos não alteram a estrutura da rede, variando apenas os valores de seus pesos, os algoritmos dinâmicos podem tanto reduzir quanto aumentar o tamanho da rede (número de camadas, número de nodos nas camadas intermediárias e número de conexões). O algoritmo de aprendizado mais conhecido para treinamento destas redes é o back-propagation [30]. A maioria dos métodos de aprendizado para RNAs do tipo MLP utiliza variações deste algoritmo.
O back-propagation é um algoritmo supervisionado, que utiliza pares (entrada, saída desejada) para, através de um mecanismo de correção de erros, ajustar os pesos da rede. O treinamento ocorre em duas fases, onde cada fase percorre a rede em um sentido. Estas duas fases são chamadas de fase forward e fase backward.
ESTUDO DE CASO
Um dos mais importantes processos metabólicos do organismo é a conversão de alimentos em energia e calor, dentro do corpo. Os alimentos são constituídos de três nutrientes principais:
Carboidratos - (digestão) Glicose; 
Proteínas - (digestão) Aminoácidos; 
Gorduras - (digestão) Ácidos Graxos.
Quando o organismo falha no processo de execução deste processo metabólico, ele é caracterizado como diabético. Diabete é uma anormalidade caracterizada por uma quantidade de açúcar em excesso no sangue e na urina. A diabete mata e não tem cura mais pode ser controlada, por isso é importante diagnosticá-la o quanto antes. 
Projete e implemente uma rede neural MLP que classifique os pacientes como diabético ou não diabético a partir das 8 entradas listadas a seguir:
Número de vezes que ficou grávida;
Concentração de glicose no Plasma em teste de tolerância de glicose oral;
Pressão sanguínea Diastólica (mm Hg);
Dobras na pele do tríceps (mm);
2-Horas de insulina de soro (mu U/ml);
Índice de massa corpórea (peso em kg/(altura em m2);
Função de genealogia de diabete;
Idade (anos);
Dessas variáveis foi montada uma base de dados com 768 amostras indicando a ocorrência ou não da doença nos pacientes analisados. Por meio da rede MultiLayer Perceptron analisar a base de dados e expressar em números os melhores resultados por meio dos testes nas redes neurais. 
MATERIAIS E MÉTODOS
Base de Dados
A base de dados é composta de 9 variáveis sendo 8 delas variáveis independentes indicando os fatores de risco para uma pessoa adquirir ou não diabetes, e a variável dependente usada definirá se o paciente tem ou não a doença. São os fatores listados a seguir:
Número de vezes que ficou grávida;
Concentração de glicose no Plasma em teste de tolerância de glicose oral;
Pressão sanguínea Diastólica (mm Hg);
Dobras na pele do tríceps (mm);
2-Horas de insulina de soro (mu U/ml);
Índice de massa corpórea (peso em kg/(altura em m2);
Função de genealogia de diabete;
Idade (anos);
Diagnóstico: 1 para não diabético e 2 para diabético.
De acordo com essas variáveis dispomos de 768 amostras cada uma relacionada com cada paciente analisado. Assim no final treinar e testar a rede neural afim de diagnosticar corretamente os pacientes com o quadro de diabetes ou não quando forem adicionadas as entradas corretas. Ter o mínimo de acerto para ser considerada desejável.
Software Utilizado 
Foi utilizado o Software Trajan Neural Networks Demonstrator, que junto com a base de dados diabetes_teste nos fornece toda a descrição e todos os parâmetros para se treinar, testar e validar uma rede neural. Nos mostra tanto a precisão da rede quanto o seu erro absoluto, a matriz de confusão da rede, a porcentagem de acerto e de erro, etc. No final quantas variáveis de entrada foram solicitadas pela rede para que ela atingisse o melhor desempenho.
Hardware Utilizado 
 Nesse presente trabalho foi utilizado o Notebook ASUS A45A-VX072H com o processador Intel Core i5 3210M 2,5 Ghz, Memória RAM de 8 gb e 750 gb de HD e placa de vídeo Intel® HD Graphics 4000 – Compartilhada com Sistema Operacional Windows 8.1 Single Language. Com o teste feito com 150 redes neurais retendo as dez melhores, todo o trabalho de treinamento e retenção das redes por meio do software levou em média 5:30 hrs para a finalização do processo.
RESULTADOS E DISCUSSÕES 
Usando o software Trajan chegamos aos seguintes resultados a partir das configurações exemplificadas abaixo:
Aplicação da Base de Dados 
O software trajan foi configurado com 150 (cento e cinquenta) redes a serem testadas e para reter as 10 (dez) melhores em questão de desempenho. E sendo escolhido de modo randômico (Advanced Random Resampling) as amostras para treino e teste dos neurônios nas redes neurais, alcançando um resultado satisfatório de desempenho acima de 70% de acerto.
Configuração da Rede Neural
Depois de aplicado o treino das redes com as amostras e feito os devidos testes vemos que a rede que teve o melhor desempenho foi a rede neural número 9 tendo um acerto de 398 amostras dentro de um total de 500 usadas para a variável C1 e acertou 204 amostras de um total de 268 usadas para a variavel C2. Atingindo assim um percentual de acerto de 79% para C1 e 76% para C2, sendo ela a rede de melhor desempenho entre as 10 (dez) redes retidas escolhidas no softwares para a confecção do trabalho com uma media de 77,5% de acerto total. A melhor rede usou as 8 variaveis de entrada, tendo 17 neurônios na camada intermediária e um neurônio na saída. 
Figura 1: Configuração da rede de melhor desempenho.
Figura 2: Classificação das variáveis nas redes retidas. 
Resultados Obtidos 
De acordo com a classificação mostrada na figura 2 temos que a rede neural de número 9 apresentou menor margem de erro 21,5% (vinte e um e meio por cento) sendo escolhida como a melhor rede em questão de desempenho prático.
Desenho da Rede 
Figura 3: Sumary Statistics da rede 9.
Figura 4: Matriz de Confusão da rede 9.
Curva ROC
Figura 5: Curva ROC da rede neural 9.
Dados Adicionais 
Estarão aqui listados alguns dados que são relevantes às redes neurais e servem como parâmetros de classificação.
 
Figura 6: Confidence Response Graph rede 9.
Figura 7: Ilustração da Rede Neural de melhor desempenho.
CONCLUSÃO 
As RNAs são utilizadas nas mais variadas áreas obtendo resultados muito satisfatórios nos testes e resolução de problemas. Sua fácil utilização, sua capacidade de resolver problemas pouco ou nada estruturados, com dados incompletos ou com incorreções são características inatas à elas, que levam ao seu grande uso atualmente.
A utilização de RNAs voltada à área de medicina pode ser muito útil se considerada uma ferramenta auxiliar para os especialistas inseridos dentro desta área. Esse estudo até hoje é de importância impar no meio médico.
Este estudo de caso, analisou 768 amostras de fatores de pacientes com o quadro ou não de diabetes, usando de um software de demonstração de redes neurais, foram treinadas e testadas 150 redes com o objetivo de reter as 10 melhores em questão de desempenho de acurácia, chegando aos resultados satisfatórios após os testes, mostrando as topologias e os resultados obtidos por meio da análise e captura das telas do software. 
REFERENCIAS
[1] – J. M. Mendel and R. W. McLaren. Adaptive, Learning, and Pettern Recognition Systems; Theory and Applications, chapter Reinforcement-learning control and pattern recogniton systems, pages 287-318. New York: Academic Press, 70.
[2] – M. Minsky and S. Papert. Perceptrons: an Introduction to Computational Geometry. MIT Press, Massachusetts, 1969.
[3] – D. E. Rumelhart, G. E. Hinton, and R. J. Williams. Learning Representations by Back-propagation Error. Nature, 323:533-536, 1986.
[4] – D. E. Rumelhart and J. L. McClelland. Parallel Distributed Processing, volume 1: Foundations. The MIT Press, 1986.
[5] – S. E. Fahlman. AnEmpirical Study of Learning Speed in Back-propagation Network. Technical Report, Carnegie Mellow University, 1988.
[6] – M. Riedmiller. Rprop – Description and Implementation Details. Techinical Report Universty of Karlsruhe, 1994.
[7] – B. Pearlmutter. Gradient Descent: Second Order Momentum and Saturation Erro. In J. E. Moody, S. Hanson, and R. Lippmann, editors, Advances in Neural Information Processing Systems 2, pages 887-894. Morgan Kaufmann, 1992.
[8] - R. Barletta. An Introduction to Case-based Reasoning. AI Expert, pages 43-49, 1991.
[9] – M. Hagan and M. Menhaj. Training Feedforward Network with The Marquardt Algorithm. IEEE Transactions on Neural Networks, 5(6):989-993, November 1994.
[10] – Nova Enciclopédia Barsa. Encyclopaedia Britânica do Brasil Publicações Ltda. Rio de Janeiro – São Paulo, 1998. Volume 7, páginas 356, 357.

Outros materiais