Ferramenta de Regressão Não-linear Múltipla com Redes Neurais Artificiais

Share Embed


Descrição do Produto

Ferramenta de Regressão Não-linear Múltipla com Redes Neurais Artificiais Hugo Iver V. Gonçalves1, Rodrigo C.M. Coimbra1, Marcelo Ladeira1 e Hércules Antônio do Prado2,3 {h0223816, r0228010}@aluno.unb.br, [email protected], [email protected] 1

Departamento de Ciência da Computação – Universidade de Brasília Brasília-DF, Brasil 2

CTAA – Embrapa Agroindústria de Alimentos Av. Das Nações, 29501 – Bairro Guaratinga, Rio de Janeiro – RJ 3

Bacharelado em Sistema de Informação – Universidade Católica de Brasília Águas Claras – DF

Abstract. This paper presents a Java API called NeuralNetworkToolkit. This API was conceived to perform non-linear multiple regression, on a black-box approach, using a multiple-layer perceptron artificial neural network with Levenberg-Marquardt and backpropagation training. This algorithm offers faster training performance than the standard backpropagation algorithm and its variants. The Levenberg-Marquardt and its variants LMAM or OLMAM can be used as a powerful tool for non-linear approximation. Resumo. Este artigo apresenta a API Java NeuralNetworkToolkit. Essa API foi idealizada para permitir usar uma rede neural multicamada, treinada com o método de retropropagação de erro e o algoritmo de Levenberg-Marquardt, para regressão múltipla não linear. O treinamento de redes neurais com esse algoritmo é mais rápido do que com a aplicação do algoritmo padrão de retropropagação de erro e suas variantes. O algoritmo de LevenbergMarquardt e suas variantes LMAM ou OLMAM podem ser utilizados como uma ferramenta poderosa na aproximação de relações não lineares.

1. Introdução As redes neurais têm sido utilizadas com sucesso em variadas áreas, por exemplo indústria, negócios, finanças, medicina, etc., principalmente em problemas de classificação, predição, reconhecimento de padrões e controle. A razão desse sucesso está relacionada ao fato de que uma rede, composta por uma ou mais camadas ocultas com um número adequado de neurônios, possa aproximar praticamente qualquer função (ou relação) não-linear contínua, num dado intervalo [Suykens,1996] [Liu, 1996], embora haja restrições práticas [Haykin, 2001]. Uma rede neural artificial é formada por vários neurônios artificiais, cada um deles dispondo de pequena quantidade de memória local. Os neurônios se conectam via sinapses que usualmente transportam dados nominais ou numéricos. Os neurônios efetuam operações (médias ponderadas e limiar) somente com seus dados locais (pesos e bias) e com as entradas recebidas através das sinapses. Através de algum tipo de regra de treinamento, os parâmetros livres da rede neural podem ser ajustados. Se esse processo requer treinamento baseado na apresentação de um conjunto de exemplos, a aprendizagem é chamada supervisionada. Uma rede neural adequadamente treinada exibe V ENIA

1002

