Aprendizaje profundo sin etiquetas | aprender

Anuncio de nuevas contribuciones de código abierto a la comunidad de Apache Spark para crear detectores de objetos profundos y distribuidos, sin una sola etiqueta generada por humanos

Esta publicación está escrita por miembros del Microsoft ML for Apache Spark Team: Mark Hamilton, Minsoo Thigpen,
Abhiram Eswaran, Ari Green, Courtney Cochrane, Janhavi Suresh Mahajan, Karthik Rajendran, Sudarshan Raghunathan y Anand Raman.

En la actualidad, si los datos son el nuevo petróleo, los datos etiquetados son el nuevo oro.

Aquí en Microsoft, a menudo pasamos mucho tiempo pensando en problemas de “Big Data”, porque estos son los más fáciles de resolver con el aprendizaje profundo. Sin embargo, a menudo pasamos por alto los problemas mucho más ubicuos y difíciles que tienen poca o ninguna información para entrenar. En este trabajo mostraremos cómo, incluso sin ningún dato, se puede crear un detector de objetos para casi cualquier cosa que se encuentre en la web. Esto evita de manera efectiva los procesos costosos y de uso intensivo de recursos de seleccionar conjuntos de datos y contratar etiquetadores humanos, lo que le permite saltar directamente a modelos inteligentes para la clasificación y detección de objetos por completo. en silico.

Aplicamos esta técnica para ayudar a monitorear y proteger a la población de leopardos de las nieves en peligro de extinción.

esta semana en el Cumbre Spark + AI en Europaestamos emocionados de compartir con la comunidad, las siguientes emocionantes adiciones a la Biblioteca de Microsoft ML para Apache Spark que hacen que este flujo de trabajo sea fácil de replicar a escala masiva con Apache Spark y Azure Databricks:

  1. Bing en Spark: facilita la creación de aplicaciones en Spark mediante la búsqueda de Bing.
  2. LIMA en Spark: facilita la comprensión profunda del resultado de los modelos de redes neuronales convolucionales (CNN) entrenados con SparkML.
  3. Servicio de chispas de alto rendimiento: Innovaciones que permiten un servicio ultrarrápido y de baja latencia con Spark.

Ilustramos cómo usar estas capacidades utilizando el caso de uso de la conservación del leopardo de las nieves, donde el aprendizaje automático es un ingrediente clave para construir modelos de clasificación de imágenes potentes para identificar leopardos de las nieves a partir de imágenes.

Caso de uso: los desafíos de la conservación del leopardo de las nieves

Los leopardos de las nieves se enfrentan a una crisis. Su número está disminuyendo como resultado de la caza furtiva y la minería, pero se sabe poco sobre cómo protegerlos mejor. Parte del desafío es que solo hay alrededor de cuatro mil a siete mil animales individuales dentro de un potencial 1.5 millones rango de kilómetros cuadrados. Además, el territorio de Snow Leopard se encuentra en algunas de las cadenas montañosas más remotas y escarpadas de Asia central, por lo que es casi imposible llegar allí sin equipo de mochilero.

Aprendizaje profundo sin etiquetas aprender

Figura 1: La segunda llanta ponchada de nuestro equipo camino al territorio del leopardo de las nieves.

Para comprender verdaderamente al leopardo de las nieves y lo que influye en sus tasas de supervivencia, necesitamos más datos. Con este fin, nos hemos asociado con Snow Leopard Trust para ayudarlos a recopilar y comprender los datos del leopardo de las nieves. “Dado que la topografía visual no es una opción, los biólogos despliegan cámaras de detección de movimiento en los hábitats del leopardo de las nieves que capturan imágenes de leopardos de las nieves, presas, ganado y cualquier otra cosa que se mueva”, explica Rhetick Sengupta, presidente de la junta directiva de Snow Leopard Trust. “Luego deben clasificar las imágenes para encontrar las que tienen leopardos de las nieves para aprender más sobre sus poblaciones, comportamiento y rango”. A lo largo de los años, estas cámaras han producido más de 1 millón de imágenes. The Trust puede usar esta información para establecer nuevas áreas protegidas y mejorar sus esfuerzos de conservación basados ​​en la comunidad.

