Para entender por qué necesitamos visualizar filtros o pesos como usted lo dice, debemos volver a lo que es la convolución / correlación cruzada. Este concepto se remonta a la era del procesamiento de señales.
En el procesamiento de la señal, la correlación cruzada entre la función f y el filtro g indica la cantidad de similitudes entre ambos.
- ¿Cómo 'Diagonal BiLSTM' calcula los estados diagonales a la vez y qué es diagonal?
- ¿Por qué los científicos no definen la inteligencia de tal manera que pueda implementarse artificialmente en un software, como si pudiéramos crear luz artificialmente?
- ¿Cuál es la intuición detrás de la fórmula de actualización de peso de Perceptron w = w + yx?
- Cómo combinar un clasificador basado en características con un modelo de serie temporal como ARIMA
- ¿Cómo se puede aplicar RL (método de gradiente de política) al problema de selección de subconjunto, donde cada prueba consiste en seleccionar un subconjunto de elementos de un conjunto más grande?
Si f (x) yg (x) comparten algunas similitudes, entonces el resultado f * g será positivo / alto. Si g = 0 en todo su dominio, entonces f * g será una señal muerta (= 0 para cada punto). Si g = -f (g tiene la misma forma que f pero volteó a través del eje horizontal), entonces f * g será negativo.
El operador de convolución entre f y g es en realidad la correlación cruzada entre f y g invertida verticalmente. Como puede ver en las últimas tres filas en la imagen de arriba, el filtro rojo g se voltea verticalmente antes de aplicarse en f.
El problema aquí es que, si g invertido g tiene una forma similar a f, entonces la convolución entre f y g será muy alta. Entonces, si desea verificar si f tiene esta forma g ‘, simplemente puede aplicar g’ invertido ‘en f y ver los resultados. Si f * g ‘es lo suficientemente alto, es seguro decir que f tiene una forma algo similar a g’.
¿Qué tiene esto que ver con las imágenes y las redes neuronales? Básicamente, puede tratar una imagen 2D gris como señales 2D. Similar a una señal 1D, podemos representar una imagen en forma de f (x, y) donde (x, y) son las coordenadas de píxeles.
Los bordes de los objetos en una imagen pueden verse como señales con cambios repentinos. Entonces, si desea encontrar la ubicación de los bordes contrastantes en una imagen, puede aplicar un filtro de borde en esa imagen. Ver la imagen de arriba. Después de aplicar Sobel (un filtro específicamente diseñado para encontrar bordes) en la imagen, los bordes de los objetos donde hay un cambio de contraste entre claro / oscuro brillarán en la convolución resultante. Esto nos dice dónde están los bordes.
Pero tenga en cuenta que el filtro anterior es un filtro predefinido, diseñado para detectar bordes. En las redes neuronales, permite que la red aprenda los filtros por sí misma. Al visualizar los filtros, podemos de alguna manera “entender” lo que la red quiere encontrar en la imagen.
Si un filtro que parece un borde contrastante aparece después del aprendizaje, sabemos que la red debe estar buscando bordes. Si un filtro que parece una cara aparece en capas posteriores, podemos concluir que los filtros están buscando caras en capas posteriores. En los casos en que los filtros son granos ruidosos, puede deducir que hay algo mal en el proceso de aprendizaje.
Aquí hay un gran video que explica lo que necesita, debería verlo si todavía está confundido (no puedo incorporar animación en mi respuesta, por lo que probablemente sea difícil ver la idea):
Tenga en cuenta que los filtros de visualización solo deben aplicarse a los filtros de más de 3 × 3. Para los filtros 3 × 3, debe usar otros métodos para ver qué está buscando la red neuronal.