capacidade de generalização além dos exemplos utilizados durante o treinamento. Redes neurais podem ser construídas com diversas arquiteturas, métodos de aprendizagem e funções de ativação (transformações aplicadas aos valores de saída dos neurônios). Um dos métodos de aprendizagem supervisionada mais utilizados em redes multicamadas é o de retropropagação do erro (do inglês, error back-propagation) [Rumelhart & McClelland, 1986]. Este algoritmo funciona em duas fases: propagação dos sinais de entrada dos neurônios (passo a frente) e retropropagação (passo para trás) para correção dos parâmetros. Na fase de propagação, um padrão (caso exemplo do conjunto de treinamento) é aplicado na camada de entrada da rede e propagado camada por camada até a camada de saída. Durante este processo, os valores dos pesos e bias dos neurônios da rede não são alterados. Já na fase de retropropagação os valores dos pesos e bias dos neurônios da rede são ajustados de acordo com uma regra de correção de erro, cujo objetivo é aproximar a resposta da rede da obtida no padrão. Para cada padrão é calculado o quadrado do erro entre a saída da rede e a saída prevista. Na correção dos pesos sinápticos e bias, o algoritmo de retropropagação de erro utiliza o gradiente da superfície do erro quadrático para determinar a direção em que se obtém a maior redução deste erro, ou seja, a direção de descida mais íngreme. Utilizando-se o algoritmo de retropropagação do erro com algumas modificações é possível utilizar um algoritmo de minimização de mínimos quadrados para o treinamento de redes neurais, denominado de Levenberg-Marquardt [Hagan & Menhaj, 1994]. Esse algoritmo é mais eficiente do que o algoritmo de retropropagação padrão e suas variantes [Liu, 1996]. O algoritmo Levenberg-Marquardt possui duas variantes [Ampazis & Perantonis, 2002]: LMAM (do inglês, Levenberg-Marquardt with Adaptive Momentum) e OLMAM (do inglês, Optimized LMAM). Este trabalho descreve a implementação dos algoritmos Levenberg-Marquardt e suas variantes LMAM e OLMAM, direcionados ao problema de regressão não linear múltipla. Para facilitar o desenvolvimento de aplicações inteligentes baseadas em redes neurais artificiais, foi implementada a API NeuralNetworkToolkit com uma modelagem de classes que permite abstrair a estrutura básica da rede de modo a diminuir o esforço de implementação de novas arquiteturas ou diferentes métodos de aprendizado. Essa pesquisa integra o esforço de desenvolvimento do UnBMiner [Ladeira et al, 2005], ferramenta para mineração de dados, aberta e independente de plataforma, que está sendo desenvolvida em Java e distribuída via licença GNU GPL, disponível em http://sourceforge.net/projects/unbbayes. A próxima versão do UnBMiner englobará a distribuição da API NeuralNetworkTookit. A Seção 2 desse artigo descreve o algoritmo de Levenberg-Marquardt e suas variantes, a Seção 3 apresenta a API NeuralNetworkToolkit e a Seção 4 ilustra o uso do método de Levenberg-Marquardt como caixa preta para a realização de regressão nãolinear múltipla. Por fim, as limitações e trabalho futuro são apresentadas na Seção 5.

2. Algoritmos de Levenberg-Marquardt e Variantes Esta seção introduz conceitos básicos sobre algoritmos de aprendizagem baseados no gradiente da superfície do erro e os utiliza na descrição dos algoritmos de LevenbergMarquardt e suas variantes LMAM e OLMAM. O modelo atual para representar um neurônio artificial tem origem nos neurônios

V ENIA

1003

formais propostos por Warren McCulloch e Walter Pitts (1943). O k-ésimo neurônio artificial pode ser modelado com os seguintes elementos: entradas (xj, representa a saída do neurônio j); sinapse (ligação saída-entrada entre o neurônio j e o neurônio k, caracterizada pelo peso sináptico wk,j), somador (soma ponderada, uk, das entradas do neurônio k pelos respectivos pesos sinápticos); função de ativação (F), bias (bk, constante adicionada à soma ponderada uk) e saída (yk). Para simplificar a notação, o bias bk pode ser considerado como o peso sináptico wk,0 associado a uma entrada constante x0=1, conforme Equações (1) e (2): m

u k =∑ wkj x j (1) e y k = F u k  (2) j=0

Uma rede artificial multicamadas é uma rede de neurônios artificiais interligados, estruturada com uma camada de entrada (sem pesos sinápticos, com a função de distribuição dos valores de entrada), uma ou mais camada intermediárias e uma camada de saída. O treinamento supervisionado dessa rede consiste em determinar valores adequados para os pesos sinápticos (incluindo os bias) de todos os neurônios que compõem as camadas intermediárias e de saída. A atualização desses pesos pode acontecer de duas formas: incremental ou em lote. No primeiro caso a atualização dos pesos se dá à medida que cada padrão – conjunto de entradas e saídas associadas – de treinamento é apresentado. No segundo, a atualização se dá apenas depois de finalizada uma leitura completa do conjunto de treinamento. Os pesos são adequados no sentido de que atendem a um critério ou índice de performance que visa minimizar a diferença entre os valores de saída previstos pelo rede e os contidos nos padrões de treinamento. O método Levenberg-Marquardt utiliza treinamento em lote e consiste em um aperfeiçoamento do método Gauss-Newton, que é uma variante do método de Newton. O método de Newton usa a informação da derivada parcial de segunda ordem do índice de performance utilizado para corrigir os pesos w  . Isso permite que além da informação do gradiente ∇ seja usada informação sobre a curvatura da superfície do erro [Ranganathan, 2004]. O método de Newton pode ser usado para resolver a equação: ∇ V w  =0 (3)

