Estou tentando implementar o documento Image Style Transfer usando redes neurais convolucionais . Na seção 2 - Representações de imagens profundas, os autores mencionam a seguinte técnica de normalização de peso:
Normalizamos a rede dimensionando os pesos de forma que a ativação média de cada filtro convolucional sobre imagens e posições seja igual a um. Esse redimensionamento pode ser feito para a rede VGG sem alterar sua saída, pois contém apenas funções de ativação linear de retificação e nenhuma normalização ou agrupamento nos mapas de recursos.
De uma pergunta relacionada feita anteriormente, descobri que os autores estão usando os valores de ativação de imagens de validação do ILSVRC definidas para normalizar os pesos.
Eu queria conhecer a formulação matemática de realizar tal normalização, já que eu mesmo não conseguia criar uma.
De acordo com minha compreensão do problema, tenho um mapa de ativação (X) e, correspondente a ele, tenho mapas de ativação K da camada anterior (L) e uma matriz de peso (W) de dimensões 3x3xK, de modo que quando a camada L é convoluída com W produz X. Agora, depois de capturar os valores de ativação de todos os neurônios na camada L para todas as imagens no conjunto de validação, o objetivo é fazer com que a média de todos os neurônios em X em todas as imagens no conjunto de validação seja igual a 1 ajustando de alguma forma W.
Não consegui descobrir o que devo fazer com o W para que isso aconteça.
Além disso, eu queria saber se isso deve ser executado em cascata (sequencial) normalizando primeiro os pesos da camada inicial e depois usando os novos mapas de recursos para normalizar os pesos das camadas à frente ou independentemente para cada mapa de ativação, os valores da camada anterior como os pesos pré-treinados originais para cada mapa de ativação?