Sin embargo, el problema con los datos de las cámaras trampa es que los biólogos deben clasificar todas las imágenes para distinguir las fotos de leopardos de las nieves y sus presas de las fotos que no tienen ninguna. “La clasificación manual de imágenes es un proceso costoso y que requiere mucho tiempo”, dice Sengupta. “De hecho, toma alrededor de 300 horas por encuesta de cámara. Además, las prácticas de recopilación de datos han cambiado a lo largo de los años”.

Hemos trabajado para ayudar a automatizar la canalización de detección del leopardo de las nieves de Trust con Microsoft Machine Learning para Apache Spark (MMLSpark). Esto incluye tanto la clasificación de imágenes de leopardos de las nieves como la extracción de leopardos detectados para identificarlos y compararlos con una gran base de datos de individuos de leopardos conocidos.

Paso 1: Recopilación de datos

La recopilación de datos suele ser la parte más difícil del flujo de trabajo de aprendizaje automático. Sin un conjunto de datos grande y de alta calidad, es probable que un proyecto nunca despegue. Sin embargo, para muchas tareas, crear un conjunto de datos es increíblemente difícil, lleva mucho tiempo o es absolutamente imposible. Tuvimos la suerte de trabajar con Snow Leopard Trust, que ya ha recopilado 10 años de datos de cámaras trampa y ha etiquetado meticulosamente miles de imágenes. Sin embargo, el fideicomiso no puede divulgar estos datos al público, debido a los riesgos de los cazadores furtivos que usan metadatos de fotografías para localizar leopardos en la naturaleza. Como resultado, si está buscando crear su propio análisis de Snow Leopard, debe comenzar desde cero.

Aprendizaje profundo sin etiquetas aprender

Figura 2: Ejemplos de imágenes de cámaras trampa del conjunto de datos de Snow Leopard Trust.

Anuncio: Bing en Spark

Ante el desafío de crear un conjunto de datos de leopardo de las nieves desde cero, es difícil saber por dónde empezar. Sorprendentemente, no necesitamos ir a Kirguistán y configurar una red de cámaras sensibles al movimiento. Ya tenemos acceso a una de las fuentes de conocimiento humano más ricas del planeta: Internet. Las herramientas que hemos creado en las últimas dos décadas que indexan el contenido de Internet no solo ayudan a los humanos a aprender sobre el mundo, sino que también pueden ayudar a los algoritmos que creamos a hacer lo mismo.

Hoy lanzamos un integración entre Azure Cognitive Services y Apache Spark que permite consultar Bing y muchos otros servicios inteligentes a gran escala. Esta integración es parte de la Microsoft ML para Apache Spark (MMLSpark) proyecto de código abierto. Cognitive Services en Spark facilita la integración de inteligencia en sus flujos de trabajo existentes de Spark y SQL en cualquier clúster que use Python, Scala, Java o R. Debajo del capó, cada Cognitive Service en Spark aprovecha el paralelismo masivo de Spark para enviar flujos de solicitudes hacia arriba. a la nube Además, la integración entre SparkML y Cognitive Services facilita la composición de servicios con otros modelos de los ecosistemas SparkML, CNTK, TensorFlow y LightGBM.

1675894781 918 Aprendizaje profundo sin etiquetas aprender

Figura 3: Resultados de la búsqueda de imágenes de leopardo de las nieves de Bing.

