Universidade de Lisboa - Faculdade de Letras Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso da expansão urbana da cidade de Maputo José Pedro Gonçalves dos Santos Ricardo Miguel da Silva Brasil 2009
Universidade de Lisboa - Faculdade de Letras
Aplicação das Redes Neuronais Artificiais do software
STATISTICA 7.0: O caso da expansão urbana da cidade de
Maputo
José Pedro Gonçalves dos Santos
Ricardo Miguel da Silva Brasil
2009
3
Seminário em Modelos Urbanos e Sistemas Complexos
Docente: Jorge Rocha
Aplicação das Redes Neuronais Artificiais do software
STATISTICA 7.0: O caso da expansão urbana da cidade de
Maputo
Realizado por:
José Pedro Gonçalves dos Santos
Nº 32505
Ricardo Miguel da Silva Brasil
Nº 32548
Março de 2009
4
Índice
Introdução………………………………………………………………………………..6
Capitulo I. Funcionamento de uma Rede Neuronal Artificial…………………………...8
Capítulo II. Os tipos de RNA existentes no software STATISTICA com base no
ELECTRONIC TEXTBOOK, StatSoft…………………………………………..…........9
1. Perceptrão Multicamada (Multilayer Perceptrons (MLP))………………….………..9
1.1. O Algoritmo de Retropopagação (Back Propagation Algorihtm)…………….......10
2. Radial Basis Function……………………………………………………………....11
3. Rede Neuronal Probabilística (Probabilistic Neural Networks)………...…..……....12
4. Rede Neuronal de Regressão Generalizada (Generalized Regression Neural
Networks)………………………………………………………………………....…….13
5. Rede Neuronal Linear (Linear Network)…………………………………....…….....14
6. Self Organizing Feature Map (SOFM, ou Kohonen) networks……………….......…15
Capítulo III. Interpretação de resultados……………………………………….………18
1. Processo utilizado………………………………………………………...………….18
2. Escolha dos métodos de análise………………………………………..…………….18
3. Configuração da Rede………………………………………………….……………19
4. Resultados obtidos……………………………………………………..…….…....…20
5. Análise dos resultados……………………………………………………..…….......22
Bibliografia…………………………………………………………………………......25
5
Índice de quadros e tabelas
Quadro número 1 – Vantagens, desvantagens e principais utilidades dos diferentes tipos
de redes…………………………………………………………………………………17
Tabela número 1 – Resultados obtidos após o primeiro treino da rede com o método
Intelligent Problem Solver……………………………………………………………...21
Tabela número 2 – Resultados obtidos após o segundo treino da rede com o método
Intelligent Problem Solver……………………………………………………………...21
Tabela número 3 – Resultados obtidos após o terceiro treino da rede com o método
Intelligent Problem Solver……………………………………………………………...22
Tabela número 4 – Resultados dos três treinos realizados pelo método Custom Network
Designer…………………………………………….…………………..……………...24
6
Introdução
Presentemente, a modelação geográfica permite criar modelos de previsibilidade ou
modelos previsivos. Estes modelos previsivos são dinâmicos, vocacionados para
realizar a simulação numérica de processos e fortemente dependentes do tempo. Um
modelo previsivo tem por base as propriedades de um sistema complexo.
Um sistema complexo é um sistema que envolve determinado número de elementos,
organizados em estruturas que podem existir em diversas escalas. Estes sistemas passam
por processos de transformação que não são passíveis de serem descritos por uma única
regra, ou seja, não podem ser reduzidos a um único nível de explicação. Num sistema
complexo o todo é mais importante que a soma das suas partes e, consequentemente,
qualquer tentativa de modelar a sua estrutura é inevitavelmente parcial e incompleta.
Assim, estes modelos representam simplificações, em que os processos predominantes
são simulados, o que nos leva a concluir que para a descrição de cada sistema poderão
existir muitos modelos. À complexidade estão, normalmente, associadas as seguintes
características: auto-organização; não-linearidade; dinâmica ordem/caos e propriedades
emergentes (emergência).
Assim sendo, como é possível modelar a complexidade em Geografia? Existem várias
formas de modelar a complexidade em Geografia, como por exemplo através dos
Autómatos Celulares ou das Redes Neuronais Artificiais.
No que se concerne às Redes Neuronais Artificiais pode-se definir uma Rede Neuronal
Artificial (RNA) como sendo um sistema composto por diversos elementos simples de
processamento, operando em paralelo, cuja função é determinada pela estrutura da rede,
pela força das ligações e pelo processamento realizado nos elementos de computação,
designados nós. Uma RNA é um modelo que simula o comportamento do cérebro
humano, tendo por base a aprendizagem1.
Sendo assim, no âmbito do seminário em Modelos Geográficos e Sistemas Urbanos
Complexos do Mestrado em Sistemas de Informação Geográfica e Modelação
1 Adaptado dos diapositivos de apresentação PowerPoint do seminário em Modelos Geográficos e
Sistemas Urbanos Complexos, Jorge Rocha, 2008.
7
Territorial aplicados ao Ordenamento, realizou-se o presente trabalho sobre os
diferentes tipos de Redes Neuronais Artificiais existentes num determinado software,
neste caso, o software STATISTICA. Com este trabalho pretende-se expor os diferentes
tipos de aprendizagem das RNA e os diferentes tipos de Redes Neuronais Artificiais que
podem ser utilizadas no software STATISTICA.
Primeiramente, serão enunciados os vários tipos de RNA presentes no software
STATISTICA e explicadas as características de cada um per si. Seguidamente, a título de
exemplo, serão “treinadas” cada uma das diferentes RNA com os mesmos dados de
input, neste caso, a informação matricial referente aos valores de declive em graus, ao
uso do solo para o ano de 1991 e 2001 e às vias da cidade de Maputo de forma a ser
possível retirar algumas considerações finais sobre diferentes tipos de RNA e poder-se
proceder a uma análise comparativa dos mesmos.
8
Capítulo I. Funcionamento de uma Rede Neuronal Artificial
Existem dois tipos de aprendizagem no que diz respeito às Redes Neuronais Artificiais,
são elas: a aprendizagem supervisionada e a aprendizagem não supervisionada. Na
aprendizagem supervisionada é apresentada à rede um conjunto de padrões de entrada e
os correspondentes padrões de saída. Neste processo, a rede inicia um ajustamento dos
pesos das conexões, segundo um algoritmo de aprendizagem, que deverá ser parado
quando o erro for mínimo. No tipo de aprendizagem não supervisionada a rede analisa
os dados e conjunto de dados de entrada (input) e “aprende” a reflectir as propriedades
na saída (output). No caso da aprendizagem supervisionada, por exemplo, existe o tipo
de RNA designada de Back Propagation que usa os dados para ajustar os pesos e
limiares da rede como também para minimizar o erro nas “previsões” do “treino” ou do
modelo. Se a rede for “treinada” apropriadamente, esta aprende a modelar a função
(desconhecida) que relaciona as variáveis de input com as de output e pode ser utilizada
para fazer previsões onde o output é “desconhecido”.
Uma RNA funciona da seguinte forma:
A RNA recebe um número de inputs (seja da informação original ou do output de outros
neurónios da rede neuronal). Cada input é “conduzido” via uma conexão que tem uma
força ou peso, esse peso corresponde a uma eficácia sináptica num neurónio. Cada
neurónio tem, também, um valor limiar. Os sinais de input formam uma soma
ponderada e o valor limiar é subtraído resultando assim na activação do neurónio, isto é,
a unidade leva a cabo uma soma ponderada dos seus inputs para obter o valor de
activação. O sinal de activação é “corrido” por uma função de activação que produz um
output para o neurónio.
9
Capítulo II. Os tipos de RNA existentes no software
STATISTICA com base no ELECTRONIC TEXTBOOK da
StatSoft2
O software STATISTICA dispõe de vários tipos de Redes Neuronais Artificiais a partir
das quais se podem modelar imensos fenómenos. Dentro da categoria das RNA de
aprendizagem supervisionada existem os seguintes tipos de RNA no software
STATISTICA:
1. Perceptrão Multicamada (Multilayer Perceptrons (MLP))
Esta deve ser, provavelmente, o tipo de rede mais conhecida e utilizada, o que se deve
em, grande parte, a Rumelhart, McClelland e Bishop, que nos seus livros discutiram
inúmeras vezes este tipo de rede. Como já foi referido anteriormente, o funcionamento
deste tipo de rede processa-se da seguinte forma: cada neurónio (unidade) recebe um
conjunto de inputs ponderados de outros neurónios e passa um nível de activação via
uma função de transferência para produzir o respectivo output. Estas unidades são
dispostas numa tipologia feedforward (controladas por um sistema que passa um sinal
de activação a partir de uma fonte do sistema de controlo externo, normalmente, um
comando de activação de um operador externo).
Este tipo de rede é simples no que se concerne ao processo entre os inputs e os outputs.
Este tipo de rede permite modelar funções de arbitrariedade quase complexa, com um
número de camadas e um número de unidades em cada camada, determinando, assim, a
complexidade da função. Um aspecto importante da MLP está relacionado com a
especificação do número de camadas escondidas (hidden layers) e o número de
neurónios que essas camadas devem ter. Assim, o número de inputs e outputs deve ser
definido pelo problema a resolver, isto pode fazer com que surjam problemas de
incerteza quanto aos inputs que se devem utilizar para resolver determinado problema,
contudo este é um problema que deve estar sempre na atenção do utilizador, assim
também como o número de neurónios a utilizar. Não havendo nenhuma regra, deve-se
2 Retirado de: http://www.statsoft.nl/uk/textbook/stneunet.html
10
partir do início de que se deve usar uma camada escondida com um número de
neurónios igual a metade do número de unidades de input e output.
Uma vez escolhidos o número de camadas e o número de unidades para cada camada,
os limiares e pesos da rede devem ser ajustados de forma a minimizar ao máximo o erro
de previsão obtido pela rede. Esta é a função dos algoritmos de treino, dos quais se
discutirá um exemplo mais adiante. As variáveis recolhidas e utilizadas servem para
automaticamente ajustar os pesos e os limiares de forma a minimizar o erro. Este
processo é o equivalente a ajustar o modelo representado pela rede aos dados de
“treino” disponíveis. O erro de uma configuração particular da rede pode ser
determinado através do processamento, de todos os casos de treino, pela rede,
comparando o actual output gerado com output pretendido. As diferenças são
articuladas juntamente por uma função de erro de forma a atribuir o erro da rede. A
função de erro mais comum é a Soma do Erro Quadrático (Sum Squared Error) na
maior parte dos casos, usado para problemas de regressão. Nesta função de erro, os
erros individuais das unidades de output em cada caso são somados e calcula-se a raiz
quadrada dos mesmos.
1.1.O Algoritmo de Retropropagação (Back Propagation Algorithm)
Como foi referido anteriormente, aquando do processamento de uma RNA, os limiares
e pesos da rede devem ser ajustados de forma a minimizar ao máximo o erro de previsão
obtido pela rede, função esta que pertencente aos algoritmos de treino, dos quais se
destaca o algoritmo de treino Back Propagation (Retropropagação). Este algoritmo de
treino é considerado o melhor e é o mais utilizado, uma vez que, este necessita de uma
menor capacidade de processamento, sendo dos mais “leves” no que diz respeito à sua
execução e normalmente alcança um nível de erro aceitável de uma forma rápida,
todavia, pode ser bastante lento na conversão correcta do erro mínimo. Este algoritmo
pode ser utilizado em quase todos os tipos de redes presentes o software STATISTICA,
contudo, é o mais apropriado para o tipo de rede Multilayer Perceptrons.
Neste tipo de algoritmo, o vector gradiente do erro é calculado, e com o cálculo deste
vector é possível perceber como diminuir o erro, também, em cada época de “treino” as
variáveis são submetidas novamente na rede e ao atingirem o output é comparado o
11
sinal de erro obtido através da subtracção dos valores chegados com os encontrados na
camada de saída. Este erro, juntamente com o erro do vector gradiente são utilizados
para ajustar os pesos e este processo vai-se repetindo (retropopagação) até ser atingido o
menor erro possível.
2. Radial Basis Function
O tipo de RNA Radial Basis Function (RBF) possui uma camada escondida composta
por unidades radiais e cada uma destas unidades radiais modelam uma superfície
Gaussiana. Uma vez que a RNA utiliza funções não-lineares não é necessário ter mais
do que uma camada escondida para modelar qualquer forma ou função, isto porque as
unidades radiais são suficientes para modelar qualquer função. Assim sendo, como é
possível ajustar o output da unidade radial oculta ao output da rede? A resposta a esta
questão está no facto de bastar usar uma combinação linear desses outputs, ou seja, a
soma ponderada das unidades Gaussianas, para modelar qualquer função não-linear.
As RNAs RBFs detém algumas vantagens sobre as RNAs do tipo MLP, primeiramente,
como referido a priori, permitem modelar qualquer função não-linear usando uma
camada escondida, o que retira, portanto, algumas dúvidas sobre o número de camadas a
utilizar. Em segundo lugar, a simples transformação linear na camada de output pode
ser totalmente optimizada usando as tradicionais técnicas de modelação linear que além
de serem processos pouco morosos, também não são afectadas por problemas que
afectam as técnicas de “treino” da MLP como o problema designado “local minima”.
Sendo assim, a rede RBF pode ser “treinada” de uma forma extremamente rápida,
comparando com a rede MLP.
Por outro lado, antes da optimização linear poder ser aplicada à camada de output de
uma rede RBF, o número de unidades radiais deve estar, previamente, escolhido.
Outra diferenciação entre a rede MLP e o tipo de rede RBF concerne-se com as
diferentes aproximações à modelação do espaço que ambas as redes permitem. É de
referir, também, que caso se escolham um maior número de unidades a utilizar na rede
RBF para modelar algum tipo de função, esta, consequentemente, acaba por se tornar
mais lenta no que diz respeito ao seu processamento e acaba por ocupar muito mais
espaço em disco. As redes RBFs são, também, mais “sensíveis” ao problema da
dimensionalidade e têm grandes dificuldades se o número de unidades de input for
12
vasto. Será uma vantagem ou desvantagem utilizar o tipo de RNA RBF dependendo da
aplicação que se pretende.
3. Rede Neuronal Probabilística (Probabilistic Neural Networks)
As Redes Neuronais Probabilísticas são na, maioria dos casos, mais apropriadas para
tarefas de classificação, tanto este tipo de rede como o tipo de rede neuronal
Generalized Regression, que será discutido mais adiante, são aproximações aos
métodos do sistema Kernel3 em formato de rede neuronal.
As redes do tipo Probabilístico (PNN) são caracterizadas por terem no mínimo três
camadas, sendo estas, a camada e input, a camada radial e a camada de output. As
unidades radiais são copiadas directamente de dados de “treino”, cada uma por cada
caso e estas modelam uma função Gaussiana centrada no caso de “treino”. Existe uma
unidade de output por cada classe, sendo estas conectadas com todas as unidades radiais
de cada classe a que pertence e não havendo conexões das mesmas com as restantes
unidades radiais. Facto este que faz com que as unidades de output, somente,
respondam às unidades pertencentes à mesma classe. Os outputs são normalizados
numa escala que vai de 0 a 1 e assim estimam as probabilidades de cada classe. O único
factor de controlo que é necessário escolher neste tipo de rede é o desvio radial das
funções Gaussianas.
Este tipo de rede tem alguma vantagens, nomeadamente, o facto de o output obtido ser
probabilístico o que torna a sua interpretação fácil; outra vantagem é a rapidez do
“treino” da rede que processa-se de forma rápida, uma vez que treinar uma PNN
consiste, na sua grande parte, em copiar os casos de treino para rede.
A grande desvantagem desta rede é o seu tamanho. Uma PNN normalmente contém o
conjunto inteiro dos casos de treino e, assim sendo, ocupa muito espaço de disco e
3 Kernel é um programa que constitui o núcleo central de um sistema operativo de um computador, tendo
o mesmo completo controlo sobre tudo o que ocorre no sistema e a funcionalidade de gerir os recursos do
sistema, isto é, a comunicação entre os componentes de hardware e de software. Fonte:
http://www.linfo.org/kernel.html
13
torna-se lenta no que diz respeito à sua execução ao contrário do seu tempo de “treino”.
As redes PNNs são úteis para experiências de teor protótipo, como por exemplo, que
parâmetros de input utilizar, isto também por que devido ao curto tempo de “treino” da
rede, esta pode ser testada várias vezes num curto espaço de tempo.
4. Rede Neuronal de Regressão Generalizada (Generalized
Regression Neural Networks)
As redes do tipo Generalized Regression Neural Network (GRNN) funcionam de uma
forma semelhante às PNN, mas são mais adequadas para problemas de regressão do que
de classificação. Como foi enunciado, as redes do tipo PNN têm as funções Gaussianas
em sistema Kernel localizadas em cada caso de “treino”. No caso das redes do tipo
GRNN, estas copiam os casos de “treino” para a rede de forma a serem utilizados para
estimar a resposta de novos pontos (casos). O output é estimado usando uma média
ponderada dos outputs dos casos de “treino” onde a ponderação está relacionada com a
distância a partir do ponto que está ser calculado e, assim sendo, os pontos que se
encontram mais perto contribuem mais para essa estimação.
A primeira camada escondida da GRNN contém as unidades radiais e uma segunda
camada escondida possui as unidades que ajudam a estimar a média ponderada. Cada
output possui uma unidade própria na segunda camada que calcula a soma ponderada
para o correspondente output. Para se conseguir estimar a média ponderada a partir da
soma ponderada, a mesma é dividida pela soma dos factores de ponderação, este cálculo
é feito por uma única unidade especializada localizada na segunda camada. A camada
de output procede, então, às divisões usando unidades de divisão específicas. Portanto, a
segunda camada escondida tem sempre mais uma unidade que a camada de output. Nos
problemas de regressão é apenas estimado um único output sendo que a segunda
camada escondida possui, na maioria dos casos, duas unidades.
As redes do tipo GRNN podem ser modificadas se forem utilizadas unidades radiais que
reapresentam “clusters” em vez de cada caso de “treino” per si. Isto faz com que seja
reduzido o tamanho da rede e com que a sua velocidade de execução aumente. Para a
determinação dos centros dos “clusters” utilizam-se algoritmos apropriados como o
caso do K-means ou o Kohonen.
14
As Redes Neuronais de Regressão Generalizada apresentam algumas desvantagens em
relação às similares redes PNN, nomeadamente, o facto de as redes GRNN poderem ser
utilizadas apenas para problemas de regressão. Outra desvantagem é o facto de que uma
rede GRNN, apesar de “treinar” quase instantaneamente, tender para ser “grande” e
lenta. Mas este tipo de rede também apresenta uma vantagem sobre a rede PNN,
designadamente, o facto de esta rede não necessitar de ter uma unidade radial para cada
caso de “treino” como é o caso das Redes Neuronais Probabilísticas.
5. Rede Neuronal Linear (Linear Network)
Parte-se sempre do princípio de que um modelo simples deve ser sempre escolhido ao
invés de um modelo complexo, caso o último não se adeqúe melhor aos dados
existentes.
No que se concerne à função de um modelo, o modelo linear é o mais simples, onde a
função existente é do tipo hiperplana. Aquando de problemas de classificação, a função
hiperplana está posicionada de forma a dividir duas classes (uma função linear
descriminante); em problemas de regressão, a função está posicionada de forma a passar
pela informação.
Um modelo linear é tipicamente representado através de uma matriz NxN e um vector
viés4 Nx1. Uma rede neuronal sem nenhuma camada escondida e um output com um
resultado de uma função sináptica e uma função de activação, normalmente, configuram
um modelo linear onde os pesos correspondem a uma matriz e os limiares
correspondem ao vector viés. A Rede Neuronal Linear garante uma boa referência no
que diz respeito a comparações de performance com outras redes, isto porque, é
possível resolver um problema complexo ou muito complexo através de técnicas
lineares ou redes neuronais lineares. Se por eventualidade o número de casos de “treino”
for reduzido não há justificação para se utilizar um modelo mais complexo do que um
modelo linear.
4 Viés (bias) é um termo usado em estatística para expressar o erro sistemático ou tendenciosidade. Fonte:
http://pt.wikipedia.org/wiki/Vi%C3%A9s
15
Até aqui, os diferentes tipos de redes que foram enunciados, com base no artigo da
Statsoft são todos, no que diz respeito ao seu tipo de aprendizagem, de aprendizagem
supervisionada. O sequente tipo de rede neuronal enquadra-se nos tipos de redes
neuronais de aprendizagem não supervisionada.
6. Self Organizing Feature Map (SOFM, ou Kohonen) networks
Este tipo de rede neuronal é diferente das outras redes não só pelo seu tipo de
aprendizagem como também pelo seu funcionamento e pela sua aplicabilidade, isto
deve-se, em grande parte, ao facto de este tipo de rede ser de aprendizagem não
supervisionada. Nas redes de aprendizagem supervisionada a informação a ser
“treinada” provém das variáveis de input associadas aos outputs e a rede infere uma
ligação dos inputs aos outputs ao contrário das redes de aprendizagem supervisionada
onde o conjunto de dados de “treino” contém apenas as variáveis de input. À primeira
vista este tipo de funcionamento parece estranho, isto é, como é que rede consegue
aprender? A resposta está no facto que este tipo de rede ensaia aprender como funciona
a estrutura da informação utilizada.
Este tipo de rede é utilizado muitas vezes para análise explorativa de dados. A rede
SOFM consegue aprender a reconhecer grupos (clusters) de informação e consegue
relacionar classes que sejam semelhantes. O utilizador pode, assim, entender a
informação que está a utilizar. As classes da informação são reconhecidas e podem ser
marcadas para que a rede possa elaborar uma classificação. As redes SOFM podem,
também, ser utilizadas para classificação quando as classes de output são obtidas, sendo
este aspecto uma vantagem para realçar similaridades entre classes.
Uma rede SOFM tem apenas duas camadas, sendo elas, a camada de input e camada de
output de unidades radiais, também conhecida como a camada topológica. As unidades
na camada topológica são definidas no espaço, tipicamente em duas dimensões.
As redes SOFM são dependentes do seu “treino” e usam algoritmos iterativos.
Começando com um conjunto inicial de centros radiais, estes algoritmos ajustam-se
gradualmente de forma a reflectir o agrupamento da informação de “treino”. O
processamento de “treino” iterativo, também, dispõe a rede para que as unidades que
16
representam os centros no espaço de input e se localizam proximamente também se
situem de forma próxima na camada topológica (mapa topológico).
Pode-se pensar que a camada topológica da rede tem uma grelha de bi-dimensionalidade
que pode ser moldada e distorcida num espaço de input N-dimensional para que a
estrutura original seja preservada ao máximo. Claramente, qualquer tentativa de
representar um espaço N-dimensional num espaço de duas dimensões irá resultar numa
perda de informação, contudo, esta técnica pode ser útil para permitir ao usuário
visualizar os dados que, de outra forma, possam parecer impossíveis de compreender. O
algoritmo de iteração Kohonen é executado durante um determinado número de épocas
e em cada época executa cada caso de “treino” e aplica o seguinte algoritmo: Selecciona
o neurónio de maior interesse (o neurónio “vencedor”), isto é, aquele cujo centro está
mais próximo do caso de input; de seguida, ajusta esse mesmo neurónio de forma ao
mesmo ser mais parecido com o caso de input, isto acontece através da uma soma
ponderada do anterior centro do neurónio e casa de “treino”.
A ordem topológica é obtida através do conceito de verosimilhança. O conceito de
verosimilhança está relacionado com o conjunto de neurónios que rodeiam o neurónio
“vencedor”. A verosimilhança decai com o passar do tempo, de forma a que,
inicialmente, o número de neurónios pertencentes à verosimilhança é grande,
provavelmente, quase todo o mapa topológico. Nas fases mais avançadas a
verosimilhança será de zero, isto é, irá consistir somente no neurónio “vencedor”. No
algoritmo de Kohonen o ajustamento dos neurónios é aplicado não só ao neurónio
“vencedor” mas também a todas as unidades da verosimilhança.
Uma vez que a rede está “treinada” para reconhecer a estrutura da informação, a rede
pode ser utilizada como ferramenta de visualização para examinar a informação (Data).
Depois de os clusters estarem identificados, os neurónios na camada topológica são
marcados com vista a indicar o seu significado (ocasionalmente, casos individuais
também são marcados). Estando o mapa topológico construído, através das técnicas
descritas, novos casos podem ser submetidos na rede. Se o neurónio “vencedor” tiver
sido marcado com o nome de uma classe, a rede pode proceder à classificação, caso
contrário, a rede é considerada como “indecisa”.
17
Tipo de rede Vantagens Desvantagens Utilidade
MLP Simples e eficaz;
Tipologia Feedforward;
Modelar funções quase
complexas.
Incerteza na escolha do
número de camadas
escondidas, inputs e
outputs; não modela
funções não-lineares.
Qualquer tipo de
problemas (grande
aplicabilidade)
RBF Não necessita de mais do
que 1 camada escondida;
Possibilidade de modelar
quase todas as funções;
Permite modelar funções
não-lineares; rápido
processamento.
Se o número de unidades a
utilizar for grande, torna-se
lenta; Sensíveis ao
problema da
dimensionalidade.
Funções não-lineares
PNN É apenas necessário 1
factor de controlo; o
output obtido é
probabilístico e, logo, de
fácil interpretação;
rapidez de treino.
Ocupa muito tamanho em
disco; Morosa na sua
execução.
Classificação;
experiências de teor
protótipo.
GRNN Tempo de treino curto;
treina quase
instantaneamente; não
necessita de 1 unidade
radial para cada caso de
treino (ao contrário das
PNN).
Servem apenas para
problemas de regressão;
ocupa muito espaço em
disco; execução morosa.
Problemas de
regressão.
Linear Boa performance em
comparação com as
outras redes; permite
resolver problemas
complexos de forma
simples.
Modelos simples
(modelos lineares).
SOFM Auto-aprendizagem;
utilização de algoritmos
iterativos; bi-
dimensionalidade
(representação no
espaço).
Processamento moroso;
Data-driven (dependentes
da informação e do treino).
Classificação;
análise explorativa
de dados.
Quadro número 1 – Vantagens, desvantagens e principais utilidades dos diferentes
tipos de redes.
18
Capítulo III. Interpretação de resultados
1. Processo utilizado
O software STATISTICA com o módulo Neural Network possibilita uma série de opções
para solucionar qualquer problema que se pretenda, dentro das opções disponíveis
existem as seguintes: Regressão, Classificação, Análises Temporais e Análises de
Clusters. No presente caso, o problem type em causa é uma análise temporal, isto é,
dado um conjunto de variáveis dependentes predefinidas irar-se-á verificar qual a rede
que é mais indicada ou que melhor justifica a expansão urbana na cidade de Maputo
num período de 10 anos. Numa análise sucinta ao problem type escolhido podemos
afirmar que, no problema de tipo análise temporal, o objectivo é prever os valores da
variável ou variáveis a partir de um número de valores de variáveis iguais ou diferentes.
Nos casos mais comuns, uma única variável é envolvida, e um número de valores
sequenciais é usado para prever o próximo valor da mesma sequência (Bishop, 1995 cit
em STATISTICA Electronic Manual). Por outras palavras, no problema de tipo análise
temporal, em causa, o objectivo é prever futuramente o valor de uma variável que varie
no tempo, usando valores anteriores de outras variáveis.
2. Escolha dos métodos de análise
É possível através do software STATISTICA escolher entre dois métodos diferentes de
resolução do problema: o Intelligent Problem Solver e o Custom Network Designer.
Ambos diferem, na medida em que, o primeiro refere-se ao treino da rede de forma
automática, ou seja, caso não se saiba muito sobre o fenómeno de estudo em causa e não
se saiba qual a melhor rede que se adapta ao fenómeno, o primeiro método é ideal,
devido ao facto que, utiliza todas as combinações possíveis de redes existentes no
STATISTICA e escolhe aquela que possui o menor erro possível dentro das escolhidas.
O que este método faz é utilizar algoritmos de treino um determinado número de vezes
de forma a seleccionar a melhor rede. Este processo é puramente automático e é
indicado quando o utilizador não tem conhecimento do fenómeno, todavia, é necessário
determinar a variável dependente e as variáveis independentes antes de ser iniciado o
19
processo, bem como o número de neurónios a serem utilizados, estes processos vão
determinar o resultado final, quanto mais variáveis ou quanto mais neurónios melhor
serão os resultados obtidos devido ao facto que, o modelo terá maior capacidade e uma
maior taxa de aprendizagem. O funcionamento do Intelligent Problem Solver baseia-se
na utilização de algoritmos que usam as técnicas do estado da arte para determinar a
selecção dos inputs, o número de neurónios e outros factores chave para a resolução do
problema. A utilização do Custom Network Designer é a mais apropriada quando é
conhecido o fenómeno em estudo ou o problema é resolvido por utilizadores mais
experientes.
Depois de corrido o processo com o Intelligent Problem Solver e de ter sido escolhido a
rede que teve o menor erro é utilizada essa mesma rede no Custom Network Designer de
forma a comparar os resultados obtidos com os dois modelos, a vantagem neste ponto é
devido ao facto, que agora é sabido qual a rede que produziu o menor erro e que é mais
indicada para o fenómeno em estudo. No caso da opção Custom Network Designer é o
utilizador que escolhe o tipo de rede a ser utilizada, sabendo à partida que diferentes
redes originam diferentes resultados. As redes neuronais são como uma “black box”, ou
seja, não sabemos o que acontece quando o processo é iniciado, sabemos apenas que,
cada vez que o processo é corrido o resultado é diferente, isto acontece porque é um
processo não linear e as interacções intra e inter-escala das componentes do sistema são
aleatórias e sem ordem.
3. Configuração da Rede
Na configuração da rede neuronal pelo método Intelligent Problem Solver é possível
definir o número de neurónios a serem usados, o tipo de rede a ser utilizada e o conjunto
de informação de entrada a ser utilizada. Apesar de este método ser automático, é o
utilizador que define os passos e os parâmetros. No caso em estudo foram escolhidos
para o tipo de resolução de problema, todas as redes que aparecem por defeito no
STATISTICA (Multilayer Perceptrons, Radial Basis Function, Probabilistic Neural
Networks ou Generalized Regression Neural Network, Linear networks, Three layer
percepton e Four layer perceptron). Estes tipos de redes que aparecem por defeito são
devido ao facto que, tipicamente as variáveis previstas são contínuas, sendo então a
20
predição do problema de tipo análise temporal uma forma especializada de regressão,
no entanto, a análise temporal também pode ser calculada através de variáveis nominais
p.e classificação.
No caso da Custom Network Designer, as redes que aparecem por defeito para serem
seleccionadas são as mesmas que foram descritas anteriormente, não contemplando o
total das redes possíveis de serem utilizadas pelo STATISTICA, facto este mencionado
anteriormente. Neste método a diferença com o método anterior é que apenas podemos
escolher uma rede entre as opções dadas, no método anterior tanto poderíamos escolher
uma rede como o total de redes que aparecem por defeito para o problema em causa.
Para o presente caso, foi escolhida a rede Linear devido ao facto de ter obtido melhores
resultados com o método anterior.
4. Resultados obtidos
Para se analisar os resultados obtidos com ambos os processos recorreu-se às tabelas
que são geradas após a conclusão do treino da rede. No caso do método Intelligent
Problem Solver após o resultado final foi optado por treinar a mesma rede por duas
vezes, sabendo à partida que, ao procedermos a novo treino da rede, esta irá modificar o
próprio erro devido à capacidade de aprendizagem, tanto em força como em
conectividade. Seguidamente, nas tabelas número 1,2 e 3 são descritos os resultados
obtidos com este método.
21
Primeiro Treino da Rede
Perfil
Perf. Treino
Perf. Selecção
Te. Perfeição
Erro Tr.
Erro Sel.
Erro T. Treino
1 MLP s10 1:10-5-1:1 0.853035 0.861200 0.870871 0.443045
0.446946
0.452299
BP100,CG20,CG0b
2 MLP s10 2:20-5-6-1:1 0.899829 0.905502 0.907586 0.453202
0.456630
0.456856
BP100,CG20,CG0b
3 RBF s10 3:30-341-1:1 0.714103 0.760763 0.748445 1.429894
1.519421
1.499312
SS,KN,PI
4 Linear s10 3:30-1:1 0.755657 0.775236 0.774343 0.377337
0.386122
0.386836
PI
5 GRNN s10 3:30-8316-2-1:1
0.743727 0.779443 0.782880 1.490148
1.557777
1.569212
SS
Tabela número 1 – Resultados obtidos após o primeiro treino da rede com o método
Intelligent Problem Solver
Segundo Treino da Rede
Perfil
Perf. Treino
Perf. Selecção Te. Perfeição Erro Tr. Erro Sel. Erro T. Treino
1 MLP s10 1:10-4-1:1
0.898883 0.903440 0.901741 0.461780 0.464276 0.467550 BP100,CG20,CG0b
2 MLP s10 2:20-9-6-1:1
0.955062 0.958637 0.942413 0.497487 0.497072 0.493106 BP100,CG20,CG0b
3 RBF s10 3:30-341-1:1
0.727917 0.759958 0.744220 1.456851 1.520392 1.484484 SS,KN,PI
4 Linear s10 3:30-1:1
0.765015 0.771441 0.758689 0.382195 0.385320 0.377723 PI
5 GRNN s10 3:30-8316-2-1:1
0.752663 0.781008 0.767265 1.507335 1.565377 1.530028 SS
6 MLP s10 2:20-4-1:1
0.901299 0.906549 0.905668 0.452038 0.454571 0.455231 BP100,CG20,CG0b
7 MLP s10 2:20-6-2-1:1
0.768300 0.777366 0.764546 0.383936 0.388128 0.380797 BP100,CG20,CG22b
Tabela número 2 – Resultados obtidos após o segundo treino da rede com o método
Intelligent Problem Solver
22
Terceiro Treino da Rede
Perfil
Perf. Treino
Perf. Selecção
Te. Perfeição
Erro Tr. Erro Sel.
Erro T. Treino
1 MLP s10 1:10-4-1:1
0.912501 0.908120 0.919237 0.479332
0.482640
0.485935
BP100,CG20,CG0b
2 MLP s10 1:10-8-8-1:1
1.348445 1.346004 1.368571 0.857012
0.847865
0.858294
BP100,CG20,CG0b
3 RBF s10 3:30-341-1:1
0.715802 0.737074 0.763024 1.432677
1.471180
1.524522
SS,KN,PI
4 Linear s10 3:30-1:1
0.764481 0.753748 0.777903 0.381950
0.375687
0.387978
PI
5 GRNN s10 3:30-8316-2-1:1
0.751231 0.760029 0.784794 1.504579
1.517156
1.568749
SS
6 MLP s10 2:20-7-4-1:1
0.854754 0.855732 0.865970 0.459466
0.453348
0.461895
BP100,CG20,CG0b
Tabela número 3 – Resultados obtidos após o terceiro treino da rede com o método
Intelligent Problem Solver
5. Análise dos resultados
Numa análise aos resultados obtidos nos campos das tabelas anteriores, constata-se que
no caso do campo designado como “perfil” este é de extrema importância, devido ao
facto, que contém grande quantidade de informação associada, nomeadamente, o tipo de
rede, o número de variáveis input e output e o número de neurónios em cada camada.
No caso da tabela número 1, designadamente, no primeiro campo, este significa, que o
tipo de rede é o perceptão multicamada, com uma variável de input e uma variável de
output, e com três camadas com dez, cinco e uma unidade, respectivamente. Todavia,
para redes simples, o número de variáveis de input e output podem coincidir com o
número de neurónios de input e output em cada camada, mas este processo não é
sempre linear. A leitura deste campo é sempre feita da mesma forma que aqui foi
descrita. Nos campos “perfeição de treino”, “perfeição da selecção” e “teste de
perfeição” é indicada a performance da rede em relação ao treino, selecção e respectivos
testes de perfeição. Segundo o manual electrónico do STATISTICA não se deve dar
muita credibilidade ao campo “perfeição de treino”, porque este é quase sempre
23
correcto (indica sob aprendizagem). O campo “perfeição da selecção” deve ser evitado
para escolher o modelo a não ser que seja conjugado com o erro obtido para este mesmo
campo, devido ao facto, de que este mantém alguns dados que não foram usados para
treino ou selecção do modelo. Este campo irá depender do tipo de rede testada. Nos
campos referentes ao erro gerado pelo teste da rede, estes campos são optimizados por
algoritmos de treino baseados no erro médio quadrático, ou seja, este erro irá gerar uma
ligação ente o output observado e o esperado dando desta forma o resíduo. O rácio do
erro é interpretado de forma menos directa do que o cálculo da qualidade da rede, mas é
mais significativo para os algoritmos de treino (EMQ). O campo “treino” refere-se ao
algoritmo usado para treinar a rede, no caso da MLP o resultado obtido no primeiro
treino para o primeiro modelo foi (BP100,CG20,CG0b) isto significa que, foram
utilizadas 200 épocas de treino com o algoritmo Back Propagation seguido de 20
épocas com o algoritmo conjugate gradient descent, na qual, posteriormente o treino é
parado devido à sob aprendizagem e voltando ao início (retropropagação do erro). Nos
restantes algortimos utilizados, estes correspondem ao SS ((sub) Sample), KN (K-
Nearest Neighbour (Deviation Assignment)) e PI (Pseudo-Invert (Linear Least Squares
Optimization)). A escolha para a selecção da melhor rede teve por base as referências
dadas no manual do STATISTICA, sendo, então, utilizados os campos “selecção da
perfeição da rede” e “erro de selecção”.
Sabendo o significado de cada um dos campos gerados pela tabela bem como os
resultados, podemos constatar que, no caso da tabela número 1 a rede que produziu os
melhores resultados foi a rede Linear, com uma perfeição de selecção de 0.775236 e um
erro de selecção de 0.386122, posteriormente, foi treinada a rede novamente, obtendo a
rede linear novamente o melhor resultado com uma perfeição de selecção de 0.771441 e
um erro de selecção de 0.385320. Por fim, foi efectuado o último treino à rede, obtendo
a rede linear o melhor resultado e com valores de perfeição (0.753748) e de erro
(0.375687) menores aos obtidos anteriormente, todavia, no caso da selecção da
perfeição da rede, a rede RBF obteve os melhores resultados mas com um erro médio
quadrático muito superior à rede Linear, originando então a selecção da rede Linear
devido à maior aptidão/preponderância para o estudo em causa. Uma outra ilação que
podemos retirar, é que quanto mais vezes a rede for treinada, maior será a sua
capacidade de aprendizagem produzindo então um melhor resultado.
24
Sabendo, então, qual a rede com maior aptidão para a resolução do problema em causa
foi seleccionada apenas esta rede e calculada de forma independente através do Custom
Network Designer. O processo de análise dos valores obtidos foi idêntico ao utilizado
anteriormente bem como quantas vezes foi treinada a rede (3 vezes). Na tabela número
4 é demonstrado os resultados obtidos. Neste ponto, é de destacar a selecção de
“perfeição da rede” em que os valores obtidos são inferiores aos registados com o
método Intelligent Problem Solver, isto é, ao treinarmos apenas esta rede os valores de
perfeição serão inferiores aos obtidos anteriormente, todavia, nos campos referentes ao
erro, este é superior ao obtido com o método anterior. Na restante informação fornecida,
o campo “input” é referente ao número de variáveis dependentes que entraram na
equação e o campo “treino” é indicado o algoritmo de treino que a rede utilizou, no
presente caso, foi utilizado o algoritmo PI (Pseudo-Invert (Linear Least Squares
Optimization)).
A vantagem deste método é que apenas é treinada a rede que se pretende ou que irá
produzir os melhores resultados, no entanto, não é possível compará-la com outras redes
de forma a determinar qual a que melhor se ajusta ao fenómeno em estudo, ou seja, é
definido a priori que a rede escolhida é a que melhor se adequa.
Treino Perfil Treino de
perfeição
Selecção
de
perfeiçao
Teste de
Perfeição
Erro de
treino
Erro de
selecção
Erro de
teste
Treino Input Neurónios
escondidos
1
Neurónios
escondidos
2
1º
Linear s10 3:30-1:1
0.707376 0.689290 0.696992 0.436303 0.445730 0.440545 PI 3
0 0
2º
Linear s10 3:30-1:1
0.712790 0.698917 0.678219 0.433696 0.441407 0.449801 PI 3
0 0
3º
Linear s10 3:30-1:1
0.707376 0.695788 0.676294 0.435238 0.440246 0.448549 PI 3
0 0
Tabela número 4 – Resultados dos três treinos realizados pelo método Custom Network
Designer
25
Bibliografia
Capinha, C., Melo, R. (2007) – Integração de redes neuronais artificiais e SIG para a
modelação de habitats potenciais no PNSAC. Seminário de Geografia, variante
Cartografia e SIG, Universidade de Lisboa. 119pp
Recursos Electrónicos
http://www.statsoft.nl/uk/textbook/stneunet.html (consultado dia 10 de Fevereiro, às
13:45h)
http://www.linfo.org/kernel.html (consultado dia 4 de Março, às 17:07h)
http://pt.wikipedia.org/wiki/Vi%C3%A9s (consultado dia 4 de Março, às 18:59h)