¿Qué significa el tamaño del grano?

13

Cuando las personas hablan de redes neuronales, ¿qué quieren decir cuando dicen "tamaño de núcleo"? Los núcleos son funciones de similitud, pero ¿qué dice eso sobre el tamaño del núcleo?

quil
fuente
1
En un contexto de CNN, las personas a veces usan el "tamaño del núcleo" para referirse al tamaño de un filtro convolucional, y del mismo modo, un "núcleo" es el filtro mismo.
Sycorax dice Reinstate Monica

Respuestas:

18

Las redes neuronales profundas, más concretamente las redes neuronales convolucionales (CNN), son básicamente una pila de capas que se definen por la acción de varios filtros en la entrada. Esos filtros generalmente se llaman núcleos.

Por ejemplo, los núcleos en la capa convolucional son los filtros convolucionales. En realidad no se realiza convolución, sino una correlación cruzada. El tamaño del núcleo aquí se refiere al ancho y la altura de la máscara de filtro.

La capa de agrupación máxima, por ejemplo, devuelve el píxel con el valor máximo de un conjunto de píxeles dentro de una máscara (kernel). Ese núcleo es barrido a través de la entrada, submuestreando.

Entonces, nada que ver con el concepto de núcleos en máquinas de vectores de soporte o redes de regularización. Puede pensar en ellos como extractores de funciones.

jpmuc
fuente
18

ingrese la descripción de la imagen aquí

Como puede ver arriba, el núcleo, también conocido como matriz del núcleo es la función intermedia y su tamaño, aquí 3, es el tamaño del núcleo (donde el ancho del núcleo es igual a la altura del núcleo).

Tenga en cuenta que el kernel no necesariamente debe ser simétrico, y podemos verificarlo citando este texto del documento de Conv2D en Tensorflow :

kernel_size: un entero o tupla / lista de 2 enteros, que especifica la altura y el ancho de la ventana de convolución 2D. Puede ser un único entero para especificar el mismo valor para todas las dimensiones espaciales.

Pero generalmente, hacemos que el ancho y la altura sean iguales, y si no, el tamaño del kernel debería ser una tupla de 2. El kernel puede ser asimétrico, por ejemplo, en Conv1D (vea este ejemplo , y el tamaño del kernel puede ser más de 2 números, por ejemplo (4, 4, 3) en el ejemplo debajo de Conv3D :

ingrese la descripción de la imagen aquí

Los increíbles gifs vienen de aquí y de aquí .

Lerner Zhang
fuente
¿Es necesario que el tamaño del núcleo tenga que ser simétrico?
Ben
1
@Ben No, no es necesario, por lo que el tamaño del núcleo puede ser una tupla de 1, 2 o 3 números.
Lerner Zhang