Red de conocimiento informático - Conocimientos de programación - Diccionario de etiquetas de programación

Diccionario de etiquetas de programación

Etiquetar manualmente grandes cantidades de datos siempre ha sido un cuello de botella en el desarrollo del aprendizaje automático. Investigadores del Laboratorio de Inteligencia Artificial de Stanford analizan un paradigma "débilmente supervisado" para generar datos de entrenamiento mediante programación y presentan su marco Snorkel de código abierto.

En los últimos años, el aprendizaje automático ha tenido un impacto cada vez mayor en el mundo real. Esto se debe en gran medida a la aparición de modelos de aprendizaje profundo, que permiten a los profesionales obtener puntuaciones de última generación en conjuntos de datos de referencia sin ningún diseño manual de funciones. Teniendo en cuenta la disponibilidad de varios marcos de ML de código abierto, como TensorFlow y PyTorch, así como la gran cantidad de modelos de última generación disponibles, se puede decir que los modelos de ML de alta calidad casi se han convertido en un recurso comercial. Sin embargo, hay un problema oculto: estos modelos se basan en grandes cantidades de datos de entrenamiento etiquetados por humanos.

Crear estos conjuntos de capacitación etiquetados manualmente es costoso y requiere mucho tiempo; a menudo lleva meses o incluso años recopilarlos, limpiarlos y depurarlos, especialmente si se requiere experiencia en el dominio. Además, las tareas suelen cambiar y evolucionar en el mundo real. Por ejemplo, las pautas de etiquetado, la granularidad o los casos de uso posteriores a menudo cambian, lo que requiere un nuevo etiquetado (por ejemplo, no solo clasificar las reseñas como positivas o negativas, sino también introducir categorías neutrales).

Por estas razones, los profesionales recurren cada vez más a formas de supervisión más débiles, como el uso de bases de conocimiento externas, patrones/reglas u otros clasificadores para generar heurísticamente datos de entrenamiento. Esencialmente, estos son métodos para generar datos de entrenamiento mediante programación o, más sucintamente, programar datos de entrenamiento.

En este artículo, primero revisamos algunas áreas del ML impulsadas por datos de entrenamiento etiquetados y luego describimos nuestra investigación sobre el modelado y la integración de varias fuentes de supervisión. También discutimos la idea de construir sistemas de gestión de datos para mecanismos multitarea a gran escala que utilizan docenas o cientos de tareas dinámicas débilmente supervisadas que interactúan de maneras complejas y diversas.

Reseña: ¿Cómo obtener más datos de entrenamiento etiquetados?

Muchos métodos de investigación tradicionales en ML también están impulsados ​​por la necesidad de datos de entrenamiento etiquetados. Primero distinguimos estos métodos de los métodos débilmente supervisados: la supervisión débil es el uso de aportes de mayor nivel y/o más ruidosos de expertos en la materia (PYME).

Un problema clave con los métodos convencionales actuales es que el costo para los expertos en el campo de anotar directamente grandes cantidades de datos es muy alto: por ejemplo, es más difícil establecer grandes conjuntos de datos para la investigación de imágenes médicas porque, A diferencia de los estudiantes de posgrado, los radiólogos no están dispuestos a ser simplemente amables y etiquetar los datos por usted. Por lo tanto, en ML, muchas líneas de trabajo de investigación en profundidad se deben al cuello de botella al obtener datos de entrenamiento de marcado:

En el aprendizaje activo, el objetivo es permitir que los expertos en el dominio marquen los puntos de datos más valiosos para el modelo. Esto permite un uso más eficaz de los expertos en el dominio. En un entorno de aprendizaje supervisado estándar, esto significa seleccionar nuevos puntos de datos para etiquetar. Por ejemplo, podríamos seleccionar mamografías que estén cerca del límite de decisión del modelo actual y pedir a los radiólogos que etiqueten sólo esas imágenes. Sin embargo, sólo podemos pedir una mala regulación de estos datos. En este caso, el aprendizaje activo y la supervisión débil son completamente complementarios. Un ejemplo de esto se puede encontrar en Druck, Settle y McCallum 2009.

En un entorno de aprendizaje semisupervisado, nuestro objetivo es utilizar un pequeño conjunto de entrenamiento etiquetado y un conjunto de datos más grande sin etiquetar. Luego, los datos sin etiquetar se explotan (como parte de un modelo generativo, o como regularizador para modelos discriminativos, o para aprender una representación de datos compacta) utilizando suposiciones sobre suavidad, estructura de baja dimensión o medidas de distancia, ver (Chapelle, Scholkopf y; Zien, 2009). En términos generales, la idea del aprendizaje semisupervisado no es buscar más aportes de las PYME, sino explotar datos no etiquetados, que generalmente se pueden obtener en grandes cantidades a bajo costo, bajo supuestos independientes del dominio y la tarea. Los enfoques recientes utilizan redes generativas antagónicas (Salimans et al. 2016), modelos de transformación heurística (Laine y Aila 2016) y otros métodos generativos para ayudar de manera efectiva a estandarizar los límites de decisión.

