Después de leer varios ejemplos de CNNs no parece que el kernel utilizado para la convolución esté invertido. ¿Alguien puede explicar por qué?
Respuestas
¿Demasiados anuncios?A veces sí, a veces no. Por ejemplo, si miras http://deeplearning.net/software/theano/library/tensor/nnet/conv.html Verás algunos métodos que voltean el núcleo, y otros que no. Pero para ser matemáticamente correcto, debería voltearse (el inconveniente es que podría ser menos intuitivo).
Otra fuente se hace eco de ello: http://www.slideshare.net/GauravMittal68/convolutional-neural-networks-cnn
El "aprendizaje profundo" no es el mejor campo para las definiciones rigurosas.
PARA SU INFORMACIÓN:
Complementando un poco:
A veces leen/almacenan la memoria en orden inverso.
No sé por qué han elegido la terminología de "convolución", aunque es claramente una corelación cruzada.
Sin embargo, no parece importar si se voltea o no, porque los valores se ajustan a través del proceso de entrenamiento. Dicho esto, intuitivamente la disposición de los pesos se volteará y los pesos finales serán los mismos.