Podemos usar Bing on Spark para crear rápidamente nuestros propios conjuntos de datos de aprendizaje automático con cualquier cosa que podamos encontrar en línea. Para crear un conjunto de datos de leopardo de las nieves personalizado, solo se necesitan dos consultas distribuidas. La primera consulta crea la “clase positiva” extrayendo las primeras 80 páginas de los resultados de la imagen del “leopardo de las nieves”. La segunda consulta crea la “clase negativa” para comparar nuestros leopardos. Podemos realizar esta búsqueda de dos maneras diferentes, y planeamos explorar ambas en próximas publicaciones. Nuestra primera opción es buscar imágenes que se parezcan a los tipos de imágenes que obtendremos en la naturaleza, como laderas de montañas vacías, cabras montesas, zorros, hierba, etc. Nuestra segunda opción se inspira en Estimación de contraste de ruido, una técnica matemática utilizada con frecuencia en la literatura de incrustación de palabras. La idea básica detrás de la estimación contrastiva de ruido es clasificar nuestros leopardos de las nieves frente a un conjunto de datos grande y diverso de imágenes aleatorias. Nuestro algoritmo no solo debería poder distinguir un leopardo de las nieves de una foto vacía, sino también de una amplia variedad de otros objetos en el mundo visual. Desafortunadamente, Bing Images no tiene una API de imagen aleatoria que podamos usar para crear este conjunto de datos. En su lugar, podemos usar consultas aleatorias como sustituto del muestreo aleatorio de Bing. Generar miles de consultas aleatorias es sorprendentemente fácil con uno de la multitud de generadores de palabras aleatorias en línea. Una vez que generamos nuestras palabras, solo tenemos que cargarlas en un Spark DataFrame distribuido y pasarlas a Bing Image Search en Spark para obtener las primeras 10 imágenes de cada consulta aleatoria.

Con estos dos conjuntos de datos en la mano, podemos agregar etiquetas, unirlas, deduplicar y descargar los bytes de la imagen al clúster. SparkSQL paraleliza este proceso y puede acelerar la descarga en órdenes de magnitud. Solo se necesitan unos segundos en un gran clúster de Azure Databricks para extraer miles de imágenes de todo el mundo. Además, una vez descargadas las imágenes, podemos preprocesarlas y manipularlas fácilmente con herramientas como OpenCV en Spark.

1675894781 676 Aprendizaje profundo sin etiquetas aprender

Figura 4: Diagrama que muestra cómo crear un conjunto de datos etiquetados para la clasificación del leopardo de las nieves usando Bing en Chispa – chispear.

Paso 2: crear un clasificador de aprendizaje profundo

Ahora que tenemos un conjunto de datos etiquetado, podemos comenzar a pensar en nuestro modelo. Las redes neuronales convolucionales (CNN) son los modelos estadísticos de última generación para el análisis de imágenes. Aparecen en todo, desde automóviles sin conductor, sistemas de reconocimiento facial y motores de búsqueda de imágenes. Para construir nuestra red de convolución profunda, usamos MMLSparqueque proporciona aprendizaje profundo distribuido fácil de usar con el Kit de herramientas cognitivas de Microsoft en Chispa.

MMLSpark hace que sea especialmente fácil realizar el aprendizaje de transferencia distribuido, una técnica de aprendizaje profundo que refleja cómo los humanos aprenden nuevas tareas. Cuando aprendemos algo nuevo, como clasificar a los leopardos de las nieves, no empezamos por reconectar todo nuestro cerebro. En cambio, confiamos en una gran cantidad de conocimientos previos adquiridos a lo largo de nuestras vidas. Solo necesitamos unos pocos ejemplos, y rápidamente nos convertimos en detectores de leopardo de las nieves de alta precisión. Sorprendentemente, el aprendizaje por transferencia crea redes con un comportamiento similar. Empezamos usando un Red residual profunda que ha sido entrenado en millones de imágenes genéricas. A continuación, cortamos algunas capas de esta red y las reemplazamos con un modelo SparkML, como Regresión logística, para aprender un mapeo final de características profundas a probabilidades de leopardo de las nieves. Como resultado, nuestro modelo aprovecha su conocimiento previo en forma de funciones inteligentes y puede adaptarse a la tarea en cuestión con el modelo SparkML final. La Figura 5 muestra un esquema de esta arquitectura.

