4.3 Extreme Learning Machine
4.3.6 Dicas para um Bom Desempenho da Rede ELM
O projeto de uma rede neural envolve a especificação de diversos itens, cujos valores influenciam consideravelmente funcionamento do algoritmo. A seguir especificaremos a lista destes itens juntamente com as faixas de valores que os mesmos podem assumir:
Dimensão do vetor de Entrada (p): Este item pode assumir em tese valores entre 1 e ∞. Po- rém, existe um limite superior que depende da aplicação de interesse e do custo de se medir (observar) as variáveis xj. É importante ter em mente que um valor alto para p não indica
necessariamente um melhor desempenho para a rede neural, pois pode haver redundância no processo de medição. Neste caso, uma certa medida é, na verdade, a combinação linear de outras medidas, podendo ser descartada sem prejuízo ao desempenho da rede. Quando é muito caro, ou até impossível, medir um elevado número de variáveis xj, deve-se escolher
aquelas que o especialista da área considera como mais relevante ou representativas para o problema. O ideal seria que cada variável xj, j = 1,..., p, "carregasse"informação que
somente ela contivesse. Do ponto de vista estatístico, isto equivale a dizer que as variáveis são independentes ou não-correlacionadas entre si.
Dimensão do vetor de saída (m): Assim como o primeiro item, este também depende da apli- cação. Se o interesse está em problemas de aproximação de funções, y = F(x), o número
de neurônios deve refletir diretamente a quantidades de funções de saída desejadas (ou seja, a dimensão de y).
Se o interesse está em problemas de classificação de padrões, a coisa muda um pouco de figura. Neste caso, o número de neurônios deve codificar o número de classes desejadas. É importante perceber que estamos chamando as classes às quais pertencem os vetores de dados de uma forma bastante genérica: classe 1, classe 2, ..., etc. Contudo, à cada classe pode estar associado um rótulo (e.g. classe dos empregados, classe dos desempregados, classe dos trabalhadores informais, etc.), cujo significado depende da interpretação que o especialista na aplicação dá a cada uma delas. Estes rótulos normalmente não estão na forma numérica, de modo que para serem utilizados para treinar a rede ELM eles devem ser convertidos para a forma numérica. A este procedimento dá-se o nome de codificação da saída da rede.
A codificação mais comum define como vetor de saídas desejadas um vetor binário de comprimento unitário; ou seja, apenas uma componente deste vetor terá o valor “1”, enquanto as outras terão o valor “0” (ou −1). A dimensão do vetor de saídas desejadas corresponde ao número de classes do problema em questão. Usando esta codificação define-se automaticamente um neurônio de saída para cada classe. Por exemplo, se existem três classes possíveis, existirão três neurônios de saída, cada um representando uma classe. Como um vetor de entrada não pode pertencer a mais de uma classe ao mesmo tempo, o vetor de saídas desejadas terá valor 1 (um) na componente correspondente à classe deste vetor, e 0 (ou −1) para as outras componentes. Por exemplo, se o vetor de entrada x(n) pertence à classe 1, então seu vetor de saídas desejadas é d(n) = [1 0 0]T.
Se o vetor x(n) pertence à classe 2, então seu vetor de saídas desejadas é d(n) = [0 1 0]T
e assim por diante para cada exemplo de treinamento.
Número de neurônios na camada escondida (q): Encontrar o número ideal de neurônios da camada escondida não é uma tarefa fácil porque depende de uma série de fatores, muitos dos quais não temos controle total. Entre os fatores mais importantes podemos destacar os seguintes:
1. Quantidade de dados disponíveis para treinar e testar a rede.
2. Qualidade dos dados disponíveis (ruidosos, com elementos faltantes, etc.) 3. Número de parâmetros ajustáveis (pesos e limiares) da rede.
O valor de q é geralmente encontrado por tentativa-e-erro, em função da capacidade de generalizaçãoda rede (ver definição logo abaixo). Grosso modo, esta propriedade avalia o desempenho da rede neural ante situações não-previstas, ou seja, que resposta ela dá quando novos dados de entrada forem apresentados. Se muitos neurônios existirem na camada escondida, o desempenho será muito bom para os dados de treinamento, mas tende a ser ruim para os novos dados. Se existirem poucos neurônios, o desempenho será ruim também para os dados de treinamento. O valor ideal é aquele que permite atingir as especificações de desempenho adequadas tanto para os dados de treinamento, quanto para os novos dados.
Existem algumas fórmulas heurísticas (ad hoc) que sugerem valores para o número de neurônios na camada escondida da rede ELM, porém estas regras devem ser usadas apenas para dar um valor inicial para q. O projetista deve sempre treinar e testar várias vezes uma dada rede ELM para diferentes valores de q, a fim de se certificar que a rede neural generaliza bem para dados novos, ou seja, não usados durante a fase de treinamento. Dentre a regras heurísticas citamos a seguir três, que são comumente encontradas na literatura especializada:
Regra do valor médio - De acordo com esta fórmula o número de neurônios da camada escondida é igual ao valor médio do número de entradas e o número de saídas da rede, ou seja:
q= p+ M
2 (4.29)
Regra da raiz quadrada - De acordo com esta fórmula o número de neurônios da camada escondida é igual a raiz quadrada do produto do número de entradas pelo número de saídas da rede, ou seja:
q=pp· M (4.30)
Regra de Kolmogorov De acordo com esta fórmula o número de neurônios da camada escondida é igual a duas vezes o número de entradas da rede adicionado de 1, ou seja:
q= 2p + 1 (4.31)
Perceba que as regras só levam em consideração características da rede em si, como número de entradas e número de saídas, desprezando informações úteis, tais como número de dados disponíveis para treinar/testar a rede e o erro de generalização máximo aceitável.
Uma regra que define um valor inferior para q levando em consideração o número de dados de treinamento/teste é dada por:
q≥ N− 1
p+ 2 (4.32)
A regra geral que se deve sempre ter em mente é a seguinte: devemos sempre ter muito mais dados que parâmetros ajustáveis. Assim, se o número total de parâmetros (pesos + limiares) da rede é dado por Z = (p + 1) · q + (q + 1) · M, então devemos sempre tentar
obedecer à seguinte relação:
N≫ Z (4.33)
Um refinamento da Equação (4.33), proposto por Baum & Haussler (1991), sugere que a relação entre o número total de parâmetros da rede (Z) e a quantidade de dados disponíveis (N) deve obedecer à seguinte relação:
N> Z
ε (4.34)
em que ε > 0 é o erro percentual máximo aceitável durante o teste da rede; ou seja, se o erro aceitável é 10%, então ε = 0,1. Para o desenvolvimento desta equação, os autores assumem que o erro percentual durante o treinamento não deverá ser maior que ε/2. Para exemplificar, assumindo que ε = 0,1, então temos que N > 10Z. Isto significa que para uma rede de Z parâmetros ajustáveis, devemos ter uma quantidade dez vezes maior de padrões de treinamento.
Note que se substituirmos Z na Equação (4.34) e isolarmos para q, chegaremos à seguinte expressão que fornece o valor aproximado do número de neurônios na camada oculta: q≈ εN − M p+ M + 1 (4.35) em que ⌈u⌉ denota o menor inteiro maior que u.
A Equação (4.35) é bastante completa, visto que leva em consideração não só aspectos estruturais da rede ELM (número de entradas e de saídas), mas também o erro máximo tolerado para teste e o número de dados disponíveis. Portanto, seu uso é bastante recomen- dado.
Funções de ativação (φ): Em tese, cada neurônio pode ter a sua própria função de ativação, diferente de todos os outros neurônios. Contudo, para simplificar o projeto da rede é comum adotar a mesma para todos os neurônios. Em geral, escolhe-se a função logística
ou a tangente hiperbólica para os neurônios da camada escondida. Aquela que for escolhida para estes neurônios será adotada também para os neurônios da camada de saída. Em algumas aplicações é comum adotar uma função de ativação linear para os neurônios da camada de saída, ou seja, φk(uk(n)) = Ck· uk(n), onde Cké uma constante (ganho) positiva.
Neste caso, tem-se que φ′
k(uk(n)) = Ck. O fato de φk(uk(n)) ser linear não altera o poder
computacional da rede, o que devemos lembrar sempre é que os neurônios da camada escondida devem ter uma função de ativação não-linear, obrigatoriamente.
Avaliação de Desempenho: O desempenhado da rede ELM é, em geral, avaliada com base nos valores do erro quadrático médio (εteste) por padrão de teste:
εteste= 1 N N
∑
t=1 ε(n) = 1 2N N∑
t=1 n∑
k=1 e2k(n) (4.36)em que ek(n) = dk(n) − yk(n) é o erro do k-ésimo neurônio de saída na iteração t.
Por outro lado, quando se utiliza a rede para classificar padrões, o desempenho da mesma é avaliado pela taxa de acerto na classificação, definida como:
Pacerto=
Número de vetores classificados corretamente
Número de total de vetores (4.37)
Outras métricas de avaliação do desempenho da rede ELM em tarefas de reconhecimento de padrões são a matriz de confusão e os valores de sensibilidade e especificidade para o caso de problemas de classificação binária.
Para validar a rede treinada, ou seja, dizer que ela está apta para ser utilizada, é importante testar a sua resposta (saída) para dados de entrada diferentes daqueles vistos durante o treinamento. Estes novos dados podem ser obtidos através de novas medições, o que nem sempre é viável. Durante o teste os pesos de saída da rede, em geral, não são ajustados. Para contornar este obstáculo, o procedimento mais comum consiste em treinar a rede apenas com uma parte dos dados selecionados aleatoriamente, guardando a parte restante para ser usada para testar o desempenho da rede. Assim, ter-se-á dois conjuntos de dados, um para treinamento, de tamanho N1< N, e outro de tamanho N2= N − N1. Em geral,
escolhe-se N1tal que a razão N1/N esteja na faixa de 0, 75 a 0, 90.
Em outras palavras, se N1/N ≈ 0, 75 tem-se que 75% dos vetores de dados devem ser
selecionados aleatoriamente, sem reposição, para serem utilizados durante o treinamento. Os 25% restantes serão usados para testar a rede. O valor de εteste calculado com os dados
de teste é chamado de erro de generalização da rede, pois testa a capacidade da mesma em "extrapolar"o conhecimento aprendido durante o treinamento para novas situações. É
importante ressaltar que, geralmente, o erro de generalização é maior do que o erro de treinamento, pois trata-se de um novo conjunto de dados.