En un entorno típico de aprendizaje por transferencia, el objetivo es aplicar uno o más modelos entrenados en diferentes conjuntos de datos a nuestro conjunto de datos y tarea; consulte (Pan Yang 2010) para una revisión. Por ejemplo, es posible que ya tengamos un gran conjunto de entrenamiento de tumores de otras partes del cuerpo y entrenemos a un clasificador en esto, y luego queramos aplicarlo a nuestra tarea de mamografía. En la comunidad de aprendizaje profundo actual, un enfoque común de aprendizaje por transferencia es "preentrenar" un modelo en un gran conjunto de datos y luego "ajustarlo" según la tarea de interés. Otra área relacionada es el aprendizaje multitarea, es decir, estudiar varias tareas simultáneamente (Caruna 1993; Augenstein, Flakos y Maynard 2015).

El ejemplo anterior nos ahorra tener que aprender de expertos en el dominio. Buscar etiquetas de capacitación adicionales. de colaboradores. Sin embargo, es inevitable etiquetar algunos datos. ¿Qué pasaría si les pidiéramos que proporcionaran diversas formas de supervisión más avanzadas o menos precisas que pudieran obtenerse de forma más rápida y sencilla? Por ejemplo, ¿qué pasaría si nuestros radiólogos pudieran pasar una tarde etiquetando un conjunto de heurísticas u otros recursos que, si se hacen correctamente, podrían reemplazar efectivamente miles de etiquetas de capacitación?

Inyectar conocimiento de dominio en inteligencia artificial

Desde una perspectiva histórica, intentar "programar" inteligencia artificial (es decir, inyectar conocimiento de dominio) no es una idea nueva, pero ahora se propone. La principal novedad de este problema es que la IA nunca ha sido tan poderosa y sigue siendo una "caja negra" en términos de explicabilidad y controlabilidad.

En las décadas de 1970 y 1980, la IA se centró en los sistemas expertos, que combinaban una base de conocimientos de hechos y reglas planificados manualmente por expertos en el dominio y los aplicaban junto con máquinas de razonamiento. El aprendizaje automático comenzó a tener éxito en la década de 1990 como herramienta para integrar conocimientos en sistemas de inteligencia artificial, prometiendo una forma potente y flexible de automatizar este trabajo a partir de datos de entrenamiento etiquetados.

Los métodos de aprendizaje automático clásicos (aprendizaje no representacional) suelen tener dos puertos de entrada de expertos en el dominio. En primer lugar, estos modelos suelen ser menos sofisticados que los modelos modernos, lo que significa que se pueden utilizar menos datos etiquetados por humanos. En segundo lugar, estos modelos se basan en características diseñadas manualmente que proporcionan métodos sencillos para codificar, modificar e interactuar con la representación de datos subyacente del modelo. Sin embargo, la ingeniería de funciones siempre se ha considerado una tarea para los expertos en ML, quienes a menudo pasan toda su carrera de doctorado diseñando funciones para tareas específicas.

Ingrese a los modelos de aprendizaje profundo: debido a su poderosa capacidad para aprender automáticamente representaciones en muchos dominios y tareas, evitan en gran medida la tarea de ingeniería de características. Pero la mayoría de ellos son cajas completamente negras y los desarrolladores comunes tienen poco control sobre ellos, excepto etiquetar una gran cantidad de conjuntos de entrenamiento y ajustar la arquitectura de la red. En muchos sentidos, representan la antítesis de las reglas frágiles pero controlables de los viejos sistemas expertos: eran flexibles pero difíciles de controlar.

Esto nos devuelve a la pregunta original desde una perspectiva ligeramente diferente: ¿Cómo utilizamos nuestro conocimiento del dominio o experiencia en tareas para escribir modelos modernos de aprendizaje profundo? ¿Existe alguna manera de combinar la franqueza de los antiguos sistemas expertos basados ​​en reglas con la flexibilidad y el poder de estos métodos modernos de ML?

Código como supervisión: entrenamiento de ML a través de la programación

Snorkel es un sistema que creamos para respaldar y explorar esta nueva interacción con ML. En Snorkel, en lugar de utilizar datos de entrenamiento etiquetados manualmente, pedimos a los usuarios que escriban funciones de etiquetado (LF), es decir, fragmentos de código de caja negra para etiquetar subconjuntos de datos sin etiquetar.