Con MMLSpark, también es fácil agregar mejoras a esta arquitectura básica, como el aumento de conjuntos de datos, el equilibrio de clases, la regresión de cuantiles con LightGBM en Spark, y montaje. Para obtener más información, explore nuestro papel de diario en este trabajo, o prueba el ejemplo en nuestro sitio web.

Es importante recordar que nuestro algoritmo puede aprender de los datos obtenidos completamente de Bing. No necesitaba datos etiquetados a mano, y este método es aplicable a casi cualquier dominio donde un motor de búsqueda de imágenes pueda encontrar sus imágenes de interés.

1675894781 220 Aprendizaje profundo sin etiquetas aprender

Figura 5: Un diagrama de transferencia de aprendizaje con ResNet50 en Spark.

Paso 3: Creación de un conjunto de datos de detección de objetos con interpretabilidad del modelo distribuido

En este punto, hemos mostrado cómo crear un sistema de clasificación de imágenes profundo que aprovecha Bing para eliminar la necesidad de etiquetar los datos. Los sistemas de clasificación son increíblemente útiles para contar el número de avistamientos. Sin embargo, los clasificadores no nos dicen nada sobre dónde el leopardo está en la imagen, solo devuelven una probabilidad de que haya un leopardo en una imagen. Lo que podría parecer una distinción sutil, realmente puede marcar la diferencia en una aplicación de extremo a extremo. Por ejemplo, saber dónde está el leopardo puede ayudar a los humanos a determinar rápidamente si la etiqueta es correcta. También puede ser útil para situaciones en las que puede haber más de un leopardo en el encuadre. Lo que es más importante para este trabajo, para comprender cuántos leopardos individuales quedan en la naturaleza, necesitamos comparar leopardos individuales en varias cámaras y ubicaciones. El primer paso en este proceso es recortar las fotos de leopardo para que podamos usar algoritmos de coincidencia de vida silvestre como Hot Spotter.

Por lo general, necesitaríamos etiquetas para entrenar un detector de objetos, también conocido como cuadros delimitadores minuciosamente dibujados alrededor de cada imagen de leopardo. Entonces podríamos entrenar una red de detección de objetos para que aprenda a reproducir estas etiquetas. Desafortunadamente, las imágenes que extraemos de Bing no tienen esos cuadros delimitadores adjuntos, lo que hace que esta tarea parezca imposible.

En este punto estamos tan cerca, pero tan lejos. Podemos crear un sistema para determinar si hay un leopardo en la foto, pero no dónde está el leopardo. Afortunadamente, nuestra bolsa de trucos de aprendizaje automático aún no está vacía. Sería absurdo que nuestra red profunda no pudiera localizar al leopardo. ¿Cómo podría alguien saber de manera confiable que hay un leopardo de las nieves en la foto sin verlo directamente? Claro, el algoritmo podría enfocarse en estadísticas de imágenes agregadas como el fondo o la iluminación para hacer una conjetura, pero un buen detector de leopardos debería reconocer un leopardo cuando lo ve. Si nuestro modelo entiende y usa esta información, la pregunta es “¿Cómo miramos en la mente de nuestro modelo para extraer esta información?”.

Afortunadamente, Marco Tulio Ribeiro y un equipo de investigadores de la Universidad de Washington han creado un método llamado LIME (Explicaciones Agnósticas del Modelo Interpretable Local)para explicar las clasificaciones de cualquier clasificador de imagen Este método nos permite hacerle a nuestro clasificador una serie de preguntas que, cuando se estudian en conjunto, nos dirán dónde está mirando el clasificador. Lo más interesante de este método es que no hace suposiciones sobre el tipo de modelo que se investiga. Puede explicar su propia red profunda, un modelo propietario como los que se encuentran en los servicios cognitivos de Microsoft, o incluso un clasificador humano (muy paciente). Esto hace que sea ampliamente aplicable no solo entre modelos, sino también entre dominios.

1675894782 710 Aprendizaje profundo sin etiquetas aprender