Expandindo o gradiente de V em uma série de Taylor em torno dos pesos w0, obtemos: T 2 ∇ V w  =∇ V  w0  w  − w0  ∇ V  w0 ⋯ (4)

Desprezando os termos de ordem superior a 2 e resolvendo a Eq. (4) em relação a w  obtemos a regra de atualização de w  , dada pela Eq. (5) ou de forma mais geral, pela Eq. (6). −1

2 2  w=−[ ∇ V w0  ] ∇ V w0  (5) e  w  =−[ ∇ V  w  ] ∇ V  w   (6)

−1

Ao desprezarmos os termos de ordem superior, assumimos aproximação quadrática para o gradiente. Embora a convergência seja rápida, pode ser bastante sensível a posição inicial na superfície do erro, função dos valores dos pesos iniciais em w0. O índice de performance V pode ser definido como a soma do quadrado do erro ei,

V ENIA

1004

associado ao i-ésimo padrão de treinamento da rede (Eq. 7). N

2 V w  =∑ ei  w   (7) i=1

Então o gradiente e o hessiano podem ser expressos como funções do jacobiano J (derivadas parciais) do índice de performance V, como: T ∇ V w  =J  w   e  w   (8) e

T ∇2V w  =J  w   J w  S  w   (9), em que N

2 S w  =∑ ei  w   ∇ ei  w   (10) i=1

A avaliação do hessiano pode ser extremamente complexa. Para contornar esse problema, foram propostos métodos que utilizam aproximações, denotados QuasiNewton, dentre os quais se situam o método de Gauss-Newton e Levenberg-Marquardt. No método de Gauss-Newton assume-se S  w  ≈0 , então a regra de atualização de Newton passa a ser: −1

T T w  =−[ J  w   J w  ] J  w   e  w   (11)

O problema com esse método é que a matriz H =[ J T  x  J  x  ] pode não ter inversa. Para contornar essa situação, Levenberg propôs somar a parcela µI a essa matriz, onde µ é um escalar e I é a matriz identidade, resultando na seguinte regra de atualização [Hagan, 1994]: −1

T T w  =−[ J  w   J w   I ] J  w   e  w   (12)

A matriz

[ J T  x  J  x  I ]

sempre possuirá inversa [Ranganathan, 2004].

Após uma atualização, se o valor do índice de performance diminui, µ deve ser diminuindo para reduzir a influência do gradiente descendente. Se ao contrário, o valor do índice de performance aumenta, então seguir a direção do gradiente descendente é a melhor escolha e o valor de µ deve ser aumentado. Se µ tornar-se muito grande, a informação dada pela aproximação H para o hessiano não será útil no cálculo da atualização de w  . Para contornar esse problema, Marquardt propôs substituir a matriz identidade pela matriz diag[H] (matriz diagonal de H), resultando na seguinte regra de atualização [Ranganathan, 2004], [Roweis, 2003]: −1

T T T w  =−[ J  w   J w   diag [ J  w   J w  ]] J  w   e  w   (13)

É fundamental que o cálculo da matriz J T  w   seja realizado de forma eficiente. Essa matriz é formada pelo cálculo dos gradientes, para cada padrão de treinamento apresentado à rede. Hagan e Menhaj (1994) propuseram uma modificação no algoritmo de retropropagação que permite utilizar esse algoritmo para calcular o jacobiano. O método Levenberg-Marquardt pode ser resumido como: p0) obtenha uma atribuição inicial de pesos; p1) calcule uma atualização dos pesos de acordo com a Eq. (13) e avalie o erro, propagando os padrões na rede; p2) se o erro aumentou desfaça a

