¿Alguien puede explicar qué es una capa de agrupación máxima global y por qué y cuándo la usamos para entrenar una red neuronal? ¿Tienen alguna ventaja sobre la capa de agrupación máxima ordinaria?
¿Alguien puede explicar qué es una capa de agrupación máxima global y por qué y cuándo la usamos para entrenar una red neuronal? ¿Tienen alguna ventaja sobre la capa de agrupación máxima ordinaria?
Agrupación máxima global = capa de agrupación máxima ordinaria con tamaño de agrupación igual al tamaño de la entrada (menos el tamaño del filtro + 1, para ser precisos). Puedes ver que MaxPooling1D
toma un pool_length
argumento, mientras GlobalMaxPooling1D
que no.
Por ejemplo, si la entrada de la capa de agrupación máxima es , la agrupación máxima global produce , mientras que la capa de agrupación máxima normal con tamaño de agrupación equivale a 3 salidas (suponiendo zancada = 1).
Esto se puede ver en el código :
class GlobalMaxPooling1D(_GlobalPooling1D):
"""Global max pooling operation for temporal data.
# Input shape
3D tensor with shape: `(samples, steps, features)`.
# Output shape
2D tensor with shape: `(samples, features)`.
"""
def call(self, x, mask=None):
return K.max(x, axis=1)
En algunos dominios, como el procesamiento del lenguaje natural, es común utilizar la agrupación máxima global. En algunos otros dominios, como la visión por computadora, es común usar una agrupación máxima que no es global.
Como se describe en este documento que propuso la agrupación promedio global (GAP):
Las redes neuronales convolucionales convencionales realizan convolución en las capas inferiores de la red. Para la clasificación, los mapas de características de la última capa convolucional se vectorizan y alimentan en capas completamente conectadas seguidas de una capa de regresión logística softmax. Esta estructura une la estructura convolucional con clasificadores tradicionales de redes neuronales. Trata las capas convolucionales como extractores de características, y la característica resultante se clasifica de manera tradicional.
Sin embargo, las capas completamente conectadas son propensas a un sobreajuste, lo que dificulta la capacidad de generalización de la red general. Hinton et al. Proponen el abandono como un regularizador que establece aleatoriamente la mitad de las activaciones en las capas completamente conectadas a cero durante el entrenamiento. Ha mejorado la capacidad de generalización y evita en gran medida el sobreajuste.
En este documento, proponemos otra estrategia llamada agrupación promedio global para reemplazar las capas tradicionales totalmente conectadas en CNN. La idea es generar un mapa de características para cada categoría correspondiente de la tarea de clasificación en la última capa mlpconv. En lugar de agregar capas completamente conectadas en la parte superior de los mapas de características, tomamos el promedio de cada mapa de características, y el vector resultante se alimenta directamente a la capa softmax. Una ventaja de la agrupación promedio global sobre las capas totalmente conectadas es que es más nativa de la estructura de convolución al imponer correspondencias entre mapas de características y categorías. Por lo tanto, los mapas de características se pueden interpretar fácilmente como mapas de confianza de categorías. Otra ventaja es que no hay ningún parámetro para optimizar en la agrupación promedio global, por lo que se evita el sobreajuste en esta capa. Además la agrupación promedio global resume la información espacial, por lo tanto, es más robusta la traducción espacial de la entrada. Podemos ver la agrupación promedio global como un regularizador estructural que impone explícitamente que los mapas de características sean mapas de confianza de conceptos (categorías). Esto es posible gracias a las capas mlpconv, ya que hacen una mejor aproximación a los mapas de confianza que los GLM.
Editar: como lo sugiere @MaxLawnboy, aquí hay otro artículo sobre el mismo tema .
fuente