One-Shot Learning con Siamese Network [para reconocimiento facial]

Publicado: 2021-02-08

El siguiente artículo habla sobre la necesidad de utilizar el aprendizaje One-shot junto con sus variaciones y desventajas.

Para empezar, para entrenar cualquier modelo de aprendizaje profundo, necesitamos una gran cantidad de datos para que nuestro modelo realice la tarea de predicción o clasificación deseada de manera eficiente. Por ejemplo, la detección de un perro a partir de imágenes requerirá que entrene un modelo de red neuronal en cientos y miles de imágenes de perros y no perros para que distinga con precisión una de la otra. Sin embargo, este modelo de red neuronal no funcionará si se entrena con uno o muy pocos datos de entrenamiento.

Con la falta de datos, la extracción de características relevantes en diferentes capas se vuelve difícil. El modelo no podrá generalizar bien entre diferentes clases, lo que afectará su rendimiento general.

Como ilustración, considere el ejemplo del reconocimiento facial en un aeropuerto. En esto, no tenemos la libertad de entrenar nuestro modelo de cientos y miles de imágenes de cada persona que contienen diferentes expresiones, iluminación de fondo, etc. ¡Con más de miles de pasajeros llegando diariamente es una tarea imposible! Además, almacenar una cantidad tan grande de datos aumenta el costo.

Para abordar el problema anterior, utilizamos una técnica en la que las tareas de clasificación o categorización se pueden lograr con uno o unos pocos ejemplos para clasificar muchos ejemplos nuevos. Esta técnica se llama aprendizaje One-shot.

En los últimos años, la tecnología de aprendizaje One-shot se está utilizando ampliamente en reconocimiento facial y verificación de pasaportes. El concepto que se utiliza es: El modelo toma 2 imágenes de entrada; uno es la imagen del pasaporte y el otro es la imagen de la persona que mira a la cámara. Luego, el modelo genera un valor que es la similitud entre las 2 imágenes. Si el valor de la salida es bajo, las dos imágenes son similares, de lo contrario, son diferentes.

Tabla de contenido

Red siamesa

La arquitectura utilizada para el aprendizaje One-shot se llama Siamese Network. Esta arquitectura comprende dos redes neuronales paralelas, cada una de las cuales toma una entrada diferente. La salida del modelo es un valor o un índice de similitud que indica si las dos imágenes de entrada son iguales o no. Un valor por debajo de un umbral predefinido corresponde a la gran similitud entre las dos imágenes y viceversa.

Cuando las imágenes pasan por una serie de capas convolucionales, capas de agrupación máxima y capas totalmente conectadas, lo que logramos es un vector que codifica las características de las imágenes. Aquí, debido a que ingresamos dos imágenes, se generarán dos vectores que abarcan las características de las imágenes de entrada. El valor del que hablábamos es la distancia entre los dos vectores de características que se puede calcular encontrando la norma de la diferencia entre los dos vectores.

Función de pérdida de triplete

Como sugiere el nombre, para entrenar el modelo necesitamos tres imágenes: una imagen ancla (A), una imagen positiva (P) y una imagen negativa (N). Dado que se pueden proporcionar dos entradas al modelo, se proporciona una imagen de anclaje con una imagen positiva o negativa. El modelo aprende el parámetro de tal manera que la distancia entre la imagen ancla y la imagen positiva es baja mientras que la distancia entre la imagen ancla y la imagen negativa es alta.

La función de pérdida constructiva penaliza al modelo si la distancia entre A y N es baja o A y P es alta, mientras que anima al modelo o aprende características cuando la distancia entre A y N es alta y A y P es baja.

Para entender más sobre las imágenes ancla, positivas y negativas, consideremos el ejemplo anterior de eso en un aeropuerto. En tal caso, la imagen ancla será tu imagen cuando mires a la cámara, la imagen positiva será la de tu foto de pasaporte y la imagen negativa será una imagen aleatoria de un pasajero presente en el aeropuerto.

Siempre que entrenamos una red Siaseme le proporcionamos las imágenes de los tríos APN (Anchor, positivo y negativo). Crear este conjunto de datos es mucho más fácil y requeriría menos imágenes para entrenar.

Limitaciones del aprendizaje One-shot

El aprendizaje único sigue siendo un algoritmo de aprendizaje automático maduro y posee algunas limitaciones. Por ejemplo, el modelo no funcionará bien si la imagen de entrada tiene algunas modificaciones: una persona con sombrero, gafas de sol, etc. Además, un modelo que se entrena para una aplicación no se puede generalizar para otra aplicación.

Continuando, veamos algunas variaciones del aprendizaje One-shot que implica el aprendizaje Zero-shot y el aprendizaje Pocas-disparos.

Aprendizaje de tiro cero

El aprendizaje de disparo cero es la capacidad del modelo para identificar datos etiquetados nuevos o no vistos mientras se entrena en datos vistos y conoce las características semánticas de datos nuevos o no vistos. Por ejemplo, un niño que ha visto un gato puede identificarlo por sus distintas características. Además, si el niño es consciente de que el perro ladra y posee características más sólidas que las de un gato, entonces el niño no tendría problema en reconocer al perro.

Para concluir, podemos decir que el reconocimiento de ZSL funciona de una manera que tiene en cuenta el conjunto de entrenamiento etiquetado de clases vistas junto con el conocimiento sobre cómo cada clase no vista se relaciona semánticamente con las clases vistas.

Aprendizaje N-shot

Como sugiere el nombre, en el aprendizaje de N disparos tendremos n datos etiquetados de cada clase disponibles para el entrenamiento. El modelo se entrena en K clases, cada una de las cuales contiene n datos etiquetados. Después de extraer características y patrones relevantes, el modelo debe categorizar una nueva imagen sin etiquetar en una de las clases K. Utilizan redes de coincidencia que funcionan en el enfoque basado en los vecinos más cercanos capacitados completamente de extremo a extremo.

Conclusión

En conclusión, el campo del aprendizaje One-shot y sus contrapartes tienen un inmenso potencial para resolver algunos de los problemas desafiantes. Sin embargo, al ser un área de investigación relativamente nueva, está progresando rápidamente y los investigadores están trabajando para tratar de cerrar la brecha entre las máquinas y los humanos.

Con esto hemos llegado al final de este post, espero que hayan disfrutado de su lectura.

Si está interesado en obtener más información sobre el aprendizaje automático, consulte el Diploma PG en aprendizaje automático e IA de IIIT-B y upGrad, que está diseñado para profesionales que trabajan y ofrece más de 450 horas de capacitación rigurosa, más de 30 estudios de casos y asignaciones, IIIT- B Estado de exalumno, más de 5 proyectos prácticos finales prácticos y asistencia laboral con las mejores empresas.

Aprenda el curso ML de las mejores universidades del mundo. Obtenga programas de maestría, PGP ejecutivo o certificado avanzado para acelerar su carrera.

Liderar la revolución tecnológica impulsada por la IA

Solicite el programa de certificado avanzado en aprendizaje automático y PNL