V ENIA

1005

atualização de w  e diminua µ; senão valide a atualização de w  e incremente µ; p3) se convergiu encerre; senão volte para p1. Os critérios de convergência mais usuais são: a) norma do gradiente de V menor do que um valor pré-determinado; b) soma do erro quadrático menor do que um valor pré-determinado; c) atingir um número pré-determinado de iterações. 2.1. Variantes do Método de Levenberg-Marquardt Os métodos de gradiente descendente são métodos de atualização heurística e, como tal, não há garantias de se atingir o valor dos pesos que minimiza o erro quadrático, visto que pode haver convergência para um ponto de mínimo local na superfície de erro. Uma abordagem usual para contornar esse problema no método de retropropagação de erro é utilizar os parâmetros taxa de aprendizagem e momentum. A taxa de aprendizagem multiplica o fator de atualização dos pesos. Quanto menor a taxa de aprendizagem mais suave será a trajetória dos pesos sinápticos no espaço de pesos, pois menores serão as variações destes pesos de uma iteração para outra, o que pode retardar o processo de aprendizagem da rede neural. Por outro lado, se a taxa de aprendizagem for muito alta, a variação dos pesos sinápticos entre iterações será maior o que pode tornar a rede neural instável, fazendo com que o erro quadrático oscile. Para permitir taxas de aprendizagem mais elevadas e evitar instabilidade da rede neural, Rumelhart, Hinton e Williams (1986) propuseram modificar a regra de atualização do algoritmo de retropropagação para incluir um termo de momentum que representa a percentagem do fator de atualização dos pesos da interação anterior a ser adicionada ao fator de correção atual. Baseado nessas idéias, Ampazis e Perantonis (2002) propuseram as variantes LMAM e OLMAM para o método de Levenberg-Marquardt. 2.1.1. LMAM – Levenberg-Marquardt com Momento Adaptativo Com a inclusão do momentum, a regra de atualização passa a ser expressa como: w t =−

−1 T 1 1 J T w [   J w   I ] J  w   e  w    w  t−1 (14) 2 2 2

Satisfazendo as seguintes relações: 1=

[

2=

 I F F I G G− I G F  2

 I G G  Q 2P Q t2 

T

2

−1

]

−2 2  Q t  I G F  (15), I GG

1/2

(16),  Q t =  P  I G G (17) T

I G G =∇ V wt  ∇ V wt  ∇ V wt  (18), I G F =∇ V wt   wt−1 (19) e I F F = wt−1T ∇ 2 V wt  wt−1 (20)

Com parâmetros livres ξ e δP. Contudo, agora uma atualização será aceita T apenas se V wt  wt V wt  1 ∇ V wt   wt , com σ1=0,1. 2.1.2. OLMAM Levenberg-Marquardt com Momento Adaptativo Otimizado Essa modificação tenta eliminar os parâmetros livres no método LMAM, chegando aos seguintes resultados:

V ENIA

1006



= 1−

I G2 F (21) e  P=  I G G (22) I GG I F F

Em [Ampazis & Perantonis, 2002] prova-se que a variante LMAM sempre converge para um ponto estacionário da função de custo. Para a OLMAM não se conseguiu a mesma demonstração, mas os resultados experimentais levam a crer que o mesmo ocorre.

