Estou usando dois perceptrons de múltiplas camadas de feedforward de múltiplas camadas (MLPs). Com os mesmos dados de entrada (14 neurônios de entrada), faço uma classificação (verdadeiro / falso) e uma regressão (se verdadeiro, "quanto") ¹. Até agora, usei preguiçosamente o Matlabs patternnet e fitnet , respectivamente. Preguiçosamente, porque não tomei tempo para realmente entender o que está acontecendo - e deveria. Além disso, preciso fazer a transição para uma biblioteca OSS (provavelmente da FANN), que provavelmente exigirá mais configurações manuais do que a Matlab NN Toolbox. Portanto, estou tentando entender com mais precisão o que está acontecendo.
As redes criadas patternnet
e fitnet
são quase idênticas: 14 neurônios de entrada, 11 neurônios ocultos, 1 neurônio alvo (2 para a fitnet
, mas apenas 1 informação). Mas eles não são completamente idênticos. As diferenças por padrão são:
- O Matlab usa uma retropropagação em gradiente conjugado em escala para a rede de classificação (
patternnet
) e retropropagação de Levenberg-Marquardt para a rede de regressão (fitnet
). - A rede de classificação usa uma função de transferência sigmóide tangente hiperbólica entre a camada de entrada e oculta e entre a camada oculta e a saída. A rede de regressão (
fitnet
) usa a função de transferência sigmóide tangente hiperbólica entre a camada de entrada e oculta e uma função de transferência puramente linear entre a camada oculta e a saída.
Essas diferenças deveriam ser?
Que tipo de funções de retropropagação são ideais para classificação e que tipo de regressão e por quê?
Que tipo de funções de transferência são ideais para classificação e que tipo de regressão e por quê?
¹ A classificação é para "nublado" ou "sem nuvens" (2 destinos complementares), a regressão é para quantificar "quanta nuvem" (1 destino).