Figura 6: Diagrama que muestra el proceso de interpretación de un clasificador de imágenes.

La Figura 6 muestra una representación visual del proceso LIME. Primero, tomaremos nuestra imagen original y la dividiremos en “componentes interpretables” llamados “superpíxeles”. Más específicamente, los superpíxeles son grupos de píxeles que agrupan píxeles que tienen un color y una ubicación similares. Luego tomamos nuestra imagen original y la perturbamos aleatoriamente “apagando” los superpíxeles aleatorios. Esto da como resultado miles de imágenes nuevas que tienen partes del leopardo oscurecidas. Luego podemos alimentar estas imágenes perturbadas a través de nuestra red profunda para ver cómo nuestras perturbaciones afectan nuestras probabilidades de clasificación. Estas fluctuaciones en las probabilidades del modelo nos ayudan a señalar los superpíxeles de la imagen que son más importantes para la clasificación. De manera más formal, podemos ajustar un modelo lineal a un nuevo conjunto de datos donde las entradas son vectores binarios de estados de encendido/apagado de superpíxeles, y los objetivos son las probabilidades que la red profunda genera para cada imagen perturbada. Los pesos del modelo lineal aprendidos nos muestran qué superpíxeles son importantes para nuestro clasificador. Para extraer una explicación, solo tenemos que fijarnos en los superpíxeles más importantes. En nuestro análisis, usamos aquellos que están en la parte superior ~ 80% de las importancias de los superpíxeles.

LIME nos brinda una forma de observar nuestro modelo y determinar los píxeles exactos que está aprovechando para hacer sus predicciones. Para nuestro clasificador de leopardo, estos píxeles a menudo resaltan directamente al leopardo en el cuadro. Esto no solo nos da confianza en nuestro modelo, sino que también nos brinda una forma de generar etiquetas más ricas. LIME nos permite refinar nuestras clasificaciones en cuadros delimitadores para la detección de objetos dibujando rectángulos alrededor de los superpíxeles importantes. De nuestros experimentos, los resultados fueron sorprendentemente cercanos a lo que un humano dibujaría alrededor del leopardo.

Aprendizaje profundo sin etiquetas aprender

Figura 7: Píxeles LIME siguiendo a un leopardo mientras se mueve a través de las montañas

Anuncio: LIME en Spark

LIME tiene un potencial increíble para ayudar a los usuarios a comprender sus modelos e incluso crear automáticamente conjuntos de datos de detección de objetos. Sin embargo, el principal inconveniente de LIME es su alto costo computacional. Para crear una interpretación para una sola imagen, necesitamos muestrear miles de imágenes perturbadas, pasarlas todas a través de nuestra red y luego entrenar un modelo lineal con los resultados. Si lleva 1 hora evaluar su modelo en un conjunto de datos, entonces podría tomar al menos 50 días de computación para convertir estas predicciones en interpretaciones. Para ayudar a que este proceso sea factible para grandes conjuntos de datos, estamos lanzando un implementación distribuida de LIME como parte de MMLSpark. Esto permitirá a los usuarios interpretar rápidamente cualquier clasificador de imágenes SparkML, incluidos aquellos respaldados por marcos de redes profundas como CNTK o TensorFlow. Esto ayuda a que las cargas de trabajo complejas como la descrita sean posibles en solo unas pocas líneas de código MMLSpark. Si desea probar el código, consulte nuestro cuaderno de ejemplo para LIME en Spark.

1675894782 106 Aprendizaje profundo sin etiquetas aprender 1675894782 607 Aprendizaje profundo sin etiquetas aprender

Figura 8: Izquierda: Esquema de los superpíxeles LIME más importantes. Derecha: ejemplo de cuadro delimitador con etiqueta humana (azul) frente al cuadro delimitador de salida LIME (amarillo)

Paso 4: Transferir el conocimiento de LIME a un detector de objetos profundo