3. A API NeuralNetworkToolkit O objetivo original deste trabalho era o desenvolvimento de um módulo de regressão não linear múltipla a ser acoplado ao UnBMiner. O UnBMiner é um conjunto de framework e API desenvolvido para facilitar a implementação de técnicas de mineração de dados, com ênfase nas fases de pré-processamento dos dados, modelagem e avaliação. A partir de uma base de casos reais, o UnBMiner permite a aprendizagem de modelos baseados em rede naive Bayes [Friedman, Geiger & Goldszmidt, 1997], árvore de decisão (algoritmos ID3 [Quinlan, 1986] e C4.5 [Quinlan, 1993]), modelo neural combinatório (algoritmo geração parcimoniosa otimizado [Noivo, Prado & Ladeira, 2004]) e rede neural multicamadas com retropropagação de erro, e a classificação de dados com os modelos gerados [Ladeira et al., 2005]. A utilização de outros softwares de domínio público semelhantes foi descartada por não serem suficientemente completos, ou seja, não possuírem os métodos de treinamento e as demais funcionalidades desejadas [MajorSpot][Yawn], ou por serem demasiado complexos e de difícil adaptação ao UnBMiner [Joone]. Além disso, verificou-se que poderia ser desenvolvido um modelo mais descritivo e modular que os atuais. Assim, optou-se pela implementação da API NeuralNetworkToolkit, totalmente orientada a objetos, utilizando tecnologia Java. A API é de fácil adaptação a qualquer programa Java, incluindo o UnBMiner. A implementação teve início pelo perceptron de múltiplas camadas (MLP) com os algoritmos de aprendizado baseados no gradiente da superfície do erro descritos anteriormente, de modo a resolver o problema de regressão não-linear. Para a caracterização de uma rede neural (ao menos do MLP), optou-se pela estrutura de classes da Figura 1. Os atributos e métodos foram omitidos para a melhor visualização das relações entre as classes. Essa estrutura reflete a característica de uma rede neural ser composta por camadas e estas por neurônios e pesos sinápticos. Este modelo de interfaces e classes abstratas isola os conceitos envolvidos numa rede neural, de modo que a partir de novas implementações dos elementos principais (camada,

Figura 1- Diagrama de classes do pacote neuralnetworktoolkit.neuralnetwork.

V ENIA

1007

neurônio, peso, função de ativação) seja possível incorporar diferentes arquiteturas. A cada neurônio está associada uma função de ativação, permitindo que neurônios de uma mesma camada tenham funções de ativação diferentes. A opção padrão no perceptron de múltiplas camadas é a utilização de uma única função para cada camada. Contudo, em outras arquiteturas isso pode não ser verdade. Logo, a liberdade de escolha da função de cada neurônio agrega flexibilidade ao modelo. Devido às similaridades entre os diversos métodos de treinamento para o perceptron de múltiplas camadas optou-se pela estrutura de classes da Figura 2. Os atributos e métodos foram omitidos para maior clareza da estrutura das classes. Com a definição de uma interface e de uma hierarquia de classes fica fácil a criação de novos métodos de treinamento. Além dos métodos ilustrados pela Figura 2, também foi implementado o algoritmo de retropropagação e suas variações, uma vez que para o funcionamento dos métodos Quasi-Newton, pode-se aproveitar parte do cálculo tipicamente efetuado pelo algoritmo de retropropagação.

Figura 2- Diagrama de classes para os métodos de treinamento.

Dessa forma, ocorre uma distinção nítida entre arquitetura de rede e método de treinamento, garantindo que a implementação de uma determinada arquitetura não restringirá a implementação de diferentes métodos de treinamento para tal. Assim, na API NeuralNetworkToolkit, cada conceito encontra-se modelado em um módulo bem definido, facilitando extensões futuras, ao contrário do que se observa em outros softwares de mineração de dados. No caso do Weka1, se optou por modelar uma arquitetura específica de rede neural – MLP backpropagation – através de classes nas quais não há separação dos conceitos relativos à arquitetura da rede e ao algoritmo de treinamento sendo utilizado. Esta abordagem dificulta a incorporação de novos métodos de treinamento ou mesmo novas arquiteturas de rede. Além de classes para a estruturação e treinamento de redes neurais, a API provê uma série de funcionalidades adicionais, como iniciação dos pesos (randômica e método Nguyen-Widrow [Nguyen & Widrow, 1990]) pré-processamento dos dados 1 Weka 3: Data Mining Software in Java. http://www.cs.waikato.ac.nz/ml/weka V ENIA

1008

