An implementation of flexible RBF neural networks

Detalhes bibliográficos
Autor(a) principal: Martins, Fernando Manuel Pires
Data de Publicação: 2009
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10451/5482
Resumo: Tese de mestrado, Informática, Universidade de Lisboa, Faculdade de Ciências, 2009
id RCAP_9dc3548a4af29030a93adf1b99f89807
oai_identifier_str oai:repositorio.ul.pt:10451/5482
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling An implementation of flexible RBF neural networksRadial basis functionNeural networkFlexible kernelsRTeses de mestrado - 2009Tese de mestrado, Informática, Universidade de Lisboa, Faculdade de Ciências, 2009Sempre que o trabalho de investigação resulta numa nova descoberta, a comunidade científica, e o mundo em geral, enriquece. Mas a descoberta científica per se não é suficiente. Para beneficio de todos, é necessário tornar estas inovações acessíveis através da sua fácil utilização e permitindo a sua melhoria, potenciando assim o progresso científico. Uma nova abordagem na modelação de núcleos em redes neuronais com Funções de Base Radial (RBF) foi proposta por Falção et al. em Flexible Kernels for RBF Networks[14]. Esta abordagem define um algoritmo de aprendizagem para classificação, inovador na àrea da aprendizagem das redes neuronais RBF. Os testes efectuados mostraram que os resultados estão ao nível dos melhores nesta área, tornando como um dever óbvio para com a comunidade científica a sua disponibilização de forma aberta. Neste contexto, a motivação da implementação do algoritmo de núcleos flexíveis para redes neuronais RBF (FRBF) ganhou novos contornos, resultando num conjunto de objectivos bem definidos: (i) integração, o FRBF deveria ser integrado, ou integrável, numa plataforma facilmente acessível à comunidade científica; (ii) abertura, o código fonte deveria ser aberto para potenciar a expansão e melhoria do FRBF; (iii) documentação, imprescindível para uma fácil utilização e compreensão; e (iv) melhorias, melhorar o algoritmo original, no procedimento de cálculo das distâncias e no suporte de parâmetros de configuração. Foi com estes objectivos em mente que se iniciou o trabalho de implementação do FRBF. O FRBF segue a tradicional abordagem de redes neuronais RBF, com duas camadas, dos algoritmos de aprendizagem para classificação. A camada escondida, que contém os núcleos, calcula a distância entre o ponto e uma classe, sendo o ponto atribuído à classe com menor distância. Este algoritmo foca-se num método de ajuste de parâmetros para uma rede de funções Gaussianas multivariáveis com formas elípticas, conferindo um grau de flexibilidade extra à estrutura do núcleo. Esta flexibilidade é obtida através da utilização de funções de modificação aplicadas ao procedimento de cálculo da distância, que é essencial na avaliaçãoo dos núcleos. É precisamente nesta flexibilidade e na sua aproximação ao Classificador Bayeseano ´Optimo (BOC), com independência dos núcleos em relação às classes, que reside a invovação deste algoritmo. O FRBF divide-se em duas fases, aprendizagem e classificação, sendo ambas semelhantes em relaçãoo às tradicionais redes neuronais RBF. A aprendizagem faz-se em dois passos distintos. No primeiro passo: (i) o número de núcleos para cada classe é definido através da proporção da variância do conjunto de treino associado a cada classe; (ii) o conjunto de treino é separado de acordo com cada classe e os centros dos núcleos são determinados através do algoritmo K-Means; e (iii) é efectuada uma decomposição espectral para as matrizes de covariância para cada núcleo, determinando assim a matriz de vectores próprios e os valores próprios correspondentes. No segundo passo são encontrados os valores dos parâmetros de ajuste de expansão para cada núcleo. Após a conclusão da fase de aprendizagem, obtém-se uma rede neuronal que representa um modelo de classificação para dados do mesmo domínio do conjunto de treino. A classificação é bastante simples, bastando aplicar o modelo aos pontos a classificar, obtendo-se o valor da probabilidade do ponto pertencer a uma determinada classe. As melhorias introduzidas ao algoritmo original, definidas após análise do protótipo, centram-se: (i) na parametrização, permitindo a especificação de mais parâmetros, como por exemplo o algoritmo a utilizar pelo K-Means; (ii) no teste dos valores dos parâmetros de ajuste de expansão dos núcleos, testando sempre as variações acima e abaixo; (iii) na indicação de utilização, ou não, da escala na PCA; e (iv) na possibilidade do cálculo da distãncia ser feito ao centróide ou à classe. A análise à plataforma para desenvolvimento do FRBF, e das suas melhorias, resultou na escolha do R. O R é, ao mesmo tempo, uma linguagem de programação, uma plataforma de desenvolvimento e um ambiente. O R foi seleccionado por várias razões, de onde se destacam: (i) abertura e expansibilidade, permitindo a sua utilização e expansão por qualquer pessoa; (ii) repositório CRAN, que permite a distribuição de pacotes de expansão; e (iii) largamente usado para desenvolvimento de aplicações estatísticas e análise de dados, sendo mesmo o standard de facto na comunidade científica estatística. Uma vez escolhida a plataforma, iniciou-se a implementação do FRBF e das suas melhorias. Um dos primeiros desafios a ultrapassar foi a inexistência de documentação para desenvolvimento. Tal facto implicou a definição de boas práticas e padrões de desenvolvimento específicos, tais como documentação e definição de variáveis. O desenvolvimento do FRBF dividiu-se em duas funções principais, frbf que efectua o procedimento de aprendizagem e retorna o modelo, e predict uma função base do R que foi redefinida para suportar o modelo gerado e que é responsável pela classificacão. As primeiras versões do FRBF tinham uma velocidade de execução lenta, mas tal não foi inicialmente considerado preocupante. No entanto, alguns testes ao procedimento de aprendizagem eram demasiado morosos, passando a velocidade de execução a ser um problema crítico. Para o resolver, foi efectuada uma análise para identificar os pontos de lentidão. Esta acção revelou que os procedimentos de manipulação de objectos eram bastante lentos. Assim, aprofundou-se o conhecimento das funções e operadores do R que permitissem efectuar essa manipulação de forma mais eficiente e rápida. A aplicação desta acção correctiva resultou numa redução drástica no tempo de execução. O processo de qualidade do FRBF passou por três tipos de testes: (i) unitários, verificando as funções individualmente; (ii) de caixa negra, testando as funções de aprendizagem e classificação; e (iii) de precisão, aferindo a qualidade dos resultados. Considerando a complexidade do FRBF e o número de configurações possíveis, os resultados obtidos foram bastante satisfatórios, mostrando uma implementação sólida. A precisão foi alvo de atenção especial, sendo precisamente aqui onde não foi plena a satisfação com os resultados obtidos. Tal facto advém das discrepâncias obtidas entre os resultados do FRBF e do protótipo, onde comparação dos resultados beneficiou sempre este último. Uma análise cuidada a esta situação revelou que a divergência acontecia na PCA, que é efectuada de forma distinta. O próprio R possui formas distintas de obter os vectores próprios e os valores próprios, tendo essas formas sido testadas, mas nenhuma delas suplantou os resultados do protótipo. Uma vez certificado o algoritmo, este foi empacotado e submetido ao CRAN. Este processo implicou a escrita da documentação do pacote, das funções e classes envolvidas. O pacote é distribuído sob a licença LGPL, permitindo uma utilização bastante livre do FRBF e, espera-se, potenciando a sua exploração e inovação. O trabalho desenvolvido cumpre plenamente os objectivos inicialmente definidos. O algoritmo original foi melhorado e implementado na plataforma standard usada pela comunidade científica estatística. A sua disponibilização através de um pacote no CRAN sob uma licença de código aberto permite a sua exploração e inovação. No entanto, a implementação do FRBF não se esgota aqui, existindo espaço para trabalho futuro na redução do tempo de execução e na melhoria dos resultados de classificação.This dissertation is focused on the implementation and improvements of the Flexible Radial Basis Function Neural Networks algorithm. It is a clustering algorithm that describes a method for adjusting parameters for a Radial Basis Function neural network of multivariate Gaussians with ellipsoid shapes. This provides an extra degree of flexibility to the kernel structure through the usage of modifier functions applied to the distance computation procedure. The focus of this work is the improvement and implementation of this clustering algorithm under an open source licensing on a data analysis platform. Hence, the algorithm was implemented under the R platform, the de facto open standard framework among statisticians, allowing the scientific community to use it and, hopefully, improve it. The implementation presented several challenges at various levels, such as inexistent development standards, the distributable package creation and the profiling and tuning process. The enhancements introduced provide a slightly different learning process and extra configuration options to the end user, resulting in more tuning possibilities to be tried and tested during the learning phase. The tests performed show a robust implementation of the algorithm and its enhancements on the R platform. The resulting work has been made available as a R package under an open source licensing, allowing everyone to used it and improve it. This contribution to the scientific community complies with the goals defined for this work.Falcão, André Osório e Cruz de AzerêdoRepositório da Universidade de LisboaMartins, Fernando Manuel Pires2012-03-06T15:10:16Z20092009-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/5482enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T15:47:13Zoai:repositorio.ul.pt:10451/5482Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:30:49.406408Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv An implementation of flexible RBF neural networks
title An implementation of flexible RBF neural networks
spellingShingle An implementation of flexible RBF neural networks
Martins, Fernando Manuel Pires
Radial basis function
Neural network
Flexible kernels
R
Teses de mestrado - 2009
title_short An implementation of flexible RBF neural networks
title_full An implementation of flexible RBF neural networks
title_fullStr An implementation of flexible RBF neural networks
title_full_unstemmed An implementation of flexible RBF neural networks
title_sort An implementation of flexible RBF neural networks
author Martins, Fernando Manuel Pires
author_facet Martins, Fernando Manuel Pires
author_role author
dc.contributor.none.fl_str_mv Falcão, André Osório e Cruz de Azerêdo
Repositório da Universidade de Lisboa
dc.contributor.author.fl_str_mv Martins, Fernando Manuel Pires
dc.subject.por.fl_str_mv Radial basis function
Neural network
Flexible kernels
R
Teses de mestrado - 2009
topic Radial basis function
Neural network
Flexible kernels
R
Teses de mestrado - 2009
description Tese de mestrado, Informática, Universidade de Lisboa, Faculdade de Ciências, 2009
publishDate 2009
dc.date.none.fl_str_mv 2009
2009-01-01T00:00:00Z
2012-03-06T15:10:16Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10451/5482
url http://hdl.handle.net/10451/5482
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134196655980544