Al combinar nuestro clasificador profundo con LIME, hemos creado un conjunto de datos de cuadros delimitadores de leopardo. Además, logramos esto sin tener que clasificar o etiquetar manualmente ninguna imagen con cuadros delimitadores. Bing Images, Transfer Learning y LIME han hecho todo el trabajo duro por nosotros. Ahora podemos usar este conjunto de datos etiquetados para aprender un detector de objetos profundo dedicado capaz de aproximar las salidas de LIME a una velocidad de 1000x. Finalmente, podemos implementar este rápido detector de objetos como un servicio web, una aplicación de teléfono o una aplicación de transmisión en tiempo real para que lo use Snow Leopard Trust.

Para construir nuestro detector de objetos, usamos el API de detección de objetos de TensorFlow. Nuevamente usamos el aprendizaje de transferencia profunda para afinar un detector de objetos Faster-RCNN preentrenado. Este detector fue entrenado previamente en el Conjunto de datos de detección de objetos de Microsoft Common Objects in Context (COCO). Al igual que el aprendizaje por transferencia para los clasificadores de imágenes profundas, trabajar con un detector de objetos ya inteligente mejora drásticamente el rendimiento en comparación con el aprendizaje desde cero. En nuestro análisis, optimizamos la precisión, por lo que decidimos utilizar una red Faster R-CNN con Inception Resnet v2. La Figura 9 muestra las velocidades y el rendimiento de varias arquitecturas de red, los modelos FRCNN + Inception Resnet V2 tienden a agruparse hacia el lado de alta precisión de la gráfica.

1675894783 550 Aprendizaje profundo sin etiquetas aprender

Figura 9: Compensaciones de velocidad/precisión para detectores de objetos convolucionales modernos. (Fuente: investigación de Google).

Resultados

Descubrimos que Faster R-CNN podía reproducir de manera confiable las salidas de LIME en una fracción del tiempo. La Figura 10 muestra varias imágenes estándar del conjunto de datos de Snow Leopard Trust. En estas imágenes, los resultados de Faster R-CNN capturan directamente al leopardo en el cuadro y coinciden casi a la perfección con las etiquetas curadas por humanos.

1675894783 195 Aprendizaje profundo sin etiquetas aprender

Figura 10: Una comparación de imágenes etiquetadas por humanos (izquierda) y los resultados del Faster-RCNN final entrenado en predicciones LIME (derecha).

1675894784 853 Aprendizaje profundo sin etiquetas aprender

Figura 11: Una comparación de imágenes etiquetadas por humanos difíciles (izquierda) y los resultados del Faster-RCNN final entrenado en predicciones LIME (derecha).

Sin embargo, algunas imágenes aún plantean desafíos a este método. En la Figura 11, examinamos varios errores cometidos por el detector de objetos. En la imagen superior, hay dos leopardos discernibles en el marco, sin embargo, Faster R-CNN solo puede detectar el leopardo más grande. Esto se debe al método utilizado para convertir las salidas de LIME en cuadros delimitadores. Más específicamente, usamos un método simple que une todos los superpíxeles seleccionados con un solo rectángulo. Como resultado, nuestro conjunto de datos de cuadro delimitador tiene como máximo un cuadro por imagen. Para perfeccionar este procedimiento, se podrían agrupar los superpíxeles para identificar si hay más de un objeto en el marco y luego dibujar los cuadros delimitadores. Además, algunos leopardos son difíciles de detectar debido a su camuflaje y se deslizan por el detector. Parte de este efecto podría deberse al sesgo antrópico en Bing Search. Es decir, Bing Image Search devuelve solo las imágenes más claras de leopardos y estas fotos son mucho más fáciles que la foto promedio de una cámara trampa. Para mitigar este efecto, uno podría participar en rondas de minería negativa dura, aumentar los datos de Bing con leopardos difíciles de ver y mejorar los ejemplos que muestran leopardos difíciles de detectar.

Paso 5: Implementación como servicio web

La etapa final de nuestro proyecto es implementar nuestro detector de objetos entrenado para que Snow Leopard Trust pueda obtener predicciones de modelos desde cualquier parte del mundo.