(normalização2), persistência dos modelos gerados, facilidades para entrada e saída de dados por arquivos, além de uma interface gráfica que integra essas funcionalidades (Figura 3). Facilidades para entrada de dados via banco de dados (MySQL e PostgreSQL) estão disponíveis apenas ao nível de API.

Figura 3- Tela de configuração da rede a ser criada e treinada.

A API NeuralNetworkToolkit é distribuída gratuitamente sob licença GNU GPL e está disponível em http://sourceforge.net/projects/nntk.

4. Aplicação Para atestar a corretude da implementação dos métodos implementados na API NeuralNetworkTookit, sobretudo dos métodos de Levenberg- Marquardt e suas variantes, foram gerados modelos neurais sobre a base de dados pumadyn , que consiste de dados sinteticamente gerados a partir de uma simulação realística da dinâmica do braço de um robô Puma 560 [Ghahramani, 1996]. As bases de dados encontram-se disponíveis em http://www.cs.toronto.edu/~delve/data/pumadyn/desc.html. Entre os dois tipos de dados presentes no conjunto, com 8 ou 32 variáveis de entrada, optou-se pelo que contém 8 variáveis, contando com 8192 instâncias. Nesse caso, a dinâmica de revolução do braço de um robô é descrita pela Equação 23: ¨ f  , ˙ ,  ,  (23) = em que  , ˙ e  são os vetores dos ângulos de junção, velocidades e torques e  é o vetor de parâmetros descrevendo a cinemática e a dinâmica do braço. Para os seis graus de liberdade para o braço do robô Puma,  , ˙ e  são vetores de 6 dimensões [Ghahramani, 1996]. Contudo, a título de simplificação, 3 dimensões são tomadas nulas para  e ˙ e 4 para  . Além disso,  também é desprezado. Dessa forma, obtém-se um conjunto de treinamento com 8 variáveis de entrada para a inferência de ¨ . O modelo neural gerado e os resultados obtidos são descritos pela Tabela 1. Para tal configuração, têm-se que a dimensão do hessiano H é 201, o que tem impacto evidente no desempenho do método de treinamento. Observa-se também que com uma rede de configuração simples foi possível obter uma boa aproximação em poucos passos. 2 Algoritmos divulgados no site http://www.ivorix.com/en/products/tech/norm/ V ENIA

1009

Características

Rede neural gerada

1ª camada interna

12 neurônios, tangente hiperbólica

2ª camada interna

12 neurônios, tangente hiperbólica

Camada de saída

1 neurônio, tangente hiperbólica

Normalização

Linear entre o intervalo [-1, 1]

Iniciação dos pesos

Nguyen-Widrow

Método de treinamento OLMAM Número de iterações

50

Tempo de treinamento 14 minutos e 10 segundos (num Pentium III 700 Mhz) Erro médio final

0,7290

Tabela 1 - Descrição da rede neural gerada para abase de dados Puma com 8 entradas.

5. Conclusões e trabalhos futuros O método Levenberg-Marquardt é um método heurístico com convergência rápida e melhor desempenho do que os apresentados pelo algoritmo convencional de retropropagação do erro e suas variantes [Liu, 1996]. No entanto, por ser uma técnica de treinamento de lote, apresenta as seguintes limitações: a) os requisitos de memória são pesados – o hessiano é uma matriz MxM, em que M é o número de pesos sinápticos e a dimensão do jacobiano é o número de padrões de treinamento – o que pode tornar impraticável o seu uso em redes neurais ou de conjuntos de treinamentos muito grandes; b) só pode ser aplicado a redes neurais com um único neurônio na camada de saída; c) requer a inversão da matriz do hessiano, o que pode ser caro do ponto de vista computacional. O modelo proposto pela API NeuralNetworkTookit possibilitou a rápida implementação de 10 métodos (algoritmo de retropogação em suas 6 variações, GaussNewton e Levenberg-Marquardt e suas variantes). Além disso, as demais funcionalidades facilitaram a rápida geração de modelos neurais, num ambiente de simples utilização. Como trabalhos futuros estão o aperfeiçoamento do modelo da API NeuralNetworkToolkit, de modo a agregar outras arquiteturas de redes neurais, implementação de novas arquiteturas e métodos de treinamento, como as redes RBF, novas facilidades para manipulação dos modelos e aperfeiçoamento da interface gráfica, de modo a incluir as facilidades para acesso a bancos de dados.

