Project DelphiTensors Workshop

La convolución no es la correlación

⚠️ Un detalle que pilla a casi todo el mundo. La convolución verdadera voltea el kernel. La correlación no.

np.correlate(x, k, 'valid') # [-2. -2. -2.] np.convolve(x, k[::-1], 'valid') # [-2. -2. -2.] — lo mismo, con k volteado

Lo que las librerías de aprendizaje profundo llaman «convolución» es en realidad correlación. No hay diferencia práctica, porque la red aprende el kernel, pero conviene saber que los nombres son inconsistentes.

Con un kernel simétrico la distinción desaparece por completo, y por eso pasa desapercibida.