Luego podemos usar un conjunto de LF para etiquetar los datos de entrenamiento para el modelo ML. Debido a que las funciones de etiqueta son simplemente fragmentos arbitrarios de código, pueden codificar señales arbitrarias: patrones, heurísticas, fuentes de datos externas, etiquetas ruidosas de trabajadores colectivos, clasificadores débiles, etc. Además, como código obtenemos todos los demás beneficios relacionados, como modularidad, reutilización y depuración.

Por ejemplo, si nuestros objetivos de modelado cambian, podemos ajustar la función de marcado para adaptarnos rápidamente.

Un problema es que la función de etiquetado producirá resultados ruidosos que pueden superponerse y entrar en conflicto, lo que resulta en etiquetas de entrenamiento que no son ideales. En sluck, utilizamos métodos de programación de datos para eliminar el ruido de estas etiquetas, que consta de tres pasos:

1. Aplicamos la función de etiquetado a los datos sin etiquetar.

2. Utilizamos modelos generativos para conocer la precisión de las funciones etiquetadas sin ningún dato etiquetado y ponderamos sus resultados en consecuencia. Incluso podemos aprender automáticamente sus estructuras relacionadas.

3. El modelo generado genera un conjunto de etiquetas de entrenamiento probabilístico, que se pueden utilizar para entrenar un modelo discriminante potente y flexible (como una red neuronal profunda), que se generalizará más allá de la señal representada por el función de etiqueta.

¡Se puede considerar que todo este proceso proporciona un método simple, robusto e independiente del modelo para "programar" modelos de ML!

Función de etiquetado (función de etiqueta)

Extraer información estructurada de la literatura biomédica es una de las aplicaciones más inspiradoras: grandes cantidades de información útil están efectivamente encerradas en millones de texto denso y no estructurado de un artículo científico. Esperamos utilizar el aprendizaje automático para extraer esta información y luego utilizarla para diagnosticar enfermedades genéticas.

Considere la tarea de extraer relaciones entre sustancias químicas y enfermedades de la literatura científica. Es posible que no tengamos un conjunto de datos de entrenamiento etiquetados lo suficientemente grande para realizar esta tarea. En el campo de la biomedicina, existen abundantes ontologías de conocimiento, diccionarios y otros recursos, incluidos varios datos de nombres de sustancias químicas y enfermedades, varios tipos de bases de datos conocidas sobre relaciones entre sustancias químicas y enfermedades, etc. Podemos utilizar estos recursos para proporcionar una supervisión débil de nuestras tareas. Además, podemos trabajar con colaboradores en biología para proponer una variedad de heurísticas específicas de tareas, patrones de expresión regular, reglas generales y estrategias de generación de etiquetas negativas.

Como modelo representativo de generación de portadores

En nuestro enfoque, consideramos que la función de etiquetado describe implícitamente el modelo de generación. Recapitulemos rápidamente: dado un punto de datos = P(x|y)P(y). En nuestro ejemplo, modelamos el proceso de etiquetado del conjunto de entrenamiento P(L, Y), donde L es la etiqueta generada por la función de etiquetado del objeto X e Y es la etiqueta verdadera correspondiente (desconocida). Al aprender un modelo generativo que estima directamente P(L|y), esencialmente aprendemos la precisión relativa de las funciones de etiquetado en función de cómo se superponen y entran en conflicto (nota, ¡no necesitamos saber y!)

Usamos Este modelo generativo estimado se utiliza para entrenar una versión consciente del ruido del modelo discriminativo final en la función de etiqueta. Para hacer esto, el modelo generativo infiere probabilidades para etiquetas desconocidas de los datos de entrenamiento y luego minimizamos la pérdida esperada del modelo discriminativo con respecto a estas probabilidades.

