Aprendizaje profundo: ¿Qué es la búsqueda jerárquica de correspondencia?

Uno de los conceptos centrales de HMP es aprender características de nivel bajo y medio en lugar de usar funciones de manualidades como la función SIFT. Explicando en una oración, HMP es un algoritmo que construye un diccionario escaso y lo codifica jerárquicamente de manera tal que características significativas conservas. El clasificador final es simplemente una máquina de vectores de soporte lineal, por lo que la magia está principalmente en la codificación dispersa. Para comprender completamente por qué una codificación dispersa podría ser una buena idea, tenemos que retroceder en el tiempo.

En los años 50, el trabajo de Hubel y Wiesel para descubrir el filtro de Gabor como las neuronas en el cerebro del gato realmente inspiró a mucha gente. Sin embargo, la comunidad pensó que los filtros tipo Gabor son detectores de borde. Este descubrimiento lleva a una serie de trabajos realizados en la detección de bordes en los años 80 cuando el procesamiento de imágenes digitales se hizo posible en las computadoras. Los detectores de bordes como Canny, Harris, Sobel, Prewitt, etc. se basan en el concepto de detectar bordes antes de reconocer objetos. Algoritmos más recientes como Histogram of Oriented Gradient (HOG) son una extensión de estos detectores de borde. Un ejemplo de HOG es el documento bastante exitoso sobre detección de peatones “Histogramas de gradientes orientados para detección humana”

Si pasamos a los años 90 y 2000, las características similares a SIFT parecen haber dominado una gran parte del mundo de Computer Vision. Estas características artesanales funcionan sorprendentemente bien y conducen a muchas aplicaciones reales. Este tipo de algoritmos generalmente consta de dos pasos, 1) detectar puntos de características interesantes (círculos amarillos en la figura anterior), 2) generar un descriptor invariante a su alrededor (tableros de verificación verdes en la figura anterior). Una de las razones por las que funciona bien es que SIFT solo le importa los puntos de interés, por lo tanto, reduce significativamente la dimensión de la función. Esto permite que los clasificadores requieran menos muestras de entrenamiento antes de poder hacer predicciones razonables. Sin embargo, descartar toda esa información de geometría y textura es poco probable como los humanos vemos el mundo y fallará en escenarios sin textura.

En 1996, Olshausen demostró que al agregar una restricción escasa, los filtros tipo gabor son los códigos que mejor describen las imágenes naturales. Lo que esto podría sugerir es que los filtros en V1 (filtros Gabor) no son solo detectores de borde, sino estadísticamente la mejor codificación para imágenes naturales bajo la escasa restricción. Considero esto como la prueba más importante de que nuestro cerebro utiliza una codificación dispersa y la razón por la que funciona mejor en muchos algoritmos nuevos que utilizan codificación dispersa como el HMP. Si está interesado en por qué la evolución eligió una codificación escasa, Jeff Hawkins tiene una gran explicación en una de sus charlas (a las 17:33); Además de ahorrar energía, también ayuda a generalizar y facilita la comparación de características. Andrew Ng también tiene un documento “La importancia de la codificación versus el entrenamiento con codificación dispersa y cuantificación vectorial” sobre el análisis de qué parte de la codificación dispersa conduce a mejores resultados.