Document details

An implementation of flexible RBF neural networks

Author(s): Martins, Fernando Manuel Pires

Date: 2009

Persistent ID: http://hdl.handle.net/10451/5482

Origin: Repositório da Universidade de Lisboa

Subject(s): 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

Sempre 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.

Document Type Master thesis
Language English
Advisor(s) Falcão, André Osório e Cruz de Azerêdo
Contributor(s) Repositório da Universidade de Lisboa
facebook logo  linkedin logo  twitter logo 
mendeley logo

Related documents