Estimar los parámetros de estos modelos generativos puede ser complicado, especialmente cuando existen correlaciones estadísticas entre las funciones de etiquetado utilizadas. En el artículo Programación con datos: creación rápida de grandes conjuntos de entrenamiento (https://arxiv.org/ABS/1605.07723), mostramos que, dadas suficientes funciones de etiqueta, se puede obtener el mismo escalado asintótico que los métodos supervisados. También estudiamos cómo aprender correlaciones entre funciones etiquetadas sin utilizar datos etiquetados y cómo mejorar significativamente el rendimiento.

Snorkel: un marco de código abierto

En nuestro artículo publicado recientemente sobre Snorkel (https://arxiv.org/ABS/1711.10160), encontramos esto y nuevas formas de interactuar con ¡Los modelos de ML modernos son muy efectivos en una variedad de aplicaciones del mundo real! Incluyendo:

1. En un seminario sobre snorkel, llevamos a cabo un estudio de usuarios para comparar la eficiencia de enseñar a las pequeñas y medianas empresas a utilizar el snorkel y la eficiencia de dedicar el mismo tiempo a etiquetar datos manualmente. Descubrimos que construir modelos utilizando snorkels no solo fue 2,8 veces más rápido, sino que también mejoró el rendimiento de predicción promedio en un 45,5%.

2. En dos tareas de extracción de relaciones de texto del mundo real y otras cuatro tareas de referencia de texto e imágenes en colaboración con investigadores de la Universidad de Stanford, el Departamento de Asuntos de Veteranos de EE. UU. y la Administración de Alimentos y Medicamentos de EE. UU. encontró una mejora promedio de 65.438 ± 0,32 en el buceo en comparación con la técnica inicial.

3. Exploramos un nuevo espacio de compensación para modelar capacidades de etiquetado proporcionadas por el usuario para obtener un optimizador basado en reglas para acelerar los ciclos de desarrollo iterativos.

Siguiente paso: supervisión débil para multitarea a gran escala

Nuestro laboratorio está llevando a cabo varios esfuerzos para extender el modelo de interacción débilmente supervisado previsto por sculpt a otras modalidades, como datos e imágenes enriquecidos. , utilice tareas de monitoreo de lenguaje natural y genere etiquetas automáticamente.

En el aspecto técnico, estamos interesados ​​en ampliar el modelo central de programación de datos de sprock para que sea más fácil especificar funciones de marcado con interfaces de nivel superior (como el lenguaje natural) e incorporar otros tipos de supervisión débil ( como el aumento de datos).

La popularidad de los escenarios de aprendizaje multitarea (MTL) también plantea la pregunta: ¿Qué sucede cuando una fuente de etiquetas ruidosa y potencialmente relacionada ahora etiqueta varias tareas relacionadas? ¿Podemos beneficiarnos del modelado conjunto de estas tareas? Abordamos estos problemas en una nueva versión multitarea de snorkel, Snorkel Metal, que puede admitir fuentes multitarea débilmente reguladas y proporcionar etiquetas de ruido para una o más tareas relacionadas.

Un ejemplo que consideramos fue configurar fuentes de etiquetas con diferentes granularidades. Por ejemplo, supongamos que pretendemos entrenar un modelo de reconocimiento de entidades con nombre (NER) de grano fino para etiquetar ciertos tipos de personas y ubicaciones, y tenemos algunas etiquetas ruidosas de grano fino, como "abogado" y "doctor", o " "banco" y "Hospital"; otros son generales, como etiquetar "personas" y "lugares". Al representar estos recursos como tareas asociadas con diferentes niveles, podemos modelar conjuntamente su precisión y reponderar y combinar sus etiquetas de tareas múltiples para crear datos de entrenamiento de tareas múltiples más claros e inteligentemente agregados, mejorando así el rendimiento del modelo MTL final.

Creemos que los aspectos más interesantes de la creación de sistemas de gestión de datos para MTL girarán en torno a mecanismos multitarea a gran escala, donde docenas a cientos de tareas débilmente supervisadas (y por lo tanto altamente dinámicas) interactúan de maneras complejas y diversas. .

Si bien la mayor parte del trabajo MTL hasta la fecha ha considerado manejar como máximo unas pocas tareas definidas por conjuntos de capacitación estáticos etiquetados por humanos, el mundo está evolucionando rápidamente hacia una organización (ya sea una gran empresa, un laboratorio académico o un comunidad en línea), la organización debe mantener cientos de tareas de modelado interdependientes, mal reguladas y que cambian rápidamente. Y, debido a que estas tareas están débilmente supervisadas, los desarrolladores pueden agregar, eliminar o cambiar tareas (es decir, el conjunto de entrenamiento) en horas o días, en lugar de meses o años, lo que podría requerir volver a entrenar todo el modelo.

En un artículo reciente, "El papel de la multitarea intensa y la supervisión débil en el software 2.0" (http://cidRDB.org/CIDR2019/papers/p58-ratner-CIDR19.pdf). En este artículo, describimos algunas ideas iniciales para el problema anterior e imaginamos un entorno de tareas múltiples a gran escala donde los modelos MTL se utilizan de manera efectiva como un depósito central de datos de entrenamiento débilmente etiquetados de diferentes desarrolladores y luego se combinan en una "madre" central. modelo multitarea.

Cualesquiera que sean los factores de forma exactos, está claro que la tecnología MTL logrará muchos avances interesantes en el futuro, no solo con nuevas arquitecturas de modelos, sino también con métodos de aprendizaje por transferencia, nuevos métodos débilmente supervisados, nuevos desarrollos de software y Los paradigmas sistémicos se están unificando cada vez más.

Texto original:

https://ai.stanford.edu/blog/weak-supervision/

Snorkel:

http ://snorkel.stanford.edu/

Bienvenido a seguir la cuenta oficial de WeChat: IT Technology Forest.

¡Comparte consejos de TI y noticias sobre tecnología y digitales todos los días!