Referências AMPAZIS, Nikolaos & PERANTONIS, Stavros J. (2002). “Two Highly Efficient Second-Order Algorithms for Training Feedforward Networks”. IEEE Transactions on Neural Networks, v.13, n.5. ANDERSON, Dave & MCNEIL, George. (1992). Artificial Neural Networks Technology. http://www.dacs.dtic.mil/techs/neural/. FRIEDMAN, N., GEIGER, D. & GOLDSZMIDT, M. (1997). “Bayesian Network Classifiers”. Machine Learning, 29, p. 131-161.

V ENIA

1010

GHAHRAMANI, Z. “The pumadyn datasets”. http://www.cs.toronto.edu/~delve/data/pumadyn/pumadyn.ps.gz.

Abril,

1996.

HAGAN, Martin T. & MENHAJ, Mohammed B. (1994). “Training Feedforward Networks with the Marquardt Algorithm”. IEEE Transactions on Neural Networks, v.5, n.6. HAYKIN, Simon S. (2001). Redes Neurais: Princípios e Prática. 2.ed. Porto Alegre: Bookman. (Tradução de Paulo Martins Engel). LIU, Y. (1996). “Calibrating an Industrial Microwave Six-Port Instrument Using Artificial Neural Network Technique”. IEEE Trans IM, v.45, n.2, p.651-656. LADEIRA, Marcelo, VIEIRA, Mário H.P., PRADO, Hércules A. do, NOIVO, Rafael M. & CASTANHEIRA, Danilo B.S. (2005). “UnBMiner – Ferramenta Aberta para Mineração de Dados”. Submetido à Revista Tecnologia da Informação. Brasília: Universa, v.4, n.2 (Edição: Descoberta de Conhecimento em Bases de Dados). McCULLOCH, Warren S. & PITTS, Walter. (1943). “A Logical Calculus of the Ideas Immanent in Nervous Activity”. Bulletin of Mathematical Biophysics, v5, p.115-133. NGUYEN, D. & WIDROW, B. (1990). “Improving the Learning Speed of 2-layer Neural Networks by Choosing Initial Values of the Adaptive Weights”. In: Proc. of the IJCNN, v3, p.21-26. NOIVO, R., PRADO, H.A do & LADEIRA, M.. (2004). “Yet Another Optimization of the Combinatorial Neural Model”. In: Proc. of 30th Latin-American Conference on Informatics CLEI 2004. Arequipa: Sociedad Peruana de Computación, p.706-711. QUINLAN, J. R. (1986). “Induction of Decision Trees”. Machine Learning, v.1, n.1, p.81-106. QUINLAN, J. R. (1993). C4.5 Programs for Machine Learning. San Mateo: Morgan Kaufmann.. RANGANATHAN, Ananth. (2004). The Levenberg-Marquardt Algorithm. (www.cc.gatech.edu/people/home/ananth/lmtut.pdf). ROWEIS, Sam. (2003). Levenberg Marquardt Optimization. (www.cs.toronto.edu/~roweis/notes/lm.pdf). RUMELHART, David E. & McCLELLAND, James L. (1986). Parallel Distributed Processing: Explorations in the Microstructure of Cognition. Cambridge: MIT, v.1. RUMELHART, David E.; HINTON, G.E. & WILLIAMS, R.J. (1986). “Learning Internal Representations of Back-propagating Error”. Nature, v.323, p.533-536. STATSOFT, Inc. (2003). Neural Networks - Electronic Textbook StatSoft. (www.statsoftinc.com/textbook/stneunet.html). SUYKENS, Johan A.K., VANDEWALLE, Joos P.L. & De MOOR, B.L. (1996). Artificial Neural Networks for Modelling and Control of Non-Linear Systems. Holanda: Kluwer.

V ENIA

View publication stats

1011

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.