Como posso calcular o número de parâmetros em uma rede neural artificial para calcular sua AIC?
classifier.summary()
da sklear
classe
Como posso calcular o número de parâmetros em uma rede neural artificial para calcular sua AIC?
classifier.summary()
da sklear
classe
Respostas:
Toda conexão aprendida em uma rede de feedforward é um parâmetro. Aqui está uma imagem de uma rede genérica da Wikipedia:
Essa rede está totalmente conectada, embora as redes não precisem estar (por exemplo, projetar uma rede com campos receptivos melhora a detecção de bordas nas imagens). Com uma RNA totalmente conectada, o número de conexões é simplesmente a soma do produto do número de nós nas camadas conectadas. Na imagem acima, isto é . Essa imagem não mostra nenhum nó de viés, mas muitas RNAs os possuem; Nesse caso, inclua o nó de polarização no total dessa camada. De maneira mais geral (por exemplo, se o seu RNA não estiver totalmente conectado), você pode simplesmente contar as conexões.
A rede neural é apenas uma função das funções das funções ... (como ditado pela arquitetura do modelo). Se a função resultante não puder ser simplificada, o número total de parâmetros (soma de todo o número de parâmetros de cada nó) no modelo é o número desejado para o cálculo da AIC.
Para uma rede totalmente conectada ao MLP, você pode usar o seguinte código (Python):
def total_param(l=[]):
s=0
for i in range(len(l)-1):
s=s+l[i]*l[i+1]+l[i+1]
return s
se você tiver uma rede com a seguinte configuração de camada
input: 435
hidden: 166
hidden: 103
hidden: 64
output: 15
você acabou de chamar a função com
total_param([435,166,103,64,15])
97208