Número de parâmetros em uma rede neural artificial para AIC


Respostas:


14

Toda conexão aprendida em uma rede de feedforward é um parâmetro. Aqui está uma imagem de uma rede genérica da Wikipedia:

insira a descrição da imagem aqui

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. (3×4)+(4×2)=20


As conexões podem ser não exclusivas (consulte ieeexplore.ieee.org/document/714176 ). Portanto, não há problema em simplesmente contar as conexões? Talvez devêssemos distinguir entre parâmetro e hiperparâmetro?
Funkwecker 24/07/19

O número total de conexões seria 26 se nós de viés fossem incluídos.
agcala 9/01

0

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.


0

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.