Anuncio: Latencia de submilisegundos con Spark Serving

Hoy nos complace anunciar una nueva plataforma para implementar Spark Computations como servicios web distribuidos. Este marco, llamado Servicio de chispa, simplifica drásticamente el proceso de servicio en Python, Scala, Java y R. Proporciona servicios de latencia ultrabaja respaldados por un Spark Cluster distribuido y tolerante a fallas. Debajo del capó, Spark Serving se encarga de activar y administrar los servicios web en cada nodo de su clúster de Spark. Como parte del lanzamiento de MMLSpark v0.14, Spark Serving vio una reducción de latencia de 100 veces y ahora puede manejar respuestas en un solo milisegundo.

1675894784 781 Aprendizaje profundo sin etiquetas aprender

Figura 12: Comparación de latencia de servicio de Spark.

Podemos usar este marco para entrenar nuestro detector de objetos profundos con Horovod en Sparke implementarlo con solo unas pocas líneas de código. Para intentar implementar un modelo SparkML como un servicio web, consulte nuestro ejemplo de cuaderno.

Trabajo futuro

El próximo paso de este proyecto es usar este detector de leopardos para crear una base de datos global de leopardos de las nieves individuales y sus avistamientos en diferentes ubicaciones. Planeamos usar una herramienta llamada HotSpotter para identificar automáticamente leopardos individuales usando su pelaje manchado con un patrón único. Con esta información, los investigadores de Snow Leopard Trust pueden tener una idea mucho mejor del comportamiento, el hábitat y el movimiento del leopardo. Además, la identificación de leopardos individuales ayuda a los investigadores a comprender los números de población, que son fundamentales para justificar las protecciones del leopardo de las nieves.

Conclusión

A través de este proyecto, hemos visto cómo las nuevas herramientas informáticas de código abierto, como Cognitive Services on Spark, Deep Transfer Learning, Distributed Model Interpretability y TensorFlow Object Detection API, pueden trabajar juntas para obtener un detector de objetos específico de dominio directamente desde Bing. También lanzamos tres nuevos paquetes de software: Cognitive Services on Spark, Distributed Model Interpretability y Spark Serving, para hacer que este análisis sea simple y eficaz en Spark Clusters como Azure Databricks.

En resumen, nuestro análisis consistió en los siguientes pasos principales:

  1. Recopilamos un conjunto de datos de clasificación usando Bing en Spark.
  2. Entrenamos a un clasificador profundo utilizando el aprendizaje de transferencia con CNTK en Spark.
  3. Interpretamos este clasificador profundo usando LIMA en Spark para obtener regiones de interés y cuadros delimitadores.
  4. Aprendimos un detector de objetos profundo utilizando el aprendizaje de transferencia que recrea los resultados de LIME a una fracción del costo.
  5. Desplegamos el modelo como un servicio web distribuido con Servicio de chispa.

Aquí hay una representación gráfica de este análisis:

1675894784 638 Aprendizaje profundo sin etiquetas aprender

Figura 13: Descripción general de la arquitectura completa descrita en esta publicación de blog.

Usando Microsoft ML para Apache Sparklos usuarios pueden seguir fácilmente nuestros pasos y repite este analisis con sus propios datos personalizados o consultas de Bing. Hemos publicado este trabajo en código abierto e invitamos a otros a probarlo por sí mismos, dar su opinión y ayudarnos a avanzar en el campo del aprendizaje distribuido no supervisado.

Hemos aplicado este método para ayudar a proteger y monitorear la población de leopardos de las nieves en peligro de extinción, pero no hicimos suposiciones a lo largo de este blog sobre el tipo de datos utilizados. En pocas horas pudimos modificar este flujo de trabajo para crear una gasolinera red de detección de incendios para Shell Energy con éxito similar.

Mark Hamilton, por el equipo MMLSpark

Recursos:

Fuente del artículo

Deja un comentario