¿Hay algo que garantice que los filtros convolucionales no terminen igual?
Entrené un modelo simple para reconocer números escritos a mano del conjunto de datos mnist. Aquí lo tienes:
model = Sequential([
Conv2D(filters=1, kernel_size=(3,1), padding='valid', strides=1, input_shape=(28, 28, 1)),
Flatten(),
Dense(10, activation='softmax')])
Experimenté variando el número de filtros para la capa convolucional, mientras mantenía constantes otros parámetros (tasa de aprendizaje = 0,0001, número de episodios = 2000, tamaño del lote de entrenamiento = 512). Usé 1, 2, 4, 8 y 16 filtros, y la precisión del modelo fue del 92-93% para cada uno de ellos.
Según tengo entendido, durante el entrenamiento, los filtros pueden aprender a reconocer varios tipos de bordes en la imagen (por ejemplo, vertical, horizontal, redondo). Este experimento me hizo preguntarme si alguno de los filtros termina siendo duplicado, con pesos iguales o similares. ¿Hay algo que les impida eso?
Respuestas
No, nada impide que los pesos sean diferentes. En la práctica, aunque casi siempre terminan siendo diferentes porque hace que el modelo sea más expresivo (es decir, más poderoso), por lo que el descenso de gradientes aprende a hacer eso. Si un modelo tiene$n$ características, pero 2 de ellas son iguales, entonces el modelo efectivamente tiene $n-1$ características, que es un modelo menos expresivo que el de $n$ características y, por lo tanto, generalmente tiene una función de pérdida mayor.
Pero incluso si los pesos son diferentes, algunos de ellos pueden ser muy similares. Si visualiza la primera capa de sus filtros de convolución y tiene una gran cantidad de ellos (por ejemplo, 100), verá que algunos de ellos están aprendiendo a detectar aproximadamente los mismos bordes (misma orientación y ubicación). Estas características son tan similares que son efectivamente redundantes en el modelo y no aumentan su poder predictivo.
En realidad, existe todo un campo de investigación para identificar características redundantes y podarlas. Le Cun muestra en Optimal Brain Damage que la eliminación de características redundantes no solo hace que el modelo sea más pequeño y más rápido para la inferencia, sino que también puede mejorar la precisión del modelo.
Aquí hay una publicación de blog para obtener una descripción general de alto nivel de uno de los métodos de poda para obtener más información.