Reservoir Computing com PSO
5.1. Otimização de Reservoir Computing com PSO
O método utilizado será apresentado a seguir. Este trabalho tem o objetivo de aplicar o PSO na tarefa de buscar os parâmetros globais, a topologia da rede e os pesos de um Reservoir Computing na previsão de séries temporais. Será descrito como as soluções foram representadas, de que forma a função de aptidão foi calculada, o algoritmo de otimização utilizado e os parâmetros envolvidos. A otimização é adaptada do método proposto por Ferreira, o RCDESIGN [Fer11]. Ao invés de Algoritmos Genéticos, o PSO foi utilizado como algoritmo de otimização. O ESN foi utilizado como método de Reservoir Computing.
5.1.1. Representação das Soluções
No PSO, existem os conceitos de partícula (uma solução individual) e população de partículas (um conjunto de soluções ou enxame). Ao utilizar esse algoritmo, é necessário definir a representação dessa solução.
41 A representação utilizada por Ferreira [Fer11] foi adaptada para a inclusão do PSO. Cada partícula é representada por um vetor . A notação denota a dimensão j da partícula . A seguir, cada uma dessas dimensões é descrita.
(η) – Número de nodos no reservoir, inteiro entre 50 e 200. Esse parâmetro define o tamanho das matrizes de pesos. Ferreira [Fer11] indica que essa amplitude de valores constrói reservoirs com tamanho suficiente para obtenção de bons resultados e não grande o bastante para que o processo seja demorado.
– Conexão entre a camada de entrada e a camada de saída. Número real entre 0 e 1. Se maior que 0.5, há conexão, se menor, não há.
– Conexão entre o bias e a camada de saída. Número real entre 0 e 1. Se maior que 0.5, há conexão, se menor, não há.
– Conexão de realimentação na camada de saída. Número real entre 0 e 1. Se maior que 0.5, há conexão, se menor, não há.
– Conexão entre o bias e a camada de reservoir. Número real entre 0 e 1. Se maior que 0.5, há conexão, se menor, não há.
– Conexão entre a camada de saída e a camada de reservoir. Número real entre 0 e 1. Se maior que 0.5, há conexão, se menor, não há.
– Função de ativação dos neurônios. Se 1, tangente hiperbólica, se 2, sigmóide.
– Função de treinamento do readout. Se 1, pseudo-inversa [LJ09], se 2,
ridge-regress [Bis06].
– Leak rate. Número real entre 0,1 e 1.
– Parâmetro de regularização das funções de treinamento. Número real entre 10-8 e 10-1.
... ( ) – Pesos das camadas de reservoir ( ), entrada ( ), bias ( ) e realimentação ( ). Número real entre 0,1 e 1.
O tamanho do vetor é variável. Isso acontece porque as últimas posições dependem do número de nodos no reservoir, definido pela dimensão j = 1. O intervalo [50; 200] foi definido empiricamente, com a intenção de criar reservoirs grande o suficiente para computar os dados e com tamanho viável para realizar as
42 simulações. Se η = 50, o vetor tem 2660 posições. Caso η = 200, o vetor tem tamanho máximo de 40610. A divisão do vetor levando em consideração os pesos do reservoir pode ser observada na Figura 7.
Figura 7. Divisão conceitual de si.
Leak rate é um parâmetro que pode ser adicionado aos neurônios,
possibilitando o ajuste da dinâmica de RC. Se o leak rate é escolhido adequadamente, a dinâmica do sistema pode ser ajustada para coincidir com a escala de tempo da entrada, resultando em melhor desempenho [ASS08]. O parâmetro de regularização corresponde a um ruído que pode ser adicionado às respostas do reservoir.
5.1.2. Função de Aptidão
Para que o algoritmo do PSO guie as partículas para os valores ótimos no espaço de busca, é necessário definir uma boa função de aptidão, ou fitness. A função de aptidão resulta em um valor que representa o desempenho de determinada partícula
43 no enxame. O objetivo do algoritmo é maximizar ou minimizar esse valor, dependendo do que a função representa.
Na otimização de Reservoir Computing com PSO, foi utilizada como medida de desempenho a função de aptidão do RCDESIGN [Fer11]. Essa função de aptidão é baseada no erro médio quadrático dos sistemas criados (MSE, do inglês Mean
Square Error). Devido ao fenômeno de overfitting, comum em arquiteturas de Redes
Neurais Artificiais, ela leva em consideração não somente o MSE do sistema criado no conjunto de treinamento, mas também no de validação. A equação 5.1 mostra a função de fitness utilizada. O MSE é calculado de acordo com a equação 5.2.
(5.1)
(5.2)
Na equação 5.2, P é o número de padrões no conjunto de dados, N é o número de unidades de saída da rede e e são respectivamente o valor desejado de saída e o valor calculado pelo i-ésimo neurônio da camada de saída.
5.1.3. Algoritmo de Otimização
O algoritmo da otimização de Reservoir Computing com PSO é apresentado a seguir, no Algoritmo 2. Assim como no caso da função de aptidão, o algoritmo é baseado no RCDESIGN [Fer11]. É importante salientar que neste trabalho, para cada base de dados, três simulações numéricas são realizadas. Uma usando o algoritmo padrão do PSO e outras duas utilizando as extensões selecionadas: EPUS-PSO e APSO.
O treinamento das redes foi realizado com o método de validação cruzada (k-
fold cross-validation). Na utilização do método da validação cruzada, o número de
partições é um parâmetro importante a ser definido. Um valor pequeno obtém resultados mais rápidos, porém com erros maiores. Por outro lado, um valor muito grande pode demorar a apresentar resultados, em contrapartida a apresentar erros
̅̅̅̅̅̅ ‖ ̅̅̅̅̅̅ ̅̅̅̅̅̅ ‖
∑ ∑( )
44 menores. A validação cruzada com 10 partições tem se mostrado um valor adequado para a maioria dos problemas [WF00].
Algoritmo 2: Otimização de Reservoir Computing com PSO
Entrada: Base de Dados, Tamanho do Enxame = s, Número de Iterações = iterMax, Abordagem (PSO, EPUS-PSO ou APSO)
Selecione Base de Dados Selecione Abordagem
Inicialize enxame de tamanho s com partículas posicionadas aleatoriamente no espaço de busca
enquanto (iteração ≤ iterMax)
Crie RC de acordo com posição da partícula
enquanto fold ≤ 10 (validação cruzada) faça
Crie conjuntos de treinamento (nove partições) e conjunto de validação (uma partição)
Simule rede com conjunto de treinamento
Treine pesos da camada linear de saída (readout) Calcule erros no conjunto de treinamento
fim enquanto
Calcule função de aptidão
Atualize posição e velocidade das partículas de acordo com Abordagem
fim enquanto
Retorne a melhor solução
Crie RC de acordo com melhor solução Calcule os erros no conjunto de teste
5.1.4. Parâmetros
No PSO, bem como em suas extensões, diversos parâmetros devem ser definidos. Os valores desses parâmetros representam um importante fator para o desempenho do algoritmo. Entretanto, similarmente como ocorre na utilização de redes neurais, não há regras claras sobre quais valores esses parâmetros devem assumir.
45 Os parâmetros do PSO neste trabalho foram definidos segundo processo empírico, de tentativa e erro. Diversos conjuntos de parâmetros foram testados aleatoriamente, de acordo com o bom senso do projetista. Os testes também levaram em consideração valores de parâmetros que são consagrados na literatura, como o termo de momentum inicial. Foi selecionada a configuração de parâmetros que apresentou melhor desempenho nos testes iniciais. Abaixo, os parâmetros utilizados.
Tamanho do enxame: 50; Número de iterações: 20;
Termo de momentum inicial: 0.9;
Coeficientes de aceleração global e local: 2.05.
No caso específico do algoritmo do EPUS-PSO, o tamanho do enxame e o número de iterações são variáveis. Nesse caso, os valores iniciais para esses parâmetros foram 60 e 20, respectivamente.
Outro ponto importante é a amplitude dos valores dos pesos. Foi detectado empiricamente que em algumas bases de dados os resultados eram melhores com um intervalo menor do que [-1; 1]. Contudo, esses continuaram a serem os valores máximos para todas as bases.