Human-In-The-Loop Machine Learning (MEAP V08) - Part1
Human-In-The-Loop Machine Learning (MEAP V08) - Part1
1
Introducción a HumanintheLoop
Aprendizaje automático
• Una descripción general de las arquitecturas de aprendizaje automático con intervención humana y los componentes clave
• Una introducción a la anotación
A diferencia de los robots de las películas, la mayor parte de la Inteligencia Artificial (IA) actual no puede aprender
por sí sola: depende de la retroalimentación humana intensiva. Probablemente el 90 % de las aplicaciones de
aprendizaje automático actuales se basan en aprendizaje automático supervisado. Esto abarca una amplia gama
de casos de uso: un vehículo autónomo puede conducirte de forma segura por la calle porque las personas han
dedicado miles de horas a indicarle cuándo sus sensores detectan un "peatón", un "vehículo en movimiento", una
"marca de carril" y cualquier otro objeto relevante; tu dispositivo doméstico sabe qué hacer cuando le dices "sube
el volumen", porque las personas han dedicado miles de horas a explicarle cómo interpretar diferentes comandos;
y tu servicio de traducción automática puede traducir entre idiomas porque ha sido entrenado con miles (o quizás
millones) de traducciones humanas.
textos.
Nuestros dispositivos inteligentes aprenden menos de los programadores que codifican reglas de forma rígida
y más de los ejemplos y la retroalimentación proporcionada por personas sin conocimientos técnicos. Estos
ejemplos (los datos de entrenamiento) se utilizan para entrenar modelos de aprendizaje automático y hacerlos más
precisos para las tareas asignadas. Sin embargo, los programadores aún necesitan crear el software que permita
la retroalimentación de personas sin conocimientos técnicos. Esto plantea una de las preguntas más importantes
de la tecnología actual: ¿cuáles son las maneras correctas para que las personas y los algoritmos de aprendizaje automático...
¿Interactuar para resolver problemas? Después de leer este libro, podrá responder a estas preguntas para los diversos usos
que podría encontrar en el aprendizaje automático.
La anotación y el aprendizaje activo son pilares del aprendizaje automático con intervención humana. Determinan cómo
se obtienen los datos de entrenamiento de las personas y cuáles son los datos adecuados para presentar a las personas
cuando no se dispone del presupuesto ni del tiempo para la retroalimentación humana sobre todos los datos. El aprendizaje
por transferencia nos permite evitar un inicio en frío, adaptando los modelos de aprendizaje automático existentes a nuestra
nueva tarea, en lugar de empezar desde cero. El aprendizaje por transferencia ha ganado popularidad recientemente, por lo
que es un tema avanzado que abordaremos hacia el final del texto. Presentaremos cada uno de estos conceptos en este
capítulo.
1.1 Los principios básicos del aprendizaje automático con intervención humana
El aprendizaje automático con interacción humana es cuando los humanos y los procesos de aprendizaje automático
interactúan para resolver uno o más de los siguientes problemas:
La Figura 1.1 muestra el proceso para agregar etiquetas a los datos. Este proceso puede ser cualquier proceso de etiquetado:
añadir el tema a las noticias, clasificar fotos deportivas según el deporte que se juega, identificar el sentimiento de un
comentario en redes sociales, calificar un video según su contenido explícito, etc. En todos los casos, se puede usar aprendizaje
automático para automatizar parte del proceso de etiquetado o para agilizar el proceso humano. En todos los casos, las
mejores prácticas implican implementar el ciclo de la Figura 0: seleccionar los datos correctos para etiquetar; usar esos datos
para entrenar un modelo; e implementar/actualizar el modelo que se utiliza para etiquetar los datos a escala.
Figura 1.1: Un modelo mental del proceso HumanintheLoop para predecir etiquetas en datos.
Un proceso de anotación puede ser muy sencillo. Por ejemplo, si desea etiquetar publicaciones en redes sociales
sobre un producto como "positivas", "negativas" o "neutrales" para analizar las tendencias generales de opinión sobre
el producto, probablemente podría crear e implementar un formulario HTML en pocas horas. Un formulario HTML
simple podría permitir que alguien calificara cada publicación en redes sociales según la opción de opinión, y cada
calificación se convertiría en la etiqueta de la publicación para su capacitación.
datos.
Un proceso de anotación también puede ser muy complejo. Si quieres etiquetar cada objeto de un vídeo con un
simple cuadro delimitador, un simple formulario HTML no es suficiente: necesitas una interfaz gráfica, y crear una
buena experiencia de usuario podría llevar meses de ingeniería.
Este libro de texto te ayudará a optimizar tu estrategia de algoritmos de aprendizaje automático y tu estrategia de datos
simultáneamente. Ambas están estrechamente relacionadas, y a menudo mejorarás.
Obtenga más precisión de sus modelos más rápido si tiene un enfoque combinado: los algoritmos y la anotación son
componentes igualmente importantes e interrelacionados de un buen aprendizaje automático.
Todos los departamentos de informática ofrecen cursos de aprendizaje automático, pero muy pocos ofrecen cursos
sobre cómo crear datos de entrenamiento. Como máximo, puede haber una o dos clases sobre creación de datos de
entrenamiento entre cientos de clases de aprendizaje automático en media docena de cursos. Esto está cambiando, pero
lentamente. Por razones históricas, los investigadores académicos de aprendizaje automático han tendido a mantener los
conjuntos de datos constantes y han evaluado su aprendizaje automático en función de diferentes algoritmos.
A diferencia del aprendizaje automático académico, en la industria es más común mejorar el rendimiento de los modelos
anotando más datos de entrenamiento. Especialmente cuando la naturaleza de los datos cambia con el tiempo (lo cual
también es común), unas pocas anotaciones nuevas pueden ser mucho más efectivas que intentar adaptar un modelo de
aprendizaje automático existente a un nuevo dominio de datos. Sin embargo, muchos más artículos académicos se han
centrado en cómo adaptar algoritmos a nuevos dominios sin nuevos datos de entrenamiento que en cómo anotar
eficientemente los nuevos datos de entrenamiento adecuados.
Debido a este desequilibrio en el ámbito académico, a menudo he visto a personas en la industria cometer el mismo
error. Contratan a una docena de inteligentes doctores en aprendizaje automático que sabrán cómo construir algoritmos de
vanguardia, pero que no tendrán experiencia en la creación de datos de entrenamiento ni en pensar en las interfaces
adecuadas para la anotación. Vi exactamente esto recientemente en uno de los fabricantes de automóviles más grandes del
mundo. Habían contratado a un gran número de graduados recientes en aprendizaje automático, pero no pudieron poner en
funcionamiento su tecnología de vehículos autónomos porque no pudieron escalar su estrategia de anotación de datos.
Terminaron despidiendo a todo el equipo. Fui asesor en el proceso posterior sobre cómo necesitaban reconstruir su estrategia:
con algoritmos y anotación como dos componentes igualmente importantes e interrelacionados de un buen aprendizaje
automático.
Para quienes la estudian, la anotación es una ciencia estrechamente vinculada al aprendizaje automático. El ejemplo más
obvio es que quienes proporcionan las etiquetas pueden cometer errores, y corregirlos requiere estadísticas sorprendentemente
sofisticadas.
Los errores humanos en los datos de entrenamiento pueden ser más o menos importantes, según el caso de uso.
Si un modelo de aprendizaje automático solo se utiliza para identificar tendencias generales en el sentimiento del consumidor,
probablemente no importará si los errores se propagan a partir del 1 % de datos de entrenamiento erróneos.
Pero si un algoritmo de aprendizaje automático que impulsa un vehículo autónomo no detecta el 1% de los peatones
debido a errores propagados por datos de entrenamiento erróneos, sería desastroso. Algunos algoritmos pueden gestionar
un poco de ruido en los datos de entrenamiento, y el ruido aleatorio incluso ayuda a otros a ser más precisos al evitar el
sobreajuste. Sin embargo, los errores humanos no suelen ser ruido aleatorio y, por lo tanto, tienden a introducir sesgos
irrecuperables en los datos de entrenamiento. Ningún algoritmo puede sobrevivir a datos de entrenamiento realmente
erróneos.
Para tareas sencillas, como las etiquetas binarias en tareas objetivas, las estadísticas son bastante sencillas para decidir
cuál es la etiqueta "correcta" cuando diferentes anotadores no están de acuerdo. Pero
Para tareas subjetivas, o incluso objetivas con datos continuos, no existen heurísticas sencillas para determinar la etiqueta correcta.
Piense en la tarea crucial de crear datos de entrenamiento colocando un cuadro delimitador alrededor de cada peatón en un coche
autónomo. ¿Qué sucede si dos anotadores tienen cuadros ligeramente diferentes? ¿Cuál es el correcto? No se trata necesariamente
de un cuadro individual ni del promedio de ambos. De hecho, la mejor manera de resolver este problema es mediante el aprendizaje
automático.
Tengo la esperanza de que los lectores de este libro se entusiasmen con la anotación como ciencia y aprecien que va mucho
más allá de la creación de datos de entrenamiento de calidad para abordar problemas más sofisticados que intentamos resolver
cuando los humanos y las máquinas trabajamos juntos.
Existen numerosas estrategias de aprendizaje activo y numerosos algoritmos para implementarlas. Sin embargo, hay tres enfoques
básicos que funcionan bien en la mayoría de los contextos y que casi siempre deberían ser el punto de partida: muestreo por
incertidumbre, muestreo por diversidad y muestreo aleatorio.
El muestreo aleatorio parece el más simple, pero en realidad puede ser el más complejo: ¿qué es aleatorio si los datos están
prefiltrados, si cambian con el tiempo o si se sabe por alguna otra razón que una muestra aleatoria no será representativa del
problema que se está abordando? Estos temas se abordan con más detalle en la siguiente subsección. Independientemente de la
estrategia, siempre se debe anotar cierta cantidad de datos aleatorios para evaluar la precisión del modelo y comparar las estrategias
de aprendizaje activo con una base de elementos seleccionados aleatoriamente.
El muestreo por incertidumbre y el muestreo por diversidad reciben diversos nombres en la literatura. A menudo se les conoce
como «explotación» y «exploración», nombres ingeniosos que riman y se aliteran, pero que, por lo demás, no son muy transparentes.
El Muestreo por Incertidumbre es una estrategia para identificar elementos sin etiquetar que se encuentran cerca de un límite de
decisión en su modelo actual de Aprendizaje Automático. Si tiene una tarea de clasificación binaria, estos serán elementos con una
probabilidad cercana al 50 % de pertenecer a cualquiera de las etiquetas, por lo que el modelo es "incierto" o "confuso". Estos elementos
tienen mayor probabilidad de estar clasificados erróneamente y, por lo tanto, de resultar en una etiqueta diferente a la predicha, desplazando
el límite de decisión una vez que se hayan añadido a los datos de entrenamiento y el modelo se haya reentrenado.
El muestreo por diversidad es una estrategia para identificar elementos sin etiquetar que el modelo de aprendizaje automático desconoce
en su estado actual. Esto suele significar elementos que contienen combinaciones de valores característicos poco comunes o no presentes
en los datos de entrenamiento. El objetivo del muestreo por diversidad es identificar estos elementos nuevos, inusuales o atípicos para
asignarles más etiquetas y así proporcionar al algoritmo de aprendizaje automático una visión más completa del problema.
Si bien el término "Muestreo de Incertidumbre" es ampliamente utilizado, el "Muestreo de Diversidad" recibe diferentes nombres en
distintos campos, y a menudo aborda solo una parte del problema. Además de "Muestreo de Diversidad", otros tipos de Muestreo de
Diversidad se denominan "Detección de Valores Atípicos" y "Detección de Anomalías". Para algunos casos de uso, como la identificación de
nuevos fenómenos en bases de datos astronómicas o la detección de actividad extraña en la red por motivos de seguridad, el objetivo de la
tarea en sí es identificar el valor atípico o la anomalía, pero podemos adaptarlos aquí como estrategia de muestreo para el análisis activo.
Aprendiendo.
Otros tipos de muestreo de diversidad, como el muestreo representativo, intentan explícitamente encontrar los elementos no etiquetados
que más se parecen a los datos no etiquetados, en comparación con los datos de entrenamiento.
Por ejemplo, el Muestreo Representativo podría encontrar elementos sin etiquetar en documentos de texto que contienen palabras muy
comunes en los datos sin etiquetar, pero que aún no se encuentran en los datos de entrenamiento. Por esta razón, es un buen método para
El Muestreo por Diversidad puede implicar el uso de propiedades intrínsecas del conjunto de datos, como la distribución de las etiquetas.
Por ejemplo, se podría intentar deliberadamente obtener el mismo número de anotaciones humanas para cada etiqueta, aunque algunas
sean mucho menos frecuentes que otras. El Muestreo por Diversidad también puede implicar garantizar que los datos sean representativos
de propiedades externas importantes, como asegurar que provengan de una amplia variedad de grupos demográficos de las personas
representadas, para así superar el sesgo del mundo real. Abordaremos todas estas variaciones en profundidad en el capítulo sobre Muestreo
por Diversidad.
Tanto el muestreo por incertidumbre como el muestreo por diversidad presentan deficiencias si se utilizan de forma aislada.
Se pueden ver ejemplos en la Figura 1.2. El muestreo por incertidumbre podría centrarse únicamente en una parte del límite de decisión,
mientras que el muestreo por diversidad podría centrarse únicamente en valores atípicos alejados del límite. Por lo tanto, las estrategias
suelen combinarse para encontrar una selección de elementos sin etiquetar que maximice tanto la incertidumbre como la diversidad.
El límite de un modelo de aprendizaje automático, que predeciría la etiqueta A a la Muestreo de incertidumbre: selección de elementos no etiquetados cerca del punto de decisión
izquierda y la etiqueta B a la derecha. límite.
Muestreo de diversidad: selección de artículos no etiquetados que se encuentran en partes muy diferentes Muestreo combinado de incertidumbre y diversidad: encontrar una selección diversa
del espacio del problema. que también esté cerca del límite
Arriba a la izquierda muestra el límite de decisión de un algoritmo de aprendizaje automático entre elementos, donde algunos elementos han sido
etiquetados como "A" y otros como B.
Arriba a la derecha Muestra un posible resultado del Muestreo por Incertidumbre. Esta estrategia de Aprendizaje Activo es eficaz para seleccionar
elementos sin etiquetar cerca del límite de decisión. Son los que tienen mayor probabilidad de ser predichos erróneamente y,
por lo tanto, los que tienen mayor probabilidad de recibir una etiqueta que mueva el límite de decisión.
Sin embargo, si toda la incertidumbre está en una parte del espacio del problema, darles etiquetas no tendrá un efecto amplio
en el modelo.
La parte inferior izquierda muestra un posible resultado del Muestreo por Diversidad. Esta estrategia de Aprendizaje Activo es eficaz para
seleccionar elementos sin etiquetar que se encuentran en partes muy diferentes del espacio del problema. Sin embargo, si la
diversidad se encuentra fuera del límite de decisión, es improbable que se predigan erróneamente y, por lo tanto, no tendrán un gran
efecto en el modelo cuando una persona les asigne la etiqueta que corresponde.
Es importante destacar que el proceso de Aprendizaje Activo es iterativo. En cada iteración, se identifica una selección de elementos y
se les asigna una nueva etiqueta generada por el usuario. Posteriormente, el modelo se vuelve a entrenar con los nuevos elementos y el
proceso se repite. Esto se puede observar en la Figura 1.3, a continuación, donde se realizan dos iteraciones para seleccionar y anotar
nuevos elementos, lo que resulta en un límite cambiante.
Paso 1: Aplique el aprendizaje activo a los elementos de muestra que requieren una etiqueta humana para Paso 2: Vuelva a entrenar el modelo con los nuevos elementos de entrenamiento, lo que generará un
Paso 3: Aplique el aprendizaje activo nuevamente para seleccionar un nuevo conjunto de elementos que requieran Paso 4: (y más allá): Vuelva a entrenar el modelo y repita el proceso para
una etiqueta humana. Seguimos obteniendo un modelo más preciso.
De arriba a la izquierda a abajo a la derecha, dos iteraciones de aprendizaje activo. En cada iteración, se seleccionan
elementos a lo largo de una selección diversa del límite, lo que provoca su desplazamiento y, por lo tanto,
genera un modelo de aprendizaje automático más preciso.
Idealmente, nuestra estrategia de Aprendizaje Activo implica solicitar etiquetas humanas para el mínimo número de elementos.
Esto acelera la obtención de un modelo preciso y reduce el coste del etiquetado humano.
Los ciclos de iteración pueden ser una forma de Muestreo por Diversidad en sí mismos. Imagine que solo utilizó el Muestreo por
Incertidumbre y muestreó solo una parte del espacio del problema en una iteración. Podría darse el caso de que resolviera toda la
incertidumbre en esa parte del espacio del problema y, por lo tanto, la siguiente iteración se centrara en otra parte. Con suficientes
iteraciones, podría no necesitar el Muestreo por Diversidad en absoluto: cada iteración del Muestreo por Incertidumbre se centró
en una parte diferente del espacio del problema, y juntas son suficientes para obtener una muestra diversa de elementos para el
entrenamiento. Implementado correctamente, el Aprendizaje Activo debería tener esta función de autocorrección: cada iteración
encontrará nuevos aspectos de los datos que sean óptimos para la anotación humana. Sin embargo, si alguna parte de su espacio
de datos es inherentemente ambigua, entonces cada iteración podría llevarlo de vuelta a la misma parte del espacio del problema
con esos elementos ambiguos. Por lo tanto, generalmente es recomendable considerar estrategias de muestreo tanto por
Incertidumbre como por Diversidad.
Las figuras 1.2 y 1.3 ofrecen una buena intuición del proceso de aprendizaje activo. Como sabe cualquiera que haya trabajado
con datos de alta dimensión o secuencias, no siempre es sencillo identificar la distancia desde un límite o la diversidad. O, al
menos, es más complejo que la simple distancia euclidiana de las figuras 1.2 y 1.3. Sin embargo, la misma intuición sigue vigente:
intentamos obtener un modelo preciso lo más rápido posible con la menor cantidad de etiquetas humanas posible.
El número de iteraciones y el número de elementos que deben etiquetarse dentro de cada una
La iteración dependerá de la tarea. Cuando trabajé en traducción adaptativa entre máquina y humano, una sola pulsación de tecla
de un traductor humano bastaba para guiar al modelo de aprendizaje automático a una predicción diferente, y una sola frase
traducida era suficiente para que el modelo se actualizara, idealmente en unos pocos segundos como máximo. Desde la
perspectiva de la experiencia del usuario, es fácil entender por qué: si un traductor humano corrige la predicción de la máquina
para una palabra, pero la máquina no se adapta rápidamente, el traductor humano podría tener que (re)corregir la salida de la
máquina cientos de veces. Este es un problema común al traducir palabras que dependen mucho del contexto. Por ejemplo, se
podría querer traducir literalmente el nombre de una persona en un artículo de noticias, pero traducirlo a un nombre localizado al
traducir una obra de ficción. Sería una mala experiencia si el software sigue cometiendo el mismo error tan pronto después de que
un humano lo haya corregido, ya que esperamos que la actualidad facilite la adaptación. Desde el punto de vista técnico, por
supuesto, es mucho más difícil adaptar un modelo rápidamente. Por ejemplo, hoy en día se tarda una semana o más en entrenar
modelos grandes de traducción automática. Según la experiencia del traductor, un sistema de software que se adapta rápidamente
emplea aprendizaje continuo. En la mayoría de los casos de uso en los que he trabajado, como identificar el sentimiento en los
comentarios de redes sociales, solo he necesitado iterar aproximadamente cada mes para adaptarme a los nuevos datos. Si bien
hoy en día no existen muchas aplicaciones con aprendizaje automático adaptativo en tiempo real, cada vez más se están moviendo
en esta dirección.
10
Para la cuestión de con qué frecuencia iterar y las estrategias para volver a capacitar rápidamente cuando se
requiere una iteración corta, abordaremos las estrategias en capítulos posteriores sobre aprendizaje activo y aprendizaje
por transferencia.
Es fácil decir que siempre se debe evaluar la selección aleatoria de datos no utilizados. Pero en la práctica, podría no
ser tan sencillo. Si se han prefiltrado los datos con los que se trabaja por palabra clave, tiempo u otro factor, entonces ya
se tiene una muestra no representativa. La precisión de esa muestra no necesariamente indica la precisión de una
selección más amplia de datos.
He observado esto anteriormente al usar el conocido conjunto de datos ImageNet y aplicar los modelos de
aprendizaje automático a una amplia selección de datos. El conjunto de datos canónico ImageNet tiene 1000 etiquetas,
cada una de las cuales describe la categoría de la imagen, como "baloncesto", "taxi", "natación" y otras categorías
principales. Los desafíos de ImageNet se evaluaron con datos retenidos de ese conjunto y alcanzaron una precisión
cercana a la humana dentro de ese conjunto aleatorio. Sin embargo, si se aplican esos mismos modelos a una selección
aleatoria de imágenes publicadas en redes sociales, la precisión se reduce inmediatamente a aproximadamente un 10
%.
Como ocurre con casi todas las aplicaciones de aprendizaje automático que he visto, los datos también cambian con
el tiempo. Si trabajas con datos lingüísticos, los temas de conversación cambiarán con el tiempo y los propios idiomas
innovarán y evolucionarán en plazos razonablemente cortos. Si trabajas con datos de visión artificial, los tipos de objetos
que encuentres cambiarán con el tiempo y, a veces, igual de importante, las propias imágenes cambiarán en función de
los avances y cambios en la tecnología de las cámaras.
Si no puede definir un conjunto aleatorio significativo de datos de evaluación, debería intentar definir un conjunto
representativo . Si define un conjunto representativo, estará admitiendo que una muestra verdaderamente aleatoria no
es posible o no es significativa para su conjunto de datos. Depende de usted definir qué es representativo para su caso
de uso, ya que esto dependerá de cómo aplique los datos. Podría seleccionar un número de puntos de datos para cada
etiqueta que le interese, un número determinado de cada período de tiempo o un número determinado del resultado de
un algoritmo de agrupamiento para garantizar la diversidad (más información sobre esto en un capítulo posterior).
También podría ser conveniente contar con múltiples conjuntos de datos de evaluación compilados con diferentes
criterios. Una estrategia común consiste en tener un conjunto de datos extraído de los mismos datos que los de
entrenamiento y uno o más conjuntos de datos de evaluación fuera de dominio extraídos de conjuntos de datos
diferentes. Estos conjuntos de datos fuera de dominio suelen provenir de diferentes tipos de medios o de diferentes
períodos de tiempo. Para la mayoría de las aplicaciones reales, se recomienda contar con un conjunto de datos de
evaluación fuera de dominio, ya que es el mejor indicador de la eficacia con la que el modelo se generaliza al problema
y no simplemente sobreajusta las peculiaridades de ese conjunto de datos en particular.
Esto puede ser complicado con el aprendizaje activo, ya que en cuanto empiezas a etiquetar esos datos, dejan de estar
fuera de dominio. Si es práctico, se recomienda mantener un conjunto de datos fuera de dominio para el que no apliques
el aprendizaje activo. Así podrás comprobar el rendimiento de tu aprendizaje activo.
11
La estrategia consiste en generalizar el problema y no solo adaptarlo y sobreajustarlo a los dominios que lo componen.
se encuentra.
Debe utilizar el aprendizaje activo cuando solo pueda anotar una fracción muy pequeña de sus datos y cuando el
muestreo aleatorio no cubra la diversidad de estos. Esto abarca la mayoría de los escenarios reales, ya que la escala
de los datos se convierte en un factor importante en muchos casos de uso.
Un buen ejemplo es la cantidad de datos presentes en los vídeos. Si se quisiera colocar un cuadro delimitador
alrededor de cada objeto en cada fotograma de un vídeo, esto llevaría mucho tiempo. Imaginemos que se trata de un
coche autónomo y se trata de un vídeo de una calle con solo unos 20 objetos que nos interesan: 10 coches más, 5
peatones y 5 objetos más, como señales. A 30 fotogramas por segundo, eso equivale a 30 fotogramas * 60 segundos
* 20 objetos. Por lo tanto, ¡se necesitarían crear 36.000 cuadros para tan solo un minuto de datos! Para los anotadores
humanos más rápidos, se necesitarían al menos 12 horas para anotar un minuto de datos.
Si hacemos números, vemos lo insoluble que es esto. Solo en EE. UU., la gente conduce un promedio de 1 hora
al día, lo que nos da 95 104 400 000 horas al año. Pronto, todos los coches tendrán una cámara de vídeo delantera
para conducir o asistir en la conducción. Por lo tanto, conducir un año solo en EE. UU. requeriría 60 000 000 000 (60
billones) de horas para anotar. Hoy en día, no hay suficientes personas en el planeta para anotar los vídeos de los
conductores estadounidenses, incluso si el resto del mundo se dedicara a anotar datos todo el día para que los
conductores estadounidenses fueran más seguros. Sea cual sea el presupuesto de una empresa de vehículos
autónomos para la anotación, será mucho menor que la cantidad de datos que tienen disponibles para anotar.
Entonces, los científicos de datos de la empresa de vehículos autónomos deben tomar decisiones sobre el proceso
de anotación: ¿Es correcto cada enésimo fotograma de un vídeo? ¿Podemos muestrear los vídeos para no tener que
anotarlos todos? ¿Existen maneras de diseñar una interfaz para la anotación que agilice el proceso?
La dificultad de la anotación se aplica en la mayoría de las situaciones: habrá más datos que anotar que
presupuesto o tiempo para presentar cada punto de datos a una persona. Probablemente, por eso se utiliza el
aprendizaje automático en primer lugar: si se dispone del presupuesto y el tiempo para anotar manualmente todos los
puntos de datos, probablemente no se necesite.
También existen casos de uso en los que no se necesita aprendizaje activo, aunque el aprendizaje con
intervención humana podría ser relevante. Si se cuenta con un conjunto de datos pequeño y el presupuesto para que
una persona etiquete todo, no se necesita aprendizaje activo. Por ejemplo, podría haber casos en los que, por ley, las
personas tengan que anotar cada dato. Por ejemplo, una auditoría judicial podría requerir que una persona revise cada
comunicación dentro de una empresa en busca de posibles fraudes. Aun así, aunque una persona tenga que revisar
cada dato, el aprendizaje activo puede ayudarle a encontrar los ejemplos de fraude más rápidamente y a determinar
la mejor interfaz de usuario. De hecho, este proceso es el que se utiliza en muchas auditorías hoy en día.
También existen algunos casos de uso específicos en los que es casi seguro que no se necesita aprendizaje
activo. Por ejemplo, si se supervisan equipos en una fábrica con iluminación constante, debería ser fácil implementar
un modelo de visión artificial para determinar...
12
Si una maquinaria está encendida o apagada con una luz o interruptor. Dado que la maquinaria, la iluminación, la cámara, etc., no
cambian con el tiempo, probablemente no necesite usar el aprendizaje activo para obtener datos de entrenamiento una vez creado
el modelo. Estos casos de uso son muy pequeños. Menos del 1 % de los casos de uso que he encontrado en la industria realmente
no requieren más datos de entrenamiento.
De igual manera, podría haber casos de uso en los que su modelo de referencia ya sea lo suficientemente preciso para su
caso de uso comercial, o en los que el costo de más datos de entrenamiento supere el valor que aportaría un modelo más preciso.
Este criterio también podría ser el punto de parada para el aprendizaje activo.
iteraciones.
En cuanto a la salida, el traductor habría escrito la oración completa desde cero con mayor rapidez. Usar la oración de la traducción
automática como referencia al traducir apenas mejoró la velocidad, y a menos que el traductor humano tuviera especial cuidado,
perpetuaría errores en la traducción automática, lo que haría que su traducción fuera menos precisa.
La solución final a este problema no residió en la precisión de los algoritmos de traducción automática, sino en la interfaz de
usuario. En lugar de editar frases completas, los sistemas de traducción modernos permiten a los traductores humanos utilizar el
mismo tipo de texto predictivo que se ha vuelto común en teléfonos y (cada vez más) en herramientas de redacción de correo
electrónico y documentos. Esto permite al traductor escribir las traducciones como siempre y pulsar rápidamente Intro o Tab para
aceptar la siguiente palabra de la traducción predicha, aumentando así su velocidad general cada vez que la predicción de la
traducción automática es correcta. Por lo tanto, el mayor avance se encontró en la interacción personaordenador, no en el
aprendizaje automático subyacente.
A menudo, un formulario web simple basta para recopilar datos de entrenamiento. Los principios de interacción personaordenador
que lo sustentan son igualmente simples: las personas están acostumbradas a los formularios web porque los ven a diario. Los
formularios son intuitivos gracias al trabajo y perfeccionamiento de personas muy inteligentes en los formularios HTML. Por lo
tanto, se basa en estas convenciones: las personas saben cómo funciona un formulario HTML simple y no es necesario explicarles
cómo funciona. Por otro lado, si se rompen estas convenciones, se confundirá a las personas, por lo que se estará limitado al
comportamiento esperado.
13
Por ejemplo, es posible que tengas alguna idea acerca de cómo el texto dinámico podría acelerar alguna tarea,
pero podría confundir a más personas de las que ayudaría.
La interfaz más sencilla también es la mejor para el control de calidad: las respuestas binarias. Si puede
simplificar o dividir su proyecto de anotación en tareas binarias, será mucho más fácil diseñar una interfaz intuitiva
y, además, implementar las funciones de control de calidad de las anotaciones que abordaremos en el siguiente
capítulo.
Sin embargo, al trabajar con interfaces más complejas, las convenciones se complican aún más. Imagine que
pide a la gente que coloque polígonos alrededor de ciertos objetos en una imagen, un caso de uso común en
empresas de vehículos autónomos. ¿Qué modalidades esperaría un anotador? ¿Esperaría dibujo a mano alzada,
líneas, pinceles, selección inteligente por color/región y otras herramientas de selección? Si la gente está
acostumbrada a trabajar con imágenes en programas como Adobe Photoshop, es posible que espere la misma
funcionalidad para anotar imágenes en Machine Learning. Así como usted se basa en las expectativas de la gente
para los formularios web y se ve limitado por ellas, también se ve limitado por sus expectativas para la selección
y edición de imágenes. Desafortunadamente, desarrollar esas expectativas podría requerir cientos de horas de
programación si ofrece interfaces completas.
Para quienes realizan tareas repetitivas, como la creación de datos de entrenamiento, usar el ratón es
ineficiente y debería evitarse en la medida de lo posible. Si todo el proceso de anotación se puede realizar con el
teclado, incluyendo la anotación misma y cualquier envío o navegación de formularios, el ritmo de los anotadores
mejorará considerablemente. Si es necesario usar el ratón, debería obtener anotaciones enriquecidas para
compensar la lentitud de las entradas.
Algunas tareas de anotación utilizan dispositivos de entrada especializados. Por ejemplo, quienes transcriben
voz a texto suelen usar pedales para navegar hacia adelante y hacia atrás en la grabación de audio. Esto les
permite mantener las manos en el teclado para escribir la transcripción de lo que escuchan. Navegar con los pies
es mucho más eficiente que si tuvieran que soltar las teclas principales para navegar por la grabación con un
ratón o teclas de acceso rápido.
Salvo excepciones como la transcripción, el teclado por sí solo sigue siendo el rey: la mayoría de las tareas
de anotación no han sido tan populares como la transcripción y, por lo tanto, no se han desarrollado dispositivos
de entrada especializados. Para la mayoría de las tareas, un teclado de una laptop o PC también será más rápido
que usar la pantalla de una tableta o teléfono. No es fácil escribir en una superficie plana sin perder de vista las
entradas, así que, a menos que se trate de una tarea muy simple de selección binaria o algo similar, los teléfonos
y tabletas no son adecuados para la anotación de grandes volúmenes de datos.
14
Mencione los peluches a los participantes; simplemente estaban ahí, al fondo de la sala. Increíblemente, esto fue suficiente para
que la gente interpretara un acento más neozelandés cuando había un kiwi presente, y más australiano cuando había un canguro
presente. Por lo tanto, es fácil imaginar que si se está construyendo un modelo de aprendizaje automático para detectar acentos
(por ejemplo, si se está trabajando en un dispositivo doméstico inteligente que se desea que funcione con tantos acentos como sea
posible), es necesario tener en cuenta el contexto al recopilar los datos de entrenamiento.
Cuando el contexto o la secuencia de eventos pueden influir en la percepción humana, se denomina priming. Hablaremos de
los tipos de priming que se deben controlar en un capítulo posterior sobre anotación. El más importante al crear datos de
entrenamiento es el "priming de repetición".
La preparación repetitiva se produce cuando la secuencia de tareas puede influir en la percepción de alguien. Por ejemplo, si un
anotador etiqueta publicaciones en redes sociales según su sentimiento y se encuentra con 99 publicaciones negativas seguidas,
es más probable que cometa un error al etiquetar la publicación número 100 como negativa, cuando en realidad es positiva. Esto
podría deberse a que la publicación es inherentemente ambigua (quizás sarcasmo) o a un simple error de un anotador que pierde
la atención debido al trabajo repetitivo.
1.4.3 Los pros y contras de crear etiquetas mediante la evaluación del aprendizaje automático
predicciones
Una forma de combinar el aprendizaje automático y garantizar la calidad de las anotaciones es usar un formulario simple de entrada
binaria para que los usuarios evalúen una predicción de aprendizaje automático y la confirmen o rechacen. Esta puede ser una
buena manera de convertir una tarea más compleja en una tarea de anotación binaria. Por ejemplo, se puede preguntar a alguien
si un cuadro delimitador alrededor de un objeto es correcto como una pregunta binaria simple que no implica una interfaz compleja
de edición/selección. De igual manera, es fácil preguntar a un anotador si una palabra es una "ubicación" en un texto, y luego
proporcionar una interfaz para anotar eficientemente frases que son ubicaciones en
texto libre.
Sin embargo, se corre el riesgo de centrarse en la incertidumbre localizada del modelo y pasar por alto partes importantes del
espacio del problema. Por lo tanto, si bien se puede simplificar la interfaz y la evaluación de la precisión de las anotaciones
simplemente haciendo que las personas evalúen las predicciones de los modelos de aprendizaje automático, se necesitará una
estrategia de diversidad para el muestreo, incluso si solo se trata de garantizar que también esté disponible una selección aleatoria
de elementos.
De lo que hemos visto hasta ahora, aquí se presentan algunos principios básicos para el diseño de interfaces de anotación.
Analizaremos con más detalle todos estos principios y cuándo se aplican o no en los capítulos dedicados a la anotación:
1. Plantee sus problemas como opciones binarias siempre que sea posible. 2.
Asegúrese de que las respuestas esperadas sean diversas para evitar la preparación.
3. Utilice las convenciones de interacción existentes.
15
1.5 Humanos asistidos por aprendizaje automático vs. máquinas asistidas por humanos
Aprendiendo
Puede haber dos objetivos distintos en el aprendizaje automático con intervención humana: hacer que una aplicación de
aprendizaje automático sea más precisa con la participación humana y mejorar una tarea humana con la ayuda del aprendizaje
automático.
A veces se combinan ambas, y la traducción automática es un buen ejemplo. La traducción humana se puede acelerar
utilizando la traducción automática para sugerir palabras o frases que una persona puede aceptar o rechazar, al igual que tu
teléfono predice la siguiente palabra mientras escribes. Esta es una tarea de procesamiento humano asistida por aprendizaje
automático. Sin embargo, también he trabajado con clientes que utilizan la traducción automática para grandes volúmenes de
contenido cuando, de otro modo, pagarían por una traducción humana. Dado que el contenido es similar en los datos traducidos
tanto por humanos como por máquinas, los sistemas de traducción automática se vuelven más precisos con el tiempo a partir
de los datos traducidos por humanos. Por lo tanto, estos sistemas cumplen ambos objetivos: aumentar la eficiencia de los
humanos y la precisión de las máquinas.
Los motores de búsqueda son otro gran ejemplo de aprendizaje automático con intervención humana. A menudo se olvida
que son una forma de IA, a pesar de su ubicuidad, tanto para búsquedas generales como para casos de uso específicos como
sitios de comercio electrónico y navegación (mapas en línea). Cuando buscas una página en línea y haces clic en el cuarto
enlace que aparece en lugar del primero, estás entrenando a ese motor de búsqueda (sistema de recuperación de información)
para que el cuarto enlace sea una mejor respuesta a tu consulta. Existe la idea errónea de que los motores de búsqueda se
entrenan únicamente con la retroalimentación de los usuarios finales.
De hecho, los principales motores de búsqueda también emplean a miles de anotadores para evaluar y optimizar sus motores
de búsqueda. Este caso práctico —evaluar la relevancia de la búsqueda— es el más importante para la anotación humana en
el aprendizaje automático. Si bien ha habido un aumento reciente en la popularidad de los casos de uso de visión artificial,
como los vehículos autónomos, y de voz, como los dispositivos domésticos y el teléfono, la relevancia de la búsqueda sigue
siendo el caso práctico más importante para la anotación humana profesional en la actualidad.
Independientemente de su apariencia inicial, la mayoría de las tareas de aprendizaje automático con intervención humana
(HPI) incluirán elementos tanto de aprendizaje automático asistido por humanos como de aprendizaje automático asistido por
humanos. Por lo tanto, será necesario diseñar para ambos.
En la mayoría de los casos, no es necesario empezar a crear los datos de entrenamiento desde cero. A menudo, ya existen
conjuntos de datos que se ajustan a tus necesidades. Por ejemplo, si estás creando un modelo de análisis de sentimientos
para reseñas de películas, podrías contar con un conjunto de datos de análisis de sentimientos de reseñas de productos con el
que puedes empezar y luego adaptarlo a tus casos de uso. Esto se conoce como aprendizaje por transferencia: tomar un
modelo de un caso de uso y adaptarlo a otro.
16
Recientemente, ha aumentado considerablemente la popularidad de adaptar modelos generales preentrenados a nuevos casos de uso
específicos. En otras palabras, se están construyendo modelos específicamente para su uso en el Aprendizaje por Transferencia en diversos casos
Históricamente, el aprendizaje por transferencia implicaba incorporar los resultados de un proceso a otro.
Etiquetador general de categorías gramatical > Analizador sintáctico > Etiquetador de análisis de sentimientos
Reentrenamiento de parte de un modelo neuronal para adaptarse a una nueva tarea (modelos preentrenados), O
Utilizando los parámetros de un modelo neuronal como entradas para otro
Un ejemplo de aprendizaje por transferencia se encuentra en la Figura 1.4, que muestra cómo se puede entrenar un modelo en un conjunto de
etiquetas y se puede volver a entrenar en otro conjunto de etiquetas manteniendo la misma arquitectura y "congelando" parte del modelo, y solo
Figura 1.4: Ejemplo de aprendizaje por transferencia. Se construyó un modelo para predecir una etiqueta como «A», «B», «C» o «D».
Reentrenando solo la última capa del modelo y utilizando muchos menos elementos etiquetados por humanos que si estuviéramos entrenando un
17
modelo desde cero, el modelo ahora puede predecir las etiquetas “W”, “X”, “Y” y “Z”.
El aprendizaje por transferencia ha experimentado el mayor progreso reciente en visión artificial. Una estrategia popular consiste en
partir del conjunto de datos ImageNet y construir un modelo a partir de los millones de ejemplos para clasificar las 1000 etiquetas:
deportes, aves, objetos artificiales, etc.
Para aprender a clasificar diferentes tipos de deportes, animales y objetos, el modelo de aprendizaje automático aprende sobre
los tipos de texturas y bordes necesarios para distinguir 1000 tipos diferentes de elementos en imágenes. Muchas de estas texturas
y bordes son más generales que las 1000 etiquetas y pueden usarse en otras partes. Debido a que las texturas y los bordes se
aprenden en las capas intermedias de la red, puede reentrenar solo la última capa en un nuevo conjunto de etiquetas. Es posible
que solo necesite unos pocos cientos o miles de ejemplos para cada nueva etiqueta, en lugar de millones, porque ya está dibujando
en millones de imágenes para las texturas y los bordes. ImageNet ha tenido un gran éxito cuando las personas han reentrenado la
capa final a nuevas etiquetas con pocos datos, incluyendo tipos muy diferentes de objetos como células en biología y características
geográficas de vistas satelitales.
También es posible reentrenar varias capas, en lugar de solo la última, y añadir más capas al modelo desde el que se está
transfiriendo. Existen diversas arquitecturas y parámetros en los que se puede utilizar el aprendizaje por transferencia para adaptar
un modelo a un nuevo caso de uso, pero todos con el mismo objetivo: limitar el número de etiquetas humanas necesarias para
construir un modelo preciso con nuevos datos.
Hasta la fecha, la visión artificial ha tenido menos éxito al intentar ir más allá del etiquetado de imágenes. Para tareas como la
detección de objetos (detectar objetos dentro de una imagen), aún no existen sistemas que muestren un aumento tan drástico en la
precisión al comparar objetos de diferentes tipos. Esto se debe a que los objetos se detectan como conjuntos de bordes y texturas,
en lugar de como objetos completos. Sin embargo, hay mucha gente trabajando en este problema, por lo que no cabe duda de que
se producirán grandes avances.
El gran impulso de los modelos preentrenados para el Procesamiento del Lenguaje Natural (PLN) es incluso más reciente que el de
la Visión Artificial. Solo en los últimos dos o tres años, el Aprendizaje por Transferencia de esta forma se ha popularizado en el PLN,
por lo que es una de las tecnologías más vanguardistas que se abordan en este texto, pero también una de las que podría quedar
obsoleta con mayor rapidez.
La adaptación similar a ImageNet no funciona con datos lingüísticos. Transferir el aprendizaje de un conjunto de datos de
análisis de sentimientos a otro solo proporciona un aumento de precisión de aproximadamente un 23 %. A diferencia de la visión
artificial, los modelos que predicen etiquetas a nivel de documento no capturan la amplitud del lenguaje humano con la misma
precisión que los modelos de visión artificial equivalentes.
Sin embargo, puedes aprender propiedades interesantes de las palabras observando los contextos en los que aparecen con
frecuencia. Por ejemplo, palabras como «doctor» y «surgeon» podrían aparecer en
18
contextos similares entre sí. Digamos que encontró 10,000 contextos en los que aparece cualquier palabra en inglés,
mirando el conjunto de palabras antes y después. Luego puede tomar "doctor" y ver qué tan probable es que
aparezca en cada uno de estos 10,000 contextos. Algunos de estos contextos estarán relacionados con la medicina
y, por lo tanto, "doctor" tendrá una puntuación alta en esos contextos. Pero la mayoría de los 10,000 contextos no
estarán relacionados con la medicina y, por lo tanto, "doctor" tendrá una puntuación baja en esos contextos. Puede
tratar estas 10,000 puntuaciones como un vector de 10,000 de longitud. Es probable que la palabra "surgeon" tenga
un vector similar a "doctor", ya que "surgeon" a menudo aparece en los mismos contextos que "doctor". Por lo tanto,
estas representaciones se conocen como "vectores de palabras" o "incrustaciones", y volveremos a ellas en capítulos
posteriores.
El concepto de entender una palabra por su contexto es antiguo y forma la base del lenguaje funcional.
teorías de la lingüística:
Estrictamente hablando, necesitamos ir más allá de la "palabra" para llegar a la información más importante. El inglés
es un caso atípico, ya que las palabras tienden a ser buenas unidades atómicas para el aprendizaje automático. El
inglés admite palabras complejas como "undoing", donde es obvio por qué querríamos interpretar las partes
separadas (morfemas), pero lo hace con mucha menos frecuencia que un idioma típico. Lo que el inglés expresa con
el orden de las palabras, como sujetoverboobjeto, se expresa con mayor frecuencia con afijos, que el inglés limita
a cosas como el presente/pasado y las distinciones de singular/plural.
Entonces, para que el aprendizaje automático no esté sesgado hacia un idioma privilegiado como el inglés, que es
un caso atípico, necesitamos modelar subpalabras.
Firth lo agradecería. Fundó el primer departamento de Lingüística de Inglaterra en la Escuela Secundaria de las
Artes de Inglaterra (SOAS), donde trabajé durante dos años ayudando a registrar y preservar lenguas en peligro de
extinción. Durante mi estancia allí, me quedó claro que la amplitud de la diversidad lingüística implica que necesitamos
características más precisas que las palabras, y que los métodos de aprendizaje automático con intervención humana
son necesarios si queremos adaptar las capacidades de aprendizaje automático a la mayor cantidad posible de los
7000 idiomas del mundo.
Cuando el Aprendizaje por Transferencia tuvo su momento decisivo, se basó en estos principios de comprensión
de palabras (o segmentos de palabras) en contexto. Podemos obtener millones de etiquetas para nuestros modelos
de forma gratuita si predecimos la palabra a partir de su contexto:
No se requiere etiquetado humano: podemos eliminar un porcentaje de las palabras del texto sin procesar y convertir
esto en una tarea de aprendizaje automático predictivo para intentar adivinar su significado. Como puede imaginar,
la primera palabra en blanco probablemente sea "perro", "cachorro" o "gatito", y la segunda probablemente sea "es"
o "era". Al igual que con "cirujano" y "médico" mencionados anteriormente, podemos predecir palabras a partir del
contexto.
A diferencia de nuestro ejemplo inicial, donde la transferencia de aprendizaje de un tipo de sentimiento a otro
fracasó, este tipo de modelos preentrenados ha tenido un éxito rotundo. Con solo un pequeño ajuste de un modelo
que predice una palabra en contexto, es posible construir sistemas de vanguardia.
19
con pequeñas cantidades de etiquetado humano en tareas como “Respuesta a preguntas”, “Análisis de sentimientos”,
“Implicación textual” y muchas más tareas de lenguaje aparentemente muy diferentes.
A diferencia de la visión por computadora, donde el aprendizaje por transferencia ha tenido menos éxito fuera del
simple etiquetado de imágenes, el aprendizaje por transferencia se está volviendo rápidamente omnipresente para
tareas más complicadas en el procesamiento del lenguaje natural, incluidos el resumen y la traducción.
Los modelos preentrenados no son muy complejos: los más sofisticados actuales simplemente se entrenan para
predecir una palabra en contexto, el orden de las palabras en una oración y el orden de las oraciones. A partir de ese
modelo base de solo tres tipos de predicciones inherentes a los datos, podemos construir prácticamente cualquier caso
de uso de PLN con ventaja. Dado que el orden de las palabras y el orden de las oraciones son propiedades inherentes
a los documentos, los modelos preentrenados no necesitan etiquetas humanas. Se construyen como tareas de
aprendizaje automático supervisado, pero los datos de entrenamiento se generan de forma gratuita. Por ejemplo, se
podría pedir a los modelos que predigan una de cada diez palabras eliminadas de los datos y que predigan cuándo
ciertas oraciones se suceden y cuándo no en los documentos fuente. Esto puede ser una ventaja muy potente antes de
que se requieran etiquetas humanas para la tarea.
Sin embargo, los modelos preentrenados están obviamente limitados por la cantidad de texto sin etiquetar
disponible. Hay mucho más texto sin etiquetar disponible en inglés en comparación con otros idiomas, incluso
considerando la frecuencia general de los diferentes idiomas. También habrá sesgos culturales. El ejemplo anterior, "mi
perro es lindo", se encontrará con frecuencia en texto en línea, que es la principal fuente de datos para los modelos
preentrenados hoy en día. Pero no todos tienen perros como mascotas. Cuando viví brevemente en el Amazonas para
estudiar la lengua matsés, los monos eran mascotas más populares. La frase en inglés "mi mono es lindo" es muy poco
común en línea y su equivalente en matsés, "chuna bëdambo ikek", no aparece en absoluto. Los vectores de palabras
y los modelos contextuales en sistemas preentrenados permiten que una palabra exprese múltiples significados, por lo
que podrían capturar tanto "perro" como "mono" en este contexto, pero aún están sesgados hacia los datos con los que
se entrenan, y es poco probable que el contexto "mono" ocurra en grandes volúmenes en cualquier idioma. Por lo tanto,
debemos ser conscientes de que los sistemas entrenados previamente tenderán a amplificar la influencia cultural.
sesgos.
Los modelos preentrenados aún requieren etiquetas humanas adicionales para lograr resultados precisos
En sus tareas, el Aprendizaje por Transferencia no modifica nuestra arquitectura general para el Aprendizaje
Automático con Interacción Humana. Sin embargo, puede brindarnos una ventaja sustancial en el etiquetado, lo cual
puede influir en la elección de la estrategia de Aprendizaje Activo que utilizamos para muestrear datos adicionales para
la anotación humana, e incluso en la interfaz mediante la cual los humanos proporcionan dicha anotación.
Como el enfoque de aprendizaje automático más reciente y avanzado utilizado en este texto, volveremos al aprendizaje
por transferencia en los capítulos avanzados posteriores.
20
Figura 1.5: El “Cuadrante de conocimiento de aprendizaje automático”, que cubre los temas de este libro y los expresa en términos
de lo que se conoce y lo que se desconoce para sus modelos de aprendizaje automático.
1. Conocimientos conocidos: lo que su modelo de aprendizaje automático puede hacer con confianza y precisión
Hoy. Este es tu modelo en su estado actual.
2. Desconocidos conocidos: lo que su modelo de aprendizaje automático no puede hacer con seguridad hoy en día. Usted
Se puede aplicar el muestreo de incertidumbre a estos elementos.
3. Conocimientos desconocidos: conocimiento dentro de modelos preentrenados que se puede adaptar a su tarea. El aprendizaje
por transferencia le permite utilizar este conocimiento.
4. Incógnitas desconocidas: lagunas en su modelo de aprendizaje automático donde actualmente no hay información disponible.
Puede aplicar el muestreo de diversidad a estos elementos.
Las columnas y filas también son significativas: las filas capturan el conocimiento sobre el modelo en su estado actual, y las columnas
capturan el tipo de soluciones necesarias:
He incluido una “hoja de trucos” similar al final de la mayoría de los capítulos como referencia rápida para los conceptos principales
que se tratan.
21
1.8 Resumen
La arquitectura más amplia del aprendizaje automático con interacción humana (HTA) es un proceso iterativo que combina
componentes humanos y de máquina. Comprender esto permite comprender cómo se integran todas las partes de este
libro.
Existen algunas técnicas básicas de anotación que puede usar para comenzar a crear datos de entrenamiento. Comprender
estas técnicas le garantizará obtener anotaciones precisas y eficientes. Las dos estrategias de aprendizaje activo más
comunes son el muestreo por
incertidumbre y el muestreo por diversidad. Comprender los principios básicos de cada tipo le ayudará a definir la
combinación adecuada de enfoques para sus problemas específicos.
• El aprendizaje por transferencia nos permite adaptar los modelos entrenados de una tarea a otra. Esto
Nos permite construir modelos más precisos con menos anotaciones.
22
2
Introducción al aprendizaje
automático con intervención humana
• Métodos para clasificar múltiples predicciones a través de su confianza general, de modo que pueda
• Formas de encontrar elementos sin etiquetar con información novedosa para que pueda ampliar su modelo.
conocimiento.
• Creación de una interfaz sencilla para obtener anotaciones para que pueda crear más datos de entrenamiento.
• Reentrenar un modelo de manera eficiente con nuevos datos de entrenamiento para hacerlo más preciso.
Para cualquier tarea de aprendizaje automático, se debe comenzar con un sistema simple pero funcional y desarrollar
componentes más sofisticados a medida que se avanza. De hecho, esto aplica a la mayoría de las tecnologías: entregar el
Producto Mínimo Viable (MVP) y luego iterar sobre ese producto. La retroalimentación que se obtenga de lo que se entregue
primero le indicará cuáles son los componentes más importantes para desarrollar a continuación.
Este capítulo está dedicado a construir su primer MVP de aprendizaje automático con intervención humana.
Desarrollaremos este sistema a medida que avance este libro, lo que le permitirá aprender sobre los diferentes componentes
que se necesitan para crear interfaces de anotación de datos más sofisticadas, algoritmos de aprendizaje activo y estrategias
de evaluación.
A veces, un sistema simple es suficiente. Imagina que trabajas en una empresa de medios y tu trabajo consiste en
etiquetar noticias según su tema. Ya tienes temas como "deportes", "política" y "entretenimiento". Últimamente, los desastres
naturales han sido noticia y tu jefe te ha pedido que anotes las noticias pasadas relevantes como "relacionadas con desastres"
para facilitar...
23
Busca esta nueva etiqueta. No tienes meses para desarrollar un sistema óptimo; solo quieres lanzar un MVP lo antes
posible.
Dado que probablemente ya esté utilizando datos filtrados al crear un modelo de aprendizaje automático, puede ser
útil considerar la mayoría de los problemas de aprendizaje automático como si ya estuvieran en medio del proceso de
iteración del aprendizaje activo. Ya se han tomado algunas decisiones sobre el muestreo de datos. Estas decisiones
llevaron al estado actual de los datos anotados, y probablemente no fueron del todo óptimas. Por lo tanto, una de las
primeras cosas de las que debe preocuparse es cómo empezar a muestrear los datos correctos a medida que avanza.
Si no está implementando explícitamente una buena estrategia de aprendizaje activo y, en su lugar, emplea métodos
ad hoc para muestrear sus datos, entonces está implementando un "hacktivo".
1 LeCun, Bottou, Bengio y Haffner. Aprendizaje basado en gradientes aplicado al reconocimiento de documentos. 1998. Actas
del IEEE. [Link]
24
Aprendiendo." Está bien improvisar algo, pero es mejor hacer bien los fundamentos incluso si estás haciendo algo rápidamente.
Figura 2.1: La arquitectura de su primer sistema de aprendizaje automático con intervención humana.
Su primer sistema de aprendizaje automático con intervención humana se verá similar a la Figura 2.1. Durante el resto de este capítulo,
implementará esta arquitectura. Este capítulo asume que utilizará el conjunto de datos presentado en la siguiente sección, pero puede
usar fácilmente sus propios datos. Como alternativa, puede construir el sistema descrito aquí y, luego, modificando los datos y las
instrucciones de anotación, debería poder incorporar sus...
Tarea del mundo real que podría tener muchas áreas de aplicación:
1. Utilizar este conjunto de datos para construir un modelo de aprendizaje automático que ayude a identificar desastres relacionados
Artículos de noticias en tiempo real para ayudar con la respuesta.
2. Agregar una nueva etiqueta “relacionada con desastres” a los artículos de noticias para mejorar su
Capacidad de búsqueda e indexación en una base de datos.
25
3. Apoyar un estudio social sobre cómo se informan los desastres en los medios, permitiendo
Alguien que analice los titulares relevantes.
En el seguimiento de epidemias globales, identificar artículos periodísticos sobre brotes es una tarea importante.
El H5N1 (gripe aviar) se reportó abiertamente semanas antes de ser identificado como una nueva cepa de gripe, y el H1N1 (gripe
porcina) se reportó abiertamente con meses de anticipación. Si estos informes se hubieran presentado a virólogos y epidemiólogos
antes, habrían reconocido los patrones de las nuevas cepas de gripe y podríamos haber reaccionado antes. Por lo tanto, si bien
este es un caso práctico muy simple para su primer sistema de aprendizaje automático con intervención humana, también es un
caso práctico real que puede salvar vidas.²
Para los datos que utilizará a lo largo del libro de texto, utilizaremos mensajes de varios desastres pasados en los que he
trabajado personalmente como profesional de respuesta ante desastres.
En muchos de estos casos, utilicé sistemas de aprendizaje automático con interacción humana (HTA) para procesar estos datos,
por lo que son muy relevantes para este texto. Los datos incluyen mensajes enviados tras los terremotos de Haití y Chile en 2010,
las inundaciones en Pakistán en 2010 y las supertormentas (huracanes).
Sandy en [Link]. en 2012, y una gran colección de titulares de noticias centrados únicamente en la enfermedad
brotes.
Te unirás a estudiantes de PNL en Stanford, estudiantes de Ciencias de Datos en Udacity y estudiantes de secundaria inscritos
en “IA para todos” ([Link] que también están utilizando este conjunto de datos como parte de sus cursos hoy.
[Link]
Consulta el archivo Léame para obtener instrucciones sobre cómo instalar Python 3.6 o posterior y PyTorch en tu equipo. Las
versiones de Python y PyTorch cambian rápidamente, por lo que mantendré el archivo Léame actualizado con las instrucciones de
instalación, en lugar de intentar incluirlas aquí.
Si no está familiarizado con PyTorch, comience con los ejemplos de este tutorial de PyTorch:
[Link]
El ejemplo de este capítulo se adaptó deliberadamente a partir de una combinación de este ejemplo de PyTorch y el de la página
siguiente del tutorial de PyTorch. Si se familiariza con ambos tutoriales, comprenderá todo el código de este capítulo.
Los datos en los archivos CSV constan de 2 a 5 campos, dependiendo de cómo se procesen, y tienen un aspecto
algo así como el ejemplo de la Tabla 2.2.
26
Tabla 2.2: Un archivo de datos de ejemplo, con la identificación, el texto real, la estrategia de muestreo de aprendizaje
activo que se eligió y la puntuación para esa estrategia de muestreo.
596124 Advertencia de inundación para los residentes del lago Dolores 1 baja confianza 0.5872
58503 Los trabajadores de primeros auxilios llegan para ayudar tras el terremoto 1 aleatorio 0.6234
23173 Los ciclistas se pierden intentando navegar por los nuevos carriles bici 0 aleatorio 0.0937
Los datos que utilizará en este capítulo en particular provienen de una extensa colección de titulares de noticias. Los artículos abarcan muchos
/training_data: los datos con los que se entrenarán sus modelos /validation_data: los datos
con los que se ajustarán sus modelos /evaluation_data: los datos con los que se evaluará
la precisión de sus modelos /unlabeled_data: el gran conjunto de datos que desea etiquetar
Verá los datos en los archivos CSV en este repositorio y tendrán el formato indicado anteriormente:
3. Estrategia de muestreo: la estrategia de aprendizaje activo que utilizamos para muestrear este artículo. 4. Confianza: la
confianza del aprendizaje automático de que este artículo está “relacionado con el desastre”.
(Esta lista cuenta desde 0 en lugar de 1 arriba, de modo que coincidirá con el índice de cada campo en los elementos/filas del código).
Estos campos son información suficiente para construir su primer modelo. Verá que los datos sin etiquetar del ejemplo aún no tienen
Inicialmente, se le pedirá que anote los mensajes como "relacionados con desastres" o "no relacionados con desastres" para crear los datos
de evaluación. Luego, se le pedirá que haga lo mismo con los datos de entrenamiento iniciales. Solo después de esto, verá cómo se crean los
modelos con sus datos y comienza el proceso de aprendizaje activo. Volveremos al código más adelante en este capítulo y presentaremos
En un desastre real, se clasificarían los datos en una gran cantidad de categorías detalladas. Por ejemplo, se podrían separar las
solicitudes de "comida" y "agua", ya que las personas pueden pasar mucho más tiempo sin comida que sin agua, y por lo tanto, las solicitudes
de agua potable...
27
Se debe responder a las necesidades de agua con mayor urgencia que a las solicitudes de alimentos. Por otro lado, es posible que
se pueda resolver el problema del agua localmente mediante filtración, mientras que los alimentos deben enviarse a la región
afectada por el desastre durante un período más largo. Como resultado, a menudo hay organizaciones de socorro completamente
diferentes que se centran en "alimentos" y "agua". Lo mismo ocurre con las distinciones entre los tipos de ayuda médica, seguridad,
vivienda, etc.: todas necesitan categorías detalladas para ser procesables. Pero para cualquiera de estas situaciones, filtrar entre
"relevante" y "no relevante" puede ser un primer paso importante en el proceso. Si la cantidad de datos es lo suficientemente baja,
es posible que solo se necesite la asistencia de aprendizaje automático para separar la información relacionada de la no relacionada,
y luego los humanos pueden encargarse del resto de las categorías. Yo mismo he dirigido esfuerzos de respuesta a desastres
donde este fue el caso.
Además, en la mayoría de los desastres no se trabajaría en inglés. El inglés solo representa alrededor del 5% de las
conversaciones diarias del mundo, por lo que alrededor del 95% de las comunicaciones sobre desastres no se realizan en inglés.
Sin embargo, la arquitectura más amplia aquí podría aplicarse a cualquier idioma. La mayor diferencia es que el inglés es inusual
en el sentido de que el espacio en blanco es un delimitador útil para dividir las oraciones en palabras como características. La
mayoría de los idiomas tienen prefijos, sufijos y compuestos más sofisticados que hacen que las palabras individuales sean más
complicadas. Algunos idiomas, como el chino, no usan espacios en blanco entre la mayoría de las palabras. Dividir las palabras en
sus partes constituyentes ("morfemas") es una tarea importante en sí misma. De hecho, esto fue parte de mi tesis doctoral: descubrir
automáticamente los límites internos de las palabras para cualquier idioma en las comunicaciones de respuesta a desastres. ¡Es un
área de investigación interesante e importante para lograr que el aprendizaje automático sea verdaderamente igualitario en todo el
mundo, y animo a la gente a explorarla!
Es útil explicitar las suposiciones de los datos para que puedas construir y optimizar la arquitectura más adecuada para tu caso
de uso. Es recomendable incluir las suposiciones en cualquier sistema de aprendizaje automático, así que aquí tienes las nuestras:
Debería ser fácil ver cómo el marco general del aprendizaje automático con intervención humana funcionará en cualquier caso de
uso similar. El marco de este capítulo podría adaptarse a la clasificación de imágenes casi con la misma facilidad que a cualquier
otra tarea de clasificación de texto.
28
“La luz del sol es el mejor desinfectante”: una anécdota del experto Peter Skomoroch
Es necesario analizar datos reales en profundidad para saber exactamente qué modelos construir. Además de gráficos de alto nivel y
Estadísticas agregadas: recomiendo que los científicos de datos revisen una gran selección de datos granulares seleccionados al azar.
regularmente para dejar que estos ejemplos te invadan. Así como los ejecutivos miran los gráficos de la empresa cada semana y
Los ingenieros de red revisan las estadísticas de los registros del sistema, los científicos de datos deben tener una intuición para sus datos y cómo se procesan.
cambio.
Al desarrollar la función Recomendaciones de Habilidades de LinkedIn, diseñé una interfaz web sencilla con un botón aleatorio que mostraba
ejemplos de recomendaciones individuales junto con las entradas del modelo correspondiente, lo que me permitía ver rápidamente los datos y comprender
los algoritmos y estrategias de anotación más eficaces. Esta es la mejor manera de garantizar la detección de posibles problemas y obtener datos de
entrada de alta calidad, esenciales para el éxito: estás arrojando luz sobre tus datos, y la luz solar es el mejor desinfectante.
Biografía: Peter Skomoroch es el ex director ejecutivo de SkipFlag (adquirida por WorkDay) y trabajó como científico de datos principal.
en LinkedIn, en el equipo que inventó el título de “científico de datos”.
2.2 Interpretación de las predicciones y los datos del modelo para respaldar la metodología activa
Aprendiendo
Casi todos los modelos de aprendizaje automático supervisado le brindarán las siguientes cosas:
Los números generalmente se interpretan como niveles de confianza en la predicción, aunque esto puede ser más o menos cierto
según cómo se generen. Si existen categorías mutuamente excluyentes con niveles de confianza similares, esto constituye una
buena evidencia de que el modelo está confundido sobre su predicción y que un juicio humano sería valioso. Por lo tanto, el
modelo se beneficiará más cuando aprenda a predecir correctamente la etiqueta de un elemento con una predicción incierta.
Por ejemplo, supongamos que tenemos un mensaje que podría estar relacionado con un desastre y el
La predicción se ve así:
{
"Objeto": {
"Etiqueta": "No relacionado con el desastre",
"Puntuaciones":
{ "Relacionado con el desastre": 0,475524352, "No
relacionado con el desastre": 0,524475648
}
}
}
En esta predicción, se predice que el mensaje será "No relacionado con el desastre". En el resto del aprendizaje automático
supervisado, esta etiqueta es lo que más importa: ¿fue correcta la predicción de la etiqueta y cuál es la precisión general del
modelo al predecir en un amplio conjunto de datos almacenados?
29
Pero en el aprendizaje activo, lo que más nos importa son las cifras asociadas con la predicción. En el ejemplo, se puede ver
que la predicción "No relacionado con desastres" tiene una puntuación de 0,524. Esto significa que el sistema tiene un 52,4 % de
confianza en que la predicción fue correcta.
Desde la perspectiva de la tarea, se entiende por qué se necesita que una persona revise esto: existe una alta probabilidad
de que esté relacionado con un desastre. Si está relacionado con un desastre, entonces el modelo está interpretando mal este
ejemplo por alguna razón, así que es probable que se desee agregarlo a los datos de entrenamiento para no pasar por alto otros
ejemplos similares.
En el capítulo 6, abordaremos el problema de la fiabilidad real de "0,524". Especialmente en el caso de los modelos
neuronales, estas confianzas pueden ser muy erróneas. Para este capítulo, podemos asumir que, si bien el número exacto puede
no ser preciso, generalmente podemos confiar en las diferencias relativas de confianza entre múltiples predicciones.
{
"Objeto": {
"Etiqueta": "No relacionado con el desastre",
"Puntuaciones": {
"Relacionado con el desastre": 0,015524352,
"No relacionado con el desastre": 0,984475648
}
}
}
Este elemento también se predice como "No relacionado con desastres", pero con un 98,4 % de confianza aquí, en comparación
con el 52,4 % de confianza para el primer elemento.
Por lo tanto, el modelo tiene mayor confianza en el segundo elemento que en el primero. Por lo tanto, es razonable suponer
que el primer elemento tiene mayor probabilidad de estar mal etiquetado y se beneficiaría de una revisión humana. Incluso si no
confiamos en las cifras del 52,4 % y el 98,4 % (y probablemente no deberíamos, como aprenderá en capítulos posteriores), es
razonable suponer que el orden de clasificación de la confianza se correlacionará con la precisión. Esto generalmente será cierto
para casi todos los algoritmos de aprendizaje automático y casi todas las formas de calcular la precisión: puede ordenar los
elementos según la confianza prevista y muestrear los elementos con la confianza más baja. Para una distribución de probabilidad
sobre un conjunto de etiquetas y para el elemento x, esto viene dado por la ecuación, donde y* es
C(x) = Pθ (y* | x)
Para una tarea de predicción binaria como la de nuestro ejemplo, simplemente puede clasificar por confianza y muestrear los
elementos más cercanos al 50 % de confianza. Sin embargo, si intenta algo más complejo, como predecir tres o más etiquetas
mutuamente excluyentes, etiquetar secuencias de datos, generar oraciones completas (incluyendo traducción y transcripción de
voz) o identificar objetos dentro de imágenes y vídeos, existen múltiples maneras de calcular la confianza. Volveremos a otras
maneras de calcular la confianza en capítulos posteriores.
30
La intuición sobre la baja confianza sigue siendo la misma y una tarea binaria es más fácil para su primer sistema Humaninthe
Loop.
Como vimos en el Capítulo 1, a menudo conviene asegurarse de obtener un conjunto diverso de elementos para que los humanos
los etiqueten, de modo que no todos los elementos recién muestreados sean iguales. Esto puede incluir asegurarse de no pasar
por alto ningún valor atípico importante. Por ejemplo, algunos desastres son muy raros, como un gran asteroide que se estrella
contra la Tierra. Si un titular de noticias dice "Un asteroide arrasa Walnut Creek", y su modelo de aprendizaje automático no ha
aprendido qué es un "asteroide", o que "Walnut Creek" es una ciudad, entonces es fácil ver por qué su modelo de aprendizaje
automático podría no haber predicho que este titular estuviera relacionado con el desastre. Podría llamar a esta frase un "valor
atípico" en este sentido: se encuentra más alejado de todo lo que haya visto antes.
Al igual que con la clasificación de confianza, existen muchas maneras de garantizar que maximizamos la diversidad del
contenido seleccionado para la revisión humana. Aprenderá más sobre estos enfoques en capítulos posteriores. Por ahora, nos
centraremos en una métrica muy simple: la frecuencia promedio de palabras en los datos de entrenamiento de cada elemento sin
etiquetar.
1. Tome cada elemento de los datos sin etiquetar y cuente la cantidad promedio de coincidencias de palabras que tiene con
elementos que ya están en los datos de entrenamiento.
2. Clasifique los elementos por su coincidencia promedio.
3. Muestre el elemento con el menor número promedio de coincidencias. 4. Agregue
ese elemento a los datos "etiquetados" y repita los pasos 1 a 3 hasta que hayamos muestreado lo suficiente para
una iteración de revisión humana
Tenga en cuenta que en el paso 4, una vez que haya muestreado el primer artículo, puede tratarlo como "etiquetado", porque
sabe que recibirá una etiqueta para él más adelante.
Este método para determinar valores atípicos tenderá a favorecer titulares pequeños y completamente novedosos, por lo que
verá que el código suma 1 al recuento como factor de suavizado. También...
Desfavorecer las oraciones con muchas palabras comunes como "the" incluso si las otras palabras son
Poco común. Por lo tanto, en lugar de una coincidencia promedio, se podría rastrear el número total de palabras nuevas.
Esto modelaría la cantidad total de información novedosa en un titular, en lugar de la cantidad total
promedio.
También podría dividir el número de coincidencias en los datos de entrenamiento por el número total de veces que aparece
esa palabra en todos los datos y multiplicar cada una de estas fracciones, lo que le daría aproximadamente la probabilidad
bayesiana de que el elemento sea un valor atípico. En lugar de la coincidencia de palabras, podría utilizar métricas más sofisticadas
basadas en la distancia de edición que tengan en cuenta el orden de las palabras dentro de la oración. Existen muchos otros
algoritmos de coincidencia de cadenas y otros para determinar valores atípicos.
Como con todo lo demás, puedes empezar implementando la opción más sencilla de este capítulo y luego experimentar con
otras. El objetivo principal es una póliza de seguro: ¿hay algo completamente diferente que aún no hayamos visto? Probablemente
no, pero si lo hubiera, esos...
31
Serían los elementos de mayor valor para anotar correctamente. En capítulos posteriores, analizaremos
maneras de combinar el muestreo por confianza y el muestreo por diversidad.
También analizaremos maneras de combinar su estrategia de aprendizaje automático con su estrategia
de anotación. Si ha trabajado en aprendizaje automático durante un tiempo, pero nunca antes en anotación
o aprendizaje activo, probablemente solo haya optimizado los modelos para la precisión. Para una
arquitectura completa, podría optar por un enfoque más holístico donde sus estrategias de anotación,
aprendizaje activo y aprendizaje automático se complementen. Podría implementar algoritmos de
aprendizaje automático que proporcionen estimaciones más precisas de su confianza, a expensas de la
precisión en la predicción de etiquetas. O bien, podría ampliar sus modelos de aprendizaje automático para
que tengan dos tipos de inferencia: una para predecir las etiquetas y otra para estimar con mayor precisión
la confianza de cada predicción. Si está creando modelos para tareas más complejas, como generar
secuencias de texto (como en la traducción automática) o regiones dentro de imágenes (como en la
detección de objetos), este es el enfoque más común actualmente: crear capacidades de inferencia
independientes para la tarea en sí y para interpretar la confianza. Analizaremos estas arquitecturas en
capítulos posteriores.
El proceso para construir su primer modelo de aprendizaje automático con intervención humana se
resume en la Figura 2.2.
32
Figura 2.2: El proceso iterativo en su primer sistema de aprendizaje automático con intervención humana. Inicialmente (arriba),
anota una muestra aleatoria de elementos sin etiquetar para reservarlos como datos de evaluación. Luego, etiqueta los elementos.
33
Primeros elementos que se usarán para los datos de entrenamiento (centro), comenzando también con una selección aleatoria. Después, se
empieza a usar el aprendizaje activo (abajo) para muestrear elementos con baja confianza o valores atípicos.
cada 100 elementos. Probablemente, este número sea un poco pequeño en cuanto al número de elementos por iteración, ya que se invertirá
mucho tiempo esperando a que el modelo se vuelva a entrenar para un número relativamente pequeño de nuevos elementos etiquetados. Sin
embargo, 100 es un número adecuado para tener una idea de cuánto cambian los datos muestreados en cada iteración.
A continuación se presentan algunas cosas que puede notar a medida que avanza en el proceso de aprendizaje activo:
1. Primera iteración: Anotará principalmente titulares "no relacionados con desastres", lo cual puede resultar tedioso. Mejorará con la
implementación del aprendizaje activo, pero por ahora es necesario obtener los datos de evaluación seleccionados aleatoriamente.
Tenga en cuenta que este no es un problema trivial, ya que los periodistas suelen usar metáforas de desastres para situaciones no
relacionadas con desastres, especialmente para equipos deportivos: "declaración de guerra", "sequía de goles", etc. También se
enfrentará a casos extremos. Por ejemplo, ¿es un accidente aéreo un desastre o depende del tamaño del avión o de la causa? Estos
casos extremos le ayudarán a refinar la definición de su tarea y a crear las instrucciones adecuadas para cuando contrate a un equipo
2. Segunda iteración: ¡Has creado tu primer modelo! Tu puntuación F es probablemente terrible: quizás solo 0,20. Sin embargo, tu AUC
podría rondar los 0,75 (más información sobre la puntuación F y el AUC más adelante en este capítulo si no estás familiarizado con
ninguno de los dos). Por lo tanto, a pesar de la baja precisión, puedes encontrar mensajes relacionados con desastres mejor que al
azar. Podrías corregir la puntuación F experimentando con los parámetros y la arquitectura del modelo, pero ahora mismo es más
importante contar con más datos que con la arquitectura del modelo. La evidencia de esto será evidente cuando empieces a anotar:
notarás inmediatamente en tu segunda iteración que una gran cantidad de elementos estarán relacionados con desastres. De hecho,
podrían ser la mayoría. Al principio, tu modelo intentará predecir la mayoría de los elementos como "no relacionados con desastres",
Cerca del 50% de confianza se encuentra en el extremo más "relacionado con el desastre" de la escala. Este es uno
La forma en que el aprendizaje activo puede autocorregirse: consiste en sobremuestrear una etiqueta de menor frecuencia sin que
implementemos explícitamente una estrategia específica para muestrear etiquetas importantes (más sobre estas estrategias en un
capítulo avanzado). También observará evidencia de sobreajuste. Por ejemplo, si los elementos seleccionados aleatoriamente en la
primera iteración tenían muchos titulares sobre "inundaciones", entonces probablemente ahora haya demasiados.
Ahora hay muchos titulares sobre inundaciones y no suficientes sobre otros tipos de desastres.
3. Tercera y cuarta iteraciones: Debería empezar a ver una mejora en la precisión del modelo, ya que ahora etiqueta muchos más titulares
"relacionados con desastres", lo que acerca los datos de anotación propuestos a una proporción de 50:50 en cada etiqueta. Si su
modelo hubiera sobreajustado algunos términos, como el ejemplo de "inundaciones", debería haber visto algunos contraejemplos
como "nuevas inversiones inundan el mercado". Esto ayudará a que sus modelos vuelvan a ser más precisos.
34
Predicciones precisas para titulares con estos términos. Si los datos realmente estuvieran relacionados con desastres
para todo lo que incluyera "inundación", entonces estos elementos ahora se predicen con un alto nivel de confianza, y
ya no cerca del 50%. En cualquier caso, el problema se corrigió por sí solo y la diversidad de titulares que se ven debería
aumentar.
4. Iteraciones quinta a décima: sus modelos comenzarán a alcanzar niveles razonables de
Precisión y debería ver más diversidad en los titulares. Mientras el FScore o el AUC aumenten un pequeño porcentaje
por cada 100 anotaciones, obtendrá mejoras significativas en precisión. Probablemente también desee haber anotado
más datos de evaluación para calcular la precisión en una mayor variedad de datos retenidos. Desafortunadamente, no
es posible: es casi imposible volver al muestreo verdaderamente aleatorio a menos que esté dispuesto a renunciar a
muchas de sus etiquetas existentes (más información sobre los datos de evaluación más adelante en este capítulo).
Aunque esto parece muy simple, el sistema que está construyendo en este capítulo sigue la misma estrategia que el lanzamiento
inicial de SageMaker Ground Truth de AWS, que se lanzó en 2018 (menos de un año antes de la redacción de este capítulo). De
hecho, SageMaker solo muestreó por confianza y no buscó valores atípicos en esa versión. Por lo tanto, si bien el sistema que
está construyendo aquí es simple, también supera el nivel de sofisticación algorítmica de una herramienta de aprendizaje activo
que actualmente ofrece un importante proveedor de servicios en la nube. Trabajé brevemente en SageMaker Ground Truth
cuando estaba en AWS, así que esto no es una crítica a ese producto ni a mis colegas, quienes dedicaron mucho más que yo:
demuestra que, si bien el aprendizaje activo se está integrando en ofertas comerciales a gran escala por primera vez ahora
mismo, ¡todavía se encuentra en una etapa muy temprana!
Más adelante, abordaremos métodos de muestreo más sofisticados. Por ahora, es más importante centrarse en establecer
el proceso iterativo para el aprendizaje activo, junto con las mejores prácticas para la anotación y el reentrenamiento/evaluación
de los modelos. Si no se acierta la estrategia de iteración y la de evaluación, es fácil cometer errores.
Para etiquetar sus datos, debe comenzar con la interfaz correcta. En este capítulo, explicaremos cómo se ve esto para nuestros
datos de ejemplo.
La interfaz adecuada para el etiquetado humano es tan importante como la estrategia de muestreo adecuada. Si logras que
tu interfaz sea un 50 % más eficiente, es equivalente a mejorar tu estrategia de Muestreo de Aprendizaje Activo en un 50 %. Por
respeto a quienes etiquetan, debes hacer todo lo posible para asegurarte de que se sientan lo más eficientes posible. Si realmente
no sabes si es mejor centrarse en una mejora de la interfaz o del algoritmo, empieza por la interfaz para mejorar el trabajo del
usuario y preocúpate por la respuesta de tu CPU después.
Los tres capítulos posteriores están dedicados a la anotación de datos, por lo que haremos algunas suposiciones.
Para mantenerlo simple en este capítulo:
35
1. Suponga que los anotadores no están cometiendo una cantidad significativa de errores en las etiquetas, por lo que
No tenemos que implementar control de calidad para las anotaciones.
2. Suponga que los anotadores comprenden perfectamente la tarea y las etiquetas, de modo que
No estamos eligiendo accidentalmente las etiquetas equivocadas.
3. Supongamos que solo hay un anotador trabajando a la vez, por lo que no tenemos que mantenerlo
seguimiento de cualquier etiquetado 'en progreso'.
Estas son suposiciones importantes . En la mayoría de los sistemas implementados, necesitará implementar un control de calidad
para garantizar que los anotadores no cometan errores; probablemente necesitará varias iteraciones de anotación para refinar las
definiciones de las etiquetas e instrucciones; y necesitará un sistema para realizar un seguimiento del trabajo asignado a varias
personas en paralelo. Una interfaz de anotación sencilla como la que se describe aquí es suficiente si solo desea anotar rápidamente
algunos datos usted mismo con fines exploratorios, como hacemos aquí.
La interfaz que usted construya estará determinada por su tarea y la distribución de sus datos.
Para una tarea de etiquetado binario como la que implementamos aquí, basta con una interfaz de línea de comandos sencilla. La
verá inmediatamente si ejecuta el script que presentamos anteriormente:
Como comentamos en la Introducción, existen muchos factores de interacción personacomputadora que influyen en la creación de
una buena interfaz para la anotación. Pero si necesita crear algo rápido:
1. Cree una interfaz que permita a los anotadores centrarse en una parte de la pantalla.
2. Permitir hotheys para todas las acciones.
3. Incluya una opción de “atrás/deshacer”.
Haga bien esas tres cosas primero y el diseño gráfico puede venir después.
Para ver exactamente qué hace el código, mira el repositorio compartido arriba ([Link]
O clonarlo localmente y experimentar con él allí. En este libro se compartirán extractos de ese código con fines ilustrativos, pero no
lo incluiremos en su totalidad.
Puedes ver el código para obtener anotaciones en las primeras 20 líneas de la función get_annotations():
36
Argumentos de palabras
clave: datos: una lista de elementos sin etiquetar donde cada elemento es
[ID, TEXTO, ETIQUETA, ESTRATEGIA_DE_MUESTREO,
CONFIANZA] default_sampling_strategy: estrategia a utilizar para cada elemento si aún no se especificó
"""
ind = 0
mientras ind <= len(datos): si ind < 0:
ind = 0 # en caso de que hayas retrocedido antes del primero if ind <
len(data): textid = data[ind]
[0] text = data[ind][1] label =
data[ind][2] strategy =
data[ind][3]
de lo
contrario: print(instrucciones_de_anotación)
etiqueta = str(entrada(texto+"\n\n> ")) #A
...
...
Para nuestros datos, las etiquetas están un poco desequilibradas, ya que la mayoría de los titulares no están relacionados
con desastres. Esto tiene implicaciones en el diseño de la interfaz. Por lo tanto, será muy ineficiente y aburrido si alguien
selecciona constantemente "No relacionado con desastres". Puedes configurar "No relacionado con desastres" como la
opción predeterminada para mejorar la eficiencia, siempre y cuando tengas una opción de "retroceder" cuando los
anotadores inevitablemente se vean obligados a seleccionar la opción predeterminada.
Probablemente lo hiciste tú mismo: anotaste rápidamente y luego tuviste que volver atrás al presionar la respuesta
incorrecta. Deberías ver esta funcionalidad en las siguientes y últimas 20 líneas de código de la función get_annotations():
si no etiqueta == "1":
etiqueta = "0" # trata todo lo que no sea 1 como 0
37
demás:
#último darle al anotador la oportunidad de volver atrás print(last_instruction)
label = str(input("\n\n> ")) if label ==
"2":
ind=1
de lo
contrario: ind+=1
devolver datos
Para un sistema implementado, lo mejor es almacenar las anotaciones en una base de datos que se encargue de las
copias de seguridad, la disponibilidad y la escalabilidad. Sin embargo, no siempre es tan fácil navegar por una base de
datos como por los archivos en un equipo local. Además de añadir elementos de entrenamiento a la base de datos, o si
solo se está construyendo un sistema sencillo, puede ser útil tener datos y anotaciones almacenados localmente que se
puedan revisar rápidamente.
En nuestro ejemplo, separaremos los datos en archivos separados según la etiqueta para mayor redundancia. A
menos que trabaje en una organización que ya cuente con buenos procesos de gestión de datos para anotaciones y
aprendizaje automático, probablemente no tenga el mismo control de calidad para sus datos que para su código, como
pruebas unitarias y un buen control de versiones. Por lo tanto, es recomendable ser redundante en el almacenamiento
de datos. De igual forma, verá que el código añade archivos, pero nunca los sobreescribe. Además, mantiene intacto el
archivo unlabeled_data.csv, comprobando si hay duplicados en los demás conjuntos de datos en lugar de eliminarlos
de ese archivo una vez etiquetado el elemento.
Consulte el archivo Léame para obtener instrucciones sobre cómo instalarlo en su máquina.
Puedes ejecutarlo inmediatamente y te pedirá que anotes datos y luego se entrenará automáticamente después de
cada iteración. Deberías experimentar los cambios en los datos en cada iteración que aprendiste anteriormente.
38
Para ver qué está sucediendo bajo el capó, revisemos los componentes principales de este
Código y las estrategias detrás de él.
Utilizamos un modelo sencillo de aprendizaje automático de PyTorch para la clasificación de texto. Usaremos un modelo
superficial de tres capas que se puede reentrenar rápidamente para agilizar nuestras iteraciones. En PyTorch, esta definición
completa del modelo consta de tan solo una docena de líneas de código:
"""
# Define un modelo con una capa oculta con 128 neuronas self.linear1 =
[Link](vocab_size, 128) self.linear2 = [Link](128, #A
num_labels) #B
Nuestra capa de entrada contiene la codificación onehot para cada palabra en nuestro conjunto de características (miles), nuestra
capa de salida son las dos etiquetas y nuestra capa oculta son 128 nodos.
Para el entrenamiento, sabemos que los datos están desequilibrados entre las etiquetas inicialmente, por lo que queremos
asegurarnos de seleccionar un número cercano a un par de elementos para cada etiqueta. Esto se establece
en estas variables al inicio del código:
Entrenaremos nuestros modelos para 10 épocas, y para cada época seleccionaremos aleatoriamente 200 elementos de cada
etiqueta. Esto no hará que nuestro modelo sea completamente uniforme, ya que seguimos seleccionando entre una mayor
variedad de texto no relacionado con desastres en todas las épocas. Sin embargo, será suficiente para obtener alguna señal de
nuestros datos incluso cuando solo haya aproximadamente 100 ejemplos relacionados con desastres.
39
# entrenamiento de épocas
para épocas en el rango (épocas):
print("Época: "+str(época)) actual = 0
shuffle(training_data) #aleatoriza el orden de los datos de entrenamiento related = [fila por fila en
training_data si '1' en la fila[2]] not_related = [fila por fila en training_data si '0' en la fila[2]]
datos_de_época = relacionados[:seleccionar_por_época] #A
datos_de_época += no_relacionados[:seleccionar_por_época]
shuffle(datos_de_época)
modelo.zero_grad()
log_probs = modelo(característica_vec)
# Calcular la función de pérdida, realizar un pase hacia atrás y actualizar el gradiente loss =
loss_function(log_probs, target) [Link]() [Link]()
#A: Seleccione la misma cantidad de artículos con cada etiqueta. Esto sobremuestrea la etiqueta más pequeña, especialmente al principio.
iteraciones de etiquetado.
Puedes ver que mantenemos constantes nuestros parámetros de entrenamiento. En un sistema real,
probablemente quieras experimentar con parámetros de entrenamiento y también con arquitecturas que
modelen mejor la secuencia de palabras, como las RNN, o que puedan modelar mejor los grupos de
píxeles si estás clasificando imágenes, como las CNN.
Si está realizando algún ajuste de parámetros, debe crear datos de validación y usarlos para ajustar
su modelo, tal como ya está acostumbrado en el aprendizaje automático. De hecho,
40
Es posible que necesite varios tipos de conjuntos de datos de validación, incluyendo uno extraído de sus datos de
entrenamiento en cada iteración, uno extraído de sus datos sin etiquetar antes de usar el Aprendizaje Activo y uno extraído
de los elementos sin etiquetar restantes en cada iteración. Volveremos a los datos de validación para el Aprendizaje Activo
en un capítulo posterior. Por ahora, le ahorramos las anotaciones adicionales: si desea ajustar su modelo en el ejemplo de
este capítulo, extraiga una selección aleatoria de datos de su conjunto de datos de entrenamiento en cada iteración.
Los datos de evaluación suelen denominarse "conjunto de prueba" o "datos retenidos", y para esta tarea, deben ser una
muestra aleatoria de titulares que anotamos. Siempre retendremos estos titulares de nuestros datos de entrenamiento para
poder monitorizar la precisión de nuestro modelo después de cada iteración del aprendizaje activo.
Es importante obtener primero los datos de evaluación, ya que existen muchas maneras de sesgarlos inadvertidamente
después de haber comenzado con otras técnicas de muestreo. Estos son solo algunos de los problemas que pueden surgir
si no se obtienen primero los datos de evaluación:
1. Si olvida muestrear los datos de evaluación de sus elementos no etiquetados hasta después de haber muestreado
por baja confianza, entonces sus datos de evaluación estarán sesgados hacia los elementos restantes de alta
confianza y su modelo parecerá más preciso de lo que realmente es.
2. Si olvida muestrear los datos de evaluación y, por lo tanto, extrae los datos de evaluación de sus datos de
entrenamiento después de haber muestreado por confianza, entonces sus datos de evaluación estarán sesgados
hacia elementos de baja confianza y su modelo parecerá menos preciso de lo que realmente es.
3. Si ha implementado la detección de valores atípicos y luego intenta extraer datos de evaluación, es casi imposible
evitar el sesgo, ya que los elementos que ha extraido ya han contribuido al muestreo de valores atípicos adicionales.
41
Finalmente, podría no ser posible seleccionar datos verdaderamente aleatorios si se aplica el modelo a un
flujo de información en constante cambio. En situaciones de respuesta a desastres, esto será inevitable,
ya que se reporta nueva información sobre las condiciones y necesidades cambiantes a lo largo del tiempo.
En el ejemplo que estamos trabajando, debemos etiquetar un conjunto finito de titulares de noticias, por lo
que resulta significativo seleccionar una muestra aleatoria de los titulares para nuestros datos de
entrenamiento. Volveremos a las estrategias de muestreo para datos de evaluación en contextos más
complejos en capítulos posteriores.
El código para evaluar la precisión de su modelo en cada iteración se encuentra en el
Función evaluar_modelo():
demás:
# no relacionado con el desastre
not_related_confs.append(prob_related) si prob_related > 0.5:
false_pos += 1.0
...
...
#A: Los tensores de PyTorch son 2D, por lo que necesitamos extraer solo la confianza predictiva.
Este código tiene la confianza prevista de que cada elemento está "relacionado con el desastre" y rastrea
si cada predicción fue correcta o incorrecta. La precisión bruta no sería una buena métrica para usar en
este caso. Debido a que la frecuencia de las dos etiquetas no está equilibrada, se obtendrá casi el 95 %.
42
Precisión al predecir "no relacionado con desastres" cada vez. Esto no es muy informativo, y nuestra tarea es encontrar los
titulares relacionados con desastres. Por lo tanto, calcularemos la precisión como la puntuación F de las predicciones
relacionadas con desastres.
El Fscore es la media armónica de precisión y recuperación de una etiqueta. En nuestros datos de ejemplo, buscamos el
Fscore para titulares relacionados con desastres. Supongamos que los verdaderos positivos son tp, los falsos positivos son fp
y los falsos negativos son fn.
Además, nos interesa determinar si la confianza se correlaciona con la precisión. Por lo tanto, calculamos el área bajo la curva
ROC (AUC). Una curva ROC (curva característica operativa del receptor) clasifica un conjunto de datos según su confianza y
calcula la tasa de verdaderos positivos frente a falsos positivos.
En la Figura 2.3 se muestra un ejemplo. La curva ROC se crea trazando los valores positivos verdaderos.
tasa (TPR) frente a la tasa de falsos positivos (FPR) en un orden determinado por la confianza del modelo.
Figura 2.3: Ejemplo de curva ROC, que representa la tasa de verdaderos positivos (TPR) frente a la tasa de falsos positivos
(FPR) en un orden determinado por la confianza del modelo. En este ejemplo, se observa que la línea de la curva ROC
es casi vertical durante el primer 20 %. Esto indica que, para el 20 % de las predicciones con mayor confianza, la
precisión es casi del 100 %. La curva ROC es casi horizontal en 1,0 para el 30 % final. Esto indica que, al llegar al 30 % de las
predicciones con menor confianza para una etiqueta, quedan pocos elementos con esa etiqueta.
43
Para el ejemplo de este capítulo, esta curva nos permitiría decir algo como: «Nuestro modelo puede detectar el 20 %
de los mensajes relacionados con desastres con alta confianza y el 30 % de los mensajes no relacionados con desastres
con alta confianza, pero presenta mucha ambigüedad intermedia». Esto puede ayudarnos a decidir una estrategia de
aprendizaje activo para aumentar la precisión del modelo. En un caso práctico real, también puede ayudarnos a decidir dónde
podemos confiar en la decisión del modelo y dónde queremos ceder ante el juicio humano.
El área bajo la curva (AUC) es el cálculo del espacio bajo la curva, en relación con el espacio total. Puede calcularlo visualmente
en aproximadamente 0,80 en el gráfico anterior. Como muestra el ejemplo de código de este capítulo, existe un método
abreviado para calcular el AUC que evita la necesidad de construir una curva ROC, pero es útil tener una idea de lo que
se está calculando.
El AUC es exactamente lo que parece: el área bajo la curva generada por la ROC como porcentaje del área total posible. Pero
no es necesario generar una curva ROC para calcular el AUC gracias a un ingenioso truco matemático: el AUC también es la
probabilidad de que, de dos elementos seleccionados al azar con diferentes etiquetas, se haya predicho la etiqueta correcta con
mayor confianza. Por lo tanto, en nuestro ejemplo, podemos calcular el AUC comparando la confianza de cada elemento
relacionado con el desastre en nuestros datos de evaluación con la de cada elemento no relacionado. Sea r el conjunto de
confianzas para cada titular relacionado con el desastre y u el conjunto de confianzas para cada titular no relacionado con el
desastre , y el tamaño de un conjunto dado por size():
Esto hace que el código AUC sea tan simple como el FScore (aunque su cálculo es más costoso). El resto de la función
evaluation_model() calcula ambos tipos de precisión:
# GET AUC
not_related_confs.sort() total_greater = 0
# recuento de cuántos en total tienen mayor confianza para conf en related_confs: para conf2 en not_related_confs:
si conf < conf2: break
#B
demás:
total_mayor += 1
44
devolver[fscore, auc]
Si revisa los nombres de archivo de los modelos que ha creado en el directorio models/, verá que incluyen una marca de tiempo,
la precisión del modelo según FScore y AUC, y el número de elementos de entrenamiento. Es recomendable asignar nombres
claros y transparentes a sus modelos, lo que le permitirá realizar un seguimiento de la precisión a lo largo del tiempo con cada
iteración simplemente consultando el directorio.
Al incluir nuevos elementos muestreados aleatoriamente en cada iteración de Aprendizaje Activo, obtendrá una línea base en esa
iteración. Puede comparar la precisión del entrenamiento con solo los elementos aleatorios con la de sus otras estrategias de
muestreo. Esto le indicará la eficacia de sus estrategias de muestreo en comparación con el muestreo aleatorio. Ya sabrá cuántos
elementos recién anotados difieren de la etiqueta predicha de su modelo, pero esto no le indica cuánto cambiarán el modelo para
futuras predicciones una vez añadidos a los datos de entrenamiento.
Incluso si sus otras estrategias de aprendizaje activo fallan por alguna razón en la iteración, usted...
Todavía se obtiene una mejora incremental a partir de la muestra aleatoria, por lo que es una buena alternativa.
Aquí también existe una decisión ética. Reconocemos que todas las estrategias son imperfectas, por lo que cada dato tiene
cierta probabilidad de ser seleccionado aleatoriamente y revisado por un humano, incluso si ninguna de las estrategias de
muestreo lo hubiera seleccionado. Si esto sucediera en un desastre real, ¿querría eliminar por completo la posibilidad de que
alguien viera un titular importante porque sus estrategias de muestreo nunca lo seleccionarían? La pregunta ética es una que
debe plantearse, dependiendo de los datos y el caso práctico que esté abordando.
Sabemos que los titulares relacionados con desastres son poco frecuentes en nuestros datos, por lo que es improbable que la
estrategia de selección de valores atípicos seleccione muchos elementos relacionados con desastres. Por lo tanto, el código de
ejemplo se centra en la selección por confianza y el muestreo de datos para cada iteración según la siguiente estrategia:
Suponiendo que los elementos de baja confianza estén realmente relacionados con desastres en una proporción de 50/50, los
anotadores deberían ver un poco más de 4/10 mensajes relacionados con desastres una vez que se haya anotado un gran
número de elementos y nuestros modelos sean estables. Esto es bastante cercano a...
45
Igual que no tenemos que preocuparnos por ordenar los efectos que preparan a los anotadores más tarde.
iteraciones.
Aquí está el código para las tres estrategias:
continuar
texto = elemento[1]
confianza = prob_related
random_items = [] para el
artículo en unlabeled_data: textid = item[0]
si textid está ya etiquetado:
continuar
elementos_aleatorios.append(elemento)
si len(elementos_aleatorios) >= número: break
46
valores atípicos = []
recuentos_totales_de_características = defaultdict(lambda: 0)
texto = elemento[1]
características = [Link]()
total_matches = 1 # comienza en 1 para suavizar levemente la característica en
características:
si la característica está en total_feature_counts:
total_matches += total_feature_counts[característica] #D
# agrega este valor atípico a la lista y actualiza lo que está 'etiquetado', # asumiendo que este
nuevo valor atípico recibirá una etiqueta top_outlier[3] = "outlier"
[Link](top_outlier) text =
top_outlier[1] features = [Link]() for feature
in features:
recuento_total_de_características[característica] += 1 #MI
#D agrega la cantidad de veces que esta característica en el elemento de datos sin etiquetar apareció en los datos de entrenamiento
#E actualiza los recuentos de datos de entrenamiento para este elemento para ayudar con la diversidad para el próximo valor atípico que se muestrea
Puede ver que, por defecto, en la función get_low_conf_unlabeled(), solo predecimos la confianza para
10 000 elementos sin etiquetar, en lugar de para todo el conjunto de datos. Esto se hace para que el tiempo
entre iteraciones sea más manejable, ya que estaría esperando...
47
Muchos minutos o incluso horas para todas las predicciones, dependiendo de su equipo. Esto también aumentará la diversidad de
los datos, ya que seleccionamos elementos de baja confianza de un subconjunto diferente de elementos sin etiquetar cada vez.
Ahora que tiene los elementos recién anotados, puede agregarlos a sus datos de entrenamiento y ver el cambio en la precisión de
su modelo. Si ejecuta el script que descargó al principio de este capítulo, verá que el reentrenamiento se realiza automáticamente
después de terminar de anotar cada iteración.
Si observa ese código, también verá los controles que combinan todo el código que vimos anteriormente. Este código adicional
son los parámetros, como el número de anotaciones por iteración, y el código al final del archivo garantizará que primero obtenga
los datos de evaluación y luego entrene los modelos y comience la iteración con aprendizaje activo cuando tenga suficientes datos
de evaluación. Hay menos de 500 líneas de código único en nuestro ejemplo de este capítulo, por lo que vale la pena dedicar
tiempo a comprender qué sucede en cada paso y pensar en cómo podría extender cualquier parte del código.
Si tienes experiencia en aprendizaje automático, probablemente te llamará la atención la cantidad de funciones. Probablemente
tengas más de 10 000 funciones para solo 1000 elementos de entrenamiento etiquetados.
Casi con toda seguridad, obtendría una mayor precisión si redujera el número de características. Sin embargo, aunque parezca
contradictorio, se busca una gran cantidad de características, especialmente en las primeras iteraciones del aprendizaje activo,
cuando realmente se buscaba que cada característica contara para los escasos titulares "relacionados con desastres". De lo
contrario, su modelo inicial estaría aún más sesgado hacia el tipo de titulares que muestreó primero aleatoriamente. Hay muchas
maneras de combinar su arquitectura de aprendizaje automático con las estrategias de aprendizaje activo, y abordaremos las
principales en capítulos posteriores.
Tras completar unas 10 iteraciones de anotación, revise sus datos de entrenamiento. Notará que la mayoría de los elementos
se seleccionaron con baja confianza, lo cual no es sorprendente. Busque los que aparecen como seleccionados por valor atípico y
podría sorprenderse.
Probablemente habrá algunos ejemplos con palabras que son obvias (para usted) como relacionadas con el desastre, lo que
significa que estos ejemplos aumentaron la diversidad de su conjunto de datos de una manera que de otro modo podría haberse
pasado por alto.
Si bien el aprendizaje activo puede autocorregirse, ¿ve alguna evidencia de que no corrigiera algún sesgo? Ejemplos comunes
serían el sobremuestreo de oraciones muy largas o muy cortas. El equivalente en visión artificial sería el sobremuestreo de
imágenes con resoluciones muy grandes o muy pequeñas, o de alta o baja resolución. Su elección de estrategia para valores
atípicos y modelo de aprendizaje automático podría sobremuestrear basándose en características como esta, que no son esenciales
para su objetivo. Podría considerar aplicar los métodos de este capítulo a diferentes categorías de datos; en ese caso: oraciones
cortas con la confianza más baja, oraciones medianas con la confianza más baja y oraciones largas con la confianza más baja.
oraciones.
Si lo desea, también puede experimentar con variaciones en sus estrategias de muestreo dentro de este código. Intente volver
a entrenar solo con los elementos seleccionados aleatoriamente y compare la precisión resultante.
48
A otro sistema reentrenado con el mismo número de elementos seleccionados con baja confianza y nuevamente utilizando
muestreo de valores atípicos. ¿Qué estrategia tiene el mayor impacto y en qué medida?
También puedes pensar en lo que deberías desarrollar a continuación:
Su experiencia subjetiva puede ser diferente a la mía, y si hubiera probado esto con sus propios datos en lugar del conjunto de
datos de ejemplo proporcionado aquí, entonces eso también podría haber cambiado las cosas.
Pero es muy probable que hayas identificado que una de las tres primeras opciones era el siguiente componente más importante
a desarrollar. Si tienes experiencia en aprendizaje automático, tu primer instinto podría ser mantener los datos constantes y
empezar a experimentar con arquitecturas neuronales más sofisticadas. Este puede ser el mejor siguiente paso, pero rara vez es
el más importante al principio. Por lo general, primero debes obtener los datos correctos; luego, ajustar la arquitectura de
aprendizaje automático se convierte en una tarea más importante más adelante en las iteraciones.
El resto de este libro le ayudará a aprender cómo diseñar mejores interfaces para la anotación, implementar un mejor control de
calidad para la anotación, idear mejores estrategias de aprendizaje activo y llegar a mejores formas de combinarlas todas.
2.5 Resumen
Un sistema sencillo de aprendizaje automático con intervención humana puede cubrir todo el ciclo, desde el muestreo de
datos sin etiquetar hasta la actualización del modelo. Esto le permite comenzar rápidamente con un sistema MVP
completo, que luego puede desarrollar según sea necesario.
Existen dos estrategias sencillas de aprendizaje activo fáciles de implementar: muestrear los elementos menos fiables de las
predicciones y muestrear los valores atípicos. Comprender los objetivos básicos de cada una de estas estrategias le
ayudará a profundizar en los capítulos posteriores sobre muestreo por incertidumbre y muestreo por diversidad.
Una interfaz de línea de comandos sencilla permite a los usuarios anotar datos eficientemente. Esto demuestra que incluso
una interfaz simple, solo de texto, puede ser eficiente si se construye según los principios generales de la interacción
personacomputadora.
Es importante realizar una buena gestión de datos, como la creación de datos de evaluación como primera tarea. Si no se
gestionan correctamente los datos de evaluación, es posible que nunca se sepa la precisión real del modelo.
• Reentrenar un modelo de aprendizaje automático con datos recién anotados en iteraciones regulares muestra cómo su
modelo se vuelve más preciso con el tiempo. Si se diseñan correctamente, las iteraciones de aprendizaje activo se
autocorregirán de forma natural, y el sobreajuste en una iteración se corregirá mediante la estrategia de muestreo en las
iteraciones siguientes.
49
3
Muestreo de incertidumbre
• Métodos para comprender los puntajes de una predicción de aprendizaje automático para que sepa
• Métodos para combinar predicciones sobre múltiples etiquetas en una única puntuación de incertidumbre.
que tienes múltiples formas de determinar dónde tu modelo está más confuso
• Estrategias para decidir la cantidad correcta de elementos que se deben colocar frente a los humanos por iteración
ciclo
• Estrategias para evaluar el éxito del muestreo de incertidumbre para realizar un seguimiento de su progreso
La estrategia más común para que la IA sea más inteligente es que los modelos de aprendizaje automático
indiquen a los humanos cuando tienen dudas sobre una tarea y luego les soliciten la retroalimentación
correcta. En general, los datos sin etiquetar que confunden a un algoritmo de aprendizaje automático serán
más valiosos cuando se etiqueten y se agreguen a los datos de entrenamiento. Si el algoritmo de
aprendizaje automático ya puede etiquetar un elemento con alta confianza, probablemente ya sea correcto.
Este capítulo está dedicado a este problema: interpretar cuándo nuestro algoritmo de aprendizaje
automático intenta indicarnos cuándo existe incertidumbre sobre su tarea. Sin embargo, no siempre es
fácil saber cuándo un algoritmo de aprendizaje automático presenta incertidumbre y cómo calcularla. Más
allá de las tareas de etiquetado binario simple, las diferentes maneras de medir la incertidumbre pueden
producir resultados muy diferentes. Es necesario comprender y considerar todos los métodos para
determinar la incertidumbre a fin de seleccionar el más adecuado para sus datos y objetivos.
Por ejemplo, imagina que estás construyendo un coche autónomo. Quieres que el coche comprenda
los nuevos tipos de objetos («peatones», «ciclistas», «señales de tráfico», «animales», etc.) que encuentra
a su paso. Sin embargo, para ello necesitas comprender cuándo...
50
Su automóvil no está seguro de qué hacer cuando se encuentra con un objeto y de cómo interpretar y abordar
mejor esa incertidumbre.
El muestreo de incertidumbre es una estrategia para identificar elementos sin etiquetar que se encuentran cerca
de un límite de decisión en su modelo actual de aprendizaje automático. Si bien es fácil identificar cuándo un
modelo es confiable (hay un resultado con un nivel de confianza muy alto), existen muchas maneras diferentes
de calcular la incertidumbre, y su elección dependerá de su caso de uso y de la opción más efectiva para sus
datos específicos.
En este capítulo exploramos cuatro enfoques para el muestreo de incertidumbre:
1. Muestreo de Mínima Confianza: diferencia entre la predicción más confiable y el 100% de confianza. En
nuestro ejemplo, si el modelo tenía la máxima confianza en que había un "peatón" en la imagen, el
Muestreo de Mínima Confianza captura cuán confiable (o incierta) era esa predicción.
2. Muestreo por margen de confianza: diferencia entre las dos predicciones con mayor confianza. En
nuestro ejemplo, si el modelo tenía mayor confianza en que la imagen contenía un "peatón" y el
segundo mayor confianza en que se trataba de un "animal", el margen de confianza captura la diferencia
entre ambas confianzas.
3. Muestreo de razón de confianza: razón entre las dos predicciones más confiables.
En nuestro ejemplo, si el modelo estaba más seguro de que había un "Peatón" en la imagen y era el
segundo más seguro de que era un "Animal", entonces la relación de confianza captura la relación (no
la diferencia) entre las dos confianzas.
4. Muestreo basado en la entropía: diferencia entre todas las predicciones, según la teoría de la información.
En nuestro ejemplo, el muestreo basado en la entropía capturaría la diferencia entre cada nivel de
confianza.
También veremos cómo determinar la incertidumbre de diferentes tipos de algoritmos de aprendizaje automático
y cómo combinar predicciones de diferentes modelos.
Para comprender las fortalezas y debilidades de cada método, es necesario profundizar en el propósito de
cada estrategia. Por ello, este capítulo ofrece ejemplos detallados de cada una, junto con las ecuaciones y el
código. También es necesario saber cómo se generan las confianzas antes de...
Puedes empezar a interpretarlas correctamente. Este capítulo comienza con la interpretación de las
distribuciones de probabilidad de tu modelo, especialmente si se generan con softmax, el algoritmo más popular
para generar confianzas a partir de modelos neuronales.
Volvamos a nuestro ejemplo del coche autónomo. Supongamos que su coche pasa la mayor parte del tiempo
en autopistas, donde ya se maneja muy bien y donde hay un número limitado de objetos: no se ven muchos
ciclistas ni peatones en las carreteras principales. Si se seleccionan al azar clips de vídeo de las cámaras del
coche, la mayoría serán de autopistas donde el coche ya se siente seguro y conduce bien. Un humano poco
podrá hacer para mejorar.
51
Las habilidades de conducción del automóvil, si son los humanos, en su mayoría le dan retroalimentación sobre la conducción
en carretera, donde el automóvil ya se muestra seguro.
Por lo tanto, usted desea saber cuándo su automóvil autónomo está más confundido mientras conduce.
Entonces, decides grabar videoclips de donde el coche tiene mayor incertidumbre sobre los objetos que detecta y luego
pedirle al humano que proporcione la información de campo (datos de entrenamiento) para los objetos en esos videoclips. El
humano puede identificar si un objeto en movimiento es un peatón, otro coche, un ciclista o algún otro objeto importante que
el sistema de detección de objetos del coche podría haber pasado por alto. Se puede esperar que los diferentes objetos se
muevan a distintas velocidades y sean más o menos predecibles, lo que ayudará al coche a anticipar sus movimientos.
Sin embargo, podría darse el caso de que el coche se confundiera más al conducir en medio de tormentas de nieve. Si
solo se muestran vídeos de una tormenta de nieve, no se ayuda al coche en el 99 % de las situaciones cuando no está en
medio de una tormenta de nieve. De hecho, podría empeorar el estado del coche. La tormenta de nieve limitará el alcance
visible y se podrían sesgar involuntariamente los datos, de modo que el comportamiento del coche solo tenga sentido durante
una tormenta de nieve, pero sea peligroso en otros lugares. Por ejemplo, se podría configurar el coche para que ignore todos
los objetos distantes en la carretera, ya que simplemente no se pueden ver cuando nieva, y, por lo tanto, se limita la capacidad
del coche para anticipar objetos a distancia en condiciones sin nieve. Por lo tanto, se necesitan diferentes tipos de condiciones
en las que el coche experimente incertidumbre.
Además, no está claro cómo definir la "incertidumbre" en el contexto de múltiples objetos. ¿Se trata solo de la
incertidumbre sobre el objeto más probable predicho? ¿O de la incertidumbre entre las dos predicciones más probables? ¿O
debería tenerse en cuenta cada objeto posible al calcular una puntuación general de "incertidumbre" para un objeto detectado
por el coche? Al analizarlo en profundidad, resulta difícil decidir qué objetos de los vídeos de coches autónomos debería
presentar una persona para su revisión.
Finalmente, su modelo no le indica claramente cuándo es incierto: incluso para un solo objeto, el modelo de aprendizaje
automático proporciona un valor que podría corresponder a la confianza de la predicción, pero podría no ser una medida fiable
de precisión. Por lo tanto, este será nuestro punto de partida en este capítulo: saber cuándo su modelo es incierto, y a partir
de ahí, podrá desarrollar estrategias más amplias de muestreo de incertidumbre.
Como experimentaste en el Capítulo 2, casi todos los modelos de aprendizaje automático te brindarán dos cosas:
Los números generalmente se interpretan como confianzas en la predicción, aunque esto puede ser más o menos cierto
dependiendo de cómo se generen los números. El principio general del muestreo por incertidumbre es que si existen
categorías mutuamente excluyentes con una confianza similar, esto constituye una buena evidencia de que el modelo es
confuso en la predicción y de que un humano...
52
El juicio sería valioso. Por lo tanto, el modelo se beneficiará más cuando aprenda a predecir correctamente la
etiqueta de un elemento con una predicción incierta.
Por ejemplo, supongamos que tenemos un modelo de detección de objetos muy simple para nuestro coche
autónomo que solo intenta distinguir entre cuatro tipos de objetos. El modelo podría darnos una predicción como
esta:
{
"Objeto": { "Etiqueta":
"Ciclista", "Puntuaciones":
{ "Ciclista":
0,9192784428596497, #A "Peatón": 0,01409964170306921,
"Señal": 0,049725741147994995, "Animal":
0,016896208748221397
}
}
}
#A: En esta predicción, se predice que el objeto es "Ciclista" con un 91,9 % de precisión. Las puntuaciones sumadas suman el 100 %, lo que nos da
la distribución de probabilidad para este artículo.
En el ejemplo, se puede ver que se predice un "Ciclista" con una puntuación de 0,919. Las puntuaciones que
podrían haber sido "Peatón", "Señal" o "Animal" son 0,014, 0,050 y 0,0168. Las cuatro puntuaciones suman 1,0,
lo que las convierte en una probabilidad o confianza. Por ejemplo, se podría interpretar 0,919 como un 91,9 %
de confianza en que el objeto sea un "Ciclista". Esta interpretación es una simplificación y es improbable que el
modelo acierte el 91,9 % de las veces que ve objetos como este: puede variar considerablemente. Esto no
siempre importará. Si se clasifican las predicciones para encontrar las más inciertas para su revisión humana,
las puntuaciones de incertidumbre reales no importarán. Sin embargo, incluso el orden de clasificación puede
cambiar según la interpretación de los resultados del modelo, por lo que es importante saber exactamente qué
estadísticas las generan.
confidencias.
En el resto de este capítulo, aprenderá cómo tomar un conjunto de predicciones de su modelo e implementar
los algoritmos más comunes para calcular la “incertidumbre” a partir de esos puntajes.
Pero antes de intentar derivar incertidumbre de las puntuaciones de sus modelos, primero debe poder interpretar
el verdadero significado de las puntuaciones de su modelo.
53
La misma puntuación al predecir las etiquetas de las imágenes, y aún la obtiene hoy en día. La mayoría de las
bibliotecas de aprendizaje automático se crean con menos consideración por las convenciones de nomenclatura
que las grandes empresas de la nube. Por lo tanto, no debería confiar en las cifras asociadas con sus predicciones.
nombres solos:
NOTA: Lea la documentación de su biblioteca o servicio de aprendizaje automático para saber qué significa
números asociados a cada predicción.
Incluso cuando se utiliza el término "distribución de probabilidad", puede significar solamente que los números a
través de las etiquetas predichas suman 100%. No significa necesariamente que cada número refleje la confianza
real del modelo de que la predicción es correcta. Para redes neuronales, regresión logística y otros tipos de
algoritmos de aprendizaje supervisado discriminativo relacionados, no es el trabajo del algoritmo saber cuán
confiables son sus predicciones: el trabajo del algoritmo es tratar de "discriminar" entre las etiquetas basadas en
las características, de ahí el nombre "Aprendizaje Supervisado Discriminativo". Las puntuaciones brutas de la
última capa de una red neuronal son la red tratando de discriminar entre las predicciones que está haciendo.
Dependiendo de los parámetros del modelo, esas puntuaciones brutas en la capa final pueden ser cualquier
número real. Por lo tanto, las puntuaciones que salen de estos algoritmos a menudo necesitan ser convertidas
en algo que se aproxime más a una confianza.
En los algoritmos de aprendizaje generativo supervisado, como en la mayoría de los algoritmos bayesianos,
el algoritmo intenta modelar explícitamente cada etiqueta, por lo que las confianzas pueden leerse directamente
del modelo. Sin embargo, estas confianzas se basan en supuestos sobre la distribución subyacente de los datos
(como una distribución normal) y la probabilidad previa de cada etiqueta.
Para complicar aún más las cosas, se puede extender un algoritmo de Aprendizaje Supervisado Discriminativo
con métodos de Aprendizaje Supervisado Generativo para obtener una probabilidad estadística más precisa
directamente del modelo. Sin embargo, estas son funciones avanzadas que abordaremos en un capítulo posterior.
Actualmente, los métodos generativos para obtener probabilidades precisas de modelos discriminativos no están
disponibles en ninguna de las bibliotecas de aprendizaje automático más utilizadas. Es mucho más probable
obtener una distribución de probabilidad generada por el algoritmo softmax , así que comenzaremos por ahí.
Para las salidas de una red neuronal se verá algo como la Figura 3.1:
54
Figura 3.1: muestra cómo softmax crea distribuciones de probabilidad en dos tipos de arquitecturas. En el ejemplo
superior, softmax es la función de activación de la capa de salida (final), que genera directamente una distribución de
probabilidad. En el ejemplo inferior, se utiliza una función de activación lineal en la capa de salida, lo que genera
puntuaciones del modelo (logits) que posteriormente se convierten en distribuciones de probabilidad mediante softmax. La
arquitectura inferior es solo un poco más compleja, pero se prefiere para el aprendizaje activo, ya que ofrece mayor información.
Como muestra la Figura 3.1, Softmax se utiliza a menudo como función de activación en la capa final del modelo para generar una
distribución de probabilidad como el conjunto de puntuaciones asociadas con las etiquetas predichas. Softmax también puede
utilizarse para crear una distribución de probabilidad a partir de los resultados de un
función de activación lineal.
55
Es común usar softmax en la capa final o solo observar el resultado de softmax aplicado a los logits. Sin embargo,
generalmente preferimos una arquitectura en el aprendizaje activo que nos permita ver los logits desde una función de
activación lineal, ya que ofrece más información. Softmax presenta pérdidas y pierde la distinción entre la incertidumbre
debida a información fuertemente competitiva y la incertidumbre debida a la falta de información. Utilizaremos el segundo
tipo de arquitectura en la Figura 3.1 para nuestros ejemplos en esta sección, pero los efectos se aplicarían en ambos
casos: ya sea que softmax sea una función de activación o se aplique a las puntuaciones del modelo. También
volveremos a la elección de la función de activación al final de este capítulo.
La distribución de probabilidad será un conjunto de números reales tales que cada uno
esté en el rango 01,0 y la suma sea 1,0.
Argumentos de palabras
clave: predicción: un tensor de PyTorch de cualquier número real positivo o negativo. base: la base para
la exponencial (predeterminado e).
"""
exps = (base**[Link](dtype=[Link])) # exponencial para cada valor en la matriz sum_exps = [Link](exps) # suma
de todos los exponenciales
NOTA: estrictamente hablando, esta función debería llamarse “softargmax”, pero en los círculos de aprendizaje automático se llama
Casi siempre se abrevia como "softmax". También se la conoce como distribución de Boltzmann o de Gibbs.
distribución.
Para comprender intuitivamente el efecto de la transformación softmax en la ecuación anterior, analicemos cada
elemento. Imaginemos, como en nuestro ejemplo anterior, que se ha predicho el objeto en una imagen y el modelo ha
obtenido puntuaciones brutas de 1, 4, 2 y 3. El número más alto, «4», será la predicción más fiable.
3 Una versión anterior de este capítulo utilizaba la biblioteca Numpy en lugar de la biblioteca PyTorch. Aún puedes ver esos ejemplos
aquí: [Link]
56
La Tabla 3.2 muestra un ejemplo de predicción con las puntuaciones (z, logits), cada puntuación elevada a la
potencia del exponente natural (e) y los exponentes normalizados, que son los valores softmax. Esta es la
«distribución de probabilidad» porque están en un rango de 0 a 1 y suman 1.
La fila final, softmax, es cada ez dividido por la suma de todos los números en la fila ez .
Estas puntuaciones brutas, 1, 4, 2 y 3, se utilizarán en esta sección para mantener la coherencia de los ejemplos y, dado que
suman 10, facilitan la comprensión. El rango exacto de números que se obtenga dependerá de la función de activación (más
información al final del capítulo). Si se utiliza softmax como función de activación final, los números exactos serán una combinación
de la función de activación y los pesos de la salida de la capa anterior. Es improbable que se utilicen enteros exactos, pero el rango
de 1 a 4 será común en muchas arquitecturas. Por ejemplo, la función de activación ReLU y el método clamp() que se implementaron
en el capítulo 2 devuelven números en un rango acotado.
Como muestra la tabla anterior con nuestros ejemplos, “Peatón” es la predicción más segura,
y los números de confianza se extienden a partir de los números brutos: 4,0 sobre 10,0 en los números brutos
Las puntuaciones alcanzan el 64 % en el softmax. ¿Observa cuánto mayor se volvió la predicción "Pedestrian" en el paso ez ,
donde es 54,60? e4.0 = 54,60, y este número domina la ecuación del denominador como el mayor.
Los beneficios de la interpretabilidad deberían ser claros: al convertir los números en exponenciales y normalizarlos, podemos
convertir un rango ilimitado de números positivos y negativos en estimaciones de probabilidad que están en un rango de 0 a 1 y
suman 1. Los exponenciales también podrían mapear más estrechamente a las probabilidades reales, que si simplemente
normalizáramos las puntuaciones brutas. Si su modelo se está entrenando utilizando la Estimación de Máxima Verosimilitud (MLE),
la forma más popular de entrenar un modelo neuronal, entonces está optimizando la verosimilitud logarítmica. Por lo tanto, usar un
exponencial en la verosimilitud logarítmica nos lleva a una probabilidad real. Sin embargo, la Estimación de Máxima Verosimilitud
pone más énfasis en los elementos mal clasificados para clasificarlos mejor, por lo que sus puntuaciones no representan las
probabilidades logarítmicas de todos sus datos de entrenamiento de una manera que pueda convertir con precisión con
exponenciales.
¿Por qué e? Sinceramente, es un poco dudoso que e sea el número que usamos para normalizar nuestros datos. Hay muchos
aspectos del aprendizaje automático donde e tiene propiedades especiales, pero este no es uno de ellos. El número de Euler (e) es
aproximadamente 2,71828. Como recordarás de tus clases de matemáticas en el instituto, e es su propia derivada y, por lo tanto,
tiene muchas propiedades interesantes. En aprendizaje automático, nos gusta especialmente que e sea la derivada de sí misma.
Puedes verlo en el gráfico de la Figura 3.2.
57
Figura 3.2: Gráfico que muestra e como su propia integral: la pendiente en f(1) = 1 es 1, la pendiente en f(2) = 2 es 2, etc.
La pendiente en f(x) es f(x) para cualquier x dada: la pendiente de la curva ex en f(1) es 1; la pendiente de la
curva en af(2) es 2; etc. Quizás recuerdes esto escrito como f'(1) = 1 y f'(2) = 2 en tus libros de matemáticas
de la escuela secundaria, donde el apóstrofo indica la derivada y se llama "f prima". O puede que lo hayas
visto escrito como dy/dx o . Estas tres notaciones, f', dy/dx, , significan lo mismo y provienen de
diferentes matemáticos: Lagrange, Leibniz y Newton, respectivamente. Probablemente usaste la notación
de Lagrange en la escuela secundaria, la de Leibniz en cualquier curso anterior de aprendizaje automático
o la de Newton si vienes de la física.
La propiedad de f'(x) = f(x) es lo que queremos decir cuando decimos que ex es su propia derivada. Si
se usara una base distinta de e para la curva exponencial, no se obtendría esta propiedad. En aprendizaje
automático, necesitamos obtener las derivadas de las funciones para hacerlas converger: el aprendizaje en
aprendizaje automático consiste principalmente en esto: converger funciones. Por lo tanto, saber que la
derivada de una función es ella misma nos ahorra mucha potencia de cálculo.
Sin embargo, esto no significa necesariamente que e sea el número más adecuado para su conjunto de
datos al buscar la mejor medida de confianza. Si utiliza un algoritmo de aprendizaje automático de caja negra
y no tiene acceso a los números sin procesar, probablemente se verá obligado a usar la salida de softmax.
En ese caso, conviene tener una idea de cómo softmax tratará los diferentes datos de entrada.
A partir de la misma entrada, compare estos dos gráficos, pero utilizando e (2,71828) como exponencial.
base a la izquierda y utilizando 10 como base exponencial a la derecha en la Figura 3.3.
58
Figura 3.3: Comparación de dos bases diferentes para exponenciales (e y 10) para softmax con los mismos datos brutos de
salida de un modelo. Los gráficos muestran que, a mayor base, mayor probabilidad estimada de la puntuación más alta,
y que la puntuación más alta predomina en la ecuación softmax en mayor medida a bases más altas.
Como puede ver, la elección del exponente puede ser muy importante. Si usamos 10, la confianza de "Pedestrian" en nuestros
datos es ahora del 90%, y la siguiente etiqueta con mayor confianza es inferior al 10%.
Aquí están los puntajes obtenidos al usar 10 como base exponencial para softmax en nuestros datos de ejemplo:
Tabla 3.4 Esto repite el algoritmo softmax en los mismos puntajes (z, logits) que la Tabla 3.2, pero usando
10 en lugar de e como potencia.
Esto nos da una idea más clara de la importancia del número mayor. Con 10 como base exponencial, obtenemos 1 más 4
ceros (10 000). Esto es claramente mucho mayor que cualquiera de los demás números, y como resultado, todos se desplazan
hacia abajo en la ecuación softmax final:
59
Cuanto mayor sea la base exponencial de softmax, más dispersas serán las probabilidades.
La elección de la base no cambiará la predicción más fiable. Por ello, a menudo se pasa por alto en tareas de aprendizaje
automático, donde solo se prioriza la precisión predictiva.
sobre las etiquetas.
Idealmente, desea que su modelo conozca su nivel de confianza. Esto aplica no solo al aprendizaje activo, sino también a
diversas tareas. Por ejemplo, si su modelo tiene un 80 % de confianza en una predicción, entonces desea que sea correcta el 80 %
del tiempo. Pero si confía en que los resultados de su modelo tengan confianzas que indiquen con precisión su precisión, la elección
de cómo generar dichas confianzas es fundamental.
Suponga que softmax utiliza la base e en este texto, a menos que se indique explícitamente lo contrario. Por ahora, es
importante comprender cómo softmax transforma sus puntuaciones en una distribución de probabilidad. Abordaremos alternativas
a softmax en capítulos avanzados.
Como viste en la ecuación anterior, softmax proviene de exponenciales de los puntajes brutos.
Recuerda de tus clases de matemáticas de secundaria que la suma de números: cab = ca ÷ cb
Por lo tanto, cuando softmax normaliza los exponenciales dividiéndolos entre todos, la división de exponenciales resta
esencialmente el valor absoluto de las puntuaciones. En otras palabras, solo la diferencia relativa entre las puntuaciones del modelo
es lo que cuenta con softmax, no sus valores reales.
Podemos intuir esto viéndolo gráficamente. Tomemos las puntuaciones del ejemplo anterior de (1.0, 4.0, 2.0, 3.0) y creemos
escenarios donde sumamos 10, 100 y 3 a cada una de ellas. De esta manera, modificamos la suma de las puntuaciones, pero
mantenemos la diferencia entre cada puntuación exactamente igual. Como muestra la Figura 3.4, las distribuciones de probabilidad
son idénticas, aunque las puntuaciones brutas difieren considerablemente en cada uno de los cuatro conjuntos de predicciones.
Esto es
porque la diferencia entre cada una de las cuatro puntuaciones brutas era idéntica. La diferencia
Entre las puntuaciones brutas del modelo se encuentra el único factor que cuenta en la probabilidad final.
distribución bajo softmax. La diferencia entre 4 y 3 será la misma que la diferencia
Entre 104 y 103. Esta es una limitación importante que es necesario comprender. Claramente, el modelo con puntuaciones de 104
frente a 103 es mucho más incierto que un modelo con puntuaciones de 4 frente a 3, y un muestreo de incertidumbre más avanzado
lo tendrá en cuenta. Sin embargo, para los algoritmos de muestreo de incertidumbre más comunes y para cualquier uso de caja
negra de las predicciones de aprendizaje automático, es necesario comprender esta suposición.
60
Figura 3.4: Equivalencias de Softmax: cuatro puntuaciones de modelo diferentes que arrojan distribuciones de probabilidad
idénticas bajo Softmax. Las cuatro distribuciones de probabilidad de Softmax son idénticas, a pesar de provenir de
puntuaciones de modelo muy diferentes, lo que demuestra que solo importa la diferencia entre las puntuaciones. Por ejemplo, las
puntuaciones de (1, 4, 2, 3) arrojarán la misma distribución de probabilidad de Softmax que (101, 104, 102, 103).
Para obtener esta misma intuición desde otro punto de vista, intentemos multiplicar cada uno de (1.0, 4.0, 2.0, 3.0) por una
constante, y veamos los resultados en la Figura 3.5:
61
Figura 3.5: Las dos distribuciones de puntuaciones son idénticas excepto por la escala: las puntuaciones de la derecha son 10 veces las de los núcleos de la izquierda.
En la Figura 3.5, se puede observar que, si bien las puntuaciones de la última capa difieren únicamente en la escala del eje y,
producirán distribuciones de probabilidad muy diferentes con softmax. Para las distribuciones con puntuaciones más bajas, softmax
ha generado una distribución de probabilidad con un conjunto de números más compacto que los logits, pero con las puntuaciones
más altas ha generado una distribución más amplia.
El segundo es usar Log Softmax. Esto es lo que viste en el Capítulo 2 y lo que muestran los ejemplos introductorios de PyTorch.
implementar.
62
En nuestros ejemplos, consideramos softmax simplemente como una normalización de las puntuaciones de una
capa de salida. También puede usar softmax como la función de activación de la propia capa de salida.
Todas las observaciones sobre la elección de la base y cómo esta distribuirá los datos de diferentes maneras
siguen siendo válidas. Sin embargo, como veremos más adelante en este capítulo, no se recomienda usar
softmax como función de optimización para la última capa si se implementa el aprendizaje activo, a menos que
existan beneficios claros, como etiquetas significativamente más precisas. Es posible que ignorar la escala general
permita que un modelo con una capa final softmax sea más preciso para los datos. En este caso, se podrían
considerar diferentes modelos para la predicción de etiquetas y los componentes de aprendizaje activo de los
sistemas. Volveremos a sistemas más complejos como este en capítulos posteriores, ya que existen muchas
maneras de implementarlos.
Esta sección y los gráficos asociados constituyen probablemente la descripción más extensa de softmax que
encontrará, pero es importante para el aprendizaje automático con intervención humana. Es el algoritmo más
común para generar distribuciones de probabilidad a partir de predicciones de aprendizaje automático; sin
embargo, muchos creen que " e" , como la elección de la base, posee propiedades especiales para generar
confianzas, lo cual no es así, o creen que la elección de la base no cambiará el orden de clasificación de la
incertidumbre, lo cual es falso para cualquier tarea que prediga tres o más etiquetas (como aprenderá más
adelante). Por lo tanto, comprender realmente qué hace softmax le ayudará a seleccionar la estrategia de
muestreo de incertidumbre adecuada.
“No todos los datos son iguales”, anécdota experta de Jennifer Prendki
Si te importa tu nutrición, no vas al supermercado y seleccionas productos al azar de los estantes. Podrías...
Con el tiempo, obtendrás los nutrientes que necesitas comiendo productos al azar de los estantes del supermercado, sin embargo, comerás muchos
de comida chatarra en el proceso. Me parece extraño que en el aprendizaje automático, la gente todavía piense que es mejor "probar"
supermercado al azar” en lugar de averiguar lo que necesitan y concentrar sus esfuerzos allí.
El primer sistema de aprendizaje activo que construí fue por necesidad. Estaba desarrollando sistemas de aprendizaje automático para
ayudar a una gran tienda minorista a garantizar que, al buscar en su sitio web, apareciera la combinación correcta de productos. Casi de la noche a
la mañana, una reorganización de la empresa redujo a la mitad mi presupuesto de etiquetado humano y multiplicó por diez el inventario
que debíamos etiquetar. Por lo tanto, mi equipo de etiquetado solo contaba con el 5 % del presupuesto por artículo que antes teníamos. Creé mi
primer marco de aprendizaje activo para descubrir cuál era el 5 % más importante. Los resultados fueron mejores que el muestreo aleatorio con un
presupuesto mayor. Desde entonces, he utilizado el aprendizaje activo en la mayoría de mis proyectos, ¡porque no todos los datos son iguales!
Biografía: Jennifer Prendki es la directora ejecutiva de Alectio y se dedica a encontrar los datos adecuados para el aprendizaje automático. Anteriormente, dirigió el área de datos.
63
Pertenecen a cualquiera de las dos etiquetas, por lo que el modelo es incierto. Estos elementos tienen mayor probabilidad de
estar clasificados erróneamente y, por lo tanto, de resultar en una etiqueta humana diferente a la predicha.
De nuestra introducción en el Capítulo 1, recuerde este gráfico que muestra cómo el muestreo de incertidumbre debe
encontrar elementos cercanos al límite de decisión, como en la Figura 3.6:
Figura 3.6: muestra cómo el muestreo por incertidumbre es una estrategia de aprendizaje activo que sobremuestrea
elementos no etiquetados que están más cerca del límite de decisión (y a veces entre sí) y, por lo tanto, tienen más
probabilidades de obtener una etiqueta humana que resulte en un cambio en ese límite de decisión.
64
Existen numerosos algoritmos para calcular la incertidumbre, que analizaremos a continuación. Todos siguen los mismos principios:
Los tres métodos que se abordan en este capítulo son invariables respecto a los datos predichos: un elemento dado obtendrá la misma
puntuación de incertidumbre independientemente de las puntuaciones otorgadas a otros elementos predichos. Esto contribuye a la
simplicidad y previsibilidad de los enfoques de este capítulo: el orden de clasificación de las puntuaciones de incertidumbre es
suficiente para encontrar la más incierta en un conjunto de predicciones. Sin embargo, también existen técnicas que pueden aprovechar
la distribución de las predicciones para modificar las puntuaciones individuales. Volveremos a estas técnicas en capítulos posteriores
sobre técnicas avanzadas.
Tenga en cuenta que para las tareas de clasificación binaria, las diferentes estrategias en este capítulo serán
idénticos. Sin embargo, para tres o más etiquetas, las estrategias divergen muy rápidamente.
proporciona probabilidades estrictamente, pero estas son ecuaciones generales que se aplican a distribuciones de probabilidad de
cualquier fuente, no solo de softmax. La ecuación básica es simplemente la probabilidad de la etiqueta con la mayor fiabilidad y* , que
ya se implementó en el Capítulo 2:
Si bien se puede clasificar el orden solo por confianza, puede ser útil convertir las puntuaciones de incertidumbre a un rango de 0 a 1,
donde 1 es la puntuación más incierta. En ese caso, debemos normalizar la puntuación. Restamos el valor de 1 y multiplicamos el
resultado por el número de
etiquetas y dividir el número de etiquetas 1. Hacemos esto porque la confianza mínima puede
Nunca debe ser menor que el valor dividido por el número de etiquetas, que es cuando todas las etiquetas tienen la misma confianza
predicha. Por lo tanto, el muestreo de mínima confianza con un rango de 0 a 1 es:
65
Argumentos de palabras
clave: prob_dist: un tensor de PyTorch de números reales entre 0 y 1 que suman 1.0 ordenado: si la distribución
de probabilidad está preordenada del más grande al más pequeño
"""
si está ordenado:
simple_least_conf = prob_dist.data[0] # predicción más confiable de lo contrario:
configuración mínima normalizada = (1 configuración mínima simple) * (número de etiquetas / (número de etiquetas 1))
devolver normalized_least_conf.item()
Apliquemos la mínima confianza para obtener un puntaje de incertidumbre para nuestra predicción del automóvil autónomo:
La confianza para "Peatón" es lo único que cuenta aquí. En nuestro ejemplo, este índice de incertidumbre sería (1 0,6439) * (4 /
3) = 0,4748.
Por lo tanto, el muestreo de menor confianza proporciona un orden jerárquico de predicciones, donde se muestrearán los
elementos con menor confianza para su etiqueta predicha. Este método es sensible a los valores de la segunda, tercera, etc., solo
porque la suma de las demás predicciones será la puntuación en sí: el nivel de confianza asignado a las etiquetas distintas a la
más confiable.
Este método no será sensible a la incertidumbre entre ninguna de las otras predicciones: con la misma confianza para la
primera más confiable, las confianzas 2 a n pueden tomar cualquier valor sin cambiar el puntaje de incertidumbre.
Por lo tanto, si solo le interesa la predicción más fiable para su caso de uso específico, este método es un buen punto de
partida. De lo contrario, le conviene usar uno de los otros métodos.
abajo.
La confianza mínima es muy sensible a la base utilizada para el algoritmo softmax. Esto es un poco contradictorio, pero
recuerde nuestro ejemplo donde softmax(base=10) da una confianza de ~0,9, lo que resultaría en una puntuación de incertidumbre
de tan solo 0,1, mucho menor que 0,35 con los mismos datos. Para bases diferentes, esto cambiará la clasificación general. Bases
más altas para softmax ampliarán las diferencias entre la etiqueta más confiable y las demás etiquetas; por lo tanto, con bases
más altas, la diferencia entre las confianzas de las etiquetas pesará más que la diferencia absoluta entre la etiqueta más confiable
y 1,0. Exploraremos...
66
La relación entre la base softmax y la menor confianza se abordará un poco más en las secciones siguientes de este capítulo y se
ampliará aún más en un capítulo posterior sobre métodos avanzados.
De nuevo, podemos convertir esto a un rango de 0 a 1. Tenemos que restar de nuevo a 1.0, pero la puntuación máxima posible ya es
1, así que no hay necesidad de multiplicar por ningún factor:
A continuación se muestra una implementación del muestreo de margen de confianza utilizando PyTorch:
Argumentos de palabras
clave: prob_dist: un tensor de PyTorch de números reales entre 0 y 1 que suman 1.0 ordenado: si la distribución
de probabilidad está preordenada del más grande al más pequeño
"""
Si no está ordenado:
prob_dist, _ = [Link](prob_dist, descendente=Verdadero)
devolver margin_conf.item()
"Peotán" y "Animal" son las predicciones más fiables y la segunda más fiable. En nuestro ejemplo, este nivel de incertidumbre sería
1,0 (0,6439 0,2369) = 0,5930.
67
Este método no será sensible a la incertidumbre de ninguna predicción excepto las dos más confiables: con la misma diferencia
en confianza para la 1.ª y la 2.ª más confiable, las confianzas 3.ª a n.ª pueden tomar cualquier valor sin cambiar el puntaje de
incertidumbre.
Entonces, si solo le importa la incertidumbre entre la etiqueta prevista y la siguiente predicción más confiable para su caso de
uso particular, este método es un buen punto de partida.
Este es probablemente el tipo de muestreo de incertidumbre más común que he visto utilizar en la industria, pero los tres métodos
son comunes.
El margen de confianza es el menos sensible a la base utilizada para el algoritmo softmax, pero sigue siendo sensible. Si bien
softmax(base=10) daría una puntuación de margen de confianza de 0,1899 para nuestro conjunto de datos anterior, en comparación
con 0,5930 con la base e, las dos puntuaciones más probables se moverán. Se moverán a ritmos ligeramente diferentes
dependiendo de la diferencia relativa total de todas las puntuaciones brutas, pero recuerde que estamos muestreando desde
cuando el modelo es más incierto, es decir, cuando las puntuaciones más confiables tenderán a ser lo más bajas posible y, por lo
tanto, más similares entre sí. Por esta razón, podría obtener una diferencia de tan solo un pequeño porcentaje al muestrear los
elementos más inciertos mediante el muestreo de margen de confianza bajo diferentes bases de softmax.
Acabamos de obtener el logaritmo natural, ¡e = 2,71828! De igual manera, si usamos base 10, obtenemos:
90,01% / 9,001% = 10
La relación de confianza con una división se puede definir en términos de las puntuaciones brutas, en este caso con
softmax(base= β), donde β es la base utilizada para softmax (si no e):
68
La relación de confianza con una división es completamente invariante en cualquier base utilizada en softmax.
La puntuación está completamente determinada por la distancia entre las dos puntuaciones brutas más altas de su
modelo y, por lo tanto, escalar según la misma base no cambiará el orden de clasificación.
Para darle a la razón de confianza un rango normalizado de 0 a 1 donde simplemente se puede tomar la inversa
de la ecuación anterior:
Utilizamos la versión no invertida anterior para que muestre directamente su base softmax con fines ilustrativos.
A continuación se muestra una implementación del muestreo de razón de confianza utilizando PyTorch:
Argumentos de palabras
clave: prob_dist tensor de PyTorch de números reales entre 0 y 1 que suman 1.0 ordenado si la distribución de probabilidad
está preordenada del mayor al menor
"""
si no está ordenado:
prob_dist, _ = [Link](prob_dist, descending=True)
devolver ratio_conf.item()
Con suerte, esto le brindará otra buena forma de intuir por qué el muestreo de margen de confianza también es
relativamente invariante: no hay una gran diferencia entre restar sus dos valores más altos y dividir sus dos valores
más altos, cuando su objetivo final es clasificarlos.
Afortunadamente, cuando el margen de confianza con sustracción difiere del índice de confianza, cumple
nuestro objetivo al favorecer lo más incierto. Supongamos que tienes cuatro etiquetas. Si la tercera...
Si las predicciones más confiables se acercan relativamente a la primera y la segunda, esto aumentará la puntuación
de incertidumbre del margen de confianza. Esta variación es pequeña y no se produce directamente como resultado
del margen de confianza: es una consecuencia de que el denominador en la ecuación softmax es mayor debido a la
mayor puntuación de la tercera predicción más confiable, que se vuelve desproporcionadamente mayor como
exponencial. No obstante, es el comportamiento correcto: en igualdad de condiciones, el margen de confianza
buscará incertidumbre más allá de las dos primeras predicciones más confiables, en lo que de otro modo sería un
empate.
69
A diferencia del margen de confianza, donde la variación de la 3.ª a la n.ª predicción es un subproducto afortunado
de softmax, nuestra siguiente estrategia de muestreo de incertidumbre más popular modela explícitamente todas las
predicciones.
La entropía más alta se produce cuando un equipo gana exactamente la mitad de sus partidos: no se sabe de
antemano cuál será el resultado y, por lo tanto, hay la misma cantidad de sorpresa en ambos sentidos en cada partido.
La ecuación de entropía simplemente nos da una forma matemáticamente bien motivada de calcular la sorpresa de
los resultados, como se muestra en la Figura 3.7:
Figura 3.7: Ejemplo de baja entropía (izquierda) y alta entropía (derecha) que muestra que la alta entropía es cuando las probabilidades
son más similares entre sí y, por lo tanto, cuando hay mayor “sorpresa” en cualquier predicción de la distribución.
La entropía aplicada a una distribución de probabilidad multiplica cada probabilidad por su propio logaritmo y toma la
suma negativa de estos:
Podemos convertir la entropía en un rango de 0 a 1 dividiéndola por el logaritmo del número de predicciones (etiquetas):
Aquí hay una implementación de la relación de puntuación de entropía usando Python y la biblioteca numpy:
70
"""
Argumentos de palabras
clave: prob_dist: un tensor de PyTorch de números reales entre 0 y 1 que suman 1.0 ordenado: si la distribución
de probabilidad está preordenada del más grande al más pequeño
"""
log_probs = prob_dist * torch.log2(prob_dist) # multiplica cada prob por su base 2 log raw_entropy = 0 [Link](log_probs)
devolver normalized_entropy.item()
En primer lugar, no te asustes por otra base arbitraria, log(base=2), que se utiliza para cálculos históricos.
Razones:
La elección de la base para la entropía no cambia el orden de clasificación del muestreo de incertidumbre.
A diferencia de Softmax, el cálculo de la entropía con diferentes bases para el muestreo de incertidumbre no será
Cambiar el orden de clasificación de las puntuaciones en un conjunto de datos. Se obtendrán diferentes puntuaciones de
entropía según la base, pero estas variarán monótonamente para cada distribución de probabilidad y, por lo tanto, no
cambiarán el orden de clasificación para el muestreo de incertidumbre. La base 2 se utiliza en entropía por razones históricas,
ya que la entropía proviene de la teoría de la información, donde se pensó en comprimir flujos de datos en bits binarios.
Nótese que el paso P(y|x) log(P(y|x)) no es monótono con respecto a la distribución de probabilidad dada por softmax.
«Pedestrian» da 0.409, pero «Animal» da 0.492. Por lo tanto, «Animal»
71
contribuye más al puntaje de entropía final, aunque no es la predicción más confiable ni la menos confiable.
Los datos clasificados por incertidumbre según la entropía son muy sensibles a la base utilizada por el algoritmo softmax. Su
sensibilidad es similar a la del algoritmo de menor confianza. La razón es intuitiva: la entropía utiliza explícitamente todos los
números de la distribución de probabilidad, por lo que cuanto más dispersos estén estos números en una base mayor, más
divergente será el resultado.
Recordemos nuestro ejemplo donde softmax(base=10) da una confianza de aproximadamente el 0,9 %, lo que resultaría en
una puntuación de incertidumbre de tan solo 0,1, mucho menor que 0,35 con los mismos datos. Para bases diferentes, esto
cambiará la clasificación general. Bases más altas para softmax extenderán la...
Diferencias entre la etiqueta más segura y las demás etiquetas.
Si desea profundizar en la entropía, puede intentar introducir diferentes confianzas en la parte interna de la ecuación, donde cada
confianza se multiplica por su propio logaritmo, por ejemplo, “0,3 * log(0,3)”.
Para esta medida de entropía, la puntuación por predicción de P(y|x) log(P(y|x)) devolverá los valores negativos más altos para
niveles de confianza de alrededor de 0,3679. A diferencia de softmax, este es un aspecto donde el número de Euler es especial, ya
que e ¹ = 0,3679. La fórmula para obtener esto se conoce como la Regla de Euler, una derivación de la Regla de Thâbit ibn
Kurrah , de algún momento del siglo IX, para generar Números Amigables. Los valores negativos más altos para cada predicción
estarán alrededor de 0,3679, independientemente de la base que se utilice para la entropía, lo que debería ayudar a comprender
por qué la base no importa en este caso.
Sin embargo, 0,3679 es óptimo solo para probabilidades individuales. Al usar 0,3679 de la probabilidad para una etiqueta, solo se
deja 0,6431 para las demás. Por lo tanto, la entropía más alta para toda la distribución de probabilidad, no solo para los valores
individuales, siempre será la misma probabilidad, igual a uno dividido por el número de etiquetas.
72
Puntuaciones de los algoritmos que contienen, que pueden utilizarse para el muestreo de incertidumbre. En
algunos casos, podrá usar las puntuaciones directamente, mientras que en otros deberá convertirlas a
distribuciones de probabilidad mediante un método como softmax.
Incluso si solo utiliza modelos predictivos de redes neuronales o las configuraciones predeterminadas en
bibliotecas y servicios comunes de aprendizaje automático, es útil comprender la gama completa de algoritmos
y cómo se define la incertidumbre con diferentes tipos de modelos de aprendizaje automático.
Algunas son muy diferentes a las interpretaciones que hacemos de los modelos de redes neuronales, pero
no necesariamente mejores ni peores, por lo que le ayudará a apreciar las fortalezas y debilidades de
diferentes enfoques comunes.
Las estrategias para determinar la incertidumbre de diferentes tipos de algoritmos de aprendizaje
automático se resumen en la Figura 3.8 y se amplían con más detalle más adelante en esta sección. Primero,
profundizaremos en la arquitectura neuronal, y en particular en las funciones de activación para la capa final.
La función de activación en un modelo neuronal es la ecuación utilizada para optimizar la salida de cada
neurona. La elección de la función de activación determinará el tipo y el rango de salidas.
Estos tres son los más comunes y cubren probablemente más del 95% de los casos para la capa de salida
en el aprendizaje supervisado:
Si está diseñando su propia red neuronal, incluirá la función de activación para cada capa de la red, por lo
que ya estará muy familiarizado con estas tres funciones de activación.
Leaky ReLU es la mejor función de activación para la capa final del modelo de aprendizaje activo, ya que
contiene la mayor cantidad de información. Leaky ReLU despondera los números por debajo de 0, pero los
mantiene en la salida, por lo que la información completa está presente.
73
Arriba a la izquierda Muestra el límite de decisión de una Máquina de Vectores de Soporte. Es un aprendiz discriminativo, como un modelo neuronal,
que busca dividir los datos de forma óptima. A diferencia de los clasificadores neuronales, las Máquinas de Vectores de
Soporte (MTS) también buscan maximizar la anchura del límite. Así es como una MTS decide cuál de las múltiples líneas "centrales"
posibles es la mejor división: tiene el límite más ancho. Cabe destacar que la distancia desde el divisor (el "hiperplano" para
las MTS) se mide desde el extremo opuesto del divisor, no desde la línea central.
Arriba a la derecha Muestra un posible modelo bayesiano. Se trata de un modelo de aprendizaje generativo supervisado, lo que significa que intenta
modelar la distribución de cada etiqueta, en lugar de modelar el límite entre ellas. La confianza por etiqueta puede interpretarse
directamente como la probabilidad de ser esa etiqueta.
La parte inferior izquierda muestra la división que un árbol de decisión podría generar, dividiendo y subdividiendo recursivamente los datos, una característica
a la vez. La confianza se define por el porcentaje de una etiqueta en el último contenedor (hoja).
Por ejemplo, en el cubo inferior izquierdo (hoja) hay 1 Etiqueta A y 3 Etiqueta B, por lo que una predicción en ese cubo (hoja) tendría
un 25 % de confianza en la Etiqueta A y un 75 % de confianza en la Etiqueta B. Los árboles de decisión son muy sensibles a qué tan
lejos los dejas dividir (podrían seguir dividiéndose en hojas de un solo elemento) y, por lo tanto, las probabilidades tienden a no ser
confiables.
En la parte inferior derecha se muestra un conjunto de árboles de decisión, de los cuales la variante más conocida es un “árbol de decisión aleatorio”.
74
Bosque. Se entrenan múltiples árboles de decisión. Los diferentes árboles suelen obtenerse entrenándolos con
diferentes subconjuntos de datos o características. La confianza en una etiqueta puede ser simplemente el
porcentaje de veces que se predijo un elemento en todos los modelos, o la confianza promedio de
todas las predicciones.
ReLU pone a cero todos los números inferiores a 0, por lo que tiende a contener menos información, ya que ya no hay distinción
entre, por ejemplo, 1 y 1000. Para el muestreo por incertidumbre, esto no es tan relevante, ya que los números bajos aportan
poca ponderación a los resultados finales tras aplicar softmax. Sin embargo, esto cobra mayor importancia en los siguientes
capítulos sobre muestreo por diversidad, ya que los diferentes valores de los números bajos sí son importantes para la clasificación
de valores atípicos.
Sigmoid es el equivalente binario de softmax, dando una salida que es una normalización exponencial de modo que cada
nodo de salida predice un valor entre 0 y 1. Si usa Sigmoid en la capa final, debe considerar la normalización simple de las salidas
(dividir cada puntaje bruto por la suma de todos los puntajes brutos) en lugar de la normalización softmax, ya que ya ha aplicado
una normalización exponencial a sus datos: cada normalización posterior a través de exponenciales cuando ya está en un rango
de 0 a 1 traerá aún más la distribución de probabilidad a un rango más estrecho.
Dado que softmax pierde la diferencia relativa en las puntuaciones, como vimos en este capítulo, esta arquitectura no se
recomienda para el aprendizaje activo. Sin embargo, puede que no tenga otra opción, ya sea porque esté utilizando un modelo
desarrollado por otro usuario o porque haya descubierto mediante experimentación que softmax, como función de activación,
produce predicciones considerablemente precisas para cada etiqueta. En este caso, aún es posible convertir su modelo para probar
diferentes bases exponenciales para el muestreo por incertidumbre. No obstante, las puntuaciones brutas del modelo serán más
importantes para el muestreo por diversidad, como aprenderá en el siguiente capítulo.
Si sabe que otra activación es más precisa para predecir etiquetas, podría considerar reentrenar su capa final solo para
Aprendizaje Activo. Por ejemplo, podría obtener la mejor precisión con Sigmoid, pero con Leaky ReLU obtendrá mejores muestras
en condiciones de muestreo con incertidumbre. Esta estrategia (reentrenar parte del modelo específicamente para Aprendizaje
Activo) es algo que abordaremos en capítulos avanzados posteriores de este texto.
75
Las máquinas de vectores de soporte (SVM) son otro tipo de aprendizaje discriminativo. Al igual que un modelo neuronal, buscan
una manera de dividir los datos de forma óptima.
A diferencia de los clasificadores neuronales, las máquinas de modelado de soporte (SVM) también buscan maximizar la
anchura del límite. Así es como una SVM decide cuál de las múltiples divisiones posibles es la correcta: el límite óptimo se define
como el más ancho, o más específicamente, el que modela óptimamente la mayor distancia entre una etiqueta y el extremo opuesto
del límite divisorio. Puede ver un ejemplo de SVM en la Figura 3.8. Los propios "Vectores de Soporte" son los puntos de datos que
definen los límites.
Las SVM también difieren en cómo modelan distribuciones más complejas. Las redes neuronales utilizan capas ocultas para
descubrir límites entre etiquetas que son más complejos que las simples divisiones lineales. Dos capas ocultas son suficientes para
definir cualquier función. Las SVM hacen prácticamente lo mismo, pero con funciones predefinidas que mapean los datos en
dimensiones superiores. Un ejemplo se puede ver en la Figura 3.9, donde nuestros datos de ejemplo bidimensionales se proyectan
ahora en una tercera dimensión que eleva los elementos en un lado de esa función y los baja en el otro.
Otro. Con la proyección a una dimensión superior, los datos ahora son linealmente separables y existe un plano que dividirá las dos
etiquetas.
76
Figura 3.9: Ejemplo de una Máquina de Vectores de Soporte (MVS) que proyecta nuestro conjunto de datos bidimensionales
(arriba) en tres dimensiones (abajo), de modo que un plano lineal separa los dos conjuntos de etiquetas: la etiqueta A está
por encima del plano, mientras que la etiqueta B está por debajo. Los elementos muestreados son los que están menos
alejados del plano. Si desea aprender de la importante literatura sobre aprendizaje activo, deberá comprender cómo
funcionan las MVS a este alto nivel.
Es mucho más eficiente entrenar un modelo cuando se predefine el tipo de función (como en las máquinas de modelado de
secuencias), en lugar de dejar que el modelo la encuentre por sí mismo entre todas las alternativas posibles (como en los
modelos neuronales). Sin embargo, la probabilidad de predefinir el tipo de función correcto es baja y el coste del hardware
está disminuyendo, a la vez que aumenta la velocidad. Por lo tanto, las máquinas de modelado de secuencias rara vez se
utilizan hoy en día, en comparación con su popularidad anterior.
Los modelos bayesianos son modelos de aprendizaje generativo supervisado, lo que significa que (por definición) intentan
modelar la distribución de cada etiqueta y las muestras subyacentes, en lugar de modelar el límite entre las etiquetas.
77
La ventaja de los modelos bayesianos es que puedes leer las probabilidades directamente de la
modelo:
No se necesita un paso aparte ni una función de activación específica para convertir puntuaciones arbitrarias en una distribución de
probabilidad: el modelo calcula explícitamente la probabilidad de que un elemento tenga una etiqueta. Por lo tanto, la confianza por
etiqueta puede interpretarse directamente como una probabilidad de
esa etiqueta.
Debido a que no intentan modelar las diferencias entre etiquetas, los modelos bayesianos tienden a no poder capturar límites
de decisión más complicados sin un ajuste mucho más preciso.
El algoritmo Naive Bayes obtiene la parte “Naive” de su nombre debido a que no puede modelar relaciones lineales entre
características, mucho menos las más complicadas, aunque puede volver a entrenarse casi instantáneamente con nuevos datos de
entrenamiento, lo que resulta atractivo para los sistemas HumanintheLoop.
Los modelos bayesianos también deben hacer suposiciones sobre las distribuciones de datos, como los valores reales que caen
dentro de una distribución normal, que pueden no necesariamente ser válidos en los datos reales.
Estas suposiciones pueden desviar las probabilidades de los valores reales si no se tiene cuidado.
Todavía tenderán a ser mejores que las probabilidades de los modelos discriminativos: simplemente no se puede confiar ciegamente
en ellos sin comprender sus suposiciones sobre los datos.
Por lo tanto, si bien los modelos bayesianos no suelen alcanzar la misma precisión que los modelos discriminativos para las
etiquetas predichas, pueden ser útiles para el aprendizaje activo, ya que modelan mejor las probabilidades de las predicciones y, a
menudo, permiten un reentrenamiento mucho más rápido. Analizaremos combinaciones de métodos neuronales y bayesianos en
capítulos avanzados posteriores.
Los árboles de decisión son aprendices discriminativos que dividen los datos característica por característica, subdividándolos
recursivamente en categorías hasta que las categorías finales (las hojas) tienen un solo conjunto de etiquetas. Los árboles suelen
detenerse o podarse anticipadamente para que las hojas finalmente contengan cierta diversidad de etiquetas y para que los modelos
no se sobreajusten a los datos. Un ejemplo se puede ver en la Figura 3.8.
La confianza se define por el porcentaje de una etiqueta en la hoja para esa predicción. Por ejemplo, en la hoja inferior izquierda
de la Figura 3.8, hay una etiqueta A y tres etiquetas B, por lo que una predicción en ese grupo (hoja) tendría un 25 % de confianza
en la etiqueta A y un 75 % de confianza en...
Etiqueta B.
Los árboles de decisión son muy sensibles a la profundidad de su división; podrían seguir dividiéndose en hojas de un solo
elemento. Por el contrario, si no son lo suficientemente profundos, habrá mucho ruido en cada predicción y el grupo será muy grande,
con elementos de entrenamiento relativamente distantes dentro del mismo grupo contribuyendo erróneamente a la confianza. Por lo
tanto, las probabilidades tienden a no ser fiables.
Por esta razón, rara vez se confía en la fiabilidad de los árboles de decisión individuales, y no se recomiendan para el muestreo
por incertidumbre. De hecho, pueden ser útiles para otras aplicaciones de aprendizaje activo.
78
estrategias, como veremos más adelante, pero para cualquier aprendizaje activo que involucre árboles de decisión, se recomienda
que utilice múltiples árboles y combine los resultados.
Los bosques aleatorios son el conjunto más conocido de árboles de decisión. En Machine...
Aprendizaje, un “conjunto” significa una colección de modelos de aprendizaje automático que se combinan para hacer una
predicción, que abordamos con más detalle en la siguiente sección.
En un Bosque Aleatorio, se entrenan múltiples árboles de decisión diferentes, con el objetivo de obtener predicciones
ligeramente diferentes de cada uno. Estos árboles se suelen lograr entrenando con diferentes subconjuntos de datos o
características. La confianza en una etiqueta puede ser simplemente el porcentaje de veces que se predijo un elemento en todos
los modelos, o la confianza promedio de todas las predicciones.
Como muestra la Figura 3.8, con la combinación de tan solo cuatro árboles de decisión, el límite de decisión entre las dos
etiquetas comienza a presentar un gradiente mayor al promediar múltiples predicciones. Por lo tanto, los bosques aleatorios
constituyen una aproximación útil y confiable a lo largo del límite entre dos etiquetas.
Los árboles de decisión se entrenan muy rápido, por lo que hay pocas razones para no entrenar muchos árboles en un
Random Forest si este es su algoritmo de elección para el aprendizaje activo.
Incluso si no está utilizando varios modelos para sus datos, observar la variación en
Las predicciones de diferentes modelos le darán una intuición de qué tan estable es su modelo hoy.
De manera similar a cómo un Bosque aleatorio es un conjunto de un tipo de algoritmo de aprendizaje supervisado, puede utilizar
varios tipos diferentes de algoritmos para determinar la incertidumbre y la agregación.
a través de ellos.
La figura 3.10 ofrece un ejemplo de esto. Diferentes clasificadores tendrán puntuaciones de confianza que probablemente no
sean directamente compatibles entre sí debido a los diferentes tipos de
estadísticas utilizadas.
La forma más sencilla de combinar varios clasificadores es ordenar los elementos según su puntuación de incertidumbre para
cada clasificador, y darle a cada elemento una nueva puntuación basada en su orden de clasificación y luego combinar esas
puntuaciones de clasificación en un rango maestro de incertidumbre.
79
Figura 3.10: Un modelo de conjunto que combina predicciones de diferentes tipos de algoritmos de aprendizaje
automático: modelos neuronales, máquinas de vectores de soporte, modelos bayesianos y bosques de decisión. Las predicciones
pueden combinarse de diversas maneras (máximo, promedio, etc.) para determinar la incertidumbre conjunta de cada variable sin etiquetar.
artículo.
Se puede calcular la incertidumbre según la frecuencia con la que diferentes modelos coinciden en la etiqueta de un artículo: los
artículos con mayor desacuerdo son los que se deben muestrear.
También puedes tener en cuenta las distribuciones de probabilidad de las predicciones, y ahí
Hay varias formas de combinar las predicciones de diferentes modelos:
Probablemente hayas notado que los primeros cuatro métodos anteriores son los mismos algoritmos que usamos para el muestreo
de incertidumbre dentro de una sola predicción, ¡pero en este caso en múltiples predicciones!
Así que ya deberías poder implementar esto.
Dentro del aprendizaje activo, el enfoque basado en conjuntos a veces se conoce como "Consulta por
Comité”, especialmente cuando solo se utiliza un tipo de algoritmo de aprendizaje automático para el
conjunto.
Podrías probar el enfoque de conjunto con modelos neuronales: entrenar un modelo varias veces y observar la concordancia
en los datos sin etiquetar entre las predicciones de cada modelo neuronal. Si
80
Ya estás entrenando tu modelo varias veces para ajustar los hiperparámetros, así que también podrías aprovechar las diferentes
predicciones para ayudar con el aprendizaje activo.
Siguiendo el método Random Forest mencionado anteriormente, puedes intentar volver a entrenar tus modelos con diferentes
subconjuntos de elementos o características, para forzar la diversidad en los tipos de modelos que se construyen.
Esto evitará que una característica (o un pequeño número de características) domine la puntuación de incertidumbre final.
Un método adicional para los modelos neuronales es el uso de abandonos. Probablemente ya esté familiarizado con los abandonos
al entrenar un modelo: se elimina o ignora un porcentaje aleatorio de neuronas o conexiones durante el entrenamiento para evitar el
sobreajuste del modelo a una neurona específica.
Se puede aplicar la estrategia de descarte a las predicciones: obtener una predicción para un elemento varias veces, descartando
una selección aleatoria diferente de neuronas/conexiones cada vez. Esto generará múltiples niveles de confianza para un elemento,
que se pueden usar con los métodos de evaluación de conjuntos mencionados anteriormente para seleccionar el elemento correcto. La
Figura 3.11 muestra un ejemplo.
81
Figura 3.11: Ejemplo de la aplicación de la técnica de abandono a un modelo para obtener múltiples predicciones para un solo
elemento. En cada predicción, se descarta (ignora) un conjunto aleatorio de neuronas, lo que resulta en diferentes niveles de
confianza y (posiblemente) diferentes etiquetas predichas. La incertidumbre puede calcularse entonces como la variación entre
todas las predicciones: a mayor desacuerdo, mayor incertidumbre. Esto se conoce como abandono de Monte Carlo.
En este texto, verá más ejemplos donde utilizamos la propia arquitectura neuronal para facilitar el aprendizaje activo. El siguiente capítulo
sobre muestreo de diversidad comienza con un ejemplo similar.
82
ejemplo en el que utilizamos la activación del modelo para detectar valores atípicos, y muchas de las técnicas avanzadas que
aparecen más adelante en el libro hacen lo mismo.
Es un momento emocionante para trabajar en aprendizaje automático con interacción humana. Podrás trabajar con las
arquitecturas más recientes de algoritmos de aprendizaje automático y analizar cómo se relacionan con la interacción persona
computadora.
El muestreo por incertidumbre es un proceso iterativo. Se seleccionan algunos elementos para revisión humana, se reentrena el
modelo y se repite el proceso.
Recordemos del Capítulo 1, la posible desventaja del muestreo por incertidumbre sin también
muestreo para la diversidad, que se puede ver en la Figura 3.12.
Figura 3.12: Una selección de elementos “inciertos” que son todos de la misma región del espacio de características y, por lo
tanto, carecen de diversidad.
Los elementos más inciertos aquí están todos cerca unos de otros. En un ejemplo real, podría haber miles de ejemplos agrupados
y no es necesario muestrearlos todos. Independientemente de dónde se muestree el elemento, no se puede estar completamente
seguro de cuál será su influencia en el modelo hasta que una persona proporcione una etiqueta y el modelo se vuelva a entrenar.
Sin embargo, volver a entrenar un modelo puede llevar mucho tiempo y, durante ese período, puede ser un desperdicio.
de tiempo que los anotadores humanos deben esperar. Hay dos fuerzas en juego:
1. Minimizar el tamaño de la muestra garantizará que se obtenga el máximo beneficio de cada dato.
punto en cada iteración.
2. Maximizar el tamaño de la muestra garantizará que se etiqueten más elementos antes y que el modelo necesite volver a
entrenarse con menos frecuencia.
83
Como vio en el Capítulo 2, hubo poca diversidad en las primeras iteraciones de su modelo, pero esto
se corrigió automáticamente en iteraciones posteriores a medida que se volvía a entrenar el modelo.
La decisión, en última instancia, dependerá de un proceso empresarial. En trabajos recientes de traducción, queríamos que nuestros
modelos se adaptaran en segundos para que respondieran en tiempo real a nuestros traductores mientras trabajaban. También he visto
empresas que se conforman con aproximadamente una iteración al año para adaptarse a los nuevos datos.
Si tienes un presupuesto fijo para etiquetas, deberías intentar conseguir tantas iteraciones como sea posible. Esto depende de si tu
presupuesto es por etiqueta (como ocurre con muchos modelos de trabajadores colaborativos) o por hora (como ocurre con muchos
modelos humanos expertos).
Si tu presupuesto es por etiqueta, es decir, pagas un precio fijo por etiqueta sin importar cuánto tiempo transcurra entre su obtención,
lo mejor es optimizar para el máximo número de iteraciones posible. La gente suele aburrirse esperando a que sus modelos se entrenen.
Por eso, cuando el reentrenamiento de un modelo lleva más de unos días, he visto que la gente suele alcanzar un máximo de 10
iteraciones y planifica en consecuencia. No hay una razón específica para elegir 10: es simplemente un número intuitivo de iteraciones
para monitorizar los cambios en la precisión.
Si su presupuesto es por hora, lo que significa que tiene una cantidad determinada de personas que etiquetan una cantidad
determinada de horas por día, entonces es mejor optimizar para tener siempre datos disponibles para etiquetar.
Pida a los anotadores que revisen gradualmente el orden de clasificación de los elementos no etiquetados según la incertidumbre y que
vuelvan a entrenar el modelo a intervalos regulares, sustituyendo la clasificación de incertidumbre anterior por una nueva cuando esté
listo un nuevo modelo. Si solo utiliza muestreo por incertidumbre y desea evitar el sobremuestreo de una sola parte del espacio del
problema, debería reemplazar los modelos regularmente. Siendo realistas, si las personas trabajan a tiempo completo etiquetando datos
para usted, les debe el respeto de implementar múltiples estrategias de muestreo de aprendizaje activo de este libro y muestrear de todas
ellas, para que sientan que están aportando el máximo valor posible. También es menos probable que introduzca sesgos que podrían
resultar de la implementación de solo uno de los algoritmos, lo que beneficia tanto a los humanos como a las máquinas.
Si tiene limitaciones de tiempo y necesita obtener un modelo actualizado rápidamente, entonces debe considerar estrategias para volver
a entrenar los modelos lo más rápido posible, como implementó en el Capítulo 2.
La forma más rápida de lograrlo es usar modelos más simples. Un modelo con solo una o dos capas (o mejor aún, un modelo Naive
Bayes) se puede reentrenar increíblemente rápido y, por lo tanto, permite iterar con gran rapidez. Además, existe evidencia de que el
muestreo de incertidumbre de un modelo más simple puede ser tan efectivo como el de un modelo más complejo. Recuerde, buscamos
la mayor confusión, no la mayor precisión. Siempre que un modelo simple presente mayor confusión sobre los mismos elementos que un
modelo más complejo, entonces muestrearán...
mismos artículos.
84
Una forma más avanzada es reentrenar solo la(s) última(s) capa(s) de un modelo mucho más grande.
Reentrenar el modelo puede ser muy rápido reentrenando solo la última capa con datos nuevos, en comparación
con reentrenar el modelo completo. Esto puede tardar segundos, en lugar de semanas. El modelo reentrenado
no necesariamente será tan preciso, pero a menudo se acerca. Al igual que con la elección de un modelo más
simple, esta pequeña pérdida de precisión podría no ser importante si el objetivo es simplemente buscar más
incertidumbre, y la iteración más rápida podría incluso resultar en un modelo más preciso que si se hubiera
esperado mucho tiempo para reentrenar el modelo completo, pero con menos iteraciones.
La forma más avanzada es la mejor de ambos mundos: utilizar métodos para descubrir exactamente qué
parámetros son los más importantes para volver a entrenar en todo el modelo y volver a entrenar solo ellos.
Esto puede brindar la misma precisión que reentrenar todo el modelo, pero en solo una fracción del tiempo. Esta
es la solución que se utiliza para la traducción adaptativa en tiempo real, pero es una técnica avanzada que
abordaremos en capítulos posteriores.
¡Qué suerte! Deberías parar cuando tu modelo deje de mejorar su precisión. Si has probado muchas estrategias
de muestreo por incertidumbre y no obtienes más ganancias después de alcanzar cierta precisión, es una
buena señal para detenerte y considerar otras estrategias de aprendizaje activo o algorítmicas si no has
alcanzado tu objetivo de precisión deseado.
A medida que etiquete más datos, verá rendimientos decrecientes. Independientemente de la estrategia
que utilice, la tasa de aprendizaje disminuirá al agregar más datos. Incluso si no se ha estancado por completo,
debería poder realizar un análisis costobeneficio de la precisión que obtiene por etiqueta en comparación con
su costo.
Por lo tanto, no caigas en la trampa de olvidarte de tomar muestras aleatorias además de usar
Muestreo de incertidumbre: ¡en realidad no sabrás si tu modelo está mejorando!
Si ya tiene datos de prueba reservados y sabe que los datos sin etiquetar provienen más o menos de la misma
distribución que sus datos de entrenamiento, entonces no necesita datos de prueba adicionales: puede seguir
probando con los mismos datos.
Si sabe que los datos de prueba tienen una distribución diferente de sus datos de entrenamiento originales,
o si no está seguro, debe recopilar etiquetas adicionales mediante una selección aleatoria de
85
elementos sin etiquetar y agréguelos a su conjunto de prueba o cree un segundo conjunto de prueba separado.
Recordar:
SUGERENCIA: ¡Cree su nuevo conjunto de pruebas antes de su primera iteración de muestreo de incertidumbre!
Una vez que se hayan eliminado algunos elementos sin etiquetar del conjunto mediante el muestreo de incertidumbre, dicho conjunto
deja de ser una selección aleatoria. Ahora, dicho conjunto está sesgado hacia la confianza.
elementos predichos, por lo que es probable que una selección aleatoria de este grupo arroje una precisión erróneamente alta si se
utiliza como conjunto de prueba.
Mantenga su conjunto de prueba separado durante todas las iteraciones y no permita que sus elementos formen parte de
ninguna estrategia de muestreo. Si olvida hacerlo hasta varias iteraciones después y su muestra aleatoria incluye elementos
seleccionados mediante muestreo de incertidumbre, deberá volver a la primera iteración. No puede simplemente eliminar esos
elementos de prueba de los datos de entrenamiento en adelante, ya que se entrenaron con ellos y contribuyeron a las selecciones
en las estrategias de muestreo de incertidumbre provisionales.
También es recomendable comprobar el rendimiento de su técnica de muestreo de incertidumbre frente a una línea base de
muestreo aleatorio. Si no supera el muestreo aleatorio, ¡debería reconsiderar su estrategia! Elija una cantidad de elementos
seleccionados aleatoriamente para los que sepa que la comparación será estadísticamente significativa: a menudo, unos pocos
cientos son suficientes. A diferencia de los datos de evaluación de todo el modelo, es adecuado añadirlos a los datos de
entrenamiento en la siguiente iteración, ya que está comparando la estrategia de muestreo en cada paso, dado lo que queda por
hacer.
ser etiquetado.
Finalmente, podría incluir una muestra aleatoria de elementos junto con los seleccionados mediante muestreo por incertidumbre.
Si no va a implementar algunos de los métodos de muestreo por diversidad del siguiente capítulo, el muestreo aleatorio proporcionará
la forma más básica de muestreo por diversidad y garantizará que cada dato tenga la posibilidad de ser revisado por un experto.
También debe considerar hasta cuatro conjuntos de validación en cada iteración, con datos extraídos de:
Si ajusta los parámetros de su modelo después de cada adición de datos, utilizará un conjunto de validación para evaluar la
precisión. Si ajusta un modelo en el conjunto de prueba, no sabrá si se ha generalizado realmente o si simplemente ha encontrado
un conjunto de parámetros que funciona bien con esos datos de evaluación específicos.
Un conjunto de validación le permitirá ajustar la precisión del modelo sin mirar el conjunto de prueba.
Normalmente, tendrá un conjunto de validación desde el principio. Al igual que con su conjunto de prueba, no necesita actualizarlo
ni reemplazarlo si cree que los elementos sin etiquetar provienen del mismo...
86
Distribución como datos de entrenamiento iniciales. De lo contrario, debe actualizar sus datos de validación antes de la
primera iteración del muestreo de incertidumbre, al igual que con los datos de prueba.
Quizás necesite un segundo conjunto de validación para comprobar el rendimiento de su estrategia de aprendizaje
activo en cada iteración. Tras iniciar las iteraciones de aprendizaje activo, los elementos restantes sin etiquetar dejarán de
ser una muestra aleatoria, por lo que su distribución no será la misma que la de sus conjuntos de prueba y validación
existentes. Este conjunto de datos actúa como referencia para cada iteración. ¿El muestreo por incertidumbre sigue dando
mejores resultados que la selección aleatoria entre los elementos restantes? Dado que este conjunto de datos solo es útil
para una iteración, se pueden añadir estos elementos a los datos de entrenamiento al final de cada iteración: no son
etiquetas humanas que se descarten.
Si desea evaluar la precisión de las etiquetas humanas creadas en cada iteración, debe hacerlo con un tercer conjunto
de datos de validación extraído de la misma distribución que los datos recién muestreados. Los datos recién muestreados
podrían ser inherentemente más fáciles o más difíciles de etiquetar para humanos, por lo que debe evaluar la precisión
humana en esa misma distribución.
Finalmente, también debería considerar un cuarto conjunto de validación, extraído aleatoriamente de los datos de
entrenamiento en cada iteración. Estos datos de validación pueden utilizarse para garantizar que el modelo no sobreajuste
los datos de entrenamiento, algo que muchas bibliotecas de aprendizaje automático hacen por defecto.
Si los datos de validación y de entrenamiento no pertenecen a la misma distribución, será difícil estimarlo. Por lo tanto, es
recomendable contar con un conjunto de validación independiente para comprobar si hay sobreajuste.
La desventaja es el costo del etiquetado humano para hasta cuatro conjuntos de datos de validación. En la industria,
veo que la mayoría de las veces se usa el conjunto de datos de validación incorrecto, permitiendo que un solo conjunto de
validación se use para todos los casos de uso. La razón más común es que se desea incluir tantos elementos etiquetados
como sea posible en los datos de entrenamiento para que el modelo sea más preciso, más rápidamente. Ese también es el
objetivo del aprendizaje activo, por supuesto, pero sin los datos de validación adecuados, no se sabrá qué dirección
estratégica tomar para lograr un mayor...
exactitud.
Los datos de ejemplo de este texto solo tienen dos etiquetas. Los diferentes algoritmos de muestreo por incertidumbre
devolverán las mismas muestras con dos etiquetas. Por lo tanto, la Figura 3.13 muestra un ejemplo de las diferentes áreas
objetivo para los distintos algoritmos cuando hay tres etiquetas. La Figura muestra que el Margen de Confianza y el Cociente
de Confianza muestrean algunos elementos que solo presentan confusión por pares, lo que refleja que los algoritmos solo
se enfocan en las dos etiquetas más probables. Por el contrario, la Entropía maximiza la confusión entre todas las etiquetas,
razón por la cual la mayor concentración se encuentra entre las tres etiquetas.
87
Figura 3.13: Mapa de calor de los cuatro algoritmos principales de muestreo por incertidumbre y las diferentes áreas que
muestrean para un problema de tres etiquetas. En este ejemplo, supongamos que cada punto es un elemento con una etiqueta
diferente y que el calor de cada píxel representa la incertidumbre. Los píxeles más calientes (de mayor incertidumbre) son los más claros
(los píxeles rojos si se visualiza en color). Arriba a la izquierda: Muestreo de menor confianza; Arriba a la derecha: Muestreo por
margen de confianza; Abajo a la izquierda: Muestreo por razón de confianza; y Abajo a la derecha: Muestreo basado en entropía. La
conclusión principal es que el margen de confianza y la razón de confianza muestrean algunos elementos que solo presentan
confusión por pares, y la entropía maximiza la confusión entre todas las etiquetas.
Puedes jugar con una versión interactiva de las Figuras 3.13 y 3.14 aquí:
[Link]/ejemplo_de_muestreo_de_incertidumbre.html
Notarás que la diferencia entre los métodos se vuelve aún más extrema con
más etiquetas. En la Figura 3.14 se muestra un ejemplo que compara dos configuraciones, destacando la
diferencias entre los métodos.
88
Figura 3.14: Comparación que destaca las diferencias entre los métodos. Las cuatro imágenes de la izquierda muestran que gran
parte del margen de incertidumbre para el margen de confianza y el índice de confianza se encuentra entre dos de las
etiquetas, lo cual Entropy ignora por completo porque no es ambiguo para la tercera etiqueta. Las cuatro imágenes de la
derecha muestran que, especialmente en tareas más complejas, los elementos muestreados por diferentes algoritmos
de muestreo de incertidumbre serán muy diferentes.
El código fuente del ejemplo interactivo incluye implementaciones de los algoritmos de muestreo por incertidumbre en Javascript.
Sin embargo, es más probable que le interese consultar los ejemplos de Python del repositorio de código asociado a este capítulo,
en PyTorch y en Numpy.
La Figura 3.15 es un resumen de los cuatro algoritmos de muestreo de incertidumbre que
implementado en este capítulo:
4 ¡Gracias a Adrian Calma por sugerir las imágenes de la izquierda como una excelente manera de resaltar las diferencias!
89
90
El muestreo por incertidumbre existe desde hace mucho tiempo y existe abundante literatura relevante. Para todos los artículos
que se comparten a continuación, busque aquellos que los hayan citado recientemente y que sean a su vez muy citados, para
obtener la investigación más innovadora sobre muestreo por incertidumbre.
Tenga en cuenta que la mayoría de los artículos no normalizan las puntuaciones en un rango [0, 1]. Si va a implementar sus
modelos en situaciones reales, es muy recomendable normalizar los resultados. Aunque esto no afecte la precisión, facilitará las
comprobaciones puntuales y evitará problemas con el procesamiento posterior, especialmente con los métodos avanzados que
aprenderá en capítulos posteriores.
Aron Culotta y Andrew McCallum. 2005. Reducción del esfuerzo de etiquetado para etiquetas estructuradas.
Tareas de predicción. AAAI.
[Link]
Tobias Scheffer, Christian Decomain y Stefan Wrobel. 2001. Markov oculto activo
Modelos para la extracción de información. IDA.
[Link]
No conozco artículos que utilicen el índice de confianza, aunque lo he enseñado en clases de aprendizaje activo. Creo que la
relación entre el índice de confianza y la base de Softmax era nueva cuando la presenté en este artículo, pero actualizaré esta
sección más adelante si la encuentro relevante.
investigación.
Como la relación de confianza es similar al margen de confianza, y ambos analizan la relación entre las dos predicciones
más confiables, la literatura sobre el margen de confianza debería ser mayoritariamente relevante.
Ido Dagan y Sean P. Engelson. 1995. Muestreo basado en comités para la capacitación.
Clasificadores probabilísticos. ICML'95.
[Link]
3.7.5 Lecturas adicionales sobre muestreo de incertidumbre para otros aprendizajes automáticos
91
modelos
Un documento fundacional para el muestreo por incertidumbre en términos más generales es:
David D. Lewis y William A. Gale. 1994. Un algoritmo secuencial para el entrenamiento de texto.
Clasificadores. SIGIR'94.
[Link]
Utiliza un clasificador bayesiano. Si analiza textos muy citados de la década posterior, encontrará que los modelos de variables de
muestreo (SVM) y los modelos lineales son muy comunes. Por las razones mencionadas en este capítulo, no se recomienda intentar
implementar el muestreo por incertidumbre con decisiones.
árboles.
El artículo de Dagan y Engelson mencionado anteriormente sobre muestreo basado en entropía cubre el caso de uso de múltiples
clasificadores (consulta por comité) y, por lo tanto, es un buen punto de partida para modelos de conjunto.
Para trabajos más recientes centrados en modelos neuronales, incluidos los abandonos y los modelos bayesianos
Si buscas una mejor estimación de la incertidumbre, un buen punto de partida es este breve artículo:
Zachary C. Lipton y Aditya Siddhant. 2018. Aprendizaje activo bayesiano profundo para la naturaleza.
Procesamiento del lenguaje: Resultados de un estudio empírico a gran escala.
EMNLP'18 [Link]
En la literatura académica, verás abandonos aleatorios llamados "abandonos de Monte Carlo" y "aprendizaje activo bayesiano".
Simplemente se trata de seleccionar neuronas aleatoriamente para ignorarlas durante la predicción: el término "Monte Carlo" fue una
broma del físico que lo inventó, y "bayesiano" se debe a que, si se observa la variación con desdén, parece una distribución gaussiana;
no es un clasificador bayesiano real. Como ventaja de comprender la terminología, al pasar un solo parámetro adicional a tu modelo
durante la predicción, puedes impresionar a tus amigos diciéndoles que estás usando "abandonos de Monte Carlo para el aprendizaje
activo bayesiano profundo".
3.8 Resumen
Existen cuatro algoritmos comunes para el muestreo por incertidumbre: muestreo de mínima confianza, muestreo por margen de
confianza, muestreo por razón de confianza y muestreo por entropía. Estos pueden ayudarle a comprender los diferentes tipos
de "incógnitas conocidas" en sus modelos.
• Se pueden obtener muestras muy diferentes de cada tipo de algoritmo de muestreo de incertidumbre.
Comprender el por qué le ayudará a decidir cuál es la mejor manera de medir la incertidumbre en sus modelos.
• Los distintos algoritmos de aprendizaje automático supervisado, incluidos modelos neuronales, modelos bayesianos, SVM y
árboles de decisión, generan distintos tipos de puntuaciones.
Comprender cada puntuación le ayudará a interpretar cada una de ellas en busca de incertidumbre.
92
• Los métodos de conjunto y los métodos de abandono permiten crear múltiples predicciones para el mismo elemento. La
incertidumbre se puede calcular analizando la variación en las predicciones de diferentes modelos.
Existe un equilibrio entre obtener más anotaciones en cada ciclo de aprendizaje activo y obtener menos anotaciones, pero con
más ciclos. Comprender estos equilibrios le permitirá seleccionar el número y el tamaño adecuados de cada ciclo al utilizar
el muestreo por incertidumbre.
Existen diferentes tipos de datos de validación que podría necesitar crear para evaluar diferentes partes de su sistema.
Comprender los diferentes tipos de datos de validación le permitirá elegir el más adecuado para optimizar cada
componente.
El marco de pruebas adecuado le ayudará a calcular la precisión de su sistema. Esto le garantizará que mida correctamente
los aumentos de rendimiento y que no sesgue inadvertidamente sus datos.
93
4
Muestreo de diversidad
• Comprender la diversidad en el contexto del aprendizaje automático, para que pueda descubrir sus
• Uso de valores atípicos basados en modelos, muestreo basado en conglomerados, muestreo representativo y
Muestreo para la Diversidad del Mundo Real para aumentar la diversidad de datos seleccionados para el análisis activo
Aprendiendo
• Uso del muestreo de diversidad en diferentes tipos de modelos de aprendizaje automático para que pueda
• Evaluar el éxito del muestreo de diversidad para que pueda evaluar con mayor precisión su
• Decidir la cantidad correcta de elementos que se deben poner frente a los humanos por ciclo de iteración para
En el capítulo anterior, aprendiste a identificar las incertidumbres de tu modelo: lo que tu modelo sabe que
no sabe. En este capítulo, aprenderás a identificar lo que falta en tu modelo: lo que tu modelo no sabe que
no sabe, es decir, las incógnitas desconocidas. Este es un problema complejo, que se complica aún más
porque lo que tu modelo necesita saber suele ser un objetivo cambiante en un mundo en constante cambio.
Así como los humanos aprendemos nuevas palabras, nuevos objetos y nuevos comportamientos a diario
en respuesta a un entorno cambiante, la mayoría de los algoritmos de aprendizaje automático también se
implementan en un entorno cambiante.
Por ejemplo, si utilizamos aprendizaje automático para clasificar o procesar el lenguaje humano,
generalmente esperamos que el aprendizaje automático pueda adaptarse a nuevas palabras y significados,
en lugar de permanecer obsoleto y solo comprender el lenguaje hasta un punto histórico en el tiempo.
Exploraremos un par de casos de uso en reconocimiento de voz y visión artificial en el
94
En las próximas páginas, ilustraremos el valor del Muestreo por Diversidad para diferentes tipos de problemas de
Aprendizaje Automático. En la sección 4.1.1, profundizaremos con un ejemplo de Procesamiento del Lenguaje Natural
basado en los datos utilizados en el Capítulo 2.
Imagina que tu trabajo consiste en crear un asistente de voz que funcione correctamente para el mayor número
posible de usuarios. Los líderes de tu empresa esperan que tus algoritmos de aprendizaje automático tengan un
conocimiento mucho más amplio que el de cualquier humano: un hablante típico de inglés conoce unas 40 000 palabras
del vocabulario de 200 000 palabras del inglés, lo que representa solo el 20 % del idioma, pero tu modelo debería tener
una cobertura cercana al 100 %. Tienes muchas grabaciones sin etiquetar que puedes etiquetar, pero algunas de las
palabras que la gente usa son muy poco frecuentes. Si tomaras muestras aleatorias de las grabaciones, perderías las
palabras poco frecuentes. Por lo tanto, necesitas intentar obtener datos de entrenamiento que cubran la mayor cantidad
posible de palabras diferentes. También podrías querer ver qué palabras se usan con más frecuencia cuando las personas
hablan con sus asistentes de voz y tomar más muestras de ellas.
También le preocupa la diversidad demográfica. Las grabaciones provienen principalmente de un género y de
personas que viven en un número reducido de lugares, lo que significa que los modelos de aprendizaje automático
resultantes probablemente sean más precisos para ese género y solo para algunos acentos. Por lo tanto, desea obtener
una muestra lo más equitativa posible de diferentes grupos demográficos y que el modelo sea igualmente preciso para
todos ellos.
Finalmente, hay muchas personas que no hablan inglés y que desearían un asistente de voz, pero hay muy poca
información en otros idiomas. Por lo tanto, es posible que deba ser abierto y honesto sobre esta limitación a la diversidad.
Obviamente, este es un problema más difícil que simplemente saber cuándo su modelo está confuso, y las
soluciones para el muestreo por diversidad son en sí mismas más diversas algorítmicamente que aquellas
para el muestreo por incertidumbre.
1. Muestreo de valores atípicos basado en modelos. Determinar qué elementos son desconocidos para el modelo en
su estado actual (en comparación con los inciertos del capítulo anterior). En nuestro ejemplo del asistente de voz,
el muestreo de valores atípicos basado en modelos ayudaría a identificar palabras que nuestro asistente de voz...
El asistente no se había encontrado antes.
2. Muestreo por conglomerados. Utilizar métodos estadísticos independientes del modelo para encontrar una selección
diversa de elementos que etiquetar. En nuestro ejemplo, el muestreo por conglomerados ayudaría a identificar
tendencias naturales en los datos, lo que nos permitirá asegurarnos de no pasar por alto ninguna tendencia
inusual pero significativa.
3. Muestreo Representativo. Se busca una muestra de elementos sin etiquetar que se asemejen más a tu dominio
objetivo, en comparación con tus datos de entrenamiento. En nuestro ejemplo, imaginemos que los usuarios
usaran principalmente tu asistente de voz para solicitar canciones. Por lo tanto, el Muestreo Representativo
priorizaría ejemplos de solicitudes de canciones sobre otros tipos de comandos.
95
4. Muestreo para la Diversidad del Mundo Real: garantizar que nuestros datos de entrenamiento incluyan una
gama diversa de entidades del mundo real para reducir el sesgo del mundo real. En nuestro ejemplo, esto
incluiría la selección de grabaciones con la mayor cantidad posible de acentos, edades y géneros.
Como aprendiste en la introducción del libro, el término "Muestreo de Incertidumbre" se usa ampliamente en el
Aprendizaje Activo, pero el "Muestreo de Diversidad" tiene diferentes nombres en distintos campos, y a menudo
solo aborda una parte del problema. Quizás hayas visto que el Muestreo de Diversidad se conoce como "Muestreo
Representativo", "Detección de Valores Atípicos" o "Detección de Anomalías". Con frecuencia, los algoritmos que
usamos para el Muestreo de Diversidad se toman prestados de otros casos de uso. Por ejemplo, la Detección de
Anomalías se utiliza principalmente para tareas como la identificación de nuevos fenómenos en bases de datos
astronómicas o la detección de actividad extraña en la red por motivos de seguridad.
Para no confundir los casos de uso que no son de Aprendizaje Activo y para proporcionar coherencia, en este
texto utilizaremos la frase "Muestreo de Diversidad". El "Muestreo de Diversidad" invoca intencionalmente la
diversidad en el sentido de la demografía de las personas representadas en los datos. Si bien solo el cuarto tipo
de Muestreo de Diversidad que analizamos se dirige explícitamente a la diversidad demográfica, los otros tres
tipos se correlacionarán con la diversidad del mundo real. Es probable que sus datos sin etiquetar estén sesgados
hacia las demografías más privilegiadas: idiomas de las naciones más ricas; imágenes de las economías más
ricas; videos creados por las personas más ricas; etc. Si solo construye modelos con datos brutos muestreados
aleatoriamente, amplificará ese sesgo. Por lo tanto, cualquier método que aumente la diversidad de los elementos
que muestrea para el Aprendizaje Activo probablemente aumentará la diversidad de las personas que pueden
aprovechar los modelos construidos a partir de esos datos.
Incluso si no le preocupan los sesgos demográficos, probablemente quiera superar el sesgo muestral en sus
datos. Por ejemplo, si procesa imágenes de agricultura y resulta que un tipo de cultivo está sobrerrepresentado
en sus datos brutos, probablemente necesite una estrategia de muestreo que reequilibre los datos para representar
diversos tipos de cultivos. También podría haber sesgos más profundos relacionados con las personas. Si tiene
más ejemplos de un tipo de cultivo, ¿es ese cultivo más común en los países más ricos? ¿Tiene más fotografías
porque los tractores en estos países suelen tener cámaras? El sesgo de datos y el sesgo del mundo real tienden
a estar estrechamente relacionados cuando profundizamos.
96
Figura 4.1 Muestreo por Diversidad, que muestra los elementos seleccionados para etiquetar que difieren al
máximo de los elementos de entrenamiento existentes y entre sí. Se desea muestrear elementos que no se
parecen a los elementos actuales de los datos de entrenamiento ni entre sí.
Para el Muestreo por Incertidumbre, solo se buscaba ver lo que se encontraba cerca del límite de decisión actual: un
espacio de características relativamente pequeño y bien definido, como en la Figura 4.1. Para el Muestreo por Diversidad,
queremos explorar el problema mucho más amplio de cada rincón de nuestro espacio de características y expandir el
límite de decisión a nuevas partes de ese espacio. Huelga decir que el conjunto de algoritmos disponibles es más diverso
y, en ocasiones, más complejo que para el Muestreo por Incertidumbre.
En este capítulo, nos basaremos en el ejemplo del capítulo 2 con los mensajes de respuesta ante desastres. Recordemos
que en el capítulo 2 queríamos etiquetar los titulares de noticias como «relacionados con desastres» o «no relacionados
con desastres». En ese capítulo, implementamos un algoritmo muy básico de detección de valores atípicos, que ahora
ampliaremos con algoritmos de muestreo por diversidad más sofisticados.
El código está en la misma biblioteca que usaste para el Capítulo 2: https://
[Link]/rmunro/pytorch_active_learning
El código que usaremos en este capítulo está en estos dos archivos:
diversidad_muestreo.py
aprendizaje_activo.py
En este capítulo abordaremos diversos tipos de estrategias de muestreo de diversidad. Para nuestros datos de ejemplo,
puede imaginar que un modelo de aprendizaje automático podría ser útil para rastrear...
97
desastres a medida que se reportan y para distinguir los informes de testigos presenciales de la información de segunda o tercera
mano. Si desea implementar este tipo de sistema para rastrear desastres en tiempo real, entonces necesita un conjunto lo más
diverso posible de elementos de entrenamiento anteriores. Por ejemplo, podría haber solo uno o dos artículos de noticias sobre
inundaciones reportados en sus datos de entrenamiento anteriores, que podrían haberse pasado por alto fácilmente si solo se
eligieron elementos al azar para
los humanos para etiquetar.
También podemos imaginar que podrían surgir nuevos tipos de desastres, como brotes de enfermedades con un patrón de
infección nunca antes observado. Si la gente habla de estos nuevos desastres de formas nuevas, es importante asegurarse de no
pasarlos por alto y de que estos nuevos elementos reciban etiquetas humanas lo antes posible.
Finalmente, también podría ser conveniente comenzar a incorporar nuevas fuentes de datos. Si algunas de las nuevas fuentes
están en inglés estadounidense o británico, o usan una jerga diferente, o no están en inglés, su modelo no será muy preciso con
esas nuevas fuentes de información. Por lo tanto, debe asegurarse de que su modelo pueda adaptarse a estas nuevas fuentes de
datos y sus diferencias estilísticas lo más rápido posible, al igual que se adapta a los nuevos tipos de información en el...
el texto en sí.
Es importante reducir el sesgo en cada paso. Por ejemplo, si utiliza las predicciones de su modelo para encontrar más ejemplos
de inundaciones, pero su modelo actual solo contiene datos de inundaciones en Australia, es posible que solo obtenga más ejemplos
de inundaciones en Australia para revisión humana y de ninguna otra parte del mundo. Esto significaría que nunca se librará del
sesgo inicial de su modelo. Por eso, la mayoría de los algoritmos de muestreo por diversidad son independientes del modelo que
utilizamos. En este capítulo, solo nuestro primer algoritmo de muestreo por diversidad se basa en el modelo, mientras que los dos
siguientes no están supervisados o se basan en datos independientes del modelo actual.
modelo.
Para algunas de las estrategias de muestreo de este capítulo, necesitaremos nuevas formas de interpretar nuestros modelos.
Como se recomendó en el capítulo anterior, usar una función de activación lineal en la última capa le permitirá interpretar mejor
la relación de su modelo con los datos. Si tiene acceso a los resultados sin procesar de una función de activación lineal, en lugar del
resultado de softmax, podrá distinguir con mayor precisión los valores atípicos reales de los elementos resultantes de información
contradictoria. Una función de activación que también incluya un rango negativo, como Leaky ReLU, es ideal; de lo contrario, podría
terminar con muchas puntuaciones cero sin posibilidad de determinar cuál es la mayor.
parte aislada.
En la siguiente sección, aprenderá a acceder e interpretar las diferentes capas de un modelo de PyTorch. Sin embargo, es
posible que no tenga influencia sobre la arquitectura de la función de activación en la capa final: es posible que softmax sea la
función de activación más precisa para predecir etiquetas precisamente porque puede ignorar los valores absolutos de sus entradas.
En estos casos, aún podría convencer a su equipo de algoritmos para que exponga otras capas para su análisis.
98
Si encuentra resistencia a la idea de reentrenar la última capa, o si existen barreras técnicas, su siguiente mejor opción es usar la penúltima
capa del modelo. En cualquier caso, podría ser interesante comparar métodos de muestreo de valores atípicos en diferentes capas del
modelo para ver cuál funciona mejor con sus datos y la arquitectura del modelo. Este tipo de análisis de modelos es una de las áreas
más interesantes de la investigación en aprendizaje automático actual.
de interpretabilidad, aprendizaje por transferencia y otras tareas y profundizaremos en estos métodos en etapas avanzadas posteriores.
capítulos.
En este capítulo nos limitaremos a formas simples pero efectivas de interpretar su modelo, con los dos
escenarios de la Figura 4.2, interpretando la última capa o la penúltima capa:
99
Figura 4.2: Dos arquitecturas neuronales y cómo interpretarlas para la detección de valores atípicos. En el ejemplo
superior, se pueden usar las puntuaciones del modelo (conocidas como z o logits), que aún conservan sus valores
absolutos antes de normalizarse mediante softmax. En el ejemplo inferior, se han perdido los valores absolutos en la capa
final debido a la función softmax, por lo que, en su lugar, se puede usar la activación en la penúltima capa para determinar si...
100
El segundo método, que utiliza la penúltima capa, funcionará mejor en redes más profundas, donde la penúltima capa
se asemeja más a la última y donde hay menos neuronas en esa capa. Un mayor número de neuronas introducirá una
mayor variabilidad aleatoria, que puede ser más difícil de superar estadísticamente.
Una baja activación significa que este elemento tiene mayor probabilidad de ser un valor atípico. Matemáticamente,
un "valor atípico" podría ser cualquier vector inusual: podría ser atípicamente alto o atípicamente bajo. Sin embargo, al
interpretar las predicciones del modelo para encontrar valores atípicos, solo nos interesan los elementos de "baja
activación", es decir, aquellos sobre los que el modelo tiene muy poca información actualmente.
Se puede observar que la capa intermedia y las salidas son variables (hidden1 y output) que contienen la activación
de cada capa (en este caso, tensores de PyTorch, que serán matrices unidimensionales). Por lo tanto, podemos
simplemente agregar un parámetro para devolver todas las capas y modificar el código según corresponda:
si return_all_layers: devolver
[hidden1, salida, log_softmax] de lo contrario: devolver #B
log_softmax
101
#A esto es lo mismo que la función de retorno anterior, pero extraída en una variable
#B esta es la única línea nueva real, que devuelve todas las capas cuando return_all_layers=True
¡Listo! Verás este código modificado en active_learning.py. Ahora podemos usar cualquier parte de nuestro modelo para
encontrar valores atípicos. Hay otras maneras de consultar las capas ocultas de tu modelo.<sup>5</sup> Prefiero codificar
la opción explícitamente en la función de inferencia, como en la función forward() anterior. En capítulos posteriores,
consultaremos nuestro modelo de muchas maneras, lo que simplifica el desarrollo del código.
Como nota sobre buenas prácticas de codificación, es posible que desees cambiar la línea “return log_softmax” en tu forward()
Función para que también devuelva una matriz: "return [log_softmax]". De esta manera, la función devuelve el mismo tipo de datos (una matriz) sin importar los
parámetros que se le pasen, lo cual es una mejor práctica de desarrollo de software. La desventaja
es que no es compatible con versiones anteriores, por lo que tendrás que cambiar cada fragmento de código que llama a la función. Si estás
Si es un usuario experimentado de PyTorch, es posible que esté acostumbrado a usar una característica donde la función "sabe" cuándo está en
Modo de entrenamiento o modo de evaluación. Esto puede ser útil para algunas estrategias comunes de aprendizaje automático, como el enmascaramiento.
neuronas durante el entrenamiento, pero no durante la predicción. Pero resista la tentación de usar esta función aquí: es un software deficiente.
El desarrollo en este contexto se debe a que las variables globales dificultan la escritura de pruebas unitarias y dificultan la lectura del código de forma aislada.
Use parámetros con nombre como return_all_layers=True/False en el ejemplo anterior: ¡desea extender el código de la forma más transparente posible!
Con la adición del código que nos permite acceder a todas las capas del modelo en la inferencia, ahora podemos usarlo para
determinar valores atípicos. Recuerde que en el Capítulo 2, obtuvo las probabilidades logarítmicas de su modelo con esta
línea:
log_probs = modelo(característica_vec)
Ahora puedes elegir qué capa del modelo quieres usar llamando a la función con esto
línea:
Tienes la capa oculta, los logits (z) y las probabilidades logarítmicas del modelo para tu artículo.
Recordemos del capítulo anterior que nuestros logits (puntuaciones de la última capa) pierden sus valores absolutos al
convertirse en distribuciones de probabilidad mediante softmax. La Figura 4.3 reproduce algunos de estos ejemplos:
5
Una forma alternativa de obtener capas ocultas en PyTorch son los métodos "hook()". Consulta la documentación aquí:
[Link]
102
Figura 4.3: cuatro distribuciones de probabilidad idénticas que se derivan de entradas muy diferentes a través de softmax con base e.
Por lo tanto, nuestras distribuciones de probabilidad no nos dicen la diferencia entre la incertidumbre que se deriva
de la falta de información (como en el ejemplo de la izquierda en la Figura 4.3) y la incertidumbre debido a
información conflictiva pero altamente confiable (como en el ejemplo de la derecha en la Figura 4.3).
Por lo tanto, es mejor utilizar los logits (puntuaciones de la última capa), donde podemos diferenciar los dos tipos
de incertidumbre.
Más allá de la incertidumbre, podemos encontrar valores atípicos que eran ciertos, pero erróneos. Los
elementos no etiquetados más valiosos para etiquetar son aquellos que se predijeron incorrectamente y están
lejos del límite de decisión. Es decir, elementos que el modelo actual predice con seguridad, pero incorrectamente. Bajo
103
La activación en todas las neuronas suele ser una buena señal de que aún no hay suficientes datos de entrenamiento.
con las características que se encuentran en ese artículo.
Ahora que podemos interpretar nuestro modelo, podemos consultarlo para encontrar valores atípicos. Un valor atípico en un modelo
neuronal se define como el elemento con la menor activación en una capa dada. Para nuestra capa final, esto se refiere simplemente
a los logits.
El mayor obstáculo para elegir la métrica correcta para determinar un valor atípico es conocer la distribución de valores de tus
neuronas. En la secundaria te enseñaron que cualquier punto de datos con una desviación mayor a tres desviaciones estándar de
la media es un valor atípico, pero esto solo aplica a distribuciones normales. Desafortunadamente, tus funciones de activación lineal
no crean distribuciones normales: deberían tener una distribución bimodal para modelar con precisión tu tarea.
Si ha investigado modelos anteriormente, también sabrá que algunas neuronas podrían estar modelando ruido o simplemente
valores de paso, y que esto puede variar incluso al entrenar un modelo dos veces con datos idénticos. Además, a menos que tenga
una arquitectura muy simple, tendrá diferentes funciones de activación para las distintas partes de su red, por lo que no serán
directamente comparables.
Así como no podíamos confiar en los valores absolutos de confianza para el Muestreo de Incertidumbre, tampoco podemos
confiar en los valores absolutos de nuestras neuronas para determinar valores atípicos. Sin embargo, así como podíamos confiar
en la confianza del orden de rango para encontrar las predicciones más inciertas, también podemos confiar
El orden de clasificación de activación neuronal para encontrar la menos activada. El orden de clasificación será un método robusto.
método que nos permite evitar determinar la distribución real de la activación en cada neurona.
Aquí hay un ejemplo sencillo de orden de clasificación para determinar el grado de aberración de un elemento. Supongamos
que hemos realizado predicciones para 10 elementos y que estos son los resultados de una neurona, ordenados de mayor a menor:
[2,43, 2,23, 1,74, 1,12, 0,89, 0,44, 0,23, 0,34, 0,36, 0,42]
El ítem con una activación de 0,36 (subrayado) es el noveno más bajo de los 10 ítems, por lo que podemos otorgarle una
puntuación atípica de 9/10 = 0,9. En ambos extremos de la escala, un ítem con una activación de 0,42 tendría una puntuación de
1,0 y un ítem con una activación de 2,43 tendría una puntuación de
0. Por lo tanto, podemos convertir este orden de activación de cada neurona en una escala. La pregunta, entonces, es: ¿qué datos
utilizamos para generar la clasificación?
No podemos utilizar los datos de entrenamiento para nuestras clasificaciones, ya que el modelo se ha entrenado con esos datos y
Algunas neuronas se habrán sobreajustado a esos datos más que otras.
Por lo tanto, debemos usar datos de la misma distribución que nuestros datos de entrenamiento. Es decir, debemos usar un
conjunto de datos de validación extraído de la misma distribución que nuestros datos de entrenamiento. Esto no supone una gran
diferencia desde el punto de vista de la implementación: simplemente calculamos las clasificaciones en el
104
datos de validación y luego usar esa clasificación para obtener el puntaje de valor atípico en nuestros datos no etiquetados, como verá
en el código a continuación.
La principal diferencia es que obtendremos valores de los datos sin etiquetar que se encuentren entre dos valores en las
clasificaciones. Podemos usar una interpolación lineal simple para calcular estos valores.
Por ejemplo, supongamos que nuestros datos de validación constaban de solo 10 elementos y resultaban ser los mismos que los
anteriores:
[2,43, 2,23, 1,74, 1,12, 0,89, 0,44, 0,23, 0,34, (0..35) 0,36, 0,42]
Ahora imaginemos que un elemento sin etiquetar tuviera un valor de 0,35 (ubicado por encima de donde se ubicaría en la clasificación).
Esto se encuentra a medio camino entre el octavo y el noveno elemento más bajo de los 10, por lo que podemos otorgarle una puntuación
atípica de 8,5/10 = 85 %. De igual manera, si el elemento sin etiquetar tiene un valor de 0,355, que es tres cuartas partes de la distancia
entre el octavo y el noveno elemento, entonces la puntuación sería
87,5%.
Tratamos los valores por encima del primer elemento como 1 y los valores por debajo del último elemento como 0, lo que nos da un
[01] rango donde el valor atípico más grande tiene un valor de 100%.
Hay diferentes maneras de combinar las puntuaciones de las neuronas para cada elemento. Es estadísticamente más seguro tomar
la activación promedio de todas las neuronas para cada elemento.
Especialmente si se utiliza la activación de una de las capas ocultas, es posible que algunas neuronas generen valores aleatorios y, por
lo tanto, generen un máximo falsamente alto para lo que, de otro modo, sería un valor atípico. Es más probable que los logits sean
fiables para cada valor, por lo que se podría experimentar con el equivalente de menor confianza para los logits: la puntuación máxima
más baja de todas las neuronas.
Para ver los resultados del muestreo de valores atípicos basado en modelos, ejecute:
Verá que, al igual que en el Capítulo 2, el código elegirá esta estrategia de muestreo y seleccionará 95 elementos sin etiquetar para que
los anote, junto con 5 elementos seleccionados al azar de entre los restantes sin etiquetar. Al igual que en el Capítulo 2, siempre
queremos incluir una pequeña cantidad de elementos aleatorios como medida de seguridad. Si no desea evaluar ningún elemento
aleatorio, puede agregar un valor aleatorio=0.
opción:
> python active_learning.py valores atípicos del modelo=95 residuos restantes aleatorios=0
También puedes experimentar con otros números para ver o anotar más o menos de 95. Ten en cuenta que si te saltaste el Capítulo 2,
primero se te pedirá que anotes una muestra puramente aleatoria hasta que tengas suficientes opciones iniciales de entrenamiento y
prueba. Este tiempo dedicado a anotar será importante para tu evaluación de la precisión y para que comprendas los datos, así que, si
no lo hiciste antes, ¡haz estas anotaciones ahora!
Aquí está el código para calcular la puntuación de valores atípicos del modelo de rango, dividido en cuatro fragmentos. La función
de valores atípicos del modelo toma el modelo actual, los datos sin etiquetar y los datos de validación retenidos, tomados de la misma
105
Primero, creamos las clasificaciones en nuestros datos de validación guardados, que puede ver dentro
diversidad_muestreo.py:
Argumentos de palabras
clave: modelo: modelo actual de aprendizaje automático para esta tarea datos_sin_etiqueta:
datos que aún no tienen una etiqueta datos_de_validación: datos retenidos extraídos de
la misma distribución que los datos de entrenamiento método_de_característica: el método para crear características a partir del texto
sin
procesar número: número de elementos a muestrear límite: muestra solo de esta cantidad de elementos para
un muestreo más rápido (1 = sin límite)
"""
validation_rankings = [] # Matriz 2D, cada neurona por lista ordenada de salida en la validación
datos por neurona
con torch.no_grad():
v=0
para el artículo en datos de validación: textid
= item[0] text = item[1]
vector_de_características = método_de_características(texto)
oculto, logits, log_probs = modelo(vector_de_características, devolver_todas_las_capas=Verdadero) #A
n=0
para la salida en neuron_outputs:
validation_rankings[n][v] = salida #B
n += 1
v += 1
validation
v += 1
106
#A: Obtenemos los resultados de todas las capas del modelo aquí
#B: Almacenamos la puntuación logit para cada elemento de validación y cada neurona
#C: Ordene cada neurona según las puntuaciones de los datos de validación conservados:
En el segundo paso, ordenamos cada elemento de datos no etiquetado según cada neurona:
Argumentos de palabras
clave: modelo: modelo de aprendizaje automático actual para esta tarea datos_sin_etiqueta:
datos que aún no tienen una etiqueta datos_de_validación: datos retenidos extraídos de
la misma distribución que el entrenamiento
datos
feature_method el método para crear características a partir del texto sin procesar number número de
elementos a muestrear limit toma una muestra solo de
esta cantidad de elementos para un muestreo más rápido (1 = sin límite)
"""
valores atípicos = []
si límite == 1 y len(unlabeled_data) > 10000 y [Link]: # estamos extrayendo de *una gran cantidad*
de datos, esto tomará un tiempo print("Obtener clasificaciones para una gran cantidad de datos sin
etiquetar: esto puede tomar un tiempo") de lo contrario:
vector_de_características = método_de_características(texto)
oculto, logits, log_probs = modelo(vector_de_características, devolver_todas_las_capas=Verdadero)
#B
107
n=0
rangos = [] para
la salida en neuron_outputs:
rango = self.get_rank(salida, validación_rankings[n]) [Link](rango) n += 1 #DO
valores atí[Link](item)
La función de clasificación toma el valor de activación de un elemento sin etiquetar para una neurona y las
clasificaciones de esa neurona calculadas con los datos de validación. Puede ver el código para ordenar
cada elemento sin etiquetar según las clasificaciones de validación aquí:
Argumentos de palabras
clave: valor: el valor para el cual queremos devolver el valor clasificado clasificaciones: la matriz ordenada
en la que determinar la clasificación del valor
devuelve la distancia lineal entre los índices donde aparece el valor, en el caso de que no haya una coincidencia
exacta con los valores clasificados
"""
108
devolver(clasificación_absoluta)
Esta es simplemente la implementación del ejemplo de ordenamiento por rangos anterior. No se preocupe demasiado por la interpolación
lineal: el código es un poco opaco al implementarse, pero no captura nada más complejo que lo que vio en los ejemplos.
4.2.2 ¿Qué capas debo utilizar para calcular valores atípicos basados en modelos?
Es posible que desee probar la detección de valores atípicos en diferentes capas de su modelo para ver si producen mejores valores
atípicos para el muestreo.
En general, cuanto más temprana sea la capa, más cerca estarán las neuronas de los datos brutos. Por ejemplo, si se elige la capa
de entrada del modelo, que es el vector de características, esto es casi idéntico al método de detección de valores atípicos que se
implementó en el capítulo 2. Por lo tanto, cualquier capa oculta se ubicará en un punto intermedio entre la representación de los datos
brutos (capas iniciales) y la representación de la tarea predictiva (capas posteriores).
También podría optar por observar varias capas a la vez. Este es uno de los enfoques utilizados en el aprendizaje por transferencia
con modelos preentrenados: el modelo se aplana para crear un único vector que combina todas las capas. Abordaremos esto con más
detalle en un capítulo posterior. También podría usar un modelo aplanado para la detección de valores atípicos, pero podría querer
normalizar por la cantidad de neuronas por capa. Por ejemplo, en nuestro modelo, las 128 neuronas de la capa oculta se convertirían
en la principal contribución a un algoritmo de detección de valores atípicos que también incluyera las dos neuronas de la capa final. Por
lo tanto, podría querer calcular la clasificación de valores atípicos para las capas de forma independiente y luego combinar ambos
resultados.
Como alternativa, podría muestrear de ambos, tomando la mitad de los valores atípicos del modelo de los logits y la otra mitad de
la capa oculta. Tenga en cuenta que las 128 neuronas de la capa oculta probablemente no sean muy informativas si aún solo tiene unos
1000 elementos de entrenamiento. Debe esperar que las capas ocultas sean ruidosas y que algunas neuronas sean completamente
aleatorias hasta que tenga muchos más elementos de entrenamiento etiquetados que neuronas en la capa oculta: idealmente, dos o
más órdenes de magnitud más de elementos de entrenamiento que neuronas en la capa (más de 10 000 elementos etiquetados).
A continuación se presenta un resumen de las principales deficiencias del uso de su modelo para muestrear valores atípicos:
1. El método puede generar valores atípicos que son similares entre sí y, por lo tanto, carecen de
Diversidad dentro de una iteración de aprendizaje activo.
2. Es difícil escapar de algunos sesgos estadísticos que son inherentes a su modelo, por lo que es posible que continuamente pase
por alto algunos tipos de valores atípicos.
3. Aún es necesario tener un modelo en funcionamiento antes de comenzar, y este enfoque mejora con más datos de entrenamiento,
por lo que el muestreo de valores atípicos basado en modelos no es adecuado para un comienzo en frío.
4. Estamos determinando un valor atípico utilizando nuestros datos sin etiquetar. Es fácil muestrear accidentalmente lo contrario de
lo que buscamos: elementos que se parecen menos a los datos que...
109
Estamos intentando adaptarnos a las nuevas etiquetas. Por eso, utilizamos datos de validación para obtener nuestras
clasificaciones, y esta debería ser su práctica para cualquier otro tipo de detección de valores atípicos basada en modelos.
Abordaremos algunas soluciones al primer problema en capítulos posteriores para algoritmos que combinan la detección de valores
atípicos con el aprendizaje por transferencia. El segundo, tercer y cuarto problema son más difíciles de solucionar. Por lo tanto, si
está muestreando valores atípicos basados en modelos, debería considerar usar otros métodos de muestreo de diversidad
simultáneamente, incluyendo los que se pueden usar desde un inicio en frío, como la agrupación en clústeres, que abordaremos a
continuación.
La agrupación en clústeres puede ayudarle a seleccionar una selección diversa de datos desde el principio. La estrategia es bastante
sencilla: en lugar de muestrear aleatoriamente los datos de entrenamiento al principio, también dividiremos nuestros datos en un
gran número de clústeres y muestrearemos uniformemente de cada uno.
La intuición de por qué esto funciona debería ser igualmente sencilla. Probablemente ya haya notado que hay decenas de miles
de artículos de noticias sobre equipos deportivos australianos locales en los titulares. Si muestreamos aleatoriamente los datos para
su revisión, dedicaremos mucho tiempo a anotar manualmente titulares muy similares sobre los resultados de diferentes partidos.
Sin embargo, si agrupamos previamente nuestros datos, es probable que estos titulares acaben juntos en un solo grupo, por lo que
solo necesitaremos anotar algunos ejemplos de este grupo deportivo. Esto ahorrará mucho tiempo, que se puede dedicar a anotar
datos de otros grupos. Estos otros grupos también podrían representar tipos de titulares menos frecuentes, importantes, pero tan
poco comunes que se habrían pasado por alto con un muestreo aleatorio. Por lo tanto, se ahorra tiempo y se aumenta la diversidad.
La agrupación en clústeres es, con diferencia, el método más común para el muestreo por diversidad en el aprendizaje
automático real. Es el segundo método de este capítulo, con fines puramente educativos: necesitará aplicar algunas de las técnicas
aprendidas en la sección anterior sobre interpretación de modelos para aprovechar al máximo la agrupación en clústeres,
especialmente si trabaja con datos de imágenes. En la práctica, pruebe primero este método para el muestreo por diversidad.
110
Figura 4.4: Ejemplo de un algoritmo de agrupamiento aplicado a los datos, dividiéndolos en cinco grupos separados. Para
cada grupo, el elemento más central se denomina centroide y los más alejados de los centros se consideran valores atípicos.
Probablemente ya hayas trabajado con el aprendizaje no supervisado y estés familiarizado con KMeans, el algoritmo de
agrupamiento que utilizaremos. Los enfoques para el agrupamiento no supervisado y el agrupamiento para aprendizaje activo
son exactamente los mismos, pero utilizaremos los clústeres para muestrear elementos y revisarlos para su etiquetado, en lugar
de interpretarlos o utilizarlos en el procesamiento posterior.
El elemento más cercano al centro de un grupo se conoce como centroide. De hecho, algunos algoritmos de agrupamiento miden
explícitamente la distancia desde el elemento centroide, en lugar de desde las propiedades del grupo en su conjunto.
Al igual que calculó los valores atípicos de todo el conjunto de datos en el Capítulo 2, también puede calcularlos mediante la
agrupación en clústeres. Los valores atípicos son el contrapunto estadístico del centroide: son los más alejados del centro de
cualquier clúster.
La Figura 4.4 muestra un ejemplo con 5 conglomerados, con un centroide y un valor atípico para dos de los conglomerados
indicados. La mayoría de los elementos de la Figura 4.4 se encuentran en un conglomerado: el grande del centro. Por lo tanto, si
hubiéramos muestreado aleatoriamente en lugar de por conglomerados, habríamos obtenido...
111
Dedicamos la mayor parte del tiempo a etiquetar elementos similares. Al agrupar primero y muestrear cada grupo, podemos garantizar una
mayor diversidad.
1. Aleatorio: muestrear elementos aleatoriamente de cada conglomerado. Esta estrategia se asemeja al muestreo aleatorio, pero
distribuirá la selección en el espacio de características de forma más uniforme que el muestreo puramente aleatorio.
2. Centroides: el muestreo de los centroides de los conglomerados representa el núcleo de las tendencias significativas
dentro de nuestros datos.
3. Valores atípicos: el muestreo de valores atípicos de nuestro algoritmo de agrupamiento también podría formar parte de tendencias
significativas que se han pasado por alto en los conglomerados. Los valores atípicos dentro del agrupamiento se conocen a veces
Dentro de un mismo conglomerado, es probable que los centroides clasificados sean similares entre sí. Es decir, el elemento más cercano
al centro probablemente sea muy similar al segundo elemento más cercano. Por lo tanto, solo necesitamos muestrear uno de cada
conglomerado.
De igual forma, probablemente solo necesitemos muestrear una pequeña cantidad de valores atípicos por grupo. Es posible que los
valores atípicos sean tendencias significativas que el algoritmo no detecta, pero es más probable que sean realmente raros: palabras raras
repetidas en el caso del texto o imágenes con ruido o corruptas en el caso de la visión artificial. Por lo tanto, normalmente solo se necesita
muestrear una pequeña cantidad de valores atípicos: quizás solo un valor atípico de cada grupo si se tiene un gran número de grupos.
Para simplificar en este texto, asumiremos que estamos muestreando el centroide de cada grupo, el valor atípico más grande de cada
Esto tomará una muestra de 95 elementos sin etiquetar a través de un muestreo basado en conglomerados para que usted pueda anotarlos,
junto con 5 elementos seleccionados al azar de los elementos sin etiquetar restantes.
Recomiendo ejecutar el código con la opción verbose, como se indica arriba, lo que imprimirá 3 elementos aleatorios de cada clúster
a medida que se ejecuta. Esto le dará una idea de la precisión con la que los clústeres capturan diferencias significativas, al examinar si los
elementos del clúster parecen estar semánticamente relacionados entre sí. A su vez, esto le dará una idea de cuántas tendencias
Hasta donde sé, nadie ha estudiado a fondo si un algoritmo de agrupamiento es consistentemente mejor que otro para el aprendizaje activo.
Existen muchos estudios por pares que analizan variaciones en algoritmos de agrupamiento específicos, pero ninguno exhaustivo y general.
Así que, si te interesa este tema, ¡este sería un excelente estudio de investigación!
Algunos algoritmos de agrupamiento solo requieren una sola pasada sobre los datos y otros pueden tener una complejidad de O(N3)
o peor. Mientras que los que requieren mayor intensidad computacional alcanzarán un mayor rendimiento matemático.
112
grupos bien motivados dentro de sus datos, eso no significa necesariamente que la distribución de información entre grupos será
mejor o peor para el muestreo de elementos que necesitan ser etiquetados.
Para el sistema que implementaremos aquí, no queremos que quienes lo usen esperen mucho tiempo para que el algoritmo de
agrupamiento encuentre los mejores clústeres. Por lo tanto, elegiremos un algoritmo de agrupamiento eficiente.
Figura 4.5: Ejemplo de un algoritmo de agrupamiento que utiliza similitud de coseno. Para cada grupo, el centro se define como
un vector desde 0 y la pertenencia a dicho grupo es el ángulo entre el vector que representa el grupo y el vector que representa el
elemento.
Tenga en cuenta que, si bien esto se asemeja menos a los cúmulos "reales" que los cúmulos esferoidales de la Figura 4.4,
esta intuición está limitada por ser un ejemplo 2D. Para datos dispersos de mayor dimensión, que es más probable que
utilice en sus modelos, este tipo de agrupamiento suele ser mejor que el esferoidal de la Figura 4.5.
Vamos a utilizar una variante de KMedias que utiliza la similitud del coseno como medida de distancia, en lugar de la distancia
euclidiana más típica. Un ejemplo se muestra en la Figura 4.5. Tenemos datos de alta dimensión y la distancia euclidiana no funciona
bien en estas dimensiones. Una forma de entender este problema es que hay muchos "puntos" en los datos. Casi todos...
113
Los algoritmos de agrupamiento tienden a producir resultados poco fiables con datos de alta dimensión. En los
ejemplos visuales de este texto, como en las Figuras 4.4, tenemos ejemplos bidimensionales, y solo hay cuatro
esquinas donde los valores atípicos pueden ocultarse del centro de las distribuciones de datos. Si tuviéramos
características en tres dimensiones, obviamente habría ocho esquinas que los valores atípicos podrían ocupar:
piense en las ocho esquinas de un cubo. Al llegar a 300 características, hay 10^90 "esquinas" en sus datos, y
10^90 es más que el número de átomos en el universo observable. Y seguramente tendrá más de 300
características en casi cualquier tarea de PLN, por lo que hay muchos rincones del espacio donde pueden aparecer
valores atípicos. Para datos con más de 10 dimensiones, más del 99 % del espacio está en las esquinas, por lo
que si los datos están distribuidos uniformemente o incluso tienen una distribución gaussiana, estará midiendo un
artefacto de las esquinas más que la distancia y, por lo tanto, puede no ser confiable.
Puedes pensar en la similitud de coseno como si observaras estrellas en el cielo nocturno. Si dibujaras una
línea recta desde ti hacia dos estrellas y midieras el ángulo entre ellas, ese ángulo se usaría para obtener la
similitud de coseno. En el ejemplo del cielo nocturno, solo existen tres dimensiones físicas, pero en tus datos hay
una dimensión para cada característica.
La similitud del coseno no es inmune a los problemas de alta dimensionalidad, pero tiende a funcionar mejor que
la distancia euclidiana, especialmente para datos dispersos, como nuestras codificaciones de texto.
La similitud de coseno mide si dos vectores apuntan en la misma dirección, pero no mide la distancia. Por
ejemplo, podría haber un ángulo pequeño entre dos estrellas en el cielo, pero una de ellas está mucho más lejos.
Como solo se mide el ángulo, se trata a las estrellas como si estuvieran igualmente distantes. Por esta razón, a
veces se denomina "Kmedias esféricas", y todos los puntos de datos se tratan como si estuvieran a la misma
distancia de 0 en una esfera multidimensional. Esto plantea el problema de que los puntos de datos pueden estar
accidentalmente en la misma dirección y, por lo tanto, parecer erróneamente similares. Sin embargo, la probabilidad
de que esto ocurra es baja en datos de alta dimensión, por lo que este es un aspecto donde las altas dimensiones
son útiles. Además, simplifica los cálculos. Podemos calcular el vector de un clúster como la suma de todos los
vectores (características) de los elementos de ese clúster, sin preocuparnos por normalizar por el número de
elementos, ya que el coseno no es sensible a los valores absolutos de la función de distancia.
Dados dos vectores de características del mismo tamaño, v1 y v2, puedes calcular el coseno del ángulo entre esos
vectores como:
La similitud de cosenos es una función nativa de PyTorch, por lo que no profundizaremos demasiado en su
implementación. La notación de doble línea indica la norma del vector. La intuición de los ángulos entre las estrellas
en el cielo nocturno de la sección anterior y el ejemplo de la Figura 4.5 deberían ser suficientes para comprender
lo que sucede. Si le interesa leer...
114
Si desea obtener más información sobre la similitud del coseno o mirar otras funciones de distancia en PyTorch, puede comenzar
con la documentación aquí:
[Link]
También existen muchas implementaciones de algoritmos de agrupamiento en otras bibliotecas populares de aprendizaje
automático. Estos algoritmos podrían funcionar igual de bien que el ejemplo que estás implementando aquí. Ten en cuenta que
existe la creencia generalizada de que los algoritmos de agrupamiento no deben usarse para conjuntos de datos con más de
10 000 elementos. Esto no es cierto en absoluto. Siempre ha habido algoritmos de agrupamiento que pueden funcionar
razonablemente bien con un solo paso de los datos, por lo que no deberías pensar en ninguna limitación según el tamaño del
conjunto de datos, a menos que realmente estés tratando de reducir el tiempo de procesamiento a solo unos segundos. Incluso
para algoritmos de agrupamiento con un uso intensivo de recursos computacionales, a menudo puedes construir los clústeres en
subconjuntos más pequeños (lotes) de los datos para construir clústeres, y los clústeres resultantes serán casi tan buenos como
usar el conjunto de datos completo.
1. Seleccione la cantidad de clústeres que desea trabajando hacia atrás desde la cantidad de anotaciones que necesita.
4. Repita el paso 3 hasta que no haya más elementos para mover o haya alcanzado algunos valores predefinidos.
límite en el número de épocas a través de los datos.
Como se indicó en el primer punto, debe trabajar a la inversa y elegir el número de conglomerados más adecuado según la
cantidad de elementos que desee muestrear de cada conglomerado. Por ejemplo, si desea muestrear 5 elementos por
conglomerado (1 centroide, 1 valor atípico y 3 elegidos al azar) y desea anotar 100 elementos en esta iteración de aprendizaje
activo mediante esta estrategia de muestreo, deberá seleccionar 20 conglomerados, ya que 20 x 5 = 100.
Para completar este texto, se incluye el código completo para el agrupamiento de Kmedias con coseno.
Se implementó la similitud. Puedes verla aquí, en el mismo repositorio de código, en este archivo: [Link]
pytorch_active_learning/blob/master/pytorch_clusters.py
Esta estrategia de KMeans es la misma independientemente de la medida de la distancia.
115
La función KMedias solo acepta dos argumentos: los datos, que pueden estar etiquetados o no (en cuyo
caso se ignoran las etiquetas), y el número de conglomerados deseados. Puede consultar la estrategia KMedias
en diversity_sampling.py:
Argumentos de palabras
clave: datos: datos que se agruparán
num_clusters: la cantidad de clústeres que se crearán max_epochs: cantidad
máxima de épocas para crear clústeres límite: muestrear solo esta cantidad de elementos para
una agrupación más rápida (1 = sin límite)
"""
si el límite > 0:
shuffle(datos) datos
= datos[:límite]
grupos_de_coseno = GruposDeCoseno(num_grupos)
grupos de coseno.add_random_training_items(datos) #A
Como se señaló anteriormente, puedes sustituir el coseno por cualquier otra medida de distancia/similitud y
podría funcionar igualmente bien.
Una táctica que podría intentar para acelerar el proceso es crear los clústeres en un subconjunto de datos y
luego asignar el resto de los datos a sus clústeres. Esto ofrece lo mejor de ambos mundos: crear clústeres
rápidamente y muestrear todo el conjunto de datos. También podría
116
Quiero experimentar con diferentes cantidades de clústeres y una cantidad diferente de selecciones aleatorias por clúster.
La agrupación en clústeres funciona mejor con texto que con imágenes. Si tienes experiencia en visión artificial, ya lo sabes. Al
observar los clústeres en los ejemplos de este capítulo, pudiste ver las relaciones semánticas entre los elementos de cada clúster.
Por ejemplo, todos los clústeres contendrán titulares de noticias con temas similares. Sin embargo, esto no ocurriría si se aplicara
la similitud de coseno a las imágenes, ya que los píxeles individuales se abstraen más del contenido de las imágenes que las
secuencias de caracteres del contenido del texto. Por ejemplo, si aplicaras la similitud de coseno a las imágenes, podrías obtener
un clúster de imágenes de paisajes, pero ese clúster también podría incluir erróneamente la imagen de un coche verde.
El método más común para reducir la dimensionalidad de los datos es el PCA (Análisis de Componentes Principales). El PCA
es un método para reducir la dimensionalidad de un conjunto de datos mediante la combinación de características altamente
correlacionadas. Si lleva algún tiempo trabajando en aprendizaje automático, probablemente haya considerado el PCA como su
primera opción para reducir la dimensionalidad de los datos.
El PCA era muy común en las primeras etapas del aprendizaje automático no neuronal, en algoritmos cuya calidad se degradaba
con mayor frecuencia al existir un gran número de dimensiones (características) con correlaciones entre ellas. Las incrustaciones
basadas en modelos neuronales son más comunes en el ámbito académico actual, pero el PCA sigue siendo más común en la
industria.
La implementación de PCA queda fuera del alcance de este libro. Es una buena técnica para el aprendizaje automático, por
lo que recomiendo leer más sobre ella para contar con varias herramientas para la reducción de dimensionalidad. PCA no es una
función nativa de PyTorch, aunque no me sorprendería que se añadiera pronto, pero la operación principal de PCA es la
Descomposición en Valores Singulares (SVD), que se explica aquí:
117
4. Ahora, usando el elemento oculto posterior de su nuevo centro como su nuevo conjunto de características, continúe con el
proceso de reasignación de elementos al mejor clúster.
El diseño del modelo es importante aquí. Para datos de texto, la arquitectura de la sección anterior de este capítulo
probablemente sea suficiente: una sola capa oculta con 128 neuronas. Para datos de imagen, probablemente
necesite más capas y usar una Red Neuronal Convolucional (CNN) con convoluciones y agrupamiento, lo que
ayudará a generalizar a partir de ubicaciones de píxeles específicas. En cualquier caso, utilice su intuición,
obtenida al construir modelos, para la cantidad de datos disponibles y el número de clústeres (etiquetas) elegido.
Tenga en cuenta que si su vector tiene valores negativos, como ocurriría si estuviera agrupando en una capa
oculta con LeakyReLU como función de activación, la Similitud de Coseno devolverá valores en un rango [1,1] en
lugar de [0,1]. Por coherencia, conviene normalizar sumando 1 y dividiendo a la mitad el resultado de la Similitud
de Coseno para obtener un rango [0,1].
Para un vector de características más denso, ya sea de un modelo o de PCA, también podría considerar una
función de distancia distinta de Coseno. La Similitud de Coseno es más adecuada para vectores grandes y
dispersos, como nuestras representaciones de palabras. Quizás no desee tratar las activaciones de [0.1, 0.1] de
la misma manera que las de [10.1,10.1], como sí hace la Similitud de Coseno. PyTorch también tiene una función
de distancia integrada para la distancia por pares, que podría ser más apropiada en ese caso.
Puede ver esta función comentada donde la función coseno ahora existe en el
Archivo pytorch_clusters.py. Puedes experimentar con diferentes funciones de distancia aquí para ver si obtienes
clústeres más significativos. Como se indica en el código, podrías necesitar normalizar los vectores de clúster
según el número de elementos en ese clúster; de lo contrario, deberías poder sustituir otras funciones de distancia
sin necesidad de modificar el código.
Como punto final sobre la agrupación avanzada en clústeres para visión artificial, si se agrupa para muestreo
por diversidad, podría no importar si los clústeres no son semánticamente significativos. Desde el punto de vista
del muestreo, se podría obtener una buena diversidad de imágenes de todos los clústeres, incluso si estos no son
semánticamente consistentes. Es decir, se podrían ignorar las incrustaciones y el análisis de componentes
principales (PCA) y agrupar directamente según los valores de píxel. Esto podría tener el mismo éxito. La similitud
de cosenos creará vectores idénticos para RGB = (50, 100, 100) y RGB = (100, 200, 200), por lo que las versiones
más claras y saturadas de la misma imagen podrían ser idénticas, pero esto podría no importar. Sin embargo,
probablemente se desee normalizar los datos para evitar que las imágenes con mucha luz y valores RGB altos
dominen los clústeres. No conozco ninguna investigación exhaustiva sobre si la agrupación a nivel de píxel para
imágenes es siempre peor que usar una dimensión reducida al muestrear para aprendizaje activo. ¡Este sería
entonces un tema de investigación valioso para cualquiera que esté interesado en investigarlo!
Además de otras variaciones de KMeans, existen otros algoritmos de agrupamiento y algoritmos de aprendizaje
automático no supervisado relacionados con los que quizás quieras experimentar:
1. Agrupamiento basado en proximidad, como KVecinos Más Cercanos (KNN) y agrupamiento espectral.
2. Modelos de mezcla gaussiana (GMM).
118
3. Modelado de temas.
No es el objetivo de este libro abordar todos los algoritmos de agrupamiento más populares: existen muchos libros útiles
dedicados exclusivamente a este tema. Sin embargo, analizaremos a fondo tres algoritmos de uso frecuente: KVecinos Más
Próximos, Modelo de Mezcla Gaussiana y Modelado de Tópicos.
Probablemente ya esté familiarizado con los algoritmos de KVecinos Más Cercanos (KNN). KNN forma clústeres basándose
en la proximidad entre un pequeño número de elementos de ese clúster (K elementos), en lugar de ese clúster en su conjunto.
Una ventaja y una limitación de KMedias es que todos los clústeres tienen un centro significativo, la propia "media". Puede
imaginar clústeres en forma de "L" u otros patrones sin un centro significativo. Por lo tanto, KNN permite capturar este tipo de
clústeres. Lo mismo ocurre con el Agrupamiento Espectral, un método de agrupamiento basado en vectores que también puede
descubrir formas de clústeres más complejas al representar el espacio de características en
nuevos vectores.
Sin embargo, no hay evidencia clara de que la agrupación basada en proximidad sea consistentemente mejor que la
agrupación KMeans para el aprendizaje activo. Es posible que desee capturar por separado los puntos de datos en dos extremos
diferentes en una "L", porque son suficientemente diferentes incluso si existe un vínculo ininterrumpido de elementos entre ellos.
Además, sus algoritmos KMeans descubrirán diferentes tipos de formas en sus características si construye sus agrupaciones
en capas ocultas o vectores derivados de PCA, como aprendió anteriormente. Su algoritmo KMeans solo descubrirá agrupaciones
de esferoides simples en los vectores de los que aprende, pero si esos vectores se abstraen de un mayor número de
características, entonces sus agrupaciones serían más complejas si se mapean de nuevo en esas características. De hecho,
aplicar KMeans a un vector de una capa oculta es similar a cómo la agrupación espectral es capaz de descubrir diferentes
formas de agrupaciones. Por lo tanto, no existe una ventaja clara de la agrupación espectral para el aprendizaje activo o, al
menos, nadie ha investigado esto en profundidad hasta el punto de que un método sea claramente mejor en la mayoría de los
casos de uso.
Un Modelo de Mezcla Gaussiana (GMM) permite que un elemento pertenezca a varios clústeres a la vez. Esto puede
generar clústeres con una mejor motivación matemática, en comparación con el modelo KMedias, que intenta forzar un límite
de clúster donde dos clústeres se superponen de forma natural. Es posible que vea que los GMM y algoritmos relacionados se
denominan agrupamiento "suave" frente a "duro" o agrupamiento "difuso".
Al igual que con la agrupación basada en proximidad, no existe evidencia sólida de que los GMM produzcan mejores muestras
para el aprendizaje activo que los KMeans. Al principio de mi carrera, trabajé simultáneamente con modelos de mezcla y
aprendizaje activo, pero nunca los combiné: nunca sentí que otras técnicas de aprendizaje activo tuvieran deficiencias que
requirieran GMM o algoritmos similares para superarlas. Por experiencia práctica, puedo afirmar que nunca lo consideré
necesario, pero eso también significa que tampoco he probado los GMM para el aprendizaje activo en profundidad: ¡es otra área
de investigación potencialmente emocionante!
El modelado de temas se utiliza casi exclusivamente para texto. Los modelos de temas descubren explícitamente conjuntos
de palabras relacionadas en un "tema" y su distribución en los documentos. El algoritmo más popular es la asignación latente de
Dirichlet (LDA), y es posible que en la literatura especializada se haga referencia al modelado de temas simplemente como LDA.
A diferencia de los GMM, he visto que el modelado de temas se utiliza mucho en la práctica y es especialmente común en las
herramientas de monitorización de redes sociales. Las palabras relacionadas en un...
119
Los temas individuales suelen estar semánticamente relacionados, por lo que un usuario experto puede generar
temas y seleccionar los más interesantes para un análisis más profundo. Esta es una forma de "supervisión ligera",
una importante estrategia de intervención humana que abordaremos en capítulos más avanzados. Dentro del
Muestreo por Diversidad, se pueden generar "grupos" como temas y muestrear elementos de cada uno, como con
cualquier otro mecanismo de agrupamiento.
Cualquier algoritmo de agrupamiento, aunque no sea mejor que KMedias para modelar los datos, será
diferente. Esto aumentará la diversidad. Por lo tanto, si utiliza varios algoritmos de agrupamiento para generar
muestras para el aprendizaje activo, es menos probable que se produzcan sesgos derivados de las suposiciones
matemáticas de cualquier método de agrupamiento. Si ya utiliza algoritmos de agrupamiento en sus datos por
alguna otra razón, ¡pruébelos como estrategia de muestreo!
120
Figura 4.6: Ejemplo de muestreo representativo que muestra que los datos de entrenamiento actuales provienen de una
distribución de datos diferente a la del dominio de la aplicación. El muestreo representativo maximiza el muestreo de los
elementos que más se asemejan al dominio de la aplicación en relación con los datos de entrenamiento actuales.
Sería comprensible que asumieras que el Muestreo Representativo es el mejor método para el Aprendizaje Activo. Si podemos
muestrear todo de nuestros datos sin etiquetar que parezca más...
Al igual que los datos en los que queremos implementar nuestros modelos, ¿no es ese el mejor enfoque para ser precisos en los
dominios en los que queremos implementar nuestros modelos?
Lamentablemente no. El muestreo representativo es una de las herramientas de aprendizaje activo más potentes.
estrategias pero también una de las más propensas a errores y sobreajustes.
En primer lugar, en la mayoría de los escenarios reales, los datos sin etiquetar no provienen del mismo dominio donde se
implementará el modelo. Si se implementa un modelo para identificar titulares de noticias futuros (como en nuestro ejemplo) o para
ayudar a los vehículos autónomos a navegar por la carretera en algún momento futuro, no se cuenta con una muestra de datos de
su dominio objetivo, sino con una muestra de un momento intermedio anterior. Esto se aplica a la mayoría de los escenarios reales:
se está implementando el modelo en el futuro.
Por lo tanto, si ajusta sus datos de entrenamiento demasiado a los datos sin etiquetar, su modelo quedará anclado en el pasado
al implementarlo con datos futuros. En algunos escenarios de implementación, como un modelo centralizado que procesa titulares
de noticias, podría adaptarse a nuevos datos casi en tiempo real, por lo que no será un gran problema. En otros casos, como los
vehículos autónomos, la adaptación...
121
El modelo casi en tiempo real e implementarlo en todos los vehículos será imposible. En cualquier caso, se necesita una mayor
diversidad de elementos de entrenamiento que solo aquellos que más se asemejen a los datos actuales sin etiquetar.
El Muestreo Representativo es también la estrategia de Aprendizaje Activo más propensa al ruido de este libro. Si cuenta con
datos de entrenamiento limpios, a menudo será el ruido en sus datos sin etiquetar el que más difiere de dichos datos. En tareas de
PNL, esto incluiría texto corrupto; texto de un idioma que no forma parte de su dominio objetivo; texto proveniente de una lista de
nombres de lugares que no existían en sus datos de entrenamiento, etc. En Visión Artificial, esto incluiría archivos de imagen
corruptos; fotos tomadas accidentalmente (como una cámara disparada mientras apunta al suelo); y artefactos que surgen del uso
de diferentes cámaras, resoluciones o técnicas de compresión. Es probable que ninguno de estos tipos de ruido sea realmente
interesante para su tarea, por lo que no producirán una gama interesante o diversa de muestras para etiquetar.
Finalmente, el Muestreo Representativo puede ser más perjudicial que beneficioso si se aplica solo en ciclos posteriores del
proceso de Aprendizaje Activo, especialmente si no existe un problema de adaptación del dominio. Por ejemplo, imagine que utilizó
el Muestreo por Incertidumbre en algunas iteraciones de Aprendizaje Activo y luego aplicó el Muestreo Representativo en iteraciones
posteriores. Como ha sobremuestreado los elementos cerca del límite de decisión en las primeras iteraciones, el Muestreo
Representativo sobremuestreará los elementos alejados del límite de decisión en iteraciones posteriores. Implementarlo de esta
manera será peor que el muestreo aleatorio.
Por estas razones, el Muestreo Representativo rara vez se utiliza de forma aislada, y se usa con mayor frecuencia en
algoritmos o procesos que combinan el Muestreo Representativo con el Muestreo por Incertidumbre. Por ejemplo, podría usar el
Muestreo Representativo solo para elementos que también se encuentran cerca del límite de decisión. En algunos artículos
académicos fundamentales sobre Muestreo Representativo, podría ver que esto es exactamente lo que se entiende por "Muestreo
Representativo": una combinación de diversidad e incertidumbre. Volveremos a las combinaciones de enfoques en los capítulos
avanzados, donde aprovecharemos al máximo todas las técnicas de muestreo que ha estado aprendiendo aquí. En este capítulo,
presentaremos el Muestreo Representativo de forma aislada para que pueda comprender los principios básicos, antes de aprender
a combinarlo.
Con estas advertencias sobre las limitaciones, el Muestreo de Representación puede ser muy útil para la adaptación de
dominios. En la investigación académica, se prioriza la adaptación de dominios sin etiquetas adicionales, donde a menudo se
denomina "Discrepancia" en lugar de "Representación". En la industria, aún no he encontrado la Adaptación de Dominios sin
intervención humana adicional. Por lo tanto, debería convertirse en una herramienta importante.
122
Aquí, aumentaremos un poco la sofisticación del Capítulo 2 y utilizaremos la similitud del coseno de
segundo clúster que contenga los datos sin etiquetar. 3. Muestree los elementos que
Esto tomará una muestra de 95 artículos sin etiquetar utilizando un muestreo representativo para que usted pueda anotarlos, junto con 5
La función de muestreo representativo toma los datos de entrenamiento y los datos sin etiquetar como argumentos para encontrar los
elementos de datos sin etiquetar más representativos de estos últimos en relación con los datos de entrenamiento. Utilizando el código de
clúster anterior, podemos ver que esto solo requiere unas pocas líneas de código:
"""
si límite > 0:
shuffle(datos_de_entrenamiento)
datos_de_entrenamiento = datos_de_entrenamiento[:límite]
shuffle(datos_sin_etiquetar)
datos_sin_etiquetar = datos_sin_etiquetar[:límite]
puntuación_de_entrenamiento = clúster_de_entrenamiento.similaridad_de_coseno(ítem)
puntuación_sin_etiqueta = clúster_sin_etiqueta.similaridad_de_coseno(ítem)
123
Al igual que con el código de agrupamiento, si se aplica esta estrategia de muestreo a imágenes, se recomienda usar un
vector de menor dimensión que abstraiga la imagen de los píxeles individuales. No es necesario cambiar nada en el código
si se utiliza una dimensionalidad de características diferente: simplemente se introduce ese nuevo vector de datos
directamente en el algoritmo.
Esto ayudará a evitar que el Muestreo Representativo solo muestree elementos que son muy
Similares entre sí.
Esto tomará una muestra de 95 elementos sin etiquetar mediante un muestreo representativo adaptativo para que usted
pueda anotarlos, junto con 5 elementos seleccionados al azar de los elementos sin etiquetar restantes.
El nuevo código aquí es aún más corto, toma los mismos argumentos y llama al
Función de muestreo representativo una vez para cada nuevo artículo:
Argumentos de palabras
clave: training_data: datos con una etiqueta, en los que se entrena el modelo actual unlabeled_data: datos
que aún no tienen una etiqueta number: cantidad de elementos a muestrear limit:
toma una muestra solo de esta cantidad de elementos
para un muestreo más rápido (1 = sin límite)
Variante adaptativa de get_representative_samples() donde los datos de entrenamiento se actualizan después de cada
selección individual para aumentar la diversidad de muestras
"""
muestras = []
124
[Link](elemento_representativo)
datos_sin_etiquetar.remove(elemento_representativo)
devolver muestras
Con nuestros componentes básicos de conglomerados y muestreo representativo, basta con una pequeña extensión de
código para comenzar a implementar estrategias de aprendizaje activo más sofisticadas. Abordaremos estas técnicas
avanzadas en detalle en el próximo capítulo. El código será breve en la mayoría de los casos, pero es importante conocer
los componentes básicos.
Tenga en cuenta que esta función tardará un tiempo en ejecutarse. Necesita reevaluar la puntuación representativa de
cada punto de datos sin etiquetar que esté muestreando. Por lo tanto, si la ejecuta en un servidor o computadora personal
más pequeño, le recomendamos reducir el número de elementos a muestrear o el límite de elementos a considerar para
poder ver los resultados de esta estrategia de muestreo sin tener que esperar mucho tiempo.
Las estrategias para identificar y reducir el sesgo de los modelos de aprendizaje automático son complejas y podrían llenar
un libro por sí solas. En este texto, nos centraremos en el problema de la anotación de datos: garantizar que los datos de
entrenamiento representen la diversidad del mundo real de la forma más justa posible. Como se lee en la introducción de
este capítulo, en algunos casos esperamos más del aprendizaje automático que de las personas. Por ejemplo, un hablante
típico de inglés conoce unas 40 000 palabras del vocabulario de 200 000 palabras del inglés, lo que representa solo el 20 %
del idioma. Sin embargo, si se implementa un algoritmo de aprendizaje automático que comprende inglés, probablemente
se desee que dicho algoritmo comprenda una diversidad más completa del inglés que la mayoría de las personas: no solo
40 000 palabras.
Por lo tanto, esta sección cubre las mejores prácticas actuales para garantizar que los modelos sean justos desde un
punto de vista de aprendizaje activo, sabiendo que medir y reducir el sesgo del mundo real es un campo complicado que
aún tiene un largo camino por recorrer.
Los datos demográficos para la diversidad en el mundo real pueden ser cualquier división del mundo real que sea
significativa para sus datos. A continuación, se presenta una lista (no exhaustiva) de los tipos de datos demográficos que
podrían ser relevantes para los mensajes de respuesta ante desastres:
1. Idioma: ¿Podemos identificar con mayor precisión el contenido relacionado con desastres escrito en ciertos idiomas?
¿Idiomas? Hay un sesgo evidente, ya que los datos son principalmente en inglés.
2. Geografía: ¿Podemos identificar con mayor precisión el contenido relacionado con desastres de/sobre algunos
países? Existe una alta probabilidad de sesgo, ya que algunos países tendrán más medios informando sobre sus
desastres y también habrá sesgos demográficos a nivel nacional.
125
3. Género: ¿Podemos identificar con mayor precisión el contenido relacionado con desastres de/sobre personas de un
género? Es posible que el contenido sea escrito por más hombres que por personas no hombres, lo que podría
reflejarse en el estilo de escritura.
4. Socioeconomía: ¿Podemos identificar con mayor precisión el contenido relacionado con desastres de/sobre personas
con diferentes ingresos? Suele haber más información sobre países ricos, por lo que esto podría generar sesgos en
los datos y modelos.
5. Raza y etnia: ¿Podemos identificar con mayor precisión el contenido relacionado con desastres de/sobre personas de
ciertas razas o etnias? Por ejemplo, los artículos de prensa suelen presentar el mismo tipo de evento, como un tiroteo
perpetrado por un hombre solitario, como parte de una guerra antiterrorista para algunas etnias (y, por lo tanto,
«relacionado con un desastre»), pero como un delito individual para otras etnias (y, por lo tanto, «no relacionado con
un desastre»).
6. Fecha y hora: ¿Podemos identificar con mayor precisión el contenido relacionado con desastres en determinados
momentos del día, días de la semana o meses del año? Se publican menos artículos los fines de semana y tienden a
estar más enfocados en el interés humano.
Estos son solo algunos datos demográficos, y los sesgos también pueden variar al combinarse (lo que se conoce como sesgo
interseccional). Por ejemplo, el sesgo hacia personas de cierto género puede ser positivo, negativo o incluso totalmente inverso
para algunas razas y etnias.
Dependiendo de dónde implemente su modelo, podría tener que cumplir con las leyes locales. Por ejemplo, en California,
las leyes laborales previenen el sesgo en varios grupos demográficos, incluyendo muchos de los mencionados anteriormente,
además de la edad, el estatus migratorio, la orientación sexual y la religión. Si desarrolla aplicaciones de aprendizaje automático
para empleo o recursos humanos, podría necesitar realizar pruebas para detectar sesgos en cada grupo demográfico protegido
en los lugares donde se utilizará la aplicación.
En la Figura 4.7 se resumen tres problemas comunes de imparcialidad de los datos. Cada uno de los tres datos demográficos
de la Figura 4.7 presenta problemas comunes que se encontrarán al crear datos de entrenamiento:
1. Un grupo demográfico que está sobrerrepresentado en sus datos de entrenamiento, pero no del mismo grupo.
distribución como sus datos de entrenamiento (X).
2. Un grupo demográfico que proviene de una distribución similar a la distribución general de datos, pero es
aún no representado de forma equilibrada en los datos de entrenamiento (O).
3. Un grupo demográfico que está subrepresentado en los datos de entrenamiento de tal manera que
El modelo resultante podría ser peor que si se utilizara un muestreo aleatorio (Z).
126
Figura 4.7: Un ejemplo de los problemas que el Muestreo por Diversidad intenta abordar. Aquí, tenemos elementos
asignados a tres grupos demográficos reales que llamamos X, O y Z.
El X demográfico se ve bastante bien. Todos los ejemplos que tenemos hasta ahora se encuentran dentro de los
datos de entrenamiento actuales. X no tiene la misma distribución que los datos de entrenamiento en su conjunto.
Esto no suele ser un problema con los modelos neuronales, pero podría serlo con modelos más simples como
Naive Bayes. X es típico de un grupo demográfico privilegiado con un sesgo positivo, como los datos en inglés
estándar dentro de conjuntos de datos multilingües.
El O demográfico se encuentra parcialmente en los datos de entrenamiento actuales y parcialmente fuera de
ellos. El O se distribuye de forma bastante uniforme en todo el rango de características. Por lo tanto, si podemos
recopilar datos de entrenamiento representativos de todo el espacio de características, nos preocupamos menos
por el O. El O es típico de un grupo demográfico con sesgo mínimo (positivo o negativo), como los datos
demográficos basados en el tiempo, donde cada elemento se recopiló cuidadosamente a lo largo de un período.
Por el contrario, el grupo demográfico Z se agrupa fuera de los datos de entrenamiento actuales. Peor aún, existe
un punto de datos Z dentro de los datos de entrenamiento actuales que parece ser un valor atípico para Z.
Por lo tanto, no se trata solo de que el modelo no tenga información sobre Z, sino que podría estar modelando Z
incorrectamente. Z es típico de un grupo demográfico subrepresentado, como una etnia subrepresentada que no
aparece en el conjunto de datos, excepto cuando esa persona comparte características con un grupo demográfico
más privilegiado.
Los algoritmos de aprendizaje automático en sí mismos no son propensos a muchos sesgos inherentes que no estén ya
presentes en los datos, aunque son posibles. La mayoría de las veces, cuando un algoritmo muestra...
127
El sesgo refleja o amplifica un sesgo proveniente de los datos de entrenamiento. Por lo tanto, si usted es responsable de los datos de
entrenamiento en su organización, la imparcialidad del modelo es su responsabilidad más importante que la de cualquier otra persona.
Tenga en cuenta que muchos investigadores en ética de la IA utilizan una definición de "algoritmo" más amplia que la de la
mayoría de los informáticos. Incluyen el tratamiento de los datos para los modelos de aprendizaje automático y la interpretación de los
resultados como parte del algoritmo. Esta definición no es intrínsecamente mejor ni peor, simplemente diferente. Por lo tanto, tenga en
cuenta a qué partes del proceso de aprendizaje automático se refiere al leer la literatura sobre ética de la IA.
Sin un conjunto de datos de referencia de elementos no etiquetados de cada grupo demográfico, debe aplicar
Estrategias de aprendizaje activo que has aplicado antes, ahora de forma estratificada en todos tus datos:
1. Aplique la mínima confianza para cada grupo demográfico, seleccionando una cantidad igual de elementos en cada grupo
demográfico donde ese grupo demográfico fue la predicción más confiable.
2. Aplique el muestreo de margen de confianza para cada grupo demográfico, seleccionando una cantidad igual de elementos en
cada grupo demográfico donde ese grupo demográfico fue el más confiado o el segundo más confiado (recuerde que el
margen de confianza analiza explícitamente a los dos primeros con mayor confianza).
3. Aplique la detección de valores atípicos basada en modelos para cada grupo demográfico.
Básicamente, de la misma forma que queríamos el mejor conjunto de datos posible de sus datos no etiquetados en su totalidad, ahora
desea hacer esto para cada grupo demográfico, teniendo cuidado de estratificar el muestreo entre esos grupos demográficos.
No hay un código separado para esto en este capítulo: debe poder dividir los datos según los datos demográficos que le interesan
y aplicar las estrategias de muestreo solo a los datos de cada grupo demográfico.
Existe una diferencia sutil pero importante entre los datos representativos de un grupo demográfico y que este esté bien representado
en los datos. Esta distinción es especialmente importante según el tipo de modelo que se utilice, por lo que las analizaremos a
continuación:
1. Datos Demográficos Representativos: Sus datos son representativos de un grupo demográfico si provienen de la misma
distribución que dicho grupo. En términos estadísticos, sus datos etiquetados son representativos si son independientes e
idénticamente distribuidos (IDD) a partir de un conjunto de datos que representa fielmente a ese grupo demográfico.
2. Un grupo demográfico bien representado: un grupo demográfico está bien representado si hay suficientes datos que representan
a ese grupo demográfico para que su modelo funcione de manera justa, pero no requiere que los datos sean IDD.
128
Si sabe que sus datos sin etiquetar representan fielmente al grupo demográfico que le interesa y están
codificados con precisión para dicho grupo, puede crear un conjunto de datos de evaluación adicional que
extraiga datos aleatorios de cada grupo. Si sus grupos demográficos no son igualmente frecuentes, esto
será más rápido que crear datos de evaluación mediante un muestreo aleatorio de todo el conjunto de
datos. Sin embargo, solo puede usar este conjunto de datos para evaluar su precisión por grupo
demográfico (consulte una sección posterior de este capítulo para obtener más información).
Recuerde que sus datos sin etiquetar podrían no ser representativos de cada grupo demográfico. Por
ejemplo, los datos de este capítulo provienen de un medio de comunicación australiano, por lo que se
centran en noticias de Australia y de países geográfica o políticamente cercanos a Australia. Por ejemplo,
los artículos sobre Uganda no serán representativos de los acontecimientos reales en Uganda: estarán
sesgados hacia eventos más importantes para Australia. En este caso, no es posible obtener datos
"representativos" para Uganda. En su lugar, debería utilizar la agrupación para obtener un conjunto de
artículos sobre Uganda lo más diverso posible, de modo que, como mínimo, los artículos sobre Uganda
estén bien representados.
Si utiliza un modelo neuronal, podría funcionar correctamente si tiene datos bien representados que no
son representativos. Con suficientes datos, un modelo neuronal puede ser preciso para todos los elementos
de un grupo demográfico determinado, incluso si se entrena con datos desequilibrados dentro de ese
grupo. Por ejemplo, las noticias de Uganda podrían estar demasiado centradas en artículos deportivos. Si
dispone de suficientes ejemplos de otros tipos de noticias de Uganda para que su modelo sea preciso en
esos temas, no importará que las noticias deportivas estén sobrerrepresentadas: su modelo será preciso
para todos los tipos de noticias de Uganda.
Sin embargo, si se utilizan modelos generativos, especialmente los más simples como Naïve Bayes,
el modelo intenta explícitamente modelar la tarea de clasificación suponiendo que los datos son
representativos. En estos casos, se deberá esforzarse más para garantizar la representatividad de los
datos o para intentar codificar la representatividad en el modelo manipulando parámetros como la
probabilidad previa de ciertos tipos de datos.
La mayor desventaja del muestreo para la diversidad del mundo real es que no hay forma de garantizar la
perfección del modelo, pero sí se puede asegurar que será mucho más justo que si solo se usara un
muestreo aleatorio. En la sección sobre la evaluación de la precisión, a continuación, también se presentan
nuevas formas de calcular la precisión por grupo demográfico.
A veces, no se podrá compensar el sesgo simplemente porque no se dispone de suficientes datos sin
etiquetar. Por ejemplo, he trabajado en la respuesta a desastres en idiomas como el criollo haitiano y el
urdu, que no tenían la cantidad suficiente para cubrir la gama completa de desastres potenciales que
tenemos para los titulares en inglés. No hay forma de solucionar este problema solo con el etiquetado, por
lo que volveremos a abordar este tipo de problemas en capítulos posteriores, centrados en la creación de
datos de entrenamiento sintéticos.
129
Para los modelos que utilizan regresión lineal, puede calcular los valores atípicos del mismo modo que para un modelo neuronal:
¿qué elementos tienen la menor activación en todas las etiquetas? Utilice las puntuaciones de predicción prenormalizadas, si tiene
acceso a ellas, como hizo con los logits en este capítulo.
En el caso de los modelos bayesianos, un valor atípico basado en el modelo tiene la menor probabilidad general de cada
etiqueta. Al igual que con nuestros modelos neuronales, se puede calcular el "menor general" como el promedio más bajo o el
máximo más bajo, según lo que sea más adecuado para su caso de uso.
En el caso de las Máquinas de Vectores de Soporte, se pueden buscar predicciones cercanas al hiperplano (límite de decisión),
pero que se encuentren a la distancia máxima de los propios vectores de soporte: los elementos de entrenamiento que determinan
el límite de decisión. Estos elementos serán el equivalente a los valores atípicos del modelo, que presentan una alta incertidumbre
en los modelos neuronales.
Puede utilizar los métodos de agrupamiento no supervisado de este capítulo, como KMedias, para muestrear cualquier algoritmo
de aprendizaje automático supervisado. No es necesario modificar el enfoque de KMedias para los diferentes tipos de algoritmos
de aprendizaje automático supervisado; puede empezar con los de este capítulo y luego refinarlos según su modelo y datos.
Si desea profundizar en el muestreo basado en conglomerados, hubo mucha investigación sobre muestreo de diversidad en la
década de 2000. Las máquinas de vectores de soporte (SVM) estaban en su apogeo en la misma época, por lo que deberá repasar
sus conocimientos de SVM para obtener la
La mayor parte de la investigación en ese momento.
Como mencionamos anteriormente en este capítulo, se puede usar el método Bayesiano Naive o la Distancia Euclidiana para el
Muestreo Representativo en lugar de la Similitud de Coseno. Cualquier función de distancia podría ser igual de adecuada para sus
datos, y en este libro solo usamos la Similitud de Coseno debido a la continuidad con la sección anterior sobre agrupamiento. Si se
cambia la función de distancia en el algoritmo de agrupamiento de Similitud de Coseno a la probabilidad de pertenencia al grupo,
esta edición de tan solo unas pocas líneas de código sería suficiente para probar el agrupamiento bayesiano.
Los árboles de decisión ofrecen un tipo único de muestreo de diversidad. Permite observar las diferencias en el número de
predicciones en diferentes hojas, entre los datos de entrenamiento y los de evaluación. Por ejemplo, imaginemos que su árbol de
decisión tiene 10 hojas, y que todas ellas tienen el mismo número de elementos al predecir los datos de validación. Ahora
imaginemos que, al aplicar el modelo a los datos sin etiquetar, el 90 % de esos datos termina en una sola hoja. Esa hoja,
obviamente...
130
Representa el tipo de datos en su dominio de destino mucho mejor que sus datos de entrenamiento hasta el momento.
Por lo tanto, debes muestrear más elementos dentro de la hoja con el 90 % de los datos, sabiendo que los datos son
más importantes para el lugar donde implementarás tu modelo.
4.6.4 Muestreo para la diversidad del mundo real con diferentes tipos de modelos
Las estrategias para mejorar la diversidad en sus modelos neuronales se pueden aplicar a otros tipos de modelos de
aprendizaje automático: debe asegurarse de estar optimizando la misma cantidad de etiquetas para cada grupo
demográfico y la misma precisión para cada grupo demográfico.
En el Capítulo 2, calculamos la precisión, la recuperación y el puntaje F para una de las etiquetas, 'desastre'.
relacionado'
Para calcular la precisión y la recuperación en múltiples etiquetas, la ecuación general toma los verdaderos positivos
(VP), los falsos positivos (FP) y los falsos negativos (FN) y simplemente los suma para todas las etiquetas (n). Al tratar
todos los puntos de datos por igual, podemos calcular la precisión (P) y la recuperación (R) como:
131
Se conocen como "Microprecisión" y "MicroRecuperación" porque calculan la precisión a nivel micro, es decir, a nivel
de cada punto de datos. Si ha visto a alguien describir la precisión y la recuperación generales de un modelo con
múltiples etiquetas, lo más probable es que estuviera reportando la microprecisión y la recuperación.
Tenga en cuenta que si incluye todas las etiquetas, su microprecisión y microrecuperación serán el mismo
número, ya que cada falso positivo para una etiqueta también es un falso negativo para otra. En muchas situaciones
reales, tendrá una etiqueta general equivalente a "no relevante" que no querrá incluir explícitamente en su puntuación
de precisión, excepto cuando contribuya a falsos negativos o falsos positivos para otras etiquetas. También podría
querer declarar un umbral de incertidumbre para el cual no predice ninguna etiqueta, en cuyo caso esos elementos
se contabilizarían como falsos negativos, pero no como falsos positivos. En ambos escenarios reales, su
microprecisión y microrecuperación probablemente serán números diferentes.
El Micro FScore (F), al igual que en el Capítulo 2, toma la media armónica de Precisión y Recall:
Si una etiqueta es mucho más frecuente que la otra, esta contribuirá en mayor medida a la microprecisión, la
microrecuperación y las micropuntuaciones F. Esto podría ser lo que busca en algunos casos, ya que le proporciona
un valor de precisión ponderado por las etiquetas de su prueba.
datos.
Sin embargo, ¿qué sucede si sabe que sus datos de prueba no están equilibrados entre las etiquetas que su
modelo encontrará en el mundo real, o que desea que su modelo sea igualmente preciso al predecir todas las
etiquetas independientemente de su frecuencia?
La solución es calcular cada valor de Precisión y Recuperación por separado para cada etiqueta, y
luego promedialos:
132
Debido a que calculamos la precisión a nivel de etiqueta, en lugar de a nivel de artículo individual, este método se conoce
como Macro Precisión y Macro Recuperación.
Dependiendo de sus datos, deberá decidir si algunas etiquetas son inherentemente más difíciles de etiquetar
correctamente para un modelo, o si es necesario el aprendizaje activo para seleccionar más ejemplos de esa etiqueta
para aumentar la precisión de esa etiqueta.
Como nota al margen, para problemas multiclase, existen dos maneras diferentes de calcular los valores de
microprecisión y recuperación: por elemento y por predicción. Esta distinción es poco común: solo la he visto en algunos
artículos académicos y nunca en la industria. Si se tiene el mismo número de predicciones por elemento, no importa.
Pero si se predicen más etiquetas para algunos elementos, es posible que se esté dando una mayor ponderación a ese
elemento al contar cada predicción. Tanto el cálculo por predicción como por elemento son igualmente válidos desde un
punto de vista estadístico, por lo que la clave estará en cuál es la mejor manera de medir la precisión para los datos y
el caso de uso.
6
Para ver un ejemplo, consulte: [Link]
133
No he visto que esto se use con frecuencia en la industria, pero eso no significa que no deba adoptarse. La mayoría de los estudios
sobre desigualdad demográfica tienden a ser improvisados. Por ejemplo, para el reconocimiento facial, existen muchos ejemplos de
medios de comunicación populares que seleccionan un pequeño número de imágenes de personas que representan diferentes
etnias y buscan diferentes niveles de precisión entre ellas. En esos casos de uso, los medios utilizan únicamente la precisión, y en
una muestra pequeña y posiblemente no representativa. Esto funciona para una noticia en los medios, pero no si realmente
queremos mejorar la imparcialidad de nuestros modelos.
Si es responsable de desarrollar el modelo y garantizar su máxima imparcialidad, debería considerar una gama más amplia de
métodos para medir la precisión. Quizás le convenga refinar aún más la precisión basada en la demografía, según su caso práctico.
Estas son algunas opciones:
1. Precisión mínima: la precisión, la recuperación y/o la puntuación F más bajas de cualquier grupo demográfico. Si desea que
su modelo sea tan sólido como su punto más débil en términos de imparcialidad entre los grupos demográficos, debe tomar
la precisión mínima. Puede tomar la puntuación F mínima de un grupo demográfico o, para una métrica más rigurosa,
tomar la precisión mínima y la recuperación mínima, posiblemente de diferentes etiquetas, y aplicarles la puntuación F.
2. Precisión armónica: la media armónica de la precisión por demografía. Esta será más rigurosa que la precisión demográfica
promedio, pero no tanto como tomar el mínimo (a menos que haya valores 0). Dicho de otro modo, al igual que tomamos
la media armónica de precisión y recuperación para obtener la puntuación F, en lugar de la media aritmética, también
podríamos tomar la media armónica. La media armónica penalizará las precisiones bajas atípicas más que las altas
atípicas, pero no tanto como tomar
El mínimo.
Al igual que podemos calcular la precisión micro y macro, la recuperación y la puntuación F, podemos calcular el AUC micro y macro.
Recordemos del capítulo 2 que el AUC es la probabilidad de que, de dos predicciones de elementos seleccionados al azar, se haya
predicho la etiqueta correcta con mayor confianza.
Omitiré las nuevas ecuaciones, ya que no son diferentes a lo que ya has visto para AUC.
en el Capítulo 2 y las ecuaciones anteriores, y simplemente las resumimos aquí:
134
1. Micro AUC: Calcula el AUC, pero en lugar de calcularlo para elementos en una sola etiqueta,
Calcúlelo para todos los artículos en todas las etiquetas.
2. AUC de macro: Calcule el AUC para cada etiqueta por separado, luego tome el AUC promedio de
todas las etiquetas.
Dos estrategias de este capítulo, el muestreo por conglomerados y el muestreo representativo, pueden ser adaptativas dentro
de una iteración de aprendizaje activo, lo que permite generar nuevas muestras sin reentrenar el modelo. Abordaremos cada una de
ellas por separado, antes de abordar la proporción adecuada entre el muestreo por incertidumbre y el muestreo por diversidad.
La agrupación en clústeres es una técnica eficaz porque no se ve afectada por el sesgo del modelo predictivo, pero conlleva sus
propias suposiciones sobre los datos y, como resultado, sesgos estadísticos. Por lo tanto, se puede limitar el sesgo introducido por
el algoritmo de agrupación en clústeres haciendo que este proceso sea lo más diverso posible.
Para el muestreo basado en conglomerados, podemos crear continuamente nuevos conglomerados y muestrear a partir de
ellos, lo que aumenta la diversidad del modelo sin necesidad de esperar mucho tiempo para su reentrenamiento. Dado que los
conglomerados se inicializan con una selección aleatoria de elementos, se pueden ejecutar los mismos algoritmos de agrupamiento
varias veces para obtener diferentes muestras. También se puede experimentar con un número diferente de conglomerados y con
diferentes métricas de distancia.
determinar los clústeres.
Si utiliza varias ejecuciones de agrupamiento dentro de una iteración, también puede buscar elementos que sean centroides o
valores atípicos con mayor consistencia en diferentes modelos. Esto le dará mayor seguridad de que estos elementos realmente
indican tendencias o son verdaderamente únicos, y no se muestrearon simplemente como resultado de un sesgo particular en un
conjunto de conglomerados.
Para el Muestreo Representativo, como ya vio, podemos mover el elemento del grupo "sin etiquetar" al grupo "etiquetado" antes de
obtener una etiqueta, porque sabemos que la obtendremos más adelante. Esto significa que podemos actualizar nuestra estrategia
de muestreo varias veces dentro de un Aprendizaje Activo.
iteración.
135
Puede resultar costoso reevaluar cada elemento sin etiquetar cada vez que se mueve un elemento de
"sin etiquetar" a "etiquetado": es O(N²) clasificar todos los elementos sin etiquetar según el método. Como
probablemente haya notado al ejecutar el código anterior, el Muestreo Representativo Adaptativo fue el que
tardó más en ejecutarse. Por lo tanto, conviene limitar el número de elementos que se reevalúan en cada
iteración. Como alternativa, puede combinar el Muestreo Representativo con la Agrupación en Clústeres
para garantizar la diversidad, una técnica avanzada que abordaremos en capítulos posteriores.
La separación del Muestreo por Incertidumbre y el Muestreo por Diversidad en los dos últimos capítulos tuvo
como objetivo presentar ambos conceptos por separado. En la mayoría de las situaciones reales, se
emplearán estrategias que combinan ambos. En el siguiente capítulo se presentan algoritmos avanzados de
Aprendizaje Activo que combinan aspectos de cada uno en un único algoritmo de muestreo.
En el ejemplo de código del Capítulo 2, se observó que el Muestreo por Incertidumbre se utilizó para
muestrear más elementos que el Muestreo por Diversidad. Esto ha sido generalmente así en los sistemas
de Aprendizaje Activo que he visto en la práctica: se ha favorecido el Muestreo por Incertidumbre como
técnica principal para el Aprendizaje Activo y se ha complementado con una menor cantidad de Muestreo
por Diversidad para garantizar que no se haya pasado por alto ningún elemento importante. Sin embargo,
algunos de estos mismos sistemas han tenido problemas debido a su falta de diversidad en el mundo real,
por lo que quizás el Muestreo por Diversidad requiera más atención en el futuro.
Aquí en la Figura 4.8 hay un resumen de los cuatro algoritmos de muestreo de diversidad que implementó
en este capítulo:
136
Figura 4.8: Los cuatro tipos de muestreo de diversidad que se abordan en este capítulo. Arriba a la izquierda: muestreo de valores atípicos basado en modelos. Arriba a la derecha: muestreo
por conglomerados. Abajo a la izquierda: muestreo representativo. Abajo a la derecha: muestreo para la diversidad en el mundo real.
Representan cuatro estrategias diferentes para garantizar la diversidad y la representatividad de sus datos: elementos desconocidos para su
modelo en su estado actual; elementos estadísticamente representativos de la distribución completa de sus datos; elementos con la máxima
representatividad del lugar donde implementará su modelo; y elementos con la mayor representatividad de la demografía real.
Si está seguro de las estrategias que implementó en este capítulo, ¡mantenga esta hoja de trucos a mano como
referencia rápida!
137
Los algoritmos de valores atípicos basados en modelos son los que he desarrollado personalmente y aún no he
publicado fuera de este libro, excepto en presentaciones y clases informales. Si creo más documentos sobre este enfoque,
o alguien más lo hace, añadiré enlaces a ellos aquí.
versiones posteriores.
Existe una creciente literatura sobre métodos neuronales para determinar valores atípicos. Hasta donde sé, estos
artículos se refieren a "valores atípicos" en el sentido de elementos con un espacio de características que no forma parte
de las tendencias observables de los demás elementos de un conjunto de datos. Este no es el sentido de "valor atípico" en
este caso: es el sentido de "valor atípico" que se entiende en el muestreo de "valores atípicos basados en conglomerados",
por lo que estos artículos serían relevantes para este enfoque del muestreo de diversidad.
La práctica de investigar un modelo neuronal para determinar su conocimiento (o su ausencia) a veces se denomina
"sondeo". Si bien aún no existen artículos sobre sondeo para descubrir valores atípicos en el aprendizaje activo, sin duda
existen buenas técnicas en la literatura sobre sondeo de modelos que podrían adaptarse para este propósito.
Para el muestreo basado en conglomerados, el mejor punto de partida es “Aprendizaje activo mediante
preagrupamiento” de Ngyuen y Smeulders, presentado en la Conferencia Internacional sobre Aprendizaje Automático
(ICML) en 2004: [Link]
Busque artículos que hayan citado a Ngyuen y Smeulders recientemente y que sean en sí mismos muy relevantes.
citado, para la investigación más vanguardista sobre muestreo basado en conglomerados.
Tenga en cuenta que Ngyuen y Smeulders (1998) utilizaron una métrica de aprendizaje activo que combina la
agrupación con el muestreo de incertidumbre. Como mencionamos anteriormente en este capítulo, esta combinación es la
forma más común de usar la agrupación en el aprendizaje activo. Se explican por separado en este texto para que pueda
comprenderlas mejor de forma aislada antes de aprender a combinarlas.
Entonces, tal vez quieras leer el próximo capítulo, donde los combinamos, antes de adentrarte en su investigación o en los
artículos que se basan en ella.
Los principios del muestreo representativo se exploraron por primera vez en “Employing EM and PoolBased Active
Learning for Text Classification” de McCallum y Nigam en ICML en 1998: [Link]
[Link]
Busque artículos que hayan citado a McCallum y Nigam (1998) recientemente y que sean en sí mismos
altamente citado, por la investigación más vanguardista sobre muestreo representativo.
Aquí hay dos buenos artículos sobre aprendizaje automático para la diversidad en el mundo real, uno sobre visión artificial
y otro sobre procesamiento del lenguaje natural (PLN). Ambos concluyen que los modelos populares son más precisos
para personas de entornos más adinerados y que los datos de entrenamiento presentan sesgo hacia el objeto visto por
personas más adineradas y los idiomas hablados por poblaciones más adineradas o mayoritarias.
138
“¿Funciona el reconocimiento de objetos para todos?”, por Terrance DeVries, Ishan Misra,
4.10 Resumen
En este capítulo, abordamos cuatro enfoques comunes para el muestreo de diversidad: muestreo de valores atípicos basado
en modelos, muestreo por conglomerados, muestreo representativo y muestreo para la diversidad en el mundo real. Estos
enfoques pueden ayudarle a comprender los diferentes tipos de "incógnitas desconocidas" en sus modelos.
El muestreo de valores atípicos basado en modelos permite muestrear elementos desconocidos para el modelo en su estado
actual. Esto ayuda a ampliar el conocimiento del modelo donde actualmente no está disponible.
El muestreo por conglomerados permite muestrear elementos estadísticamente representativos de toda la distribución de
datos. Esto ayuda a ampliar el conocimiento del modelo para capturar todas las tendencias significativas en los datos,
incluidas las menos frecuentes que probablemente se pasarían por alto con un muestreo aleatorio. El muestreo
representativo permite muestrear elementos con la
máxima representatividad del entorno donde se implementará el modelo. Esto ayuda a adaptar el modelo a dominios diferentes
a los de los datos de entrenamiento actuales, un problema común en el aprendizaje automático real. Para respaldar la
diversidad en el mundo real, es necesario implementar todas las técnicas de muestreo por incertidumbre y muestreo por
diversidad. Esto hará que las aplicaciones sean más
precisas entre un conjunto diverso de usuarios y, por lo tanto, más justas.
• Interpretar las capas de un modelo neuronal para el Muestreo por Diversidad permite acceder a la mayor cantidad de
información posible para el Aprendizaje Activo. Esto brinda más opciones para calcular valores atípicos del modelo y
proporciona una base para técnicas de aprendizaje por transferencia más avanzadas. • Implementar el Muestreo por
Diversidad es posible con
cualquier algoritmo de Aprendizaje Automático Supervisado, incluyendo Modelos Neuronales, Modelos Bayesianos, SVMs y
Árboles de Decisión. Esto significa que puede implementar el Aprendizaje Activo con cualquier tipo de algoritmo de
Aprendizaje Automático que esté utilizando actualmente sin necesidad de cambiar a los modelos neuronales que son el
foco de los ejemplos de este libro. Incluso podría decidir probar algunos de estos algoritmos adicionales para el
Aprendizaje Activo, para aprovechar algunas de sus
139
Propiedades únicas.
Las estrategias para decidir cuántos elementos deben ser revisados por humanos al implementar el
Muestreo por Diversidad difieren de las del Muestreo por Incertidumbre, ya que, en algunos casos,
pueden ser adaptativas en cada iteración del Aprendizaje Activo. Esto permite que el ciclo de
retroalimentación del Aprendizaje Automático con Participación Humana sea más eficiente, ya que
no es necesario esperar a que el modelo se vuelva a entrenar.
Diferentes métricas de precisión, como la Puntuación F Micro y Macro, capturan el rendimiento del
modelo en una amplia gama de datos. Esto proporciona una mejor comprensión de cómo el modelo
mejora con los datos y las etiquetas que más le interesan.
140
5
Aprendizaje activo avanzado
• Implementar modelos de aprendizaje automático que predicen qué elementos no etiquetados serán
etiquetados incorrectamente por el modelo, para identificar los elementos más inciertos para muestrear en humanos
anotación.
• Implementar modelos de aprendizaje automático que predicen qué artículos sin etiquetar son los menos
Al igual que los datos de entrenamiento, para identificar los elementos más representativos para muestrear para humanos.
anotación.
• Arquitectura del aprendizaje por transferencia adaptativa para el muestreo representativo y la incertidumbre
Muestreo, para aumentar la diversidad de elementos muestreados en una iteración de aprendizaje activo.
En los dos últimos capítulos, aprendiste a identificar las incertidumbres de tu modelo (lo que tu modelo
"sabe que no sabe") y las carencias de tu modelo (lo que tu modelo "no sabe que no sabe"). En este
capítulo, aprenderás a combinar estas características en una estrategia integral de aprendizaje activo.
Los casos de uso de los dos últimos capítulos son igualmente relevantes. Para casi cualquier tarea de
aprendizaje automático, conviene combinar el muestreo por incertidumbre y el muestreo por diversidad
para muestrear los elementos óptimos para la revisión humana.
141
Casos. También aprenderá una nueva estrategia de aprendizaje activo, la Reducción del Error Esperado, que
combina los principios del Muestreo por Incertidumbre y el Muestreo por Diversidad.
Recuerde del Capítulo 1 que una estrategia ideal para el aprendizaje activo intenta muestrear elementos
que están cerca del límite de decisión pero que están distantes entre sí, como se repite aquí en la Figura
5.1:
Figura 5.1: Un posible resultado de la combinación del Muestreo por Incertidumbre y el Muestreo por Diversidad. Al combinar las
estrategias, se seleccionan elementos que se encuentran cerca de secciones diversas del límite de decisión. Por lo tanto,
optimizamos la probabilidad de encontrar elementos que probablemente resulten en un cambio en el límite de decisión.
Ha aprendido a identificar elementos cercanos al límite de decisión (muestreo de incertidumbre) y distantes entre
sí (muestreo basado en conglomerados y muestreo representativo adaptativo) y, en combinación, este capítulo
le muestra cómo muestrear elementos que están cerca del límite de decisión y también son diversos, como los
de la Figura 5.1.
La forma más común de combinar el muestreo por incertidumbre y el muestreo por diversidad en la industria es
tomar el resultado de un método y filtrarlo con otro. No existe un nombre común para esta técnica, a pesar de su
ubicuidad, probablemente porque muchas empresas la han inventado por necesidad.
142
En sus formas más simples, combinar el muestreo de incertidumbre y diversidad implica aplicar una técnica y
luego otra. Por ejemplo, si se muestrea el 50% de los elementos más inciertos con el Muestreo de Mínima Confianza
y luego se aplica el Muestreo por Conglomerados a ese 10%, se podría obtener una muestra del 5% de los datos
similar a la de la Figura 5.1: una combinación casi óptima de incertidumbre y diversidad. La Figura 5.2 representa
esto gráficamente. Primero, se muestrea el 50% de los elementos más inciertos y, a continuación, se aplica el
agrupamiento para garantizar la diversidad dentro de esa selección, muestreando el centroide de cada conglomerado.
Figura 5.2: Ejemplo que combina el muestreo de mínima confianza con el muestreo por conglomerados. Primero, se utiliza el muestreo
por incertidumbre para encontrar elementos cerca del límite de decisión y, posteriormente, el conglomerado para garantizar la diversidad dentro de
esa selección. En esta figura, se muestrean los centroides de cada conglomerado. Como alternativa, o además, se pueden seleccionar
aleatoriamente valores atípicos.
Con el código que ya has aprendido, puedes ver que se trata de una extensión sencilla:
si límite > 0:
shuffle(datos_sin_etiquetar)
datos_sin_etiquetar = datos_sin_etiquetar[:límite] recuento_incierto
= [Link](len(datos_sin_etiquetar) * perc_incierto)
143
devolver muestras
Solo se necesitan dos nuevas líneas de código para combinar los dos enfoques: una para obtener los elementos más inciertos y otra
para agruparlos.
Nota: El código para todos los ejemplos de este capítulo se encuentra en el mismo repositorio que utilizó en
Capítulo 2 y 3:
[Link]
aprendizaje_activo_avanzado.py
Si está interesado en la tarea de clasificación de texto de respuesta a desastres, pruébela con este nuevo
método:
Verá inmediatamente que los datos tienden a caer cerca de la división del texto que podría o no estar relacionado con el desastre, y
que los elementos son una selección diversa.
Existen muchas variantes de dónde se puede usar el Muestreo por Incertidumbre para encontrar elementos cerca del límite de
decisión y, posteriormente, aplicar el Muestreo por Conglomerados para garantizar la diversidad dentro de dichos elementos. Se
puede experimentar con diferentes tipos de Muestreo por Incertidumbre, diferentes umbrales para el límite de incertidumbre y
diferentes parámetros de agrupamiento. En muchos entornos, esta será la forma más rápida de identificar los elementos de mayor
valor para el Aprendizaje Activo y debería ser una de las primeras estrategias que se prueben en casi cualquier caso de uso.
Tenga en cuenta que estos métodos sencillos de combinación de estrategias rara vez se incluyen en artículos académicos, ya
que el mundo académico prefiere los que combinan métodos en un solo algoritmo, en lugar de encadenar varios algoritmos más
simples. Esto tiene sentido, ya que combinar los métodos es muy fácil, como ya ha visto: no es necesario escribir un artículo
académico sobre algo que se puede implementar en pocas líneas de código cuando se tienen los componentes básicos adecuados.
Sin embargo, como desarrollador que crea sistemas de aprendizaje activo del mundo real, siempre debe implementar primero las
soluciones sencillas, antes de intentar algoritmos más experimentales.
Por lo tanto, no asuma que una solución más complicada es necesariamente la mejor: es posible que descubra que una simple
combinación de Mínima confianza y Agrupamiento es todo lo que necesita para sus datos.
144
Siempre puedes probar diferentes métodos y ver cuál produce el mayor cambio en precisión frente a una línea base de muestreo aleatorio.
Al combinar el muestreo por incertidumbre con valores atípicos basados en modelos, se maximiza la confusión actual del modelo. Se buscan
elementos cerca del límite de decisión y se asegura que sus características sean relativamente desconocidas para el modelo actual. Puede ver un
ejemplo de los tipos de muestras que esto podría generar en la Figura 5.3.
Figura 5.3: Ejemplo que combina el muestreo por incertidumbre con valores atípicos basados en el modelo. Esto seleccionará elementos
cercanos al límite de decisión, pero que difieren de los elementos de entrenamiento actuales y, por lo tanto, del modelo.
si el límite > 0:
145
shuffle(datos_sin_etiquetar)
datos_sin_etiquetar = datos_sin_etiquetar[:límite]
recuento_incierto = [Link](len(datos_sin_etiquetar) * perc_incierto)
muestras = self.diversity_sampling.get_model_outliers(valor_atípico_modelo,muestras_inciertas,
datos_de_validación, método_de_característica, número=número, límite=límite) #B
devolver muestras
En realidad, solo hay dos líneas de código para integrarlo todo. Si bien la combinación del muestreo por incertidumbre con
valores atípicos basados en modelos será óptima para identificar elementos con mayor probabilidad de aumentar el conocimiento
y la precisión general de los modelos, también puede muestrear elementos que son muy...
Similares entre sí.
Dado que el método anterior podría sobremuestrear elementos muy cercanos, conviene implementar esta estrategia y luego
agrupar para garantizar la diversidad. Agregar la agrupación al final del método anterior solo requiere una línea de código, por lo
que es fácil de implementar.
Como alternativa, si tiene iteraciones rápidas de aprendizaje activo, esto también garantizará una mayor diversidad al
combinar el muestreo de incertidumbre y los valores atípicos basados en modelos: puede muestrear un
pequeño número de elementos en cada iteración.
Una deficiencia de la técnica de Muestreo Representativo que aprendió en el capítulo anterior es que trataba los datos de
entrenamiento y el dominio objetivo como clústeres individuales. En realidad, sus datos suelen ser multinodales, de modo que un
solo clúster no los capturará de forma óptima.
Para captar esta complejidad, puede combinar el Muestreo Representativo y el Muestreo por Conglomerados en una
arquitectura ligeramente más compleja que las canalizaciones presentadas anteriormente. Puede agrupar sus datos de
entrenamiento y sus datos sin etiquetar de forma independiente, y luego identificar los conglomerados más representativos de
sus datos sin etiquetar y sobremuestrearlos. Esto generará un conjunto de elementos más diverso que con el muestreo
representativo únicamente, especialmente si sus datos son inherentemente multinodales en su espacio de características. La
Figura 5.4 muestra un ejemplo.
146
Figura 5.4: Un ejemplo (abajo) que combina el Muestreo Representativo y el Muestreo por Conglomerados. Esto muestreará
los elementos que más se adecuen a su dominio de aplicación, en relación con sus datos de entrenamiento actuales, y que
también sean diferentes entre sí. A modo de comparación, el método de Muestreo Representativo, más sencillo, del
Capítulo 4, trataba cada distribución como una sola.
147
Como puede ver en la Figura 5.4, sus datos de entrenamiento actuales y los dominios objetivo podrían no tener distribuciones
uniformes dentro de su espacio de características. Por lo tanto, agrupar los datos primero le ayudará a modelar con mayor
precisión su espacio de características y también le permitirá muestrear un conjunto más diverso de datos sin etiquetar.
elementos.
El código consta de dos partes. Primero, creamos los clústeres para los datos de entrenamiento y los datos sin etiquetar
del dominio de la aplicación:
Argumentos de palabras
clave: training_data: datos con una etiqueta, en los que se entrena el modelo actual unlabeled_data: datos que aún no
tienen una etiqueta number: número de elementos a muestrear limit: toma una muestra
solo de esta cantidad de elementos para un muestreo más
rápido (1 = sin límite) num_clusters: la cantidad de clústeres a crear max_epochs: número máximo de épocas para crear clústeres
"""
si límite > 0:
shuffle(datos_de_entrenamiento)
datos_de_entrenamiento = datos_de_entrenamiento[:límite]
shuffle(datos_sin_etiquetar)
datos_sin_etiquetar = datos_sin_etiquetar[:límite]
clústeres_de_entrenamiento = CosenoClusters(num_clústeres)
clústeres_de_entrenamiento.add_elementos_de_entrenamiento_aleatorios(datos_de_entrenamiento)
clústeres_sin_etiquetar = Clústeres_Coseno(núm_clústeres)
clústeres_sin_etiquetar.añadir_elementos_de_entrenamiento_aleatorios(datos_de_entrenamiento)
Romper
148
Luego, iteramos cada grupo de datos sin etiquetar y encontramos el elemento en cada grupo que esté más cerca del
centroide de ese grupo, en relación con los grupos de datos de entrenamiento.
# encuentra el elemento en ese clúster más parecido a los datos sin etiquetar item_keys =
list([Link]())
A: Encuentre el clúster que mejor se ajuste dentro de los clústeres de datos sin etiquetar
B: Encuentre el clúster que mejor se ajuste dentro de los clústeres de datos de entrenamiento
En diseño, es casi idéntico al método de muestreo representativo que implementó en el capítulo anterior, pero le está
pidiendo al algoritmo de agrupamiento que cree múltiples grupos para cada distribución en lugar de solo uno para los
datos de entrenamiento y uno para los datos no etiquetados.
Puedes probarlo con este comando:
149
Figura 5.5: Un ejemplo que combina el muestreo por conglomerados con la entropía (abajo). Esto muestreará los elementos dentro del
conglomerado que presente mayor confusión. Una idea intuitiva es pensar en este conglomerado como el que abarca el...
límite de decisión más cercano. En este ejemplo, se muestrean elementos aleatorios en el conglomerado, pero también se podría experimentar
muestreando el centroide, los valores atípicos o sobremuestreando elementos dentro del conglomerado que tengan
150
Máxima entropía. En comparación, la agrupación simple (arriba) muestreará elementos de cada grupo. Por lo tanto, son dos formas
muy diferentes de usar la agrupación para muestrear elementos.
El ejemplo de la Figura 5.5 es, en cierto modo, lo opuesto a la agrupación por diversidad, ya que se centra deliberadamente en una
parte del espacio del problema. Sin embargo, a veces, eso podría ser justo lo que se busca.
Tenga en cuenta que esto funciona mejor con datos con etiquetas precisas y cuando esté seguro de que la tarea puede resolverse
con aprendizaje automático. Si tiene datos con mucha ambigüedad inherente, este método tenderá a centrarse en esas áreas. Para
solucionar esto, puede ver qué porcentaje de sus datos de entrenamiento existentes corresponde a sus clústeres de alta entropía. Si el
clúster ya está bien representado en sus datos de entrenamiento, es una buena prueba de que es una parte inherentemente ambigua
de su espacio de características.
Aquí está el código para seleccionar el clúster con la entropía promedio más alta:
Argumentos de palabras
clave: modelo: modelo de aprendizaje automático para obtener predicciones para determinar la incertidumbre unlabeled_data: datos
que aún no tienen una etiqueta method: método para muestreo de incertidumbre (por
ejemplo: least_confidence()) feature_method: el método para extraer características de sus datos number:
número de elementos a muestrear num_clusters: el número de clústeres a crear max_epochs: número máximo
de épocas para crear clústeres limit: muestra solo de esta
cantidad de elementos para un muestreo más rápido (1 = sin límite)
"""
si límite > 0:
shuffle(datos_sin_etiquetar)
datos_sin_etiquetar = datos_sin_etiquetar[:límite]
clústeres_sin_etiquetar = Clústeres_Coseno(núm_clústeres)
clústeres_sin_etiquetar.añadir_elementos_de_entrenamiento_aleatorios(datos_sin_etiquetar)
unlabeled_clusters.add_items_to_best_cluster(unlabeled_data) si agregado == 0:
romper
# obtener puntuaciones
151
item_keys = lista(clú[Link]())
vector_de_características =
método_de_características(texto) oculto, logits, log_probs = modelo(vector_de_características, devolver_todas_las_capas=Verdadero)
muestras = grupo_más_incierto.obtener_miembros_aleatorios(número)
devolver muestras
En este ejemplo de código, calculamos la entropía promedio de todos los elementos de un clúster. Puede
probar diferentes estadísticas agregadas según su estrategia de muestreo. Por ejemplo, si sabe que solo está
muestreando los 100 elementos principales, podría calcular la entropía promedio de los 100 elementos más
inciertos de cada clúster, en lugar de calcularla de todos los elementos del clúster.
Puedes probarlo con este comando:
Hay tantas combinaciones posibles de técnicas de aprendizaje activo que es imposible cubrirlas todas en este
libro. Sin embargo, a estas alturas, ya deberías tener una buena intuición sobre cómo combinarlas.
A continuación se presentan algunos puntos de partida:
1. Combinación del Muestreo por Incertidumbre y el Muestreo Representativo. Puede muestrear los
elementos más representativos de sus dominios objetivo, pero también aquellos que presentan
incertidumbre. Esto será especialmente útil en iteraciones posteriores del Aprendizaje Activo. Si utilizó
el Muestreo por Incertidumbre en las primeras iteraciones, su dominio objetivo tendrá elementos que
se alejan desproporcionadamente del límite de decisión, lo que podría seleccionarse erróneamente
como "Representativo".
152
2. Combinación de valores atípicos basados en modelos y muestreo representativo. Este es el método definitivo para la
adaptación del dominio, que se centra en elementos que su modelo desconoce actualmente, pero que también son
relativamente comunes en su dominio objetivo.
3. Combinación de la agrupación consigo misma para conglomerados jerárquicos. Si encuentra conglomerados muy grandes
o desea muestrear la diversidad dentro de un conglomerado, puede...
Toma los elementos de un grupo y usa esos elementos para crear un nuevo conjunto de
racimos.
4. Combinación del muestreo del clúster de mayor entropía con el muestreo por margen de confianza. Se puede encontrar el
clúster con mayor entropía y luego muestrear todos los elementos dentro de ese clúster que se acerquen más a un límite
de decisión.
5. Combinación de métodos de conjunto o de abandono con estrategias individuales. Es posible que esté construyendo
varios modelos y decida que un modelo bayesiano es mejor para determinar la incertidumbre, pero un modelo neuronal
es mejor para determinar valores atípicos basados en el modelo. Puede muestrear con un modelo y luego refinar con
otro. Si está agrupando con base en capas ocultas, podría adaptar el método de abandono del muestreo de incertidumbre
e ignorar aleatoriamente algunas neuronas al crear los clústeres. Esto evitará que los clústeres se sobreajusten a la
representación interna de su red.
Una alternativa a la canalización de los resultados de una estrategia de muestreo a otra es tomar las puntuaciones de las
diferentes estrategias de muestreo y hallar la puntuación promedio más alta. Esto tiene lógica matemática para todos los métodos,
excepto la agrupación en clústeres. Por ejemplo, se podría promediar la puntuación de cada elemento para el Margen de
Confianza, los Valores Atípicos Basados en Modelos y el Aprendizaje Representativo, y luego clasificar todos los elementos según
esa puntuación agregada.
Aunque todas las puntuaciones deben estar en un rango [01], tenga en cuenta que algunas podrían estar agrupadas en
rangos pequeños y, por lo tanto, no contribuir tanto al promedio. Si este es el caso de sus datos, puede intentar convertir todas
sus puntuaciones en percentiles (cuantiles), convirtiendo así todas las puntuaciones de muestreo en órdenes de clasificación
estratificados. Puede usar funciones integradas de su biblioteca matemática preferida para convertir cualquier lista de números en
percentiles. Busque funciones llamadas rank(), percentile() o percentileofscore() en varias bibliotecas de Python. En comparación
con los otros métodos que utiliza para el muestreo, convertir puntuaciones en percentiles es relativamente rápido, así que no se
preocupe por intentar encontrar la función más óptima: elija una función de una biblioteca que ya esté usando.
También se podría muestrear mediante la unión de métodos, en lugar de filtrar (que es una combinación mediante
intersección). Esto se puede usar con cualquier método y podría ser más conveniente al combinar múltiples puntuaciones de
muestreo de incertidumbre. Por ejemplo, se podrían muestrear los elementos con el 10 % más de incertidumbre según Mínima
confianza, Margen de confianza, Ratio de confianza o Entropía, para generar un conjunto general de muestras "Inciertas" y luego
usarlo directamente o combinarlo con métodos adicionales.
Hay muchas formas de combinar los bloques de construcción que has aprendido y yo...
¡Te animamos a experimentar con ellos!
153
La Reducción del Error Esperado es una de las pocas estrategias de Aprendizaje Activo disponibles en la literatura que
buscan combinar el Muestreo por Incertidumbre y el Muestreo por Diversidad en una sola métrica. Este algoritmo se
incluye aquí para mayor exhaustividad, con la salvedad de que no lo he visto implementado en situaciones reales.
La métrica principal para el muestreo de reducción de errores esperados es cuánto sería el error en el
¿Se podría reducir el modelo si se le asignara una etiqueta a un artículo sin etiqueta?7
Para cada elemento sin etiquetar, se le asignan las posibles etiquetas que podría tener, se reentrena el modelo con
cada una de ellas y luego se observa cómo cambia su precisión. Hay dos maneras comunes de calcular el cambio en la
precisión del modelo:
1. Precisión general: ¿cuál es el cambio en el número de elementos predichos correctamente si este elemento
¿Tenía una etiqueta?
2. Entropía global: ¿Cuál sería el cambio en la entropía agregada si este elemento tuviera una etiqueta? Esto utiliza
la definición de entropía que aprendió en el capítulo "Muestreo por Incertidumbre". Es sensible a la confianza de
la predicción, a diferencia del primer método, que solo es sensible a la etiqueta predicha.
La puntuación se pondera en cada etiqueta según su frecuencia. A continuación, se muestrean los elementos con mayor
probabilidad de mejorar el modelo en general.
Este algoritmo plantea algunos problemas prácticos:
1. Volver a entrenar el modelo una vez por cada elemento sin etiqueta multiplicado por cada etiqueta es
prohibitivamente caro para la mayoría de los algoritmos.
2. Puede haber tanta variación al volver a entrenar un modelo que el cambio de uno a otro
La etiqueta adicional podría ser indistinguible del ruido.
3. Puede sobremuestrear elementos muy alejados del límite de decisión, gracias a la alta
entropía para las etiquetas que tienen una probabilidad cada vez más pequeña.
Por lo tanto, existen limitaciones prácticas al usar este método con modelos neuronales. Los autores originales de este
algoritmo utilizaron el método Bayes ingenuo incremental, que puede adaptarse a nuevos elementos de entrenamiento
simplemente actualizando los recuentos de las características de un nuevo elemento y es determinista. Por lo tanto,
funciona para el algoritmo particular de los autores. El problema del sobremuestreo de elementos fuera del límite de
decisión puede abordarse utilizando la probabilidad predicha de cada etiqueta, en lugar de la frecuencia de la etiqueta
(probabilidad previa). Sin embargo, se necesitarán predicciones de confianza precisas del modelo, que podrían no estar
disponibles, como se explicó en el Capítulo 3.
Si intenta implementar la Reducción de Errores Esperados, podría experimentar con diferentes medidas de precisión
y con algoritmos de Muestreo de Incertidumbre distintos de la entropía. Porque
154
Este método utiliza la entropía, que proviene de la teoría de la información. Es posible que la veas llamada "ganancia de
información" en la literatura al analizar variaciones de este algoritmo. Lee estos artículos con atención, ya que "ganancia"
puede significar menos información. Si bien es matemáticamente correcto, puede parecer contradictorio decir que tu modelo
sabe más cuando las predicciones tienen menos.
información.
Como se dijo al principio de esta sección, nadie (hasta donde yo sé) ha publicado si la Reducción del Error Esperado es
mejor que la simple combinación de métodos a través de la intersección y/o unión de las diferentes estrategias de muestreo.
Podría intentar implementar la Reducción de Errores Esperados y algoritmos relacionados y comprobar si son útiles en
sus sistemas. Podría implementarlos reentrenando únicamente la última capa de su modelo con el nuevo elemento, lo que
aceleraría el proceso.
Si desea muestrear elementos con un objetivo similar al de la Reducción de Errores Esperados, puede agrupar sus
datos y luego examinar los clústeres con la mayor entropía en las predicciones, como en el ejemplo de la Figura 5.4. La
Reducción de Errores Esperados presenta el problema de que podría encontrar solo elementos en una parte del espacio de
características, al igual que los algoritmos de Muestreo por Incertidumbre cuando se utilizan de forma aislada. Si amplía el
ejemplo de la Figura 5.4 para muestrear elementos de los N clústeres con la mayor entropía, no solo del clúster con la mayor
entropía, habrá abordado las limitaciones de la Reducción de Errores Esperados en tan solo unas pocas líneas de código.
Sin embargo, en lugar de intentar crear manualmente un algoritmo que combine el Muestreo por Incertidumbre y el
Muestreo por Diversidad en uno solo, puede dejar que el Aprendizaje Automático decida la combinación por usted. El artículo
original sobre la Reducción del Error Esperado se titulaba "Hacia un Aprendizaje Activo Óptimo" y tiene 20 años, por lo que
no critica el algoritmo, sino que espera que sea el objetivo de sus creadores. El resto de este capítulo se centra en esto:
Modelos de Aprendizaje Automático para el proceso de muestreo en el Aprendizaje Activo.
Los métodos de aprendizaje activo más avanzados utilizan todo lo que ha aprendido hasta ahora en este libro: las estrategias
de muestreo para interpretar la confusión que aprendió en el Capítulo 3, los métodos para consultar las diferentes capas de
sus modelos que aprendió en el Capítulo 4 y las combinaciones de técnicas que aprendió en la primera parte de este capítulo.
Usando todas estas técnicas, puede construir un nuevo modelo con la tarea de predecir dónde ocurre la mayor
incertidumbre. Primero, a modo de repaso, recuerde la descripción del Aprendizaje por Transferencia del Capítulo 1, que se
repite aquí en la Figura [Link]:
155
Figura [Link]: Un ejemplo de aprendizaje por transferencia. El modelo predice una etiqueta como "A", "B", "C" o "D" y un
conjunto de datos separado con las etiquetas "W", "X", "Y" y "Z". Al reentrenar solo la última capa del modelo y usar muchos
menos elementos etiquetados por humanos que si estuviéramos entrenando un modelo desde cero, el modelo ahora puede
predecir las etiquetas "W", "X", "Y" y "Z".
156
En el ejemplo de la Figura [Link], puede ver cómo se puede entrenar un modelo en un conjunto de etiquetas y se
puede volver a entrenar en otro conjunto de etiquetas manteniendo la misma arquitectura y “congelando” parte del
modelo, solo volviendo a entrenar la última capa en este caso.
Existen muchas más maneras de utilizar el aprendizaje por transferencia y los modelos contextuales para el
aprendizaje automático con intervención humana (HTA), y se dedican varios capítulos al respecto más adelante en
el libro. Los ejemplos de este capítulo serán variaciones del tipo de aprendizaje por transferencia de la Figura [Link].
Las nuevas etiquetas del aprendizaje por transferencia pueden ser de cualquier categoría que desee. Esto incluye
información sobre la tarea en sí. Esta es la idea central del Aprendizaje por Transferencia Activo: puede usar el
aprendizaje por transferencia para preguntarle a su modelo dónde se confunde, haciéndole predecir sus propios errores.
errores.
La figura [Link] muestra este proceso:
157
Figura 5. ATL: Aprendizaje por Transferencia Activa. El modelo predice los elementos de validación y los clasifica como "Correctos" o "Incorrectos"
según su clasificación. La última capa del modelo se reentrena para predecir si los elementos son "Correctos" o "Incorrectos", convirtiendo
así ambos elementos en nuevas etiquetas.
1. Aplique el modelo a un conjunto de datos de validación y capture qué elementos de validación se clasificaron correctamente
y cuáles no. Estos son sus nuevos datos de entrenamiento: sus elementos de validación.
Ahora tiene una etiqueta adicional de “correcto” o “incorrecto”.
158
2. Cree una nueva capa de salida para el modelo y entrene esa nueva capa en su nuevo entrenamiento.
datos, prediciendo sus nuevas etiquetas “correctas”/”incorrectas”.
3. Ejecute sus elementos de datos sin etiquetar a través del nuevo modelo y tome una muestra de los elementos que están
se predice que es “incorrecto” con el máximo nivel de confianza.
Ahora tiene una muestra de elementos que su modelo predice como los que tienen más probabilidades de estar
¡es incorrecto y por lo tanto se beneficiará de una etiqueta humana!
Las formas más sencillas de Aprendizaje por Transferencia Activa se pueden construir con los componentes básicos del código que
ya has aprendido. Para implementar la arquitectura en [Link], podemos crear la nueva capa como su propio modelo y luego usar la
capa oculta final como sus características.
Aquí están los tres pasos anteriores, implementados en PyTorch.
Primero, aplique el modelo a un conjunto de datos de validación y capture qué elementos de validación se clasificaron
correctamente y cuáles no. Estos son sus nuevos datos de entrenamiento: sus elementos de validación.
tener una etiqueta adicional de “Correcto” o “Incorrecto”:
id = artículo[0] texto
= artículo[1] etiqueta =
artículo[2]
vector_de_características = método_de_características(texto)
oculto, logits, log_probs = modelo(vector_de_características, devolver_todas_las_capas=Verdadero)
item_hidden_layers[id] = oculto #A
si elemento[3] == "visto":
predicciones_correctas.append(elemento) #B
elif(etiqueta=="1" y prob_related > 0,5) o (etiqueta=="0" y prob_related <= 0,5): predicciones_correctas.append(ítem) de lo contrario:
predicciones_incorrectas.append(ítem)
#DO
A: Guarde la capa oculta de este elemento para utilizarla más adelante en nuestro nuevo modelo.
B: El artículo se predijo correctamente, por lo que recibe una etiqueta de "correcto" en nuestro nuevo modelo
C: El artículo se predijo incorrectamente, por lo que recibe una etiqueta "incorrecta" en nuestro nuevo modelo
159
En segundo lugar, cree una nueva capa de salida para el modelo entrenado con sus nuevos datos de entrenamiento,
prediciendo sus nuevas etiquetas "correctas"/"incorrectas":
=0
correct_ids = {} para el
elemento en predicciones_correctas:
correct_ids[item[0]] = True datos_de_época
= predicciones_correctas[:seleccionar_por_época] datos_de_época +=
predicciones_incorrectas[:seleccionar_por_época] shuffle(datos_de_época)
modelo_correcto.grado_cero()
log_probs = modelo_correcto(característica_vec)
# Calcular la función de pérdida, realizar un pase hacia atrás y actualizar el gradiente loss =
loss_function(log_probs, target) [Link](retain_graph=True)
[Link]()
#A: El código para el entrenamiento es muy similar a los demás en este libro.
#B: Aquí, usamos la capa oculta del modelo original como nuestro vector de características
Por último, ejecute los elementos de datos sin etiquetar a través del nuevo modelo y muestree los elementos que se predice
que son “incorrectos” con la mayor confianza.
transferencia_activa_profunda_preds = []
160
vector_de_características = método_de_características(texto) #B
oculto, logits, log_probs = modelo(vector_de_características, devolver_todas_las_capas=Verdadero)
# usa la capa oculta del modelo principal como entrada para el modelo que predice logits correctos/erróneos, log_probs =
correct_model(hidden, return_all_layers=True) #DO
si(etiqueta == "0"):
prob_correct = 1 prob_correct
devolver deep_active_transfer_preds[:número:]
#A: El código para la evaluación es muy similar a los demás en este libro.
#B: Primero necesitamos obtener la capa oculta de nuestro modelo original
#C: Luego usamos esa capa oculta como vector de características para nuestro nuevo modelo
Si está interesado en la tarea de clasificación de texto de respuesta a desastres, pruébela con este nuevo método de aprendizaje
por transferencia activa:
Como puede ver en este código, no modificamos nuestro modelo original para predecir si un mensaje está relacionado con la
respuesta a desastres. En lugar de reemplazar la capa final de ese modelo, añadimos una nueva capa de salida sobre el modelo
existente. Como alternativa, podría reemplazar la capa final, con el mismo resultado.
Elegí esta arquitectura porque no es destructiva: el modelo antiguo aún permanece. Esta
Ayuda a evitar errores no deseados cuando aún se desea utilizar el modelo original, ya sea en producción o para otras estrategias
de muestreo. Además, evita la necesidad de memoria adicional para tener dos copias del modelo completo en paralelo. Crear una
nueva capa o copiar y modificar el modelo son equivalentes, por lo que su elección dependerá de sus circunstancias particulares.
Puedes ver todo este código en el mismo archivo que los métodos anteriores en este capítulo:
aprendizaje_activo_avanzado.py
No es necesario limitar el Aprendizaje por Transferencia Activa a una sola capa nueva ni construir solo sobre la última capa oculta.
Como muestra la Figura [Link], también se pueden construir varias capas nuevas que se conectan directamente con cualquier
capa oculta.
161
Figura [Link]: Arquitecturas de Aprendizaje por Transferencia Activa más complejas. Dos arquitecturas diferentes utilizan el aprendizaje
por transferencia activa para generar una predicción correcta/incorrecta. El ejemplo superior es una repetición de la Figura [Link], con
una sola neurona en la nueva capa de salida. El ejemplo inferior es una arquitectura más compleja, donde también hay una nueva capa
oculta que se conecta con varias capas ocultas existentes.
La extensión a la arquitectura más complicada de la Figura [Link] solo requiere unas pocas líneas
de código adicional.
En primer lugar, el nuevo modelo para predecir si es "correcto" o "incorrecto" necesitará una capa oculta. En segundo lugar, ese
nuevo modelo tomará sus características de múltiples capas ocultas. Simplemente se pueden anexar los vectores de las diferentes capas
162
Si ya está familiarizado con los modelos contextuales para PNL o con los modelos convolucionales para visión por
computadora, entonces este es un proceso familiar para usted: está extrayendo las activaciones de neuronas de varias partes
de su red y aplanándolas en una característica larga.
vector.
Sin embargo, el hecho de poder construir un modelo más complejo no significa que deba construirlo. Si no dispone de
muchos datos de validación, es más probable que sobreajuste un modelo más complejo. Use su intuición para determinar la
complejidad necesaria de su modelo, basándose en lo que normalmente construiría para esa cantidad de datos para una tarea
de predicción binaria.
El aprendizaje por transferencia activa tiene algunas propiedades interesantes que lo hacen adecuado para una amplia gama
de problemas:
1. Estás reutilizando tus capas ocultas, por lo que estás construyendo modelos directamente basados en tus
Estado actual de la información del modelo.
2. No necesitas demasiados elementos etiquetados para que sea un modelo efectivo, especialmente si solo estás
reentrenando la última capa (útil si tus datos de validación no son muy grandes).
3. Es rápido de entrenar, especialmente si solo estás reentrenando la última capa.
4. Funciona con diversas arquitecturas. Se pueden predecir etiquetas a nivel de documento/imagen, objetos dentro de una
imagen o secuencias de texto. Para todos estos casos de uso, se puede añadir una o más capas finales para predecir
"correcto"/"incorrecto". (Más información sobre diferentes casos de uso del aprendizaje activo en el siguiente capítulo).
El quinto punto es especialmente útil. Recordemos que, con los valores atípicos basados en modelos, era necesario cuantificar
la activación con los datos de validación, ya que algunas neuronas podían tener una activación promedio arbitrariamente mayor
o menor. Resulta útil poder simplemente pasar la información a otra capa de neuronas e indicarle que determine exactamente
qué ponderación aplicar a la activación de cada neurona existente.
1. Al igual que otras técnicas de muestreo de incertidumbre, puede centrarse demasiado en una parte del espacio de
características y, por lo tanto, carece de diversidad.
2. Puede sobreajustar sus datos de validación. Si no hay muchos elementos de validación, es posible que su modelo para
predecir la incertidumbre no se generalice más allá de sus datos de validación a los datos sin etiquetar.
El primer problema puede abordarse parcialmente sin etiquetas humanas adicionales, algo que aprenderá más adelante en
este capítulo. Esta es una de las mayores ventajas de este enfoque, en comparación con otros algoritmos de muestreo por
incertidumbre.
163
El problema de sobreajuste también se puede diagnosticar con relativa facilidad, ya que se manifiesta como una
alta confianza en que un elemento es un error. Por ejemplo, si tiene una predicción binaria para su modelo principal, y
este tiene un 95 % de confianza en que un elemento se clasificó incorrectamente, entonces su modelo principal debería
haberlo acertado desde el principio.
Hay dos maneras de evitar el sobreajuste. La primera es añadir una capa de exclusión antes de la capa final. Al
entrenar el modelo, esto evitará el sobreajuste. Al aplicar el modelo, la capa de exclusión puede generar un rango de
confianzas (también conocido como muestreo de Monte Carlo), lo cual es una ventaja adicional. El segundo método
para evitar el sobreajuste es construir varios modelos con diferentes datos de validación. Si se extraen los datos de
validación aleatoriamente de los elementos etiquetados, este es un buen método. Se puede repetir el proceso de
construcción del modelo con diferentes datos hasta obtener un modelo que claramente no presente sobreajuste, o bien
construir varios modelos y promediarlos en lugar de construir un solo modelo de predicción de incertidumbre.
La Figura [Link] muestra el proceso y la arquitectura del aprendizaje de transferencia activa representativa, y
muestra cómo puede volver a entrenar su modelo para predecir si los elementos sin etiquetar se parecen más a sus
datos de entrenamiento actuales o más al dominio de aplicación de su modelo:
164
Figura 5. RATL: Aprendizaje por Transferencia Activa para Muestreo Representativo. Podemos construir un modelo para muestrear los
elementos más diferentes a los datos de entrenamiento actuales. Para empezar, tomamos datos de validación de la misma distribución que
los datos de entrenamiento y les asignamos la etiqueta "Entrenamiento". Luego, tomamos datos sin etiquetar de nuestro dominio objetivo y les
asignamos la etiqueta "Aplicación". Entrenamos una nueva capa de salida para predecir las etiquetas de Entrenamiento/Aplicación, dándole
acceso a todas las capas del modelo. Después, aplicamos esto a los datos sin etiquetar (ignorando los elementos sin etiquetar que acabamos de...
165
entrenados) y muestrear los elementos que se predicen con mayor confianza como "Aplicación".
Como muestra la Figura [Link], existen pocas diferencias con el aprendizaje por transferencia activa para el muestreo de
incertidumbre.
Primero, se ignora el modelo original. Los datos de validación y los datos sin etiquetar pueden etiquetarse directamente. Los
datos de validación provienen de la misma distribución que los datos de entrenamiento, por lo que se les asigna la etiqueta
"Entrenamiento". Los datos sin etiquetar del dominio de destino se etiquetan como "Aplicación".
etiqueta. Luego, el modelo se entrena con estas etiquetas.
En segundo lugar, el nuevo modelo siempre debe tener acceso a todas las capas, incluida la de entrada. Si se está adaptando
a un nuevo dominio, es posible que tenga muchas características que aún no existen en sus datos de entrenamiento. En estos
casos, la única información que contiene su modelo actual es que estas características existen en la capa de entrada como
características, pero no han contribuido a ninguna otra capa del modelo anterior. Por lo tanto, el tipo de arquitectura más compleja
capturará
Esta información.
Al igual que el muestreo representativo del Capítulo 4 puede ser adaptativo, el aprendizaje por transferencia activa para el muestreo
representativo también puede ser adaptativo, lo que significa que puede tener múltiples iteraciones dentro de un ciclo de
aprendizaje activo.
Esto se muestra en la Figura [Link]:
166
Figura 5. ARATL: Aprendizaje por Transferencia Activa para Muestreo Representativo Adaptativo. Dado que los elementos muestreados
recibirán posteriormente una etiqueta humana, podemos asumir que se incorporan a los datos de entrenamiento sin necesidad de conocer dicha
etiqueta. Para empezar, tomamos datos de validación de la misma distribución que los datos de entrenamiento y les asignamos la etiqueta
"Entrenamiento". A continuación, tomamos datos sin etiquetar de nuestro dominio objetivo y les asignamos la etiqueta "Aplicación".
Entrenamos una nueva capa de salida para predecir las etiquetas de Entrenamiento/Aplicación, dándole acceso a todas las capas del modelo.
Después, aplicamos esto a los datos sin etiquetar (ignorando los elementos sin etiquetar con los que acabamos de entrenar) y muestreamos
los elementos que se predicen con mayor certeza como "Aplicación". Podemos asumir que esos elementos recibirán posteriormente una
etiqueta y se incorporarán a los datos de entrenamiento. Por lo tanto, podemos tomar esos elementos muestreados, cambiar su etiqueta
de "Aplicación" a "Entrenamiento" y, a continuación, reentrenar nuestra(s) capa(s) final(es) con el nuevo conjunto de datos.
167
El proceso de la Figura [Link] comienza como en la versión no adaptativa: creamos nuevas capas de salida para clasificar si un
elemento se encuentra en los datos de entrenamiento existentes o en el dominio objetivo, muestreando los elementos que se predicen
con mayor certeza como "Aplicación". Para extenderlo a la estrategia adaptativa, podemos asumir que esos elementos muestreados
posteriormente recibirán una etiqueta y pasarán a formar parte de los datos de entrenamiento. Por lo tanto, podemos tomar esos
elementos muestreados, cambiar su etiqueta de "Aplicación" a "Entrenamiento" y luego reentrenar nuestras capas finales con el
nuevo conjunto de datos.
Este proceso se puede repetir hasta que no haya más predicciones de confianza para los elementos del dominio “Aplicación”, o
hasta que haya alcanzado el número máximo de elementos que desea muestrear en esta iteración de Aprendizaje Activo.
5.3.3 Los pros y contras del aprendizaje por transferencia activa para el muestreo representativo
Las ventajas y desventajas del aprendizaje por transferencia activa para muestreo representativo son las mismas que para los
métodos de muestreo representativo más simples del Capítulo 4. En comparación con esos métodos, las ventajas pueden ser más
positivas porque se utilizan modelos más potentes, pero algunas de las desventajas, como el peligro de sobreajuste, se convierten en
un error potencial mayor.
Para resumir esas fortalezas y debilidades de nuevo: el muestreo representativo es muy efectivo cuando se tienen todos los
datos en un nuevo dominio, pero si se está adaptando a datos futuros que aún no se han muestreado, el modelo puede quedar
anclado en el pasado. Este método también es el más propenso al ruido de todas las estrategias de aprendizaje activo de este libro.
Si tiene datos nuevos que son texto corrupto; texto de un idioma que no forma parte de su dominio objetivo; archivos de imagen
corruptos; o artefactos que surgen del uso de diferentes cámaras, etc.; entonces cualquiera de estos factores podría verse "diferente"
de sus datos de entrenamiento actuales, pero no de una manera interesante.
forma.
Finalmente, el aprendizaje por transferencia activa para el muestreo representativo puede hacer más daño que bien si lo aplica
en iteraciones después de haber utilizado el muestreo por incertidumbre, porque entonces su dominio de aplicación tendrá más
elementos fuera del límite de decisión que su entrenamiento.
datos.
Por estos motivos, le recomiendo que solo implemente el aprendizaje por transferencia activa para muestreo representativo en
combinación con otras estrategias de muestreo, tal como aprendió en la primera sección de este capítulo.
El aprendizaje por transferencia activa para muestreo adaptativo (ATLAS) es una excepción, que permite el muestreo adaptativo
dentro de una iteración, sin tener que usar también la agrupación en clústeres para garantizar la diversidad, como aprendió
anteriormente en este capítulo.
168
ATLAS se presenta aquí con la salvedad de que es el algoritmo menos probado de este libro en el momento de su
publicación. Inventé ATLAS a finales de 2019 cuando me di cuenta de que el Aprendizaje por Transferencia Activa tenía
ciertas propiedades que podían aprovecharse para hacerlo adaptativo. Ha tenido éxito con los datos con los que he
estado experimentando, pero aún no se ha implementado ampliamente en la industria ni se ha probado bajo revisión
por pares en el ámbito académico. Esperemos que esto cambie poco después de la publicación de este capítulo, así
que busque artículos e informes sobre Aprendizaje por Transferencia Activa publicados después de este libro y
comentarios sobre la versión electrónica en [Link].
Al igual que con cualquier método nuevo, prepárese para experimentar con él para asegurarse de que sea adecuado
para sus datos.
5.4.1 Cómo hacer que el muestreo de incertidumbre sea adaptativo al predecir la incertidumbre
Como aprendiste en el Capítulo 3, la mayoría de los algoritmos de Muestreo por Incertidumbre presentan el mismo
problema: pueden muestrear solo una parte del espacio de características, lo que significa que todas las muestras son
similares en una iteración del Aprendizaje Activo. Si no tienes cuidado, puedes terminar muestreando solo elementos
de una pequeña parte de tu espacio de características.
Como aprendiste anteriormente en este capítulo, puedes abordar esto combinando la agrupación en clústeres y el
muestreo por incertidumbre. Esta sigue siendo la forma recomendada de empezar a pensar en cómo iniciar tu estrategia
de aprendizaje activo. Puedes probar ATLAS una vez que tengas esa línea base.
Sin embargo, hay dos propiedades interesantes del aprendizaje por transferencia activa para la incertidumbre
Muestreo que podemos explotar:
En conjunto, esto significa que podemos asumir que nuestros elementos muestreados serán correctos posteriormente,
incluso si aún no conocemos las etiquetas. Esto se muestra en la Figura [Link]:
169
Figura 5. ATLAS: Aprendizaje por Transferencia Activa para Muestreo Adaptativo. Dado que los elementos muestreados recibirán
posteriormente una etiqueta humana, podemos asumir que el modelo los etiquetará correctamente, ya que los modelos suelen ser
más precisos con los elementos reales con los que se entrenaron. Para empezar, el modelo predice los elementos de validación y
los clasifica como "Correctos" o "Incorrectos" según su clasificación correcta. La última capa del modelo se reentrena para predecir
si los elementos son "Correctos" o "Incorrectos", convirtiendo ambos grupos en nuevas etiquetas. Posteriormente, aplicamos esto a
los datos sin etiquetar, prediciendo si cada elemento será "Correcto" o "Incorrecto". A continuación, se pueden muestrear los
elementos con mayor probabilidad de ser "Incorrectos". Podemos asumir que esos elementos recibirán posteriormente una etiqueta
y pasarán a formar parte de los datos de entrenamiento, que serán etiquetados correctamente por un modelo que realizó
predicciones con esos mismos datos. Entonces, podemos tomar esos elementos muestreados, cambiar su etiqueta de
“Incorrecto” a “Correcto” y luego volver a entrenar nuestras capas finales en el nuevo conjunto de datos.
170
El proceso de la Figura [Link] comienza como en la versión no adaptativa: creamos nuevas capas de salida para
clasificar si un elemento es correcto o incorrecto, muestreando los elementos que se predicen con mayor certeza como
"Incorrectos". Para extenderlo a la estrategia adaptativa, podemos asumir que esos elementos muestreados se
etiquetarán posteriormente y pasarán a formar parte de los datos de entrenamiento, y se predecirán correctamente tras
recibir una etiqueta (sea cual sea esta). Por lo tanto, podemos tomar esos elementos muestreados, cambiar su etiqueta
de "Incorrecto" a "Correcto" y, a continuación, reentrenar nuestras capas finales con el nuevo conjunto de datos.
Este proceso se puede repetir hasta que no haya más predicciones de confianza para los elementos del dominio
“Incorrecto”, o hasta que haya alcanzado el número máximo de elementos que desea muestrear en esta iteración de
Aprendizaje Activo.
Solo se necesitan 10 líneas de código para implementar ATLAS como un contenedor para el aprendizaje activo.
Función de muestreo de incertidumbre:
Argumentos de palabras
clave: modelo: modelo de aprendizaje automático del cual obtener predicciones para determinar la incertidumbre
datos_sin_etiquetar: datos que aún no tienen una etiqueta
datos_de_validación: datos con una etiqueta que no está en el conjunto de entrenamiento, para usarse en el aprendizaje
por transferencia
feature_method el método para extraer características de sus datos number número de
elementos a muestrear number_per_iteration
número de elementos a muestrear por iteración limit toma una muestra solo de esta
cantidad de elementos para un muestreo más rápido (1 = sin límite)
"""
devolver muestras_atlas
La línea clave del código es donde se agrega una copia del artículo muestreado a los datos de valoración después de
cada ciclo.
171
Si está interesado en la tarea de clasificación de texto de respuesta a desastres, pruébela con esto
Nuevo método para una implementación de ATLAS:
> python advanced_active_learning.py atlas=100 verbose
Dado que seleccionamos 10 elementos por defecto (número por iteración = 10) y queremos un total de 100,
debería ver el modelo reentrenarse 10 veces durante el proceso de muestreo. Experimente con números más
pequeños por iteración para una selección más diversa, pero que requiera más tiempo.
Es hora de volver a capacitarse.
Aunque ATLAS solo tiene un paso adicional respecto a la arquitectura de Aprendizaje por Transferencia
Activa para Muestreo de Incertidumbre que aprendió inicialmente, puede llevar un tiempo familiarizarse con
ella. En el aprendizaje automático, no hay muchos casos en los que se pueda etiquetar con seguridad un
elemento sin etiquetar sin revisión humana. La clave está en que no etiquetamos nuestro conjunto de datos
real; simplemente sabemos que la etiqueta llegará más adelante.
Las otras desventajas se deben principalmente a que se trata de un método no probado y a su arquitectura
compleja. Podría requerirse un ajuste considerable de parámetros para construir los modelos más precisos
para predecir "Correcto/Incorrecto". Si no se puede automatizar dicho ajuste y se necesita hacerlo manualmente,
no se trata de un proceso adaptativo verdaderamente automatizado. Dado que los modelos son una tarea
binaria simple y no se reentrenan todas las capas, no deberían requerir un ajuste excesivo de parámetros. Sin
embargo, este enfoque de aprendizaje activo es demasiado nuevo como para saber la magnitud del problema
que esto podría representar.
172
173
174
175
Como aprendiste en este capítulo, existe poca investigación sobre las técnicas avanzadas de aprendizaje
activo, donde se utiliza un método para muestrear una gran cantidad de elementos y luego un segundo método
para refinar la muestra. Si bien los artículos académicos sobre la combinación del muestreo por incertidumbre
y el muestreo por diversidad se centran en métricas individuales que los combinan, en la práctica se pueden
simplemente encadenar los métodos: aplicar un método para obtener una muestra grande y luego refinarla con
otro método. Los artículos académicos tienden a comparar únicamente las matrices combinadas con los
métodos individuales de forma aislada, por lo que no te darán una idea de si son mejores que simplemente
encadenar los diferentes métodos, como se explicó en la primera sección de este capítulo.
Los métodos de Aprendizaje por Transferencia Activa de este capítulo son más avanzados que los métodos
que se presentan actualmente en cualquier artículo académico o especializado en la industria. He impartido
charlas sobre estos métodos durante el último año, pero todo el contenido de dichas charlas también aparece
en este capítulo, por lo que aún no hay otro lugar donde leer sobre ellos. No descubrí la posibilidad de extender
el Aprendizaje por Transferencia Activa al Aprendizaje Adaptativo (ATLAS) hasta finales de 2019, mientras
creaba la biblioteca de PyTorch que acompaña a este capítulo. Tras la publicación de este libro, busque
artículos más recientes que citen ATLAS para obtener la investigación más actualizada.
Si te gusta que ATLAS convierta el aprendizaje activo en un problema de aprendizaje automático, entonces
existe una larga historia de artículos de investigación interesantes. Desde que existe el aprendizaje activo, se
ha reflexionado sobre cómo aplicar el aprendizaje automático al proceso de muestreo de elementos para su
revisión humana. Para un buen artículo reciente, recomiendo...
Ksenia Konyushkova, Sznitman Raphael y Pascal Fua. 2017. Aprendizaje activo.
de Datos. NeurIPS'17
[Link]
Busque los trabajos más citados en este artículo y los trabajos más recientes que lo citan, sobre enfoques de
aprendizaje activo que utilizan aprendizaje automático. Para un análisis más profundo, consulte la tesis doctoral
de Ksenia Konyushkova, primera autora del artículo de NeurIPS, que incluye una revisión bibliográfica
exhaustiva.
5.6 Resumen
Hay muchas maneras de combinar el muestreo por incertidumbre y el muestreo por diversidad. Esto le
ayudará a optimizar su estrategia de aprendizaje activo para muestrear los elementos de anotación
que mejoren la precisión de su modelo.
La combinación del muestreo por incertidumbre y la agrupación en clústeres es la técnica de aprendizaje
activo más utilizada. Es relativamente fácil de implementar después de todo lo aprendido en este libro,
por lo que suele ser un buen punto de partida para explorar estrategias de aprendizaje activo más
avanzadas.
176
El Aprendizaje por Transferencia Activa para Muestreo con Incertidumbre permite crear un modelo para
predecir si los elementos sin etiquetar se etiquetarán correctamente, utilizando el modelo existente como
punto de partida para el modelo de predicción de incertidumbre. Esto permite utilizar el aprendizaje
automático en el proceso de Muestreo con Incertidumbre. El Aprendizaje por
Transferencia Activa para Muestreo Representativo permite crear un modelo para predecir si los elementos
sin etiquetar se asemejan más a su dominio objetivo que a sus datos de entrenamiento existentes. Esto
permite utilizar el aprendizaje automático en el proceso de Muestreo Representativo.
• El aprendizaje por transferencia activa para muestreo adaptativo (ATLAS) le permite ampliar el aprendizaje
por transferencia activa para muestreo por incertidumbre de modo que no muestree en exceso elementos
de un área de su espacio de características, combinando aspectos del muestreo por incertidumbre y el
muestreo por diversidad en un único modelo de aprendizaje automático.
177
6
Aplicando el aprendizaje activo a
Diferentes tareas de aprendizaje automático
• Implementación de métodos para calcular la incertidumbre y la diversidad para tareas de visión artificial.
• Comprender los métodos para calcular la incertidumbre y la diversidad para otros aprendizajes automáticos.
• Decidir la cantidad correcta de muestras por iteración para el análisis activo avanzado.
Técnicas de aprendizaje.
Los últimos tres capítulos presentan ejemplos y algoritmos centrados en predicciones a nivel de documento o de imagen. En este
capítulo, aprenderá cómo los principios del Muestreo por Incertidumbre y el Muestreo por Diversidad se pueden aplicar directamente
a tareas más complejas de Visión Artificial, como la detección de objetos y la segmentación semántica (etiquetado de píxeles), y a
tareas más complejas de Procesamiento del Lenguaje Natural, como el Reconocimiento de Entidades Nombradas y la Generación
de Lenguaje Natural. Los principios generales son los mismos y, en muchos casos, no se requiere ningún cambio. Las principales
diferencias radicarán en cómo se muestrean los elementos seleccionados mediante Aprendizaje Activo, lo cual dependerá del
problema real que se intente resolver.
La mayoría de los sistemas de aprendizaje automático del mundo real utilizan tareas más complejas que las predicciones a
nivel de documento o imagen. Incluso los problemas que parecen sencillos tienden a requerir técnicas avanzadas de aprendizaje
activo una vez que se profundiza en ellos. Por ejemplo, imagine que...
178
Están desarrollando un sistema de visión artificial para la agricultura. Disponen de tractores inteligentes con cámaras
que distinguen las plántulas de la maleza para que puedan aplicar fertilizantes y herbicidas de forma eficiente y
precisa. Si bien desherbar los campos es una de las tareas más comunes y repetitivas de la historia de la
humanidad, se necesita la detección de objetos dentro de una imagen, no etiquetas a nivel de imagen, para
automatizar esta tarea.
Además, su modelo presenta diferentes tipos de confusión. En algunos casos, sabe que un objeto es una
planta, pero no puede determinar si es una plántula o una maleza. En otros casos, no está seguro de si un nuevo
objeto es una planta, ya que todo tipo de objetos pequeños pueden llegar a un campo. Por lo tanto, necesita el
Muestreo por Incertidumbre para distinguir entre plántula y maleza, combinado con el Muestreo por Diversidad para
identificar nuevos objetos.
Finalmente, tu cámara captura hasta 100 plantas en cada imagen. Por lo tanto, debes decidir cómo resolver la
confusión a nivel de imagen con la confusión a nivel de objeto. ¿Priorizas la revisión humana cuando un objeto en
la imagen es muy confuso o cuando 100 objetos son un poco... ?
¿Confuso? ¿Priorizas la etiqueta correcta o la precisión al identificar el contorno del objeto?
Cualquiera de estos tipos de error podría ser el más importante para el problema que se está abordando, por lo que
deberá decidir cómo asignar su problema real a la estrategia de muestreo y evaluación adecuada. Por lo tanto,
aunque se esté automatizando una de las tareas más comunes y repetitivas de la historia de la humanidad, se
necesitan técnicas avanzadas de aprendizaje activo para resolver el problema.
Para estos ejemplos, conviene emplear estrategias de aprendizaje activo que también se centren en las áreas
que le interesan. A veces, esto es gratuito: sus modelos se centran en las áreas que le interesan, por lo que a
menudo no necesitará modificar los enfoques aprendidos en el etiquetado de imágenes y documentos. En otros
casos, deberá recortar o enmascarar sus datos para las áreas que le interesan y tener cuidado de no introducir
sesgos. En las siguientes secciones de este capítulo, repasaremos diferentes tipos de problemas de aprendizaje
automático y cómo adaptar las mismas estrategias de aprendizaje activo que ya ha aprendido.
La Figura 6.1 ilustra un problema para identificar la incertidumbre y la diversidad en tareas de detección de
objetos. Supongamos que se trata de una tarea de detección de objetos que utiliza la misma imagen de ejemplo del
Capítulo 3, pero a diferencia del Capítulo 3, donde solo queríamos predecir una etiqueta para la imagen, ahora
queremos identificar objetos específicos dentro de una imagen y colocar un cuadro delimitador alrededor de su borde.
179
imágenes. Como muestra la Figura 6.1, el objeto que nos interesa, la bicicleta, es solo una pequeña fracción de los píxeles del
cuadro delimitador que la rodea.
Figura 6.1: Ilustración del problema de identificar la incertidumbre y la diversidad en tareas de detección de objetos. El objeto
que nos interesa, la bicicleta, representa solo un pequeño porcentaje de los píxeles del cuadro delimitador que la rodea.
Incluso una cantidad modesta de contexto tiene el doble de píxeles, y la imagen en su conjunto tiene diez veces más
píxeles que el cuadro delimitador. Por lo tanto, si intentáramos calcular la incertidumbre o la diversidad en toda la imagen, nos
arriesgaríamos a centrarnos en mucha información irrelevante.
El borde de un objeto suele ser donde se encuentra la mayor cantidad de información, pero aumentar el contexto en tan solo un
20 % casi duplicará la cantidad total de píxeles que observamos. La imagen en su conjunto tiene diez veces la cantidad de píxeles
del cuadro delimitador. Por lo tanto, si intentáramos calcular la incertidumbre o la diversidad en toda la imagen, nos arriesgaríamos
a centrarnos en mucha información irrelevante. Por lo tanto, si bien seguiremos utilizando las técnicas de muestreo por
incertidumbre y muestreo por diversidad que aprendimos en los dos capítulos anteriores, queremos centrar esa incertidumbre y
diversidad en las áreas que más nos interesan.
El resto de esta sección explicará cómo calcular la incertidumbre y la diversidad. La incertidumbre se obtiene con bastante
facilidad a partir de los modelos: la mayor incertidumbre tenderá a estar en los objetos y no en el fondo. Para la diversidad,
conviene centrarse principalmente en la diversidad en
áreas que también son inciertas.
180
En primer lugar, tienes dos tareas aquí: detección de objetos y etiquetado de objetos, y hay diferentes tipos de incertidumbre y
diversidad que se deben aplicar a ambas:
Si obtiene una puntuación de confianza de su algoritmo de detección de objetos, entonces: su puntuación de confianza
probablemente solo corresponda a la confianza de la etiqueta del objeto. La gran mayoría de los algoritmos de detección de
objetos actuales utilizan CNN y se basan en la regresión para obtener el cuadro delimitador correcto. Todos devuelven la confianza
de la etiqueta, pero pocos devuelven una puntuación de la regresión que obtuvo el cuadro delimitador.
La precisión de la etiqueta se puede determinar exactamente de la misma manera que se hizo para la precisión a nivel de
imagen y de documento: puede observar alguna variación en el puntaje F o el AUC como aprendió en los capítulos anteriores.
La intersección sobre unión (IoU) es la métrica más común para determinar la precisión de la localización. Si ha trabajado
anteriormente en visión artificial, ya la conoce. La Figura 6.2 muestra un ejemplo de intersección sobre unión (IoU) que muestra
que la precisión se calcula como el área donde se intersecan los cuadros delimitadores predichos y reales, dividida entre el área
total cubierta por ambos.
181
Figura 6.2: Ejemplo de Intersección sobre Unión (IoU) para medir la precisión de un cuadro delimitador. La precisión se
calcula como el área que interseca el cuadro delimitador previsto con el cuadro delimitador real, dividida entre el área de
unión de ambos cuadros.
La intersección sobre la unión también se utiliza para el aprendizaje activo para la detección de objetos, por lo que es importante
aprender (o refrescar sus conocimientos) antes de pasar al muestreo de incertidumbre y al muestreo de diversidad para la
detección de objetos.
En términos de las métricas de precisión que ya hemos analizado, IoU es más estricto porque...
tenderá a tener valores más bajos con los mismos datos. Piense en el IoU en términos de la cantidad de área.
182
Al igual que el FScore, el IoU combina ambos tipos de errores: falsos positivos y falsos negativos. El IoU
siempre es menor que el FScore, excepto en el caso trivial de una precisión del 100 %.
FScore tiende a ser más popular en el procesamiento del lenguaje natural, mientras que IoU se utiliza casi
exclusivamente en visión artificial. Encontrará AUC en la literatura para ambos, aunque no se utiliza con la
frecuencia necesaria en el procesamiento del lenguaje natural y la visión artificial.
También encontrará la Precisión Media Promedio (mAP) en la literatura sobre Visión Artificial. Es un tipo
de curva diferente al AUC, pero con una idea similar. Para mAP, se clasifican los elementos por precisión y
luego se grafican por recuperación, creando una curva de precisiónrecuperación. La precisión promedio es el
área bajo esa curva. Esto requiere un umbral en el que un objeto es "correcto", que suele ser un IoU de 0,5 o
0,75. El cálculo exacto del umbral de la Precisión Media Promedio tiende a variar y a menudo se define
específicamente para diferentes conjuntos de datos y casos de uso. Para una tarea altamente calibrada como
la conducción autónoma, obviamente se necesitaría un IoU mucho mayor que 0,50 para que la predicción sea
"correcta". No es importante conocer ninguno de los cálculos de mAP de este libro: basta con que conozca
esta otra métrica de precisión común, específica de cada tarea.
Para el aprendizaje activo, generalmente conviene emplear una estrategia que utilice tanto la confianza de
localización como la confianza de etiqueta. Deberá determinar cuánto desea centrarse en cada una. Si bien la
precisión de la etiqueta y la precisión de IoU le ayudarán a determinar dónde necesita más atención, también
depende de la aplicación que esté desarrollando.
Por ejemplo, imagine que está implementando nuestro modelo de ejemplo para detectar peatones, coches,
bicicletas y otros objetos en la carretera. Si su aplicación es para predecir colisiones, la localización es
fundamental: no importa tanto si se equivoca en la etiqueta como si los límites de los objetos suelen diferir
unos pocos centímetros. Sin embargo, si su aplicación está diseñada para identificar diferentes volúmenes de
tráfico, los límites exactos de los objetos no son importantes, sino las etiquetas, ya que desea saber con
precisión cuántos coches, peatones, etc., se ven.
Por lo tanto, puede tener el mismo modelo implementado en el mismo lugar, pero dependiendo del caso
de uso, puede enfocar sus estrategias de aprendizaje activo y etiquetado de datos en la localización o
183
Confianza. Determine qué es lo más importante para su caso de uso y equilibre el enfoque de su estrategia de
aprendizaje activo en consecuencia.
Puede utilizar la confianza de la etiqueta para el muestreo de incertidumbre, tal como lo hizo para las etiquetas a
nivel de imagen en el Capítulo 3. Su modelo de detección de objetos proporcionará una distribución de probabilidad
y puede aplicar la confianza mínima, el margen de confianza, la relación de confianza, la entropía o un modelo de
conjunto para determinar su incertidumbre para la predicción de la etiqueta.
Para la confianza de localización, un modelo de conjunto es la mejor opción, ya que combina múltiples
predicciones deterministas en una sola que puede interpretarse como confianza. La Figura 6.3 muestra un ejemplo.
Existen dos enfoques: un conjunto real o el uso de pérdidas dentro de un modelo. Ambos son los mismos que
aprendió en el Capítulo 3.
184
Figura 6.3: Ejemplo de un mapa de calor de predicción para un objeto, que muestra baja variación (izquierda) y alta variación
(derecha). La alta variación evidencia una mayor incertidumbre en el modelo, por lo que el ejemplo de la derecha es un buen
candidato para la evaluación humana. Se pueden generar múltiples predicciones diferentes mediante modelos de conjunto:
obteniendo predicciones de múltiples modelos y modificando los parámetros, utilizando un subconjunto de características, un
subconjunto de elementos o introduciendo variación aleatoria en los diferentes modelos de alguna otra manera. Dentro de un
mismo modelo, también se pueden generar múltiples predicciones diferentes para un mismo elemento mediante una selección
aleatoria de neuronas para cada predicción (lo que se conoce como método de Monte Carlo Dropout). También se pueden combinar
ambos métodos: crear un conjunto de modelos y utilizar la técnica de Dropout para múltiples predicciones por modelo.
Para obtener un verdadero conjunto, se obtienen predicciones de múltiples modelos y se garantiza que esas predicciones varíen
mediante el uso de diferentes parámetros para diferentes modelos, el entrenamiento en un subconjunto de características para cada
modelo, el entrenamiento en un subconjunto de elementos para cada modelo o la introducción de una variación aleatoria en las
ejecuciones de entrenamiento de otras maneras, como cambiar el orden de los elementos de entrenamiento.
Para un solo modelo, se pueden generar múltiples predicciones diferentes simplemente utilizando un abandono en una selección
aleatoria de neuronas para cada predicción (también conocido como abandono de Monte Carlo).
185
Esto es más rápido y sencillo que crear varios modelos, y sorprendentemente efectivo considerando su simplicidad. También
se pueden combinar ambos métodos: entrenar varios modelos con diferentes parámetros y luego aplicarles abandonos.
La "Incertidumbre" se calcula a partir del IoU promedio de todas las predicciones. Esto, naturalmente, dará un rango [0,
1], por lo que no es necesario normalizarlo. Recuerde dividir por el número de modelos, no por el de predicciones. Algunos
modelos podrían no realizar ninguna predicción, y esto es importante: considere todas las no predicciones como IoU=0.
Ahora que tiene un puntaje de incertidumbre para cada cuadro delimitador, puede tomar muestras de ellos con
la mayor incertidumbre para la revisión humana.
Si está utilizando métodos de conjunto o abandonos para la localización, puede usarlos para
etiqueta de confianza, en lugar de o además de los otros métodos de muestreo de incertidumbre.
6.1.3 Muestreo de diversidad para la confianza en las etiquetas y la localización en la detección de objetos
Para el Muestreo de Diversidad, necesitamos resolver el problema que presentamos al principio de este capítulo: nos importa
más la diversidad de los objetos que la del fondo. La solución más sencilla es recortar las imágenes según los cuadros
delimitadores previstos y luego aplicar el Muestreo de Diversidad, pero existen variantes más sofisticadas que abordaremos
en esta sección.
Recuerde que en el capítulo anterior cubrimos tres tipos de muestreo de diversidad:
Para los valores atípicos basados en modelos y la diversidad del mundo real, no es necesario que hagas necesariamente
nada más allá de lo que ya aprendiste para las etiquetas a nivel de imagen:
1. Puede aplicar la detección de valores atípicos basada en modelos a un problema de detección de objetos de la misma
manera que la aplica a un problema de etiquetado de imágenes. 2. Puede
tomar muestras de la diversidad del mundo real en un problema de detección de objetos de la misma manera.
que muestreas para un problema de etiquetado de imágenes
Para los valores atípicos basados en modelos, las capas ocultas se centran tanto en el problema del etiquetado como en el
de la localización. Por lo tanto, las neuronas capturarán principalmente información sobre los objetos y las etiquetas. Se
pueden recortar las imágenes según los objetos predichos y luego buscar valores atípicos basados en modelos, pero la
pequeña cantidad de neuronas dedicadas al fondo podría ser interesante para la diversidad, por lo que se podría perder algo
en este caso.
Para el Muestreo de Diversidad, se aplican los mismos principios del Capítulo 4: deberá combinar todos los métodos de
Aprendizaje Activo para garantizar datos más equitativos en la demografía real. El contexto también puede ser importante en
este caso, ya que, si no tiene cuidado, puede modelar erróneamente el contexto de los objetos en lugar de los objetos en sí
(véase la pregunta "¿Su modelo realmente ignora el contexto?"). Para la detección de objetos, es recomendable asegurarse
de que sus datos intenten equilibrar cada tipo de objeto entre factores, incluyendo...
186
tipo de cámara, zoom, hora del día, clima, etc. Incluso en entornos altamente controlados, como las imágenes médicas,
he visto sistemas limitados por el entrenamiento con datos de solo una pequeña cantidad de pacientes y solo de un tipo
de máquina de imágenes, lo que introduce un sesgo no deseado en el mundo real.
Es cierto, pero a veces tu modelo podría estar usando información de fondo erróneamente. Por ejemplo, si solo tomaste
fotografías de bicicletas en carriles para bicicletas, entonces su modelo podría realmente estar prediciendo carriles para bicicletas y estar esencialmente
Ciego a las bicicletas en otros contextos. O podría depender de los carriles bici solo cuando estén presentes, lo que sigue siendo no
Ideal ya que no generaliza su conocimiento de las bicicletas en esos contextos a otros orígenes.
Hay otro ejemplo en un influyente artículo reciente sobre la interpretabilidad de los modelos, donde los creadores crearon lo que parecía un modelo preciso
para distinguir a los lobos de los perros esquimales,8 pero solo usaron fotos de lobos en la nieve y
Huskies no en la nieve. Demostraron que el modelo en realidad solo predecía si había nieve en el fondo y
¡No los animales reales! Este es un problema mayor con el etiquetado a nivel de imagen, porque con la detección de objetos también...
Forzando explícitamente al modelo a aprender el contorno del objeto en sí, lo que dificulta que el modelo se concentre en el
Antecedentes. Pero, el problema puede ocurrir hasta cierto punto en cualquier problema de aprendizaje automático donde exista un contexto que
Es necesario controlarlo.
La solución es un mejor muestreo para la diversidad del mundo real: garantizar que los contextos sean lo más diversos posible en todos los contextos.
Las etiquetas y los objetos que te interesan. Si te preocupa este problema con tu modelo, aquí te explicamos cómo...
diagnosticarlo: usar un método para descubrir qué píxeles son características importantes para sus predicciones (como LIME, el método en
el artículo sobre los huskies y los lobos, o la biblioteca de interpretabilidad de Captum, que está en PyTorch desde octubre de 2019) y luego
Mida qué porcentaje de píxeles quedan fuera de los cuadros delimitadores en sus datos de validación. Las imágenes con el
Las puntuaciones más altas son las que tienen más probabilidades de ser problemáticas: obsérvelas y vea si hay patrones en lo que se está enfocando
Para el Muestreo por Conglomerados y el Muestreo Representativo, la atención debe centrarse en los objetos en sí, no
en los fondos. Si el fondo constituye el 90 % de las imágenes, como en el ejemplo de la Figura 6.1 (que se repite en la
Figura 6.4), este influirá en el 90 % de lo que determina un conglomerado o es representativo. La Figura 6.1 también
presenta un objeto relativamente grande, que ocupa la mitad de la altura del marco. Sin embargo, en muchos casos, el
ejemplo se parecerá más al segundo de la Figura 6.4, donde el objeto ocupa menos del 1 % de los píxeles.
8 Marco Tulio Ribeiro, Sameer Singh y Carlos Guestrin. "¿Por qué debería confiar en ti?": Explicando las predicciones de cualquier clasificador.
KDD'16: [Link]
187
Figura 6.4: Ejemplo de un objeto, una bicicleta, en una imagen donde el 99 % de la imagen no es la bicicleta. La bicicleta y, a
grandes rasgos, el contexto capturado por la línea punteada verde deberían ser relevantes para identificar que se trata de una
bicicleta. Para algunas estrategias, como el Muestreo Representativo y la Agrupación en Clústeres, es necesario recortar o enmascarar
la imagen para identificar estas áreas.
En la Figura 6.4, solo la bicicleta en sí y, a grandes rasgos, el contexto representado por la línea punteada
verde deberían ser relevantes para identificar que el objeto es una bicicleta. Probablemente exista información
adicional que pueda ayudar a determinar la escala y el contexto en el que las bicicletas aparecen con mayor
frecuencia, pero no mucha.
Por lo tanto, el área alrededor de cada objeto predicho debe recortarse. Dado que su modelo no es 100 %
preciso, debe asegurarse de capturar el objeto. Use su
188
1. Recortar según un umbral determinado. Por ejemplo, crear el recorte más pequeño que capture el 90 %.
de los cuadros delimitadores previstos para un objeto.
2. Use cada casilla predicha para el mismo objeto y pondere cada una. Por ejemplo, aplique el Muestreo Representativo a cada
casilla predicha y luego promedie todo el Muestreo Representativo, donde el promedio ponderado se determina por el IoU
promedio.
de cada caja a todas las demás.
Se pueden ignorar los píxeles en lugar de recortar la imagen, lo que se denomina "enmascaramiento" en la literatura. Una "máscara"
para un modelo entrenado con píxeles de entrada puede considerarse como una omisión en la primera capa: se ignoran algunas
neuronas de entrada (píxeles).
Dependiendo de su caso de uso, podría querer recortar y redimensionar las imágenes. Si ha trabajado con visión artificial, ya
dispondrá de las herramientas adecuadas para hacerlo programáticamente. Por ejemplo, probablemente no sea importante que
nuestra bicicleta esté en la parte inferior de la foto, así que puede normalizar sus datos recortando cada predicción para que
represente la imagen completa. Podría normalizar aún más, escalando todas las imágenes de muestra para que tengan las mismas
dimensiones. Como regla general, tome la decisión de recortar o enmascarar según cómo desee codificar los datos para la agrupación
y el muestreo representativo:
1. Si está utilizando píxeles como características o una herramienta independiente para crear características, recorte los píxeles.
imágenes y considere si también debe cambiar su tamaño.
2. Si está utilizando una o más capas ocultas del mismo modelo que está utilizando para la detección de objetos, puede
simplemente enmascarar las imágenes y no moverlas ni cambiar su tamaño.
Tus características ya pueden capturar las similitudes entre objetos en diferentes ubicaciones y
balanza.
Las estrategias anteriores son una regla general y puedes experimentar con ambas en cualquier contexto.
También puedes considerar expandir un poco el cuadro para abarcar el contexto relevante. Los píxeles inmediatamente después
del borde de la imagen serán útiles para identificar dicho límite, y es recomendable que los objetos en el mayor número posible de
contextos cercanos detecten esas transiciones de borde.
Pero recuerda, desde el principio de esta sección, que ampliar cada borde un 20 % casi duplicará el área de píxeles que estás
cubriendo. La mayoría serán irrelevantes y añadirán ruido.
¡Ahora tienes imágenes recortadas o enmascaradas que puedes usar para agrupamiento y muestreo representativo! Con cada
objeto recortado o enmascarado de una imagen, puedes aplicar agrupamiento o muestreo representativo. Aplica el muestreo basado
en agrupamiento y el muestreo representativo tal como aprendiste en el capítulo 4. Puedes muestrear centroides, valores atípicos y
miembros aleatorios del clúster. Además, puedes muestrear los elementos más representativos de tu dominio objetivo.
Tenga cuidado si intenta crear una máscara para cada objeto de una imagen, en lugar de tratar cada objeto por separado. Es
difícil evitar señales no deseadas simplemente por el número de objetos. Por lo tanto, es mejor tratar los objetos individualmente y
luego combinar las puntuaciones, lo cual explicaremos más adelante en este capítulo.
189
En ese mismo sentido, debe asegurarse de muestrear imágenes con un número diferente de imágenes por objeto. Si descubre
que solo está muestreando imágenes con un número pequeño o grande de objetos, está introduciendo sesgos en su proceso sin
darse cuenta. En ese caso, estratifique el muestreo. Por ejemplo, muestree 100 imágenes con un objeto predicho, 100 imágenes
con dos objetos predichos, etc.
Ocasiones: identificar estantes vacíos de supermercados para facilitar la reposición. También se necesitaba un espacio vacío (el «objeto»).
contexto como artículos adyacentes y una etiqueta de precio debajo del estante vacío. De lo contrario, el modelo no tenía claro si
El estante debería estar vacío si se suponía que debía haber existencias allí.
A menos que tenga un caso de uso como este (esencialmente etiquetar un agujero según el contexto), mantenga las cajas lo más ajustadas posible.
Es posible para la agrupación y el muestreo representativo. Se captura una diversidad más amplia en contextos mediante el uso de la diversidad.
Puede aplicar el Aprendizaje por Transferencia Activa a la Detección de Objetos de la misma manera que lo aplicó a las etiquetas a
nivel de imagen. También puede aplicar el Aprendizaje por Transferencia Activa para Muestreo Adaptativo (ATLAS), adaptándose
dentro de un ciclo de Aprendizaje Activo, ya que puede asumir que los primeros objetos que muestree serán corregidos posteriormente
por etiquetadores humanos, incluso si desconoce cuáles son esas etiquetas.
Independientemente del tipo de arquitectura neuronal que utilice para la detección de objetos, puede usar las capas ocultas
como características para un modelo binario "correcto/incorrecto" en el que entrene.
datos de validación.
Como extensión interesante, en lugar de una tarea binaria de "correcto/incorrecto", se podría calcular el IoU de los datos de
validación y crear un modelo que prediga dicho IoU. Es decir, se puede predecir un valor continuo en lugar del binario "correcto/
incorrecto". Esto podría ser tan simple como convertir la capa final en una tarea de regresión en lugar de una tarea de clasificación,
y que dicha tarea de regresión modele los IoU de cada elemento de validación. Esta extensión podría implicar solo modificar una o
dos líneas de código del ejemplo de ATLAS del capítulo anterior.
Tenga en cuenta que no he experimentado con la extensión de ATLAS de esta manera ni he visto a nadie más intentarlo, así
que trátelo como una tarea experimental si desea implementarlo y también implemente los algoritmos básicos de muestreo de
incertidumbre como línea de base.
6.1.5 Establecer un umbral de detección de objetos bajo para evitar perpetuar el sesgo
Establezca un umbral de confianza muy bajo para la detección de objetos, independientemente del método que utilice. No querrá
encontrar únicamente objetos similares a los que ya existen en sus datos, ya que esto perpetuará el sesgo hacia ese tipo de objetos.
Podrías descubrir que un umbral bajo produce demasiados candidatos. Por ejemplo, podrías obtener 100 imágenes predichas
con un 50 % o más de confianza, pero 10 000 con un 10 % de confianza.
190
Y la mayoría de esas 10.000 predicciones son el fondo (falsos positivos que no son objetos en absoluto). Por lo
tanto, podría verse tentado a aumentar el umbral en este caso.
No.
A menos que esté seguro de haber establecido correctamente el umbral para obtener una recuperación casi
perfecta en sus predicciones, aún corre el riesgo de perpetuar el sesgo en sus modelos. En su lugar, estratifique
por confianza y tome muestras de cada una de ellas:
La figura 6.5 ofrece un ejemplo de la estrategia general para estratificar por confianza:
Figura 6.5: Estratificación por confianza: muestreo de un número igual de elementos con un intervalo de confianza del
010 %, del 1020 %, etc., del 90100 %. En este ejemplo, se muestrea un elemento de cada intervalo de confianza del 10 % para la
Etiqueta A. La estratificación por confianza es especialmente útil cuando existe un gran desequilibrio numérico entre las etiquetas.
191
Como muestra la Figura 6.5, puede muestrear la misma cantidad de elementos con diferentes intervalos de confianza. Esta es una
estrategia útil en tareas como la detección de objetos, ya que la mayoría de las imágenes no contendrán objetos que le interesen.
Al usar una estrategia de muestreo estratificada por confianza, dedicará la mayor parte del tiempo a muestrear objetos de alta
confianza y, aun así, tendrá una selección de objetos de menor confianza. Tenga en cuenta que, aunque parezca una pérdida de
tiempo,
identificar objetos no existentes, ese no es el caso de su algoritmo de aprendizaje automático: aprender lo que no es un objeto,
pero que actualmente se predice como un objeto con una confianza no trivial, puede ser tan importante para la precisión de su
modelo como aprender objetos nuevos.
Este tipo de estratificación es importante para evitar sesgos en los datos. Al igual que estratificó por el número de objetos en
una imagen en la sección anterior, también conviene estratificar por la confianza actual del modelo. Incluso podría combinar ambos
métodos y asegurarse de que el muestreo sea equitativo tanto para el número de objetos predichos como para la confianza de
dichos objetos: un gran número de objetos con confianza no es lo mismo que un gran número de objetos sin confianza.
También puedes probar combinaciones de métodos como alternativas al muestreo aleatorio dentro de cada nivel de confianza:
1. Tome los 10 000 objetos con un 1020 % de confianza y luego aplique la agrupación en clústeres y
Muestrear los centroides para obtener los 100 más diversos dentro de esa muestra.
2. Tome los 10 000 objetos con un 1020 % de confianza y luego aplique la Representación
Muestreo para obtener los 100 más similares a su dominio objetivo.
3. Tome los 10 000 objetos con un 1020 % de confianza y luego tome una muestra para el modelo basado en modelos.
Valores atípicos para obtener los 100 más diferentes a los datos de entrenamiento actuales.
Si no puede reducir el umbral (quizás esté usando un modelo de caja negra de terceros), será difícil evitar el sesgo. Utilice este
método con un umbral alto inicialmente, hasta que haya creado suficientes puntos de datos de entrenamiento nuevos que pueda
usar para empezar a construir sus propios modelos.
Luego puedes reducir el umbral en tus nuevos modelos para comenzar a encontrar muestras diversas.
6.1.6 Crear muestras de datos de entrenamiento para el muestreo representativo que sean similares a
tus predicciones
Dado que está recortando o enmascarando sus imágenes sin etiquetar, debería hacer lo mismo con los datos de entrenamiento si
está implementando el Muestreo Representativo. Si solo utiliza los cuadros delimitadores perfectos de sus datos de entrenamiento,
pero luego las predicciones imperfectas de sus datos sin etiquetar, las muestras "Representativas" podrían resultar de diferentes
tamaños de cuadro y estrategias de recorte, en lugar de los objetos reales.
1. Valide de forma cruzada sus datos de entrenamiento. Por ejemplo, divida sus datos de entrenamiento en 10 conjuntos de
datos iguales. Entrene iterativamente con cada grupo de 9 y prediga los cuadros delimitadores en cada conjunto de datos
seleccionado. Combine todas las predicciones y úselas como la parte de datos de entrenamiento de su corpus para el
Muestreo Representativo.
192
2. Utilice un conjunto de datos de validación de la misma distribución que sus datos de entrenamiento, obtenga
predicciones de cuadros delimitadores sobre el conjunto de validación y utilice esos cuadros delimitadores de
validación como la parte de datos de entrenamiento de su corpus para el muestreo representativo.
3. Realice predicciones sobre los datos de entrenamiento y luego expanda o contraiga aleatoriamente los cuadros para
que tengan la misma variación promedio en sus predicciones.
4. Utilice los cuadros reales de los datos de entrenamiento y luego expanda aleatoriamente los cuadros de modo que
que tienen la misma variación promedio en sus predicciones.
Las opciones 1 y 2 son estadísticamente casi tan buenas como la otra. Si tiene un conjunto de validación retenido, es un
poco más fácil que reentrenar todo el modelo, pero no serán los datos exactos de su conjunto de entrenamiento, aunque
sean lo más parecidos posible.
Para las opciones 3 y 4, si bien se puede aumentar el tamaño de los cuadros delimitadores para que el promedio sea
el mismo, no se podrá igualar con exactitud el tipo de errores que se obtienen en las predicciones. Los errores previstos en
los cuadros delimitadores no se distribuirán aleatoriamente, sino que dependerán de la propia imagen de maneras difíciles
de replicar al crear ruido artificial.
Como con cualquier otro método, siempre debes tomar muestras aleatorias de imágenes para su revisión. Esto te
proporcionará datos de evaluación y te dará una referencia del éxito de tu estrategia de aprendizaje activo.
Para una pequeña cantidad de muestras, puede utilizar el muestreo a nivel de imagen. Esto contribuirá a la diversidad,
evitando el sesgo con mayor facilidad que los métodos presentados en esta sección.
Si aplica la agrupación en todo el nivel de la imagen y encuentra grupos completos con pocos o ningún elemento de
entrenamiento existente, entonces eso es una buena evidencia de que debería solicitar una revisión humana para algunos
elementos en esos grupos: podría estar pasando por alto algo por completo.
Si está introduciendo nuevos tipos de datos en su modelo (quizás esté usando una nueva cámara o recopilando datos
desde una nueva ubicación), el Muestreo Representativo a nivel de imagen debería ayudarle a adaptarse más rápidamente.
También significará que se adaptará con menos sesgo que si intentara implementar solo el Aprendizaje Activo a nivel de
objeto al incorporar nuevos datos por primera vez.
Si prueba métodos a nivel de objeto con tipos de datos muy diferentes, será difícil evitar el sesgo hacia objetos ya
vistos, ya que algunos podrían quedar por debajo del umbral utilizado. Los umbrales de confianza suelen ser los menos
fiables para datos fuera del dominio.
Si está utilizando polígonos, en lugar de cuadros delimitadores, como en la Figura 6.6, todos los métodos aquí descritos aún
se aplican.
También hay una opción adicional: en lugar de enmascarar fuera del cuadro delimitador, se puede enmascarar a cierta
distancia del borde del polígono más cercano. En nuestro ejemplo de la bicicleta, esto capturaría con mayor precisión solo
la bicicleta, y no tanto el espacio vacío.
193
Figura 6.6: Ejemplo de detección de objetos usando un polígono, en lugar de un cuadro delimitador. Se pueden usar los mismos métodos
de aprendizaje activo tanto para cuadros delimitadores como para polígonos, con la opción adicional de tener una máscara más cercana
para un polígono.
Por la misma razón, la detección de errores puede ser más precisa, especialmente para objetos con formas irregulares. Por ejemplo, imagine
que una bicicleta como la de la Figura 6.6 podría tener un manillar que sobresale en muchas fotos. La extensión del cuadro delimitador para
capturar solo ese manillar podría fácilmente ocupar casi la mitad del área del cuadro. Esto crea un amplio margen de error en píxeles que no
Entonces, si está trabajando con modelos que predicen cuadros delimitadores, es posible que desee considerar también el uso de
polígonos para un mejor aprendizaje activo, aunque sea solo para un mejor muestreo para una tarea que todavía consiste en cuadros
El siguiente nivel de complejidad en el reconocimiento de imágenes, después de los cuadros delimitadores y los polígonos, es la
etiqueta cada píxel de la imagen, también se denomina «etiquetado de píxeles». La Figura 6.7 muestra un ejemplo.
194
Si intenta estimar objetos que se extienden detrás de otro objeto (oclusión), es más común usar la detección de objetos de
tipo cuadro delimitador que aprendió en la sección anterior. También es más común pintar todos los objetos como un solo tipo
con segmentación semántica en lugar de identificar cada objeto por separado. Por ejemplo, todos los árboles en la Figura 6.6
tienen el mismo color, pero la imagen no distingue un árbol de otro. Sin embargo, hay casos en los que se usan cuadros
delimitadores que ignoran la oclusión, donde la segmentación semántica intenta capturar la oclusión y también donde la
segmentación semántica distingue objetos (llamada "segmentación de instancia"). Si un modelo combina todos estos métodos, a
veces se conoce como "segmentación panóptica", que identifica objetos y píxeles de fondo.
Todos los métodos de este capítulo deben ser lo suficientemente genéricos para poder aplicarse a cualquier variación en el
modo en que se utilizan los cuadros delimitadores o la segmentación semántica.
Figura 6.7: Un ejemplo de segmentación semántica, donde cada píxel está etiquetado (de ahí que también se conozca
como "etiquetado de píxeles"). Este tipo de fotografía a color es el aspecto que presentan muchas herramientas de
segmentación semántica: un ejercicio de colorear. Abordaremos estas herramientas más adelante en los capítulos sobre
anotación. Si observa esta imagen en blanco y negro, el contraste de tonos de gris le dará una idea bastante precisa de cómo
se vería en color. Si los diferentes objetos reciben una etiqueta, por ejemplo, si los cuatro árboles se etiquetan por separado,
la tarea se denomina Segmentación de Instancias.
195
Los métodos también pueden aplicarse a otros tipos de datos de sensores, como las imágenes bidimensionales y tridimensionales
obtenidas del lidar, el radar o el sonar. Esto es común en los vehículos autónomos. También es habitual recopilar datos fuera del
campo de visión humano en infrarrojo y ultravioleta.
bandas y luego convertirlas a colores visibles para la anotación humana. Esto es común en la agricultura. Busca en línea fotos de
"bosque infrarrojo" o "flor ultravioleta" y entenderás por qué. Hay mucha información útil fuera del rango visible para el ser humano.
Los principios de esta sección se aplican si hay dimensiones adicionales e información del sensor.
La biblioteca de visión artificial más completa de PyTorch es Detectron2, publicada por primera vez en octubre de 2019. Los
científicos especializados en visión artificial podrían estar familiarizados con versiones anteriores de Detectron, basadas en el
conocido Mask RCNN, pero solo a partir de Detectron2 la biblioteca está completamente desarrollada en PyTorch y, por lo tanto,
es compatible con todo el código de este libro. Los principios generales de este libro se aplican a cualquier biblioteca de visión
artificial.
La precisión de la segmentación semántica se calcula a nivel de píxel: ¿cuántos píxeles se clasifican correctamente en relación con
un conjunto de datos reservado?
Puedes usar todas las métricas de precisión que has aprendido hasta ahora: Precisión, Recall, FScore, AUC, IoU y
puntuaciones micro y macro para cada una. La elección correcta para la precisión del aprendizaje automático dependerá de tu caso
de uso.
Para determinar la incertidumbre, la puntuación F macro o el IoU macro suelen ser los más útiles. Al igual que en nuestros
ejemplos de cuadros delimitadores, solemos tener mucho espacio en la segmentación semántica que no nos interesa demasiado:
el cielo, el fondo, etc. Tener muchas regiones discontinuas puede ser problemático: en la Figura 6.7, probablemente hay más de
100 regiones de cielo separadas entre las hojas. Por tamaño y número total, estas regiones del cielo predominarían en una
puntuación micro por píxel o por región. Por lo tanto, suponiendo que todas las etiquetas son importantes por igual, pero no la
proporción de la imagen que ocupa cada objeto, utilice una puntuación macro: el IoU promedio de cada región por etiqueta o la
puntuación F promedio de cada píxel por etiqueta.
También podrías decidir ignorar algunas etiquetas por completo. Por ejemplo, si solo te interesan las personas y las bicicletas,
puedes elegir un valor de precisión de macro que solo considere esas etiquetas. Seguirás recibiendo información de errores que
distingan a las personas y las bicicletas del fondo, el suelo y el cielo, pero no errores entre esas etiquetas irrelevantes.
Tenga en cuenta que esto será específico para su caso de uso. Si su tarea es identificar la cobertura forestal, las regiones entre las
hojas y el cielo serán las más importantes.
Utilice la precisión de su modelo de aprendizaje automático implementado como guía para calcular la incertidumbre. Hay dos
maneras de hacerlo, dependiendo de si pondera o no las etiquetas para el cálculo de la precisión:
1. Si no pondera sus etiquetas (ya sea por completo o por completo, si cada etiqueta tiene ponderaciones absolutas), utilice la
misma métrica que utiliza para la precisión del modelo para determinar dónde muestrear. Por ejemplo, si solo le importa la
confusión de dos etiquetas en la precisión de su modelo, muestree únicamente las predicciones con confusión que
involucren una o ambas etiquetas para el aprendizaje activo.
196
2. Si tiene una métrica de precisión ponderada, no utilice la misma métrica que para la precisión del modelo. En su lugar,
utilice los métodos de muestreo estratificado que aprendió en el capítulo 3. La figura 6.8 muestra un ejemplo.
Figura 6.8: Ejemplo de muestreo estratificado por etiqueta aplicado a la segmentación. Para esta tarea de ejemplo,
supongamos que nos preocupan más los errores relacionados con los píxeles de personas y bicicletas que los relacionados
con los píxeles de árboles y cielo. Por lo tanto, nuestra muestra de Aprendizaje Activo se dividirá en partes iguales: el 90 %
corresponderá a las muestras más confusas para las etiquetas que más nos interesan y el 10 % a las etiquetas que no nos interesan.
Tenga en cuenta que los píxeles que rodean el cielo y los árboles superan ampliamente a los píxeles que rodean a las personas y las bicicletas,
por lo que el muestreo estratificado nos ayuda a centrarnos en los errores más importantes. Esto podría diferir de su estrategia de evaluación
de la precisión, donde simplemente puede aplicar ponderaciones relativas del 90 % y el 10 % a los errores de valor alto/bajo. Las métricas de
muestreo por incertidumbre no se prestan tan fácilmente a este tipo de ponderación, por lo que, a menos que tenga la confianza suficiente
en sus habilidades estadísticas para ajustar su estrategia de ponderación, se recomienda utilizar este método de estratificación.
Como muestra la Figura 6.8, el muestreo estratificado por etiqueta ayuda a enfocar la estrategia de aprendizaje activo en los
píxeles más importantes. Si bien el muestreo estratificado se puede usar para cualquier problema de aprendizaje automático,
la segmentación semántica es uno de los ejemplos más claros de su utilidad.
Tenga en cuenta que el muestreo estratificado puede diferir de su estrategia de evaluación de la precisión del modelo.
Por ejemplo, imagine que le importa la etiqueta A 9 veces más que la etiqueta B. Por lo tanto, calcula la precisión de su
modelo como 90 % x puntuación F de la etiqueta A + 10 % x puntuación F de la etiqueta B (una puntuación F macro
ponderada). Esto es adecuado para la precisión del modelo, pero lamentablemente no se puede aplicar.
197
Las ponderaciones son similares a las puntuaciones de incertidumbre, ya que su ponderación casi con certeza clasificará solo los
elementos de la etiqueta A en la posición más alta, colocándolos exclusivamente en la parte superior de la clasificación. En su
lugar, utilice estas ponderaciones como una proporción de la cantidad a muestrear. Por ejemplo, muestree los 90 elementos más
inciertos de la etiqueta A y los 10 más inciertos de la etiqueta B. Es más sencillo de implementar que intentar crear una estrategia
de muestreo ponderado entre etiquetas y mucho más eficaz.
Si hay etiquetas que no le interesan en absoluto, de todas formas considere muestrear una pequeña cantidad de ellas,
especialmente usando valores atípicos basados en modelos y muestreo representativo, porque podrían descubrir falsos negativos
para las etiquetas que sí le interesan en esas regiones.
La mayoría de los algoritmos de segmentación semántica se basan en variaciones de las CNN, utilizando softmax para generar
una distribución de probabilidad entre las posibles etiquetas de cada píxel. Por lo tanto, puede calcular la incertidumbre por píxel
utilizando los mismos métodos que aprendió en el Capítulo 3. Es poco probable que su modelo realice una predicción para cada
píxel (lo cual sería muy ineficiente), sino que prediga regiones y solo seleccione regiones pequeñas (quizás del tamaño de un píxel)
cuando se le obligue. Debe saber exactamente de dónde provienen sus valores de confianza predichos.
Al igual que con los cuadros delimitadores, la confianza que obtiene de sus modelos probablemente refleja la confianza de su
etiqueta, no la confianza en los bordes de sus objetos. Si es así, puede derivar la confianza de localización de las confianzas de los
píxeles: sabe qué píxeles están junto a los píxeles de una etiqueta diferente, y por lo tanto, la confianza agregada para todos sus
píxeles de límite es su confianza de localización. Puede estar bien con errores de unos pocos píxeles, y si es así, use esto para
determinar dónde calcula la confianza. Por ejemplo, si está midiendo la precisión de su modelo de aprendizaje automático
perdonando todos los errores de menos de 3 píxeles, haga lo mismo para la incertidumbre: mida la incertidumbre promedio de los
píxeles que están a 3 píxeles de un borde. Simplemente asegúrese de hacerlo en ambos lados del borde: la confianza 3 píxeles
dentro del borde y 1 menos la confianza para esa etiqueta, 3 píxeles fuera del borde.
Podría haber alguna razón por la que esté utilizando un modelo que no proporciona una distribución de probabilidad para una
etiqueta dada: quizás se trate de una red neuronal más compleja con un resultado menos interpretable. En ese caso, puede usar
métodos de conjunto o de abandono para crear múltiples predicciones y calcular la incertidumbre como el grado de concordancia
de las etiquetas entre sus predicciones.
Ahora que solo está muestreando los píxeles que le interesan y tiene un puntaje de incertidumbre para cada píxel, ¡puede
aplicar cualquiera de los algoritmos de muestreo de incertidumbre!
Tome la incertidumbre promedio de cada uno de los píxeles que interesan y obtendrá el puntaje de incertidumbre para toda la
imagen.
Si le interesan principalmente los bordes, puede muestrear los elementos solo a lo largo de ellos según los métodos
presentados anteriormente: la incertidumbre de los píxeles solo a cierta distancia de los píxeles de una etiqueta diferente. Al
promediar estos píxeles, también evita que una gran cantidad de píxeles alejados del borde dominen la confianza agregada.
198
Dependiendo de su tarea, puede probar métricas distintas al promedio. Por ejemplo, supongamos que desea
asignar a la imagen una puntuación de incertidumbre que represente la incertidumbre máxima para cualquier región.
Esto dependerá en parte de su configuración de anotación: ¿será necesario anotar toda la imagen o solo las etiquetas
que se mencionan? Estas consideraciones se abordarán más adelante en el libro, una vez que haya aprendido más
sobre la anotación en los próximos capítulos.
Lamentablemente, no es posible muestrear valores atípicos basados en modelos directamente desde el modelo para
el muestreo por diversidad, como sí se puede hacer para el reconocimiento de objetos. Esto funciona con el
reconocimiento de objetos porque ya se obliga al modelo a centrarse en las áreas que le interesan. Dado que el
algoritmo de segmentación semántica está obligado a clasificar cada píxel, los valores atípicos se seleccionarán entre
muchos píxeles que no le interesan.
Por lo tanto, debes enmascarar las imágenes para que solo contengan las etiquetas previstas que te interesan.
y luego aplicar valores atípicos basados en modelos.
Es muy importante seguir el método del Capítulo 4, utilizando datos de validación para crear una clasificación para
cada neurona. Al enmascarar, se activarán diferentes neuronas dentro del modelo según la ubicación de los píxeles
sin enmascarar en la imagen. Esto será especialmente cierto para las primeras capas del modelo, antes de que las
capas sucesivas y las confusiones hagan que la información sea menos localizada. Las neuronas en diferentes partes
del modelo tendrán diferentes rangos de activación que no serán directamente comparables entre sí, por lo que:
1. Convierta la activación bruta en clasificaciones utilizando datos de validación de la misma distribución que los
datos de entrenamiento. Realice esto con la validación que se ha predicho con el mismo método que aplica a
los datos sin etiquetar en su dominio objetivo. Este es el mismo método que implementó en el capítulo 3.
2. Favorezca las capas hacia el final de su modelo, donde se ubicará la información en las neuronas.
estar menos localizado en partes específicas de su imagen.
Quizás no te importe el punto 2, ya que la ubicación dentro de la imagen es significativa. En nuestro ejemplo, con una
cámara apuntando directamente hacia un campo e intentando determinar qué es una maleza y qué es una plántula,
probablemente deberías ignorar la ubicación en la imagen. Pero en nuestro ejemplo de la bicicleta, es más probable
que una bicicleta esté en el suelo, en la parte inferior de la imagen, que en el aire. En cualquier caso, deberías dejar
que tu modelo se encargue de esto: si la ubicación es importante, tu modelo codificará esta información de forma
óptima en las capas posteriores. Por lo tanto, sigue este método incluso si utilizas CNN para la segmentación semántica.
Para agrupar y realizar muestreos representativos, siga el mismo proceso que para la detección de objetos con
cuadros delimitadores o polígonos: recorte o enmascare la imagen en las áreas que le interesen y luego aplique
agrupar y/o realizar muestreos representativos.
199
Para la diversidad en el mundo real, la estrategia es la misma que para los cuadros delimitadores: utilice todas las técnicas
que aprendió en el aprendizaje activo para tomar muestras de la diversidad en los grupos demográficos que le interesan y dentro
de ellos.
Puede aplicar el Aprendizaje por Transferencia Activa a la Segmentación Semántica de la misma manera que lo hizo con las
etiquetas a nivel de imagen, pero debe usar el método adaptativo: Aprendizaje por Transferencia Activa para Muestreo Adaptativo
(ATLAS), y debe ser estratégico en el tratamiento de los datos de validación. Su modelo predice cada píxel, y probablemente solo
le interesen unas pocas etiquetas y áreas de confusión.
Si no utiliza la versión adaptativa de este algoritmo, podría muestrear la confusión exclusivamente en áreas que no le interesan,
como la división entre las hojas y el cielo, cuando lo que le interesan principalmente son los objetos terrestres. Tenga en cuenta que
ATLAS no resolverá esto por completo; inicialmente podría muestrear tipos de confusión que no le interesan, pero se adaptará
rápidamente para asumir que esos tipos de confusión están resueltos y, por lo tanto, también cubrirá las áreas que sí le interesan.
Si considera cuántas etiquetas de conjuntos por pares existen en sus datos y qué porcentaje de las que realmente le interesan,
esto le dará una idea del éxito de ATLAS de fábrica.
Para aprovechar al máximo ATLAS para la Segmentación Semántica, puede configurar estratégicamente sus datos de
validación para el aprendizaje por transferencia. Por ejemplo, si no le importan los errores entre las hojas y el cielo, puede ignorarlos
al ejecutar los datos de validación en el modelo original para generar las etiquetas "correcto/incorrecto". De esta forma, su modelo
solo predice errores para los tipos de etiquetas que le interesan.
Al igual que con la detección de objetos, es posible que desee tomar una muestra de una pequeña cantidad de elementos de toda
la imagen, especialmente si está introduciendo datos de nuevas ubicaciones, tipos de cámaras, etc., para poder adaptarse
rápidamente y encontrar falsos negativos para las etiquetas que le interesan.
También podría experimentar con la flexibilización de la restricción de recorte/enmascaramiento si combina métodos. Por
ejemplo, podría usar el Muestreo Representativo en toda la imagen para encontrar las imágenes más representativas de un nuevo
dominio o tipo de imagen, y muestrear las imágenes más representativas, aplicar la máscara/recorte a esas muestras y, a
continuación, agruparlas para lograr diversidad. Esto le ofrece la selección más diversa de elementos que le interesan de imágenes
completas representativas del dominio que le interesa.
Lo mismo ocurre al combinar el Muestreo por Incertidumbre y el Muestreo por Diversidad. Puede aplicar el Muestreo
Representativo a todas las imágenes y luego aplicar el Muestreo por Incertidumbre solo a las imágenes nuevas más representativas.
200
Si está implementando un modelo para rastrear brotes a partir de informes de texto, podría ser conveniente extraer información
de la oración, como el nombre de la enfermedad, las ubicaciones en los datos y las palabras clave importantes. Esto se muestra
en la Figura 6.9.
Palabras clave B I B I B
Enfermedades B
Ubicaciones B I
Figura 6.9: Ejemplo de tipos de etiquetas de secuencia: Detección de palabras clave y dos tipos de Entidades con
Nombre: Enfermedades y Ubicaciones. Las etiquetas "B" (Inicio) se aplican al principio del intervalo y "I" (Dentro) a las demás
palabras dentro del intervalo. Esto nos permite distinguir claramente los intervalos adyacentes, como "San Francisco" y
"supermercado". Esto se denomina etiquetado "IOB", donde "O" (Exterior) es la etiqueta no etiquetada (las "O" se omiten para
facilitar la lectura en esta figura).
En la literatura, lo más común es ver el etiquetado “IOB” para “Spans”, como en la Figura 6.9.
Tenga en cuenta que puede definir intervalos de diferentes maneras para distintos tipos de etiquetas. La entidad nombrada "E
Coli" es solo una palabra, pero al extraer las palabras clave, representa la fase completa "brote de EColi". Y mientras que "San
Francisco" es tanto una entidad (ubicación) como una palabra clave, el sustantivo común "supermercado" es una palabra clave,
pero no una entidad. Estrictamente, esto se denomina etiquetado "IOB2", y el "IOB" estándar solo usa la "B" cuando hay varios
tokens en un solo intervalo.
“IOB2” es el más común que encontrará en la literatura, por lo que a veces es
llamado “IOB” para abreviar.
Otras codificaciones marcarán el final del lapso, en lugar del inicio. Esto es común en tareas de segmentación de oraciones
completas, como etiquetar el final de cada palabra y subpalabra, y el final de cada oración. En el caso de las oraciones, esto se
debe a que es más fácil identificar el final de una oración (normalmente con puntuación) que el inicio.
Los métodos de este capítulo funcionarán para cualquier tipo de codificación de secuencia, por lo que el capítulo se limitará a
los ejemplos de IOB2 y asumirá que se adapta fácilmente si su sistema de codificación
es diferente
También podrías considerar algunas etiquetas como parte natural de la misma tarea. Por ejemplo, he trabajado mucho en
"Reconocimiento de Entidades Nombradas" (NER), que consideraría la identificación de "Ubicación" y "Enfermedad" como parte
de la misma tarea, pero trataría la identificación de palabras clave como una tarea muy diferente. Incluso dentro de una misma
tarea, puede haber mucha variación en cómo se definen las etiquetas. Algunos conjuntos de datos populares de Reconocimiento
de Entidades Nombradas solo tienen cuatro tipos de entidades ("Personas",
201
"Ubicaciones", "Organizaciones" y "Varios"). En cambio, una vez ayudé a crear un sistema de reconocimiento de
entidades para una empresa automotriz que tenía miles de tipos de entidades: cada tipo de motor, puerta e incluso
reposacabezas tenía múltiples tipos/nombres diferentes.
Por lo tanto, si bien existe una gran variedad en los tipos de tareas de etiquetado de secuencias que puede realizar,
En PNL, todas las tareas se reducen a identificar fragmentos de texto en una secuencia.
Este tipo de tareas de etiquetado de secuencias se denominan "Extracción de Información" en la literatura y suelen
ser la base de tareas de Extracción de Información multicampo más complejas. Por ejemplo, si tiene una oración con
una Enfermedad y varias Ubicaciones, también determinaría en qué ubicaciones se detectó la enfermedad, si es que se
detectó alguna.
En este capítulo, nos centraremos en el ejemplo de identificación de intervalos individuales y asumiremos que se
puede extender a tareas de extracción de información más complejas. Por ejemplo, se puede calcular la incertidumbre
conjunta en múltiples secuencias.
La métrica de precisión para el etiquetado de secuencias dependerá de la tarea. Para las entidades con nombre, suele
ser la puntuación F en todo el intervalo. Por lo tanto, predecir "San Francisco" como ubicación tendría un 100 % de
precisión, pero predecir "Francisco" o "supermercado de San Francisco" tendría un 0 % de precisión.
En algunos casos, esta precisión estricta podría ser menos rigurosa o reportarse junto con métricas más flexibles,
como la precisión por palabra (denominada "por token" porque no todos los tokens serán palabras). En otros casos, la
precisión podría reportarse para Entidad vs. No Entidad, con el tipo de Entidad (como Enfermedad vs. Ubicación)
reportado por separado.
Probablemente no le importe la etiqueta "O" para sus tareas de secuencia. FScore capturará la confusión entre
otras etiquetas y "O", y esto podría ser suficiente. Al igual que con la detección de objetos y la segmentación semántica,
hay partes de cada dato que le interesan más que otras. Centrarse en estas partes de los datos para el aprendizaje
activo resultará en mejores muestras.
Al igual que con los ejemplos de visión artificial, debe utilizar una métrica para el aprendizaje activo.
muestreo que sea consistente con la forma en que está midiendo la precisión de su modelo de PNL.
Para la mayoría de las tareas de PLN, el contexto será más importante que para la detección de objetos en Visión
Artificial. Por ejemplo, se sabe que "San Francisco" es una ubicación y no una organización con "San Francisco" en el
nombre debido al contexto de la oración completa. Por lo tanto, es más seguro tener un contexto más amplio en torno a
las secuencias predichas, y a menudo es deseable, ya que el contexto puede ser un predictor importante.
Sin embargo, esto es solo una tendencia general: existen tareas de PNL donde el contexto no es tan importante.
Por ejemplo, se podrían identificar la mayoría de las fechas únicamente por el formato y los componentes. Y existen
tareas de Visión Artificial donde el contexto es más importante, como el ejemplo anterior para identificar estantes de
supermercado vacíos. Se obtiene una ventaja matemática con el texto sobre las imágenes: en un solo flujo de texto o
voz unidimensional, se puede expandir el contexto más que en las imágenes porque solo se expande en una.
dimensión.
202
Los límites de las oraciones también pueden ser barreras naturales para el contexto. Tenga en cuenta que
algunos modelos de secuencia podrían asumir que tiene oraciones completas y producir resultados diferentes a
partir de fragmentos de oraciones. En este caso, podría limitarse a usar oraciones como nivel de análisis para el
contexto. Sin embargo, aún puede calcular la confianza por token en este caso.
Casi todos los algoritmos de etiquetado de secuencias le brindarán una distribución de probabilidad para sus
etiquetas, generalmente utilizando softmax, para que pueda calcular la incertidumbre por token directamente.
Además de las confianzas de softmax, se pueden usar modelos de conjunto o deserciones para generar
múltiples predicciones y calcular la incertidumbre como el nivel de concordancia o entropía entre ellas. Esto es
similar al ejemplo de visión artificial para la detección de objetos.
Al igual que en el ejemplo de Visión Artificial, sus confianzas solo se referirán a la confianza de la etiqueta para
cada token, no al intervalo en su conjunto ni al límite de los intervalos. Sin embargo, si utiliza el etiquetado IOB2, su
etiqueta "B" predecirá conjuntamente la etiqueta y el límite de inicio.
Puede decidir la mejor manera de calcular la incertidumbre para todo el lapso. El producto de todas las
confianzas es la probabilidad conjunta más correcta (matemáticamente).
Sin embargo, también tendrás que normalizar la cantidad de tokens, lo que puede ser complicado.
Por lo tanto, puede resultar más fácil trabajar con la confianza promedio o mínima sobre todos los tokens en un
lapso que con las probabilidades conjuntas.
Además, se desea calcular la incertidumbre para los tokens fuera del lapso. Por ejemplo, si predijimos
erróneamente que «Francisco» no era una ubicación, deberíamos considerar que podría haberlo sido. Un ejemplo
se muestra en la Figura 6.10:
Ubicaciones B
Figura 6.10: Ejemplo de identificación de ubicación y confianza asociada a cada etiqueta. Muestra un error: solo "San" de "San Francisco" es una
ubicación, pero que "Francisco" tenía una confianza razonablemente alta. Por lo tanto, debemos asegurarnos de tener en cuenta la información
fuera de los intervalos previstos al calcular la confianza.
La Figura 6.9 muestra un error: solo se predice que "San" de "San Francisco" es una ubicación, pero aunque
"Francisco" fue un falso negativo, tenía una confianza razonablemente alta (0,46). Por eso queremos calcular la
incertidumbre más allá del lapso predicho: queremos asegurarnos de que el límite sea correcto.
En la Figura 6.8, podemos tratar "Francisco" como 1 0,46 = 0,54. Esto, por lo tanto, reducirá nuestra confianza
en el lapso. En cambio, al inicio de la predicción, la "a" tiene una confianza cero. Por lo tanto, 1 0 = 1, lo que
significa que esto aumentará nuestra confianza. Como se mencionó anteriormente, la etiqueta "B" también contribuye
a la confianza del límite inicial.
203
Para sus modelos de aprendizaje automático, es casi seguro que utiliza una arquitectura o representación de características
que captura un amplio margen de contexto. En algunos modelos, esto se codifica directamente. Si utiliza métodos basados en
transformadores, ese contexto (Atención) se detecta como parte del propio modelo y probablemente solo proporcione un
tamaño máximo. Esto debería ayudarle a determinar el contexto a utilizar en el aprendizaje activo: elija uno que sea coherente
con el contexto que utiliza su modelo predictivo.
Comenzaremos con el primer y el último enfoque, que son los más fáciles, tal como hicimos para el objeto.
detección:
1. Puede aplicar la detección de valores atípicos basada en modelos a un problema de etiquetado de secuencias en el
De la misma manera que lo aplicas a un problema de etiquetado de documentos.
2. Puede tomar muestras de la diversidad del mundo real en un problema de etiquetado de secuencias en el mismo
forma en que se toma una muestra para un problema de etiquetado de documentos
Para los valores atípicos basados en modelos, las capas ocultas se centran en los intervalos que le interesan.
Es decir, sus neuronas capturarán principalmente información para distinguir sus intervalos de los que no lo son («B» e «I» de
«O») y de las diferentes etiquetas de sus intervalos. Por lo tanto, puede aplicar directamente los valores atípicos basados en
modelos sin truncar las oraciones al contexto inmediato de cada intervalo predicho.
Puede ver diferentes representaciones de características en la Figura 6.11: incrustaciones contextuales onehot (como
word2vec) e incrustaciones contextuales (como BERT). Si ha trabajado con PLN anteriormente, estas son probablemente las
tres representaciones de características más comunes que ha utilizado. En los tres casos, queremos extraer el intervalo de
texto previsto y crear un único vector de características para representarlo. Las principales diferencias radican en que sumamos
las codificaciones onehot en lugar de usar max (aunque max probablemente también funcionaría) y no es necesario muestrear
más allá del intervalo previsto al usar incrustaciones contextuales, ya que el contexto ya está capturado en los vectores.
Recuerde calcular las incrustaciones contextuales antes.
Extraes la frase. Para los demás métodos, no importa si la extraes antes o después de calcular el vector.
Para el muestreo de diversidad, también se aplican los mismos principios del Capítulo 4: deberá combinar todos los
métodos de aprendizaje activo para garantizar datos más justos en todos los grupos demográficos del mundo real.
204
205
Figura 6.11: Tres maneras de codificar intervalos previstos para el aprendizaje activo. Arriba, usando codificación onehot para
codificar cada token como su propia característica. En el medio, usando un vector no contextual (incrustación) como word2vec.
Abajo, usando una incrustación contextual como BERT. También puede experimentar con la agrupación promedio (Avepool) en
lugar de, o además de, la agrupación máxima (Maxpool).
Hasta ahora, puedes ver cómo el muestreo de diversidad para el etiquetado de secuencias tiene muchas similitudes con
Muestreo de diversidad para detección de objetos: le importa el contexto de los objetos/intervalos, pero no necesariamente necesita
preocuparse por ellos en el caso de valores atípicos basados en modelos, ya que su modelo ya estará enfocando la mayoría de las
neuronas en las partes de la imagen/texto que le interesan.
mayoría.
El etiquetado de secuencias para texto difiere de la detección de objetos en un aspecto importante: los puntos de datos
individuales son más significativos. Las palabras o secuencias de subpalabras que conforman los intervalos son significativas. Si se
trata de intervalos que representan elementos del mundo real, como objetos o entidades con nombre, se debe considerar el muestreo
por diversidad del mundo real, que estratifica explícitamente la muestra según los propios intervalos. En nuestro ejemplo, esto
implicaría garantizar explícitamente que se muestree un número determinado de intervalos con "San Francisco" y el mismo número
para "EColi". Dentro de las muestras de cada cadena de intervalo exacto, se podrían aplicar otras técnicas de aprendizaje activo para
maximizar el muestreo de los elementos más inciertos y diversos de cada cadena.
Si bien no es tan importante la creación de los datos como en Visión Artificial (tipo de cámara, zoom, clima), sí es importante
considerar el dominio de los datos. En PNL, el dominio se denomina "género" o "registro", términos más precisos para los diferentes
estilos y la terminología que se utilizan según el contexto real en el que se produjo el texto y el lector al que va dirigido.
Para el muestreo por conglomerados y el muestreo representativo, queremos centrar nuestros modelos en los intervalos en sí y
no profundizar demasiado en el contexto de ambos lados. Si está utilizando
206
representaciones vectoriales contextuales de los tokens, entonces es posible que no necesite contexto adicional en absoluto: ese
contexto ya está capturado en sus vectores.
El texto anterior y posterior debe recortarse a distancias significativas y en los límites de palabra u oración (o de frase, si
dispone de esta información). Dado que su modelo no es 100 % preciso, debe asegurarse de capturar el texto completo.
1. Recortar según un umbral determinado. Por ejemplo, si el intervalo es "Ubicación", amplíe la selección a las palabras
anteriores o posteriores a la predicción donde "Ubicación" se predice con un nivel de confianza al menos bajo (digamos,
un 10%).
2. Recorte un umbral amplio (quizás la oración completa) y pondere cada secuencia de palabras o subpalabras según la
probabilidad de que cada palabra sea parte del lapso.
No todos los algoritmos permiten ponderar las características de forma significativa. Si no es posible, utilice la misma estrategia que
en la detección de objetos: genere múltiples intervalos mediante un conjunto o una eliminación. A continuación, puede probar el
Muestreo Representativo para cada una de esas predicciones, ponderándolas por su superposición promedio con los demás
intervalos predichos.
Puede utilizar las palabras/subpalabras en cada intervalo directamente para agrupar y representar.
Muestreo, tal como lo hiciste en el capítulo anterior.
Si recorta el texto y utiliza las capas ocultas del modelo para el muestreo por conglomerados, valores atípicos basados en
modelos o muestreo representativo, obtenga dichas capas ocultas antes de recortar el texto. El contexto completo de la oración
será necesario para obtener las activaciones neuronales precisas de cada palabra del intervalo. Una vez que tenga un vector de
activaciones neuronales para cada palabra/subpalabra de la oración, puede recortar la selección solo para el intervalo.
El último problema que deberá resolver es cómo combinar los vectores de cada palabra/subpalabra. Si todos sus intervalos
tienen la misma longitud, puede simplemente concatenarlos. De lo contrario, deberá combinarlos, lo que se conoce como
"agrupación" para vectores neuronales. Los vectores tienden a ser dispersos, por lo que la agrupación máxima (tomando el valor
máximo en cada índice de vector para cada palabra/subpalabra) es probablemente la mejor opción. Sin embargo, puede probar el
promedio u otro método de agrupación para ver la diferencia.
Independientemente de si utiliza las palabras o subpalabras en sí o una representación vectorial, debe aplicar el muestreo
basado en agrupamiento y el muestreo representativo tal como aprendió en el Capítulo 4. Puede muestrear centroides, valores
atípicos y miembros aleatorios del clúster.
Además, podrás tomar una muestra de los artículos más representativos de tu dominio objetivo.
Puede aplicar el Aprendizaje por Transferencia Activa al Etiquetado de Secuencias de la misma manera que lo aplicó a las etiquetas
a nivel de documento. También puede aplicar el Aprendizaje por Transferencia Activa para Muestreo Adaptativo (ATLAS),
adaptándose dentro de un ciclo de Aprendizaje Activo, ya que puede asumir que las primeras secuencias que muestree serán
corregidas posteriormente por etiquetadores humanos, incluso si no sabe qué...
Esas etiquetas son.
207
Independientemente del tipo de arquitectura neuronal que utilice para el etiquetado de secuencias, puede usar las capas
ocultas como características para un modelo binario "correcto/incorrecto" en el que entrene.
datos de validación.
Deberá decidir qué se considera "correcto" e "incorrecto" en sus datos de validación. Si tiene secuencias que le interesan más
que otras, podría contabilizar solo los errores de esas secuencias como "incorrectos" en su nuevo modelo, centrándose en los tipos
de errores que más le preocupan. También deberá decidir si calcular los errores por token o para la secuencia en su conjunto. Como
punto de partida, conviene calcular los errores utilizando el mismo método que utiliza para su modelo principal, pero podría
experimentar con otros métodos.
Establezca un umbral muy bajo para predecir intervalos, independientemente del método que utilice. No querrá encontrar solo
intervalos similares a los que ya existen en sus datos, ya que esto perpetuará...
El sesgo.
Podrías descubrir que un umbral bajo produce demasiados candidatos. Por ejemplo, podrías obtener 100 intervalos predichos
con un 50 % o más de confianza, pero 10 000 con un 10 % de confianza, y la mayoría de esas 10 000 predicciones son falsos
positivos ("O") que no deberían corresponder a ningún intervalo.
Así que, en este caso, podrías sentirte tentado a aumentar el umbral. Al igual que con la visión artificial, ¡no lo hagas!
A menos que esté seguro de haber establecido correctamente el umbral para obtener una recuperación casi perfecta en sus
predicciones, aún corre el riesgo de perpetuar el sesgo en sus modelos. En su lugar, estratifique por confianza y tome muestras de
cada una de ellas:
De esa manera, pasarás la mayor parte de tu tiempo tomando muestras de intervalos reales.
Tenga en cuenta que este problema es casi idéntico al de la detección de objetos de la Sección 1 de este libro. Puede utilizar
el muestreo estratificado por confianza, al igual que con la detección de objetos, con el mismo objetivo de superar el problema de
que la mayoría de sus datos no sean un objeto/intervalo de interés.
Al igual que con la detección de objetos, se puede ampliar el muestreo estratificado por confianza probando combinaciones de
métodos como alternativa al muestreo aleatorio dentro de cada intervalo de confianza. Algunos ejemplos podrían incluir:
1. Tome los 10 000 intervalos con un 1020 % de confianza y luego aplique la agrupación y el muestreo.
los centroides para obtener los 100 elementos más diversos dentro de esa muestra.
2. Tome los 10 000 intervalos con un 1020 % de confianza y luego aplique la Representación
Muestreo para obtener los 100 más similares a su dominio objetivo.
208
3. Tome los 10 000 intervalos con un 1020 % de confianza y luego realice una muestra para el modelo basado en modelos.
Valores atípicos para obtener los 100 más diferentes a los datos de entrenamiento actuales.
Si no puede reducir el umbral (quizás esté usando un modelo de caja negra de terceros), será difícil evitar el sesgo. Utilice este
método inicialmente hasta que haya creado suficientes puntos de datos de entrenamiento nuevos que pueda usar para comenzar
a construir sus propios modelos. Luego, reduzca el umbral con sus nuevos modelos para comenzar a encontrar muestras
diversas. En este caso, utilice principalmente el Muestreo Representativo, utilizando solo las palabras para todo el documento o
para oraciones completas (ver más abajo).
6.3.6 Crear muestras de datos de entrenamiento para el muestreo representativo que sean similares a
tus predicciones
Dado que está recortando el texto sin etiquetar, debería hacer lo mismo con los datos de entrenamiento si está implementando
el Muestreo Representativo. Si solo utiliza las anotaciones de intervalo perfecto de sus datos de entrenamiento, pero luego las
predicciones imperfectas de sus datos sin etiquetar, las muestras "Representativas" podrían resultar de diferentes estrategias de
recorte, en lugar de las diferencias reales de intervalo.
A continuación se presentan cuatro opciones, en orden de preferencia, que son idénticas a la estrategia para el objeto
detección, pero para espacios en texto en lugar de objetos en imágenes:
1. Valide de forma cruzada sus datos de entrenamiento. Por ejemplo, divida sus datos de entrenamiento en 10 conjuntos de
datos iguales. Entrene iterativamente con cada grupo de 9 y prediga los intervalos en cada conjunto de datos retenido.
Combine todas las predicciones y úselas como la parte de datos de entrenamiento de su corpus para el Muestreo
Representativo.
2. Utilice un conjunto de datos de validación de la misma distribución que sus datos de entrenamiento, obtenga predicciones
de intervalos sobre el conjunto de validación y utilice esos intervalos de validación como la parte de datos de
entrenamiento de su corpus para el muestreo representativo.
3. Predecir sobre los datos de entrenamiento y luego expandir o contraer aleatoriamente los intervalos de modo que
Tienen el mismo buffer promedio que la variación en sus predicciones.
4. Utilice los intervalos reales de los datos de entrenamiento y luego amplíe o contraiga aleatoriamente los intervalos para
que tengan tamaños equivalentes a la variación en sus predicciones.
Las opciones 1 y 2 son estadísticamente casi tan buenas como la otra. Si tiene un conjunto de validación retenido, es un poco
más fácil que reentrenar todo el modelo, pero no serán los datos exactos de su conjunto de entrenamiento, aunque sean lo más
parecidos posible.
Para las opciones 3 y 4, si bien se puede aumentar el tamaño de los intervalos para que el promedio sea el mismo, no se
podrá igualar con exactitud el tipo de errores que se obtienen en las predicciones. Los errores de intervalo previstos no se
distribuirán aleatoriamente, sino que dependerán del propio contexto del texto de maneras que son difíciles de replicar al crear
ruido artificial.
209
En algunas tareas de PNL, es necesario etiquetar cada elemento del texto. Un ejemplo es el etiquetado de categorías
gramaticales (POS), como se muestra en la Figura 6.12:
Punto de venta Dt PRP Sustantivo Aux Adv Verbo PR Dt PRP PRP Sustantivo
Puedes tratar esto de la misma manera que etiquetar secuencias dentro del texto, pero se simplifica porque no tienes que
preocuparte por intentar modelar el contexto de
Esto es muy diferente de nuestro ejemplo de Visión Artificial, donde necesitábamos métodos distintos para extraer
elementos individuales (detección de objetos) de métodos que etiquetan la imagen completa (segmentación semántica/
etiquetado de píxeles). Esta diferencia se debe a la variación en el mundo real: en la mayoría de las tareas de Visión
Artificial donde etiquetamos la imagen completa, algunos objetos son mucho más importantes que otros; pero en la
mayoría de las tareas de Procesamiento del Lenguaje Natural donde etiquetamos cada token (excepto como "Otro"),
todos los tokens son aproximadamente iguales.
Aún podría considerar estratificar por etiquetas para la Diversidad en el Mundo Real. En la Figura 6.12, esto podría
significar tomar los 100 sustantivos, los 100 verbos y los 100 adverbios más inciertos, etc. Si desea un modelo con una
precisión general en todas las etiquetas de datos, esta sería una mejor estrategia, junto con el uso de la Puntuación Macro
F para evaluar la precisión del modelo.
También podría considerar estratificar por demografía para la Diversidad del Mundo Real. Por ejemplo, podría querer
probar que las oraciones con pronombres masculinos ("él/él/su/él mismo") y pronombres femeninos ("ella/su/suya/ella
misma") se predicen con la misma precisión, y tomar medidas para muestrear los datos correctos si no es así. De hecho,
esto resultó ser un problema real que descubrí mientras escribía este libro. Los principales sistemas de categorías
gramatical en línea, incluyendo los de Stanford, Google y Amazon, todos llamaron erróneamente "hers" a un sustantivo o
adjetivo en oraciones como "el auto es suyo", mientras que no cometieron ningún error por "his" en "el auto es suyo". La
causa resultó ser por razones sutiles principalmente lingüísticas, no por sesgo humano, pero la solución fue un mejor
muestreo de datos.
Puede haber excepciones en ambos casos (tareas de segmentación semántica en las que se preocupan por todas
las etiquetas por igual y tareas de etiquetado de secuencia completa en las que se preocupan más algunas etiquetas), así
que pregúntese si su caso de uso es uno de estos y elija una estrategia según corresponda.
Como con cualquier otro método, siempre debe tomar muestras aleatorias del texto para su revisión. Esto le proporcionará
datos de evaluación y le dará una referencia del éxito de su aprendizaje activo.
210
Trabajando. Puedes probar esto para documentos completos o para oraciones individuales, según lo que tenga sentido para
tus datos.
Para una pequeña cantidad de muestras, puede utilizar el muestreo a nivel de documento. Esto contribuirá a la
diversidad, evitando el sesgo con mayor facilidad que los métodos presentados en esta sección.
Si aplica la agrupación en clústeres a nivel de todo el documento y encuentra clústeres enteros con pocos o ningún
elemento de entrenamiento existente, entonces eso es una buena evidencia de que debería solicitar una revisión humana
para algunos elementos en esos clústeres: podría estar pasando por alto algo por completo.
Si está introduciendo nuevos tipos de datos en su modelo (quizás esté incorporando texto de redes sociales cuando
antes solo tenía artículos de noticias), el Muestreo Representativo a nivel de documento debería ayudarle a adaptarse más
rápidamente. También significará que se adaptará con menos sesgo que si intenta implementar solo el Aprendizaje Activo a
nivel de intervalo al incorporar más datos por primera vez. Si prueba métodos a nivel de intervalo con tipos de datos muy
diferentes, será difícil evitar el sesgo hacia objetos que ya ha visto, ya que algunos podrían quedar por debajo del umbral
utilizado.
La generación de texto mediante preguntas y respuestas, donde se da una oración completa como respuesta a una
pregunta, está ganando popularidad como otro ejemplo de generación de texto. Otro ejemplo es un sistema de diálogo como
un chatbot que produce oraciones en respuesta a las interacciones. El resumen es otro ejemplo, que produce un número
menor de oraciones a partir de un texto más extenso. Sin embargo, no todos estos casos de uso utilizan necesariamente la
generación de texto completo. Por ejemplo, muchos sistemas de preguntas y respuestas, chatbots y algoritmos de resumen
utilizan salidas con plantillas para crear lo que parecen comunicaciones reales, tras extraer las secuencias importantes de
las entradas. En estos casos, utilizan etiquetas a nivel de documento y etiquetas de secuencia, por lo que las estrategias de
aprendizaje activo que ya ha aprendido para el etiquetado de documentos y secuencias serán...
suficiente.
Un factor que complica la generación de texto es que rara vez hay una sola respuesta correcta. Esto se soluciona a menudo
incluyendo múltiples respuestas correctas en los datos de evaluación y permitiendo que...
211
La mejor coincidencia será la puntuación utilizada. Por ejemplo, en tareas de traducción, los datos de
evaluación suelen contener varias traducciones "correctas", y la precisión se calcula según la mejor
coincidencia de una traducción con cualquiera de ellas.
En los últimos años, los principales avances en la Traducción Automática Neural han sido la generación
completa de oraciones: el Aprendizaje Automático toma ejemplos de las mismas oraciones en dos idiomas y
entrena un modelo que puede traducir directamente de una oración a otra. Esto es increíblemente potente.
Anteriormente, los sistemas de Traducción Automática contaban con múltiples pasos para analizar en
diferentes idiomas y alinear las dos oraciones; cada uno de ellos era un sistema de Aprendizaje Automático
propio, a menudo integrado con un metasistema de Aprendizaje Automático para combinarlos. Los sistemas
de Traducción Automática Neural más recientes, que solo necesitan texto paralelo y pueden gestionar todo
el proceso, solo utilizan aproximadamente el 1% del código de los sistemas prefabricados anteriores y son
mucho más precisos.
El único retroceso es que los sistemas de traducción automática neuronal actuales son menos
interpretables que sus predecesores no neuronales. Por lo tanto, es más difícil identificar la confusión en
los modelos.
Para el muestreo de incertidumbre, se puede observar la variación entre múltiples predicciones, al igual que
se hizo para el etiquetado de secuencias y las tareas de visión artificial. Sin embargo, este es un área mucho
menos estudiada. Si se construyen modelos para la generación de texto, probablemente se esté utilizando
un algoritmo que genera múltiples candidatos posibles. Podría ser posible observar la variación en estos
candidatos para medir la incertidumbre. Sin embargo, los modelos de traducción automática neuronal suelen
generar solo un pequeño número de candidatos mediante un método llamado búsqueda de haz (alrededor
de 5), lo cual no es suficiente para medir la variación con precisión. Investigaciones recientes muestran que
ampliar la búsqueda puede reducir la precisión general del modelo, algo que obviamente se desea evitar.
Se podría intentar modelar la incertidumbre con modelos de conjunto o abandonos de un modelo único.
Medir el nivel de acuerdo entre modelos de conjunto es una práctica de larga data en la traducción automática
para determinar la incertidumbre, pero los modelos son muy costosos de entrenar (a menudo, días o
semanas), por lo que entrenar múltiples modelos simplemente para tomar muestras de la incertidumbre
podría ser prohibitivamente costoso.
El uso de abandonos durante la generación de oraciones podría ayudar a generar puntuaciones de
incertidumbre al obtener múltiples oraciones diferentes de un solo modelo. Sin embargo, no conozco a nadie
que utilice el método de Monte Carlo para el aprendizaje activo en una tarea de generación de texto. Mientras
escribía este capítulo, se publicó en línea un artículo que propone el método de Monte Carlo para calcular la
incertidumbre (confianza) a nivel de oración y palabra para una subtarea de traducción automática llamada
9 Myle Ott, Michael Auli, David Grangier y Marc'Aurelio Ranzato. 2018. Análisis de la incertidumbre en la traducción automática neuronal. ICML'18
212
Retrotraducción.10 El artículo es de la Universidad de Tsinghua, una de las mejores universidades para la investigación
en aprendizaje automático, por lo que probablemente sea un buen artículo sobre el cual construir, pero obviamente es
mejor esperar a que cualquier artículo pase la revisión de su conferencia/revista antes de confiar en él.
El muestreo por diversidad para la generación de texto es más sencillo que el muestreo por incertidumbre.
Si su entrada es texto, puede implementar el Muestreo por Diversidad exactamente como lo hizo en el Capítulo 4
para el etiquetado a nivel de documento. Puede usar la Agrupación para asegurar un conjunto diverso de entradas, el
Muestreo Representativo para adaptarse a nuevos dominios y los Valores Atípicos Basados en Modelos para muestrear
lo que resulta confuso para su modelo actual. También puede estratificar sus muestras según cualquier dato demográfico
real.
El muestreo de diversidad ha sido tradicionalmente un enfoque principal de la traducción automática. La mayoría de
los sistemas de traducción automática son de propósito general, por lo que los datos de entrenamiento deben cubrir el
mayor número posible de palabras en sus pares de idiomas, con cada palabra en el mayor número posible de contextos
diferentes, especialmente si esa palabra tiene múltiples traducciones diferentes según el contexto.
En sistemas de Traducción Automática específicos de un dominio, se suele utilizar el Muestreo Representativo para
garantizar que cualquier palabra o frase nueva importante para un dominio tenga traducción. Por ejemplo, al adaptar un
sistema de Traducción Automática a un nuevo dominio técnico, conviene sobremuestrear los términos técnicos de dicho
dominio, ya que es importante que estén correctos y es poco probable que un sistema de Traducción Automática más
general los conozca.
Una de las aplicaciones más interesantes para la generación de texto mediante Muestreo de Diversidad es la
creación de nuevos datos para otras tareas. Por ejemplo, nuestro conjunto de datos de respuesta a desastres no
contiene muchos ejemplos de mensajes sobre brotes de enfermedades en Norteamérica, pero sería útil contar con
ejemplos ficticios pero realistas para entrenar, de modo que nuestro modelo sea preciso si se necesita rastrear brotes
en Norteamérica con poca antelación. Si ya contamos con modelos que capturan enfermedades y ubicaciones, como en
la sección anterior, el aprendizaje automático puede usarlos para generar nuevas oraciones para nuevas combinaciones
de enfermedades y ubicaciones. Una persona puede entonces evaluar rápidamente si la nueva oración es correcta o no
(conocido como "Aprendizaje Débilmente Supervisado") o el sistema podría confiar en las oraciones confiables sin
revisión humana (una forma de "Aprendizaje SemiSupervisado").
Este tipo de enfoques generativos para el entrenamiento de datos, conocidos como “Aumento de datos”, son algunos
de los avances recientes más apasionantes en el aprendizaje automático con intervención humana, a los que volveremos
en los capítulos sobre aprendizaje por transferencia.
Puede aplicar el aprendizaje por transferencia activa a la generación de texto de forma similar a los demás casos de uso
de este capítulo. También puede aplicar el aprendizaje por transferencia activa al muestreo adaptativo.
10 [Link]
213
(ATLAS), adaptándose dentro de un ciclo de aprendizaje activo porque puede asumir que las primeras secuencias que muestrea
serán corregidas posteriormente por etiquetadores humanos, incluso si no sabe qué
Esas etiquetas son.
Sin embargo, deberá definir cuidadosamente qué se considera una predicción "correcta" o "incorrecta" en sus datos de
validación. Normalmente, esto implica establecer un umbral de precisión por encima del cual una oración se considera correcta o
incorrecta. Si puede calcular la precisión por token, tendrá la opción de agregar la precisión de todos los tokens para crear un
valor numérico. Puede predecir un valor continuo en lugar del binario "correcto/incorrecto", como en el ejemplo de IoU para la
detección de objetos.
Tenga en cuenta que, al igual que con IoO, no he experimentado con la extensión de ATLAS a variables continuas para la
generación de secuencias ni he visto a alguien más intentarlo, así que trátelo como una tarea experimental si desea implementarlo
y también implemente los algoritmos básicos de muestreo de incertidumbre como base.
La recuperación de información es el conjunto de algoritmos que impulsan los motores de búsqueda y los sistemas de
recomendación. Existen múltiples métricas que permiten calcular la precisión de los sistemas de recuperación que devuelven
múltiples resultados de una consulta, y la más común actualmente es la Ganancia Acumulativa Descontada (GDC), donde reli es
la relevancia graduada del resultado en una posición p:
El logaritmo (log()) se utiliza para desvalorizar las entradas inferiores. Por ejemplo, si se desea que el primer resultado de
búsqueda sea el más preciso, se presta menos atención al segundo resultado, y a la tercera, etc. El uso de un logaritmo fue una
ponderación bastante arbitraria.
214
cuando se introdujo por primera vez, pero algunas teorías relativamente recientes sugieren que sí tiene validez
matemática.11
Los sistemas de búsqueda del mundo real son algunos de los casos de uso más sofisticados del aprendizaje
automático con intervención humana en la actualidad. Imagine una búsqueda sencilla en una tienda online. La tienda
utiliza un tipo de aprendizaje automático para obtener los resultados. Utiliza un segundo tipo de aprendizaje
automático para identificar palabras clave y entidades en la cadena de búsqueda. Utiliza un tercer tipo de aprendizaje
automático para extraer el texto de resumen relevante de cada producto en los resultados. Los productos se clasifican
por tipo (electrónica, libros, etc.) para mejorar la relevancia de la búsqueda mediante un cuarto tipo de aprendizaje
automático. También podría utilizar un quinto tipo de aprendizaje automático para determinar cuál es la imagen ideal
para mostrar (con fondo plano o en contexto).
Muchos motores de búsqueda modernos también intentan maximizar la diversidad, mostrando diferentes tipos de
productos en lugar de diez versiones distintas del mismo. Por lo tanto, podría haber seis o más sistemas de
aprendizaje automático que contribuyan a los resultados de búsqueda, y eso antes de que cualquier modelo intente
personalizar los resultados para su experiencia. Cada uno de estos sistemas de aprendizaje automático necesita sus
propios datos de entrenamiento. Algunos de estos datos pueden derivarse de los clics de los usuarios, pero la mayor
parte proviene de anotadores fuera de línea que proporcionan esa retroalimentación.
Así que, aunque comprar en línea no parezca que se utiliza aprendizaje automático de vanguardia, hay mucho
que ocurre tras bambalinas. De hecho, esta es la razón por la que se inventó la plataforma de crowdsourcing más
conocida, Mechanical Turk de Amazon: para depurar la información del catálogo de productos en la tienda en línea.
La recuperación de información también tiende a utilizar métricas de precisión más realistas que otras aplicaciones
de aprendizaje automático. Si bien DCG es popular para la evaluación offline de la relevancia de las búsquedas, los
resultados para quienes utilizan el sistema suelen estar optimizados para métricas orientadas al negocio: la cantidad
de compras que realiza una persona; la cantidad de clics por segundo entre una búsqueda y la compra; el valor del
cliente durante los próximos seis meses, etc. Dado que se centran en el uso real del modelo, a veces se denominan
"métricas online", a diferencia de F Score e IoU, que son "métricas offline". Estas son muy diferentes de las métricas
que ya conoce, como F Score e IoU, y están mucho más centradas en el usuario. Por lo tanto, otros casos de uso
pueden aprender mucho de la comunidad de recuperación de información.
La mayoría de las soluciones para imágenes fijas también se aplican a la detección de objetos o la segmentación
semántica en videos: concéntrese en las regiones que más le interesan del video y úselas para sus muestras. Si su
modelo ya se centra únicamente en los objetos o etiquetas que le interesan, puede implementar el Muestreo de
Incertidumbre y los Valores Atípicos Basados en Modelos sin tener que recortar ni enmascarar sus videos para los
objetos que le interesan. Si...
11 Yining Wang, Liwei Wang, Yuanzhi Li, Di He, Wei Chen y TieYan Liu. 2013. Un análisis teórico de la ganancia acumulada descontada normalizada (NDCG)
Medidas de clasificación. COLT'13
215
Si aplica el muestreo de diversidad, entonces es casi seguro que desea recortar/enmascarar esos objetos.
primero.
La mayor diferencia entre los vídeos y las imágenes fijas es que se tendrán muchos fotogramas de datos del
mismo vídeo, con imágenes casi idénticas. La solución obvia es la mejor: si se tienen varios fotogramas de lo que
el modelo considera el mismo objeto, se muestrea el fotograma con mayor incertidumbre. El proceso iterativo de
reentrenamiento con ese nuevo objeto probablemente proporcionará posteriormente algunos o todos los demás
fotogramas con alta confianza.
El Muestreo por Diversidad ya debería reducir la cantidad de veces que se selecciona un mismo objeto en
diferentes fotogramas, ya que se verá igual en todos ellos. Si el objeto cambia de forma, probablemente quieras
muestrearlo en diferentes formas, así que esto funciona. Un ejemplo es el lenguaje de señas: no estás rastreando
un objeto, sino más bien intentando interpretar un flujo de información, por lo que tu estrategia de Aprendizaje
Activo podría parecerse más a texto y voz (abajo) que a la detección de objetos.
Tenga en cuenta que si no utiliza el Muestreo de Diversidad para la detección de objetos en vídeos, podría
descubrir que las muestras más inciertas son todas del mismo objeto en fotogramas sucesivos. La mayoría de las
empresas que he visto simplemente muestrean cada enésimo fotograma o un número exacto de fotogramas por
vídeo: normalmente el primero, el último y algunos intermedios. Este enfoque no tiene nada de malo, pero muestrear
la Diversidad mediante Clustering y Muestreo Representativo Adaptativo, además del muestreo aleatorio,
generalmente produce muestras mucho más ricas. También podría necesitar sobremuestrear algunos vídeos para
obtener más fotogramas que contengan ciertas etiquetas menos comunes, para garantizar la diversidad real.
Tienes muchas imágenes individuales si tomas cada fotograma de cada vídeo, por lo que también puedes
intentar la agrupación a gran escala en todas las imágenes, primero, y usar el número total de vídeos como guía:
1. Si tiene menos clústeres que el número total de videos, entonces combinará los similares
videos en un grupo y tener una diversidad muy específica 2. Si tiene
más grupos que la cantidad total de videos, entonces debería terminar con algunos videos divididos en múltiples
grupos, idealmente los videos con contenido más diverso.
Esto da un amplio margen para combinar los diferentes métodos de aprendizaje activo que hemos cubierto en este
libro para anotar un vídeo lo más rápido posible.
216
Si se está transcribiendo voz a texto, o se realiza alguna otra tarea que busque errores en toda la grabación, esto se asemeja
más a la generación de texto, donde se busca enfocarse en la diversidad para muestrear el mayor número posible de actos de habla
diferentes. En prácticamente todos los idiomas del mundo, el sistema escrito está más estandarizado que el hablado. Por lo tanto, la
diversidad cobra mayor importancia al intentar capturar todos los acentos y variaciones lingüísticas posibles, en comparación con
trabajar con texto.
El habla se sitúa entre el texto y las imágenes en lo que respecta a la importancia de la tecnología de recopilación de datos.
La calidad del micrófono, el ruido ambiental, el dispositivo de grabación, el formato de archivo y las técnicas de compresión pueden
producir artefactos que su modelo podría aprender erróneamente en lugar de...
Información real.
Más que cualquier otro tipo de datos aquí analizado, el habla es el que más difiere entre su estructura percibida y su estructura
física real. Por ejemplo, se perciben espacios entre palabras, pero eso es una ilusión, ya que el habla real casi siempre las une.
Además, casi todos los sonidos cambian en el contexto inmediato. Por ejemplo, el plural en inglés es una "s" o una "z" según el
fonema anterior ("cats" y "dogz") , pero podrías haber asumido que se trataba de un solo sonido si nadie te lo hubiera indicado
previamente.
Existe una larga historia de personas que obtienen información del habla para capturar todos los sonidos (fonemas) posibles en
un idioma en el mayor número posible de contextos. La variación inherente en la recopilación de datos de habla aporta una simetría
interesante al campo de los datos de entrenamiento para el aprendizaje automático.
Algunas de las primeras técnicas de recopilación de datos para el reconocimiento de voz consistían en pedir a hablantes nativos
que pronunciaran frases sin sentido que maximizaran la cantidad de fonemas diferentes que aparecían en distintos contextos, con
el fin de obtener la mayor diversidad posible de datos de entrenamiento. Las técnicas de entrenamiento de datos más avanzadas,
que utilizan datos generados o sintéticos, ahora hacen exactamente lo mismo con diversos tipos de datos, de forma programática.
Por lo tanto, otro aspecto del aprendizaje automático con intervención humana es que estamos pasando gradualmente de un proceso
manual a uno automatizado.
Probablemente tendrás un número mínimo de artículos que necesitas probar como resultado de
basándose en un cierto número de grupos o estratificación demográfica del mundo real.
El número máximo de elementos por iteración variará según el tipo de datos. Por ejemplo, podría anotar ubicaciones en 1000
mensajes de texto cortos por hora, pero solo completar la segmentación semántica de una imagen durante el mismo período. Por lo
tanto, gran parte de esto dependerá de los tipos de datos y las estrategias de anotación que implemente, algo que abordaremos en
los siguientes capítulos.
217
Si sus modelos de aprendizaje automático pueden aprender de datos parcialmente anotados, entonces hará
que sus sistemas sean mucho más eficientes.
Para continuar con el ejemplo que hemos usado a lo largo de este texto, imagine que está implementando
un modelo de detección de objetos para las calles de una ciudad. Su modelo podría ser lo suficientemente
preciso para identificar coches y peatones, pero no lo suficiente para bicicletas y animales.
Puede que tengas miles de imágenes de bicicletas y animales, pero cada imagen también incluye, en
promedio, docenas de coches y peatones. Idealmente, te gustaría poder anotar solo las bicicletas y los
animales en esas imágenes, y no gastar más de diez veces los recursos para asegurarte de que todos los
coches y peatones también estén etiquetados en esas mismas imágenes. Sin embargo, muchas arquitecturas
de aprendizaje automático no lo permiten: necesitan que todos los objetos estén anotados o, de lo contrario,
se contabilizarán erróneamente en segundo plano.
Por lo tanto, podría muestrear las 100 bicicletas y animales que maximizan la confusión y la diversidad,
pero luego dedica la mayor parte de sus recursos a anotar 1000 coches y peatones a su alrededor, con una
ganancia adicional relativamente pequeña. No hay atajo: si solo muestrea imágenes sin muchos coches ni
peatones, estará sesgando sus datos hacia ciertos entornos que no son representativos de todo su conjunto
de datos. Por lo tanto, si está limitado a sistemas que requieren una anotación completa para cada imagen o
documento, deberá ser extremadamente cuidadoso para asegurarse de muestrear los elementos de mayor
valor en cada ocasión.
Cada vez es más fácil combinar diferentes modelos o tener datos de entrenamiento heterogéneos. Por
ejemplo, se podrían entrenar modelos separados para peatones y coches, y luego tener un modelo que los
combine mediante aprendizaje por transferencia. Abordaremos algunos de estos temas en capítulos posteriores
sobre aprendizaje por transferencia y datos de entrenamiento aumentados.
La mejor solución al problema de tener que anotar solo unos pocos objetos o intervalos en una imagen o
documento grande es incorporar aprendizaje automático al proceso de anotación. Por ejemplo, anotar una
imagen completa para la segmentación semántica podría llevar una hora, pero aceptar o rechazar cada
anotación solo tomará 30 segundos. Recuerde del capítulo 1 la recomendación de que, si es posible, considere
sus tareas de anotación como problemas binarios. Profundizaremos en este tema en los siguientes capítulos,
pero lo presentaremos brevemente aquí, ya que está estrechamente relacionado con su estrategia de
aprendizaje activo.
Mientras escribía este capítulo, me encantó descubrir que un científico de datos ya había adoptado el
consejo del Capítulo 1 de considerar la anotación como una decisión binaria. Este científico está resolviendo
el problema al principio de este capítulo: distinguir las malezas de las plántulas en los campos. Anotar la
segmentación semántica de cada imagen les llevaba aproximadamente una hora de trabajo humano. Tras leer
el consejo del Capítulo 1, el científico decidió crear una interfaz donde el modelo de aprendizaje automático
predijera las malezas y las plántulas, y el anotador simplemente pulsaba "sí" o "no" para aceptar la predicción.
Esto redujo el tiempo de anotación a menos de 20 segundos, ¡una aceleración de 200 veces!
218
Esta es una forma emocionante en la que el aprendizaje automático y la anotación pueden combinarse para hacer que todo
el proceso sea más preciso, y no tengo dudas de que muchas personas que usan este libro obtendrán mejoras en sus
aplicaciones de aprendizaje automático que también son mejoras de 100x.
El peligro de combinar predicciones y anotaciones humanas es que las personas podrían verse inducidas a confiar en una
predicción que no es correcta y, por lo tanto, perpetuar un sesgo existente.
Este es un problema complejo de interacción personacomputadora. Tiene solución, pero requiere cierta experiencia, y se
abordará con más detalle en los siguientes capítulos.
6.7 Resumen
• Hay muchos casos de uso en los que desea identificar o extraer información dentro de una imagen o documento, en lugar
de la simple tarea de etiquetar toda la imagen o el documento.
Las mismas estrategias de aprendizaje activo se pueden aplicar a estos casos de uso y comprender la estrategia
correcta le ayuda a comprender los diferentes tipos de problemas a los que puede aplicar el aprendizaje activo y cómo
desarrollar la estrategia adecuada para su uso.
caso.
Necesita recortar o enmascarar sus imágenes y documentos para aprovechar al máximo algunas estrategias de aprendizaje
activo. Una estrategia correcta de recorte o enmascaramiento producirá mejores muestras para la revisión y comprensión
humana, lo que le ayudará a seleccionar el método más adecuado para sus casos de uso. El aprendizaje activo se
puede aplicar a muchas tareas más allá de la visión artificial y el procesamiento del lenguaje natural,
como la recuperación de información, el reconocimiento de voz y los vídeos.
Comprender el panorama más amplio de las áreas de aplicación del aprendizaje activo le ayudará a adaptar cualquier
problema de aprendizaje automático.
• La cantidad de elementos a seleccionar para revisión humana en cada iteración de Advanced Active
El aprendizaje es muy específico para sus datos. Comprender la estrategia correcta para sus datos es fundamental
para implementar los sistemas de aprendizaje automático con intervención humana más eficientes para sus problemas.
219
7
Seleccionar a las personas adecuadas para
Anote sus datos
• Comprender las características de los tres tipos principales de fuerza laboral de anotación:
casa, contratada y pago por tarea.
• Aplicar los tres principios clave para motivar a un anotador: salario, seguridad y
Transparencia y cómo aplicar los principios a diferentes fuerzas laborales.
• Evaluación de las fuerzas laborales con sistemas de compensación no monetaria, incluyendo la aplicación final.
usuarios, voluntarios, personas que juegan y datos/anotaciones generados por computadora.
• Evaluar sus requisitos de volumen de anotación, para comprender la escala y
frecuencia de las anotaciones que necesitarás.
• Decidir sobre las cualificaciones necesarias para una tarea de anotación, con el fin de comprender la
cantidad de formación y/o experiencia que necesitan los anotadores.
En los últimos capítulos del libro, aprendiste a seleccionar los datos adecuados para la revisión humana. Ahora,
los siguientes capítulos explicarán cómo optimizar esa interacción humana.
Los modelos de aprendizaje automático a menudo requieren miles (y a veces millones) de instancias de
retroalimentación humana para obtener los datos de entrenamiento necesarios para ser precisos.
El tipo de personal que necesitas dependerá de tu tarea, escala y urgencia. Si tienes una tarea sencilla,
como identificar si una publicación en redes sociales genera un sentimiento positivo o negativo, y necesitas
millones de anotaciones humanas lo antes posible, tu personal ideal no requiere habilidades especializadas.
Pero idealmente, ese personal puede escalar a miles de personas simultáneamente y cada una puede ser
contratada por periodos cortos.
220
Sin embargo, si se enfrenta a una tarea compleja, como identificar evidencia de fraude en documentos financieros repletos de
términos financieros, probablemente necesite anotadores con experiencia en el ámbito financiero o que puedan capacitarse para
comprenderlo. Si los documentos están en un idioma que usted no domina, encontrar y evaluar a las personas adecuadas para
anotar los datos será aún más complicado.
A menudo, se desea una estrategia de anotación de datos que combine diferentes tipos de fuerzas de trabajo.
Imagina que trabajas en una gran empresa financiera y estás desarrollando un sistema para monitorizar noticias financieras que
podrían indicar un cambio en el valor de las empresas. Esto formará parte de una aplicación ampliamente utilizada para tomar
decisiones sobre la compra y venta de acciones de empresas que cotizan en bolsa. Necesitas anotar los datos con dos tipos de
etiquetas: de qué empresa trata cada artículo y si la información de cada artículo implica un cambio en el precio de las acciones.
Para el primer tipo de etiqueta, la identificación de la empresa, se pueden emplear fácilmente anotadores sin experiencia. No
es necesario comprender las noticias financieras para identificar los nombres de las empresas. Sin embargo, es complicado
comprender qué factores pueden influir en el precio de las acciones. En algunos casos, basta con tener fluidez general si el
contenido es explícito, por ejemplo, "se espera que el precio de las acciones baje". En otros casos, no es tan obvio. Por ejemplo,
en la frase "Acme Corp cumple con las proyecciones ajustadas del tercer trimestre", ¿es positivo o negativo que una empresa
cumpla con una proyección trimestral ajustada? Es necesario comprender el contexto del ajuste.
El lenguaje más complicado con siglas financieras es imposible de entender para una persona sin formación en el ámbito financiero.
Por lo tanto, usted podría decidir que necesita tres tipos de fuerza laboral: trabajadores colaborativos que puedan aumentar o
disminuir la escala más rápidamente cuando se publican los primeros artículos de noticias para identificar de qué empresas se está
hablando; trabajadores contratados a quienes pueda capacitar en terminología financiera para comprender los cambios en los
precios de las acciones; y expertos internos que puedan etiquetar los casos extremos más difíciles, juzgar etiquetas conflictivas y
brindar instrucciones a otros trabajadores.
Independientemente de quiénes sean las personas adecuadas, obtendrá el mejor rendimiento de ellas cuando reciban un
salario justo, estén seguras en su puesto y tengan transparencia sobre el trabajo que realizan. La forma más ética de gestionar una
fuerza laboral es también la mejor para su organización. Este capítulo explica cómo seleccionar y gestionar la fuerza laboral
adecuada para cualquier...
tarea de anotación.
221
Figura 7.1: Anotación de datos en nuestro diagrama, que es el proceso de creación de datos sin etiquetar: ya sea etiquetando
datos sin etiquetar o revisando etiquetas generadas a partir de un modelo.
En este capítulo y los siguientes, profundizaremos en el componente Anotación de la Figura 7.1, mostrando los subprocesos y
algoritmos necesarios para ejecutar correctamente los proyectos de anotación.
Un consejo: comience su estrategia de datos con su estrategia de algoritmos. Refinar su estrategia y directrices de etiquetado
tomará tanto tiempo como la arquitectura y los parámetros de su algoritmo, y su elección de algoritmo y arquitectura debe basarse
en el volumen de etiquetas esperado.
Cuanto más respeto muestres a las personas que etiquetan tus datos, mejores serán tus datos.
Independientemente de que la persona sea un experto interno en la materia o un trabajador externo que solo contribuirá unos pocos
minutos en total a sus anotaciones, estos principios básicos garantizarán que obtenga las mejores anotaciones posibles:
Los tres tipos principales de fuerza laboral se resumen en la Figura 7.2, que muestra una cantidad desigual de trabajo necesario a lo
largo del tiempo. Los trabajadores de crowdsourcing son los más fáciles de escalar y
222
La calidad del trabajo suele ser inferior. Los trabajadores internos son los más difíciles de escalar, pero suelen ser expertos en la
materia (SME) que proporcionan datos de la más alta calidad.
Los trabajadores externalizados se encuentran en un punto intermedio: tienen cierta flexibilidad con respecto a los trabajadores de
crowdsourcing y pueden capacitarse para alcanzar altos niveles de especialización. Estas diferencias deberían influir en la elección de
su(s) fuerza(s) laboral(es).
Figura 7.2: Resumen de los tres tipos principales de personal que se pueden utilizar para anotar datos. Los trabajadores
colaborativos son los más fáciles de adaptar al volumen de datos actual, pero la calidad del trabajo suele ser inferior. Los
trabajadores internos son los más difíciles de adaptar, pero suelen ser expertos en la materia (SME) que proporcionan datos de la
más alta calidad. Los trabajadores subcontratados se encuentran en un punto intermedio: tienen cierta flexibilidad y pueden capacitarse
para alcanzar altos niveles de especialización.
Cubriremos cada fuerza laboral con más detalle en las siguientes secciones, ampliando los principios de salario, seguridad y propiedad
de cada una.
Las aplicaciones utilizan el aprendizaje supervisado con datos anotados para tal fin. Es ineludible la responsabilidad que tiene con quienes anotan los datos:
si su trabajo se utiliza en los modelos que crea, tiene un deber de cuidado hacia esa persona.
Muchos científicos de datos consideran su trabajo como pura investigación, y muchos científicos de datos sénior en empresas no tienen que gestionar a
otros investigadores, precisamente porque consideran que la gestión de personal obstaculiza el trabajo "real" de investigación. Desafortunadamente para
estas personas, no es posible externalizar su responsabilidad a quienes anotan los datos, incluso si su organización cuenta con un equipo independiente
enteramente.
Así pues, este capítulo podría parecer más un consejo de gestión que un consejo técnico, pero esto es deliberado, porque
Gestionar equipos distribuidos de personas es una habilidad importante para cualquier científico de datos. Por las razones descritas en este...
Capítulo, una buena gestión también es necesaria para garantizar condiciones de trabajo justas para todas las personas que contribuyen a su empresa.
modelos.
223
En este libro, el término «anotación» se utiliza de forma amplia. En algunos casos, puede significar anotar datos sin procesar y, en
otros, revisar las predicciones de un modelo.
Las diferencias pueden ser de órdenes de magnitud en eficiencia y dar lugar a interfaces de usuario muy distintas para la
anotación. Por ejemplo, si le pide a alguien que clasifique si hay una bicicleta en una imagen, podría hacerlo una a una durante unos
segundos cada vez.
Sin embargo, si se tiene la certeza de que las imágenes no contienen bicicletas, se podría colocar una cuadrícula de 10x10 imágenes
frente a una persona y pedirle que seleccione solo las que sí las contienen. De esta forma, se obtendrían 100 anotaciones a la vez,
lo que fácilmente podría ser una aceleración diez veces mayor que anotar una sola imagen a la vez.
Existe el problema de que, si no se tiene cuidado al presentar las predicciones de aprendizaje automático para su revisión, se
podría sesgar el modelo hacia sus predicciones existentes y sesgar al anotador humano para que esté de acuerdo con la predicción
del modelo. Por lo tanto, se podría optar por anotar siempre algunos elementos como si fueran datos sin procesar, incluso si se tiene
una predicción, para evitarlo.
sesgo para cierta cantidad de datos retenidos.
Retomaremos el tema de las interfaces de usuario y el control de calidad en los siguientes capítulos. Por ahora, tenga en cuenta
que al calcular el volumen de trabajo necesario para la anotación, deberá considerar las diferentes maneras de presentar sus datos
para la anotación y la cantidad de trabajo requerida.
En muchas tareas, el objetivo es asistir en los procesos humanos. De hecho, muchos modelos podrían utilizarse para la
automatización o para asistir a las personas, según la aplicación. Por ejemplo, se podría entrenar un algoritmo de detección de
colisiones para impulsar un vehículo totalmente autónomo o para alertar al conductor. De igual forma, se podría entrenar un algoritmo
de imágenes médicas para realizar diagnósticos o fundamentar la toma de decisiones de un médico.
Este capítulo se aplica a ambos tipos de aplicaciones. Más adelante, abordaremos el concepto de usuarios finales como
anotadores. Como se explica en esa sección, es posible que desee emplear anotadores distintos a los usuarios finales, incluso si su
aplicación recibe muchas anotaciones gratuitas, ya que facilitan las tareas humanas.
Para los humanos asistidos por aprendizaje automático, existe un punto adicional relacionado con los principios de seguridad
laboral y transparencia: tener claro que su objetivo es asistir al usuario final en su trabajo y no capacitar a sus sustitutos
automatizados. Sin embargo, si sabe que realmente está recibiendo retroalimentación del usuario final para automatizar la tarea,
debe ser transparente al respecto para que las expectativas sean realistas. Además, debe compensarlo en consecuencia.
224
A pesar de esto, el control de calidad y la gestión de trabajadores son los aspectos menos estudiados para los anotadores
internos, en comparación con los trabajadores externalizados o de colaboración colectiva. La mayoría de los artículos académicos
sobre anotación se han centrado en los trabajadores externalizados y (en particular) de colaboración colectiva con pago por tarea.
Obviamente, se puede obtener una gran ventaja al tener constructores de modelos y anotadores dentro de la misma organización,
ya que así pueden comunicarse directamente entre sí.
Las ventajas del trabajo interno son el conocimiento del dominio y la protección de datos sensibles.
Si trabaja en problemas muy complejos, como analizar informes financieros o diagnosticar imágenes médicas, su equipo interno
podría ser de los pocos en el mundo con las habilidades necesarias para anotar sus datos. Si sus datos contienen información
confidencial, el personal interno también le proporciona la máxima seguridad.
En algunos casos de uso, podría estar limitado a mantener los datos internamente por razones regulatorias. Las herramientas
de generación de datos que abordaremos más adelante en este libro pueden ayudarle en estos casos. Incluso si sus datos sintéticos
no son 100 % precisos, es muy probable que no sean tan sensibles como sus datos reales, lo que significa que existe la oportunidad
de contratar personal externo para filtrar o editar los datos sintéticos según el nivel de precisión deseado. Volveremos a los métodos
de aumento de datos sintéticos más adelante en este capítulo.
Probablemente no fijes el salario de los anotadores dentro de tu empresa, así que este principio es gratuito: ya reciben un salario
acordado en tu empresa. Si estableces el salario para tus anotadores internos, asegúrate de que reciban el mismo respeto y justicia
que los demás empleados.
Un trabajador interno ya tiene un trabajo (por definición), por lo que la seguridad reside en su capacidad de conservarlo mientras
usted siga dándole trabajo. Es decir, su capacidad de garantizar que conserve ese trabajo.
Si el empleo y los puestos organizativos de sus empleados internos ofrecen menor estabilidad laboral debido a su carácter
temporal o por contrato, aplique algunos de los principios de los trabajadores subcontratados. Por ejemplo, si son trabajadores por
contrato, intente estructurar la cantidad de trabajo disponible para que sea lo más constante posible y con expectativas claras sobre
la duración de su empleo.
Sea transparente sobre la movilidad laboral: ¿puede la persona volverse permanente y/o mudarse a otro lugar?
¿otros roles?
225
La transparencia suele ser el principio más importante para los trabajadores internos. Si los trabajadores ya reciben su salario
independientemente de si crean anotaciones, es necesario que la tarea sea intrínsecamente interesante.
La mejor manera de hacer interesante cualquier tarea repetitiva es dejar clara su importancia. Si sus anotadores internos son
transparentes sobre cómo su trabajo mejora la empresa, esto puede ser una buena motivación para su trabajo.
De hecho, la anotación puede ser una de las formas más transparentes de contribuir a una organización. Si tiene objetivos diarios
para el número de anotaciones o puede compartir cómo aumenta la precisión en sus modelos entrenados, es fácil vincular el trabajo
de anotación con los objetivos de la empresa. Es mucho más probable que un anotador contribuya a aumentar la precisión que un
científico que experimenta con nuevos algoritmos, por lo que este hecho debería compartirse con su equipo.
¡anotadores!
Además de la motivación diaria de ver cómo las anotaciones benefician cuantitativamente a la empresa, los anotadores internos
también deben tener claro cómo su trabajo contribuye a los objetivos generales de la empresa. Un anotador que dedica 400 horas a
anotar datos que impulsan una nueva aplicación debe sentirse tan comprometido como un ingeniero que dedica 400 horas a codificarla.
Veo que las empresas se equivocan constantemente: sus equipos internos de anotaciones desconocen el impacto que su trabajo
tiene en los objetivos diarios o a largo plazo. Esto es una falta de respeto a quienes realizan el trabajo y genera baja motivación, alta
rotación de personal y anotaciones de baja calidad. Por lo tanto, no ayuda a nadie.
Además, tiene la responsabilidad de garantizar que el trabajo esté disponible de forma constante para los trabajadores internos.
Sus datos podrían llegar en ráfagas por razones que escapan a su control. Por ejemplo, si clasifica artículos de noticias, dispondrá de
más datos en los momentos del día y de la semana en que se publiquen en ciertas zonas horarias. Esto se presta más a un equipo de
anotación colaborativo, pero podría decidir que se pueda retrasar el etiquetado de algunos datos. La Figura 7.3 muestra esto, con los
datos más críticos anotados a medida que llegan y...
226
Figura 7.3: Optimización del trabajo para empleados internos. Es posible que sus datos lleguen en ráfagas por razones
que escapan a su control. Es posible optimizar este proceso anotando los datos más críticos conforme llegan y los demás
posteriormente. El gráfico inferior muestra cómo se vería esto con la carga de trabajo de anotación completamente
optimizada.
Cuanto más consistente sea el etiquetado de los datos, más fácil será gestionar los procesos de anotación. Para simplificar
el proceso, se pueden aleatorizar los datos más críticos, pero existen otras opciones con las que se puede experimentar.
Por ejemplo, se pueden agrupar todos los datos primero y asegurarse de que los centroides se anoten primero para
garantizar la diversidad. Como alternativa, o además, se puede aplicar el Muestreo Representativo para anotar primero
los elementos más recientes . Todas estas son buenas maneras de simplificar el volumen de anotaciones necesarias y,
al mismo tiempo, aprovechar al máximo los datos en cuanto llegan.
227
Independientemente de la combinación de personal que utilice, recomiendo realizar sesiones de anotación con
la mayor diversidad posible de personal interno. Esto le proporcionará varios beneficios.
Las anotaciones de alta calidad creadas por personas internamente pueden convertirse en sus ejemplos de
capacitación (humanos) que forman parte de sus datos de control de calidad (¡más en el próximo capítulo!).
Las sesiones de anotación internas también ayudarán a detectar casos extremos en una etapa temprana:
elementos de datos que son difíciles de etiquetar porque no están cubiertos por las pautas de anotación actuales.
Comprender estos casos extremos le ayudará a refinar la definición de su tarea y sus instrucciones para las
personas que anotan sus datos.
Finalmente, es una excelente actividad para fomentar el espíritu de equipo. Si reúnes a personas de todos
los departamentos de tu organización en una misma sala (con comida y bebida si es por un periodo prolongado),
siempre es muy divertido. Es una forma de que todos en tu empresa puedan contribuir a tus aplicaciones de
aprendizaje automático. Invita a todos a anotar datos durante al menos una hora juntos mientras discuten sus
casos extremos a medida que los encuentran. En muchas empresas en las que he trabajado, la "hora de
anotación" es el momento favorito de la semana para muchos. Es inherentemente social y enriquecedor.
Este ejercicio también puede ser una buena manera de establecer un equipo interno de expertos para crear
y actualizar las directrices para su equipo de anotación más amplio. Especialmente si tiene datos que cambian
con el tiempo, le conviene actualizar periódicamente sus directrices de anotación y proporcionar ejemplos de
anotaciones actuales.
También puede contratar a anotadores externos como expertos, y en ocasiones, un buen colaborador
colaborador podría ayudarle con este proceso. Muchas organizaciones especializadas en anotaciones cuentan
con expertos internos sobre la mejor manera de crear directrices y material de capacitación. Confíe en su
experiencia y considere invitar a personas de organizaciones externas a su sesión de anotación interna.
En la Figura 7.4 se muestran algunos ejemplos de cómo integrar anotadores expertos. La primera opción
(ignorar por completo) no se recomienda, excepto en estudios piloto. Los elementos confusos y difíciles de
anotar, por ser inherentemente ambiguos o estar entre dos definiciones de etiqueta, rara vez deben descartarse
por completo. Sin embargo, muchos conjuntos de datos académicos conocidos se crearon de esta manera:
excluyendo los elementos difíciles de etiquetar tanto de los conjuntos de datos de entrenamiento como de
evaluación. Esto rara vez funciona en la práctica con modelos que necesitan escalar.
228
Figura 7.4: Tres flujos de trabajo diferentes para la anotación interna. El primero se recomienda solo para pilotos: no utiliza
anotadores internos e ignora los elementos difíciles de anotar. El segundo ejemplo es el más común en la industria: los ejemplos
difíciles se redirigen a expertos para su revisión. Esto funciona bien si se tienen datos bastante consistentes a lo largo del tiempo. Si los
datos cambian rápidamente, se recomienda el tercer método.
En el tercer método, los anotadores expertos buscan nuevos casos límite potenciales mediante el Muestreo por Diversidad y el
Muestreo por Incertidumbre antes de iniciar el proceso principal de anotación. Posteriormente, estos ejemplos y las directrices
actualizadas se transmiten al equipo principal de anotación. Este es el único método para garantizar que las directrices no se
desvíen de los datos reales. Los anotadores expertos también anotan algunos elementos seleccionados aleatoriamente para garantizar la calidad.
229
Si implementa el primer método de la Figura 7.4 en una prueba piloto, excluya los elementos confusos en lugar de incluirlos con
etiquetas potencialmente incorrectas. Por ejemplo, si el 5% de sus elementos no se pudo etiquetar, excluya ese 5% de sus datos
de entrenamiento y evaluación y asuma que tiene un 5% de error adicional.
Si incluye datos ruidosos resultantes de etiquetas incorrectas en sus datos de entrenamiento y evaluación, será difícil medir
su precisión. No crea que incluir datos de entrenamiento ruidosos de elementos difíciles de etiquetar es aceptable. Existen
muchos algoritmos que pueden mantener la precisión con datos de entrenamiento ruidosos, pero asumen ruido predecible (ruido
aleatorio, ruido uniforme, ruido gaussiano, etc.). Si los elementos fueron difíciles de etiquetar, probablemente no fue aleatorio.
repartido.
El segundo ejemplo de la Figura 7.4 es el más común en la industria: los ejemplos concretos se redirigen a expertos para su
revisión. Esto funciona bien si se cuenta con datos bastante consistentes a lo largo del tiempo.
Si sus datos cambian rápidamente, se recomienda el tercer método de la Figura 7.4. En este método, los anotadores
expertos buscan posibles nuevos casos extremos con Muestreo por Diversidad y Muestreo Representativo, y luego estos
ejemplos y las directrices actualizadas se pasan al equipo principal de anotación. Este es el único método para garantizar que
las directrices no se desvíen de los datos reales. Los anotadores expertos también anotan algunos elementos seleccionados
aleatoriamente, por razones de control de calidad que abordaremos en el siguiente capítulo. Si recibe datos regularmente, esto
le permite programar a sus empleados internos de forma más predecible que si les pidiera que respondieran a ejemplos concretos
puntuales, como en el segundo ejemplo.
También puede combinar el segundo y el tercer método, intentando anticiparse a los nuevos casos de uso tanto como sea
posible, pero permitiendo que los ejemplos concretos se redirijan a la revisión experta. Probablemente solo necesite hacer esto
si sus datos son particularmente difíciles de anotar o en las primeras iteraciones de las anotaciones, antes de haber descubierto
todos los casos límite principales.
Los trabajadores subcontratados son la fuerza laboral de mayor crecimiento en la anotación de datos. En los últimos cinco años,
he visto cómo la cantidad de trabajo que se destina a empresas de subcontratación, a veces llamadas Subcontratistas de
Procesos de Negocio (BPO), crece constantemente a un ritmo mayor que el de otros tipos.
de fuerzas de trabajo de anotación.
La externalización en sí no es nada nuevo. Siempre ha habido empresas de externalización de procesos de negocio en las
industrias técnicas: empresas con un gran número de empleados que pueden contratarse para diversos tipos de tareas. Los
ejemplos más conocidos son los centros de atención telefónica a los que probablemente contacte al llamar a su banco o compañía
de servicios públicos: en realidad, está hablando con alguien empleado de un BPO contratado por la empresa a la que llama, no
directamente.
230
Cada vez hay más empresas de outsourcing centradas exclusivamente en el aprendizaje automático. Algunas
se centran únicamente en proporcionar personal, mientras que otras también ofrecen tecnología de aprendizaje
automático como parte de su oferta más amplia.
La mayoría de las veces, los trabajadores de empresas de externalización se ubican físicamente en zonas del
mundo donde el coste de la vida es relativamente bajo, lo que implica que los salarios también son más bajos. Esta
se suele citar como la principal razón para externalizar: es más económico que hacerlo internamente.
La escalabilidad es otra razón para usar personal externo. Suele ser más fácil escalar con personal externo que
con personal interno. Para el aprendizaje automático, esto puede ser especialmente útil cuando no se sabe si la
aplicación tendrá éxito hasta después de contar con una gran cantidad de datos de entrenamiento. Si se establecen
las expectativas correctamente con la empresa de externalización, esto beneficia a todos: no es necesario aumentar
el personal interno que espera que sus trabajos duren más, y la empresa de externalización puede planificar la
rotación de tareas de su personal, algo que hacen con regularidad y que debería tenerse en cuenta en sus paquetes
de compensación.
Finalmente, ¡no todos los trabajadores subcontratados deben considerarse poco cualificados! Por ejemplo, si un
anotador lleva varios años trabajando en la anotación para vehículos autónomos, se trata de una persona altamente
cualificada. Si una empresa es nueva en el sector de los vehículos autónomos, estos trabajadores subcontratados
también pueden ser una valiosa fuente de experiencia: tendrán intuiciones sobre qué etiquetar y qué es importante
para los modelos gracias a sus años de experiencia.
Si no puede regular completamente el volumen de anotaciones de sus empleados internos, podría encontrar un
punto medio que le permita regularizarlas lo suficiente como para poder usar empleados externos y activarlos y
desactivarlos más rápidamente que los empleados internos, aunque no tan rápido como los trabajadores
colaborativos. La Figura 7.4 muestra un ejemplo.
231
Figura 7.4: Optimización del trabajo para trabajadores subcontratados. Sus datos podrían llegar en ráfagas por razones
que escapan a su control. Es posible que pueda optimizar esto anotando los datos más críticos conforme llegan y los
demás posteriormente. Si no puede optimizar completamente el volumen de datos, podría optimizarlo lo suficiente
para que se ajuste a la escala que los trabajadores subcontratados pueden escalar.
Los empleadores deben ofrecer salarios justos a los trabajadores subcontratados. Sin embargo, usted sigue teniendo la
responsabilidad de verificar que la compensación sea justa. Tiene el deber de cuidar a cualquier persona que trabaje para
usted, incluso si lo contrata a través de otra empresa. Este deber de cuidado surge de una dinámica de poder donde
usted ocupa la posición más poderosa: no quiere que una empresa de subcontratación intente ganar su negocio con
precios más bajos pagando salarios inferiores a los de sus trabajadores.
Especialmente si está utilizando una empresa de subcontratación con la que no está familiarizado, debe
Haz estas preguntas:
232
1. ¿Cuánto se compensa a cada trabajador por hora/día y cómo se compara esto con las cifras publicadas sobre el salario
mínimo y el costo mínimo de vida en sus ubicaciones?
2. ¿Se les pagará por el tiempo que estén recibiendo capacitación en la tarea o solo cuando la realicen?
¿anotando?
3. ¿Se les compensa entre proyectos o cuando su proyecto tiene menos trabajo, o solo?
¿Cuando se trabaja directamente en proyectos?
Puedes profundizar en cualquiera de estos. Por ejemplo, en compensación, puedes preguntar sobre beneficios como atención
médica, jubilación y vacaciones pagadas.
Calcule si la compensación es realmente justa considerando el costo de vida en su lugar de trabajo, considerando cualquier
reducción o ausencia de pago entre proyectos. Tenga en cuenta que usted también forma parte de esta ecuación: si puede
proporcionar un flujo de trabajo constante para sus proyectos, habrá menos tiempo de inactividad para los trabajadores individuales
mientras esperan la llegada de sus datos o mientras cambian de proyecto.
Si una organización de externalización no puede ofrecer respuestas específicas, probablemente no sea una buena opción. En
el mejor de los casos, podría ser un nivel de gestión adicional a otras empresas de externalización o a trabajadores contratados por
crowdsourcing. No querrá estar tan alejado de sus anotadores (ver más abajo), ya que es improbable que obtenga anotaciones de
alta calidad. En el peor de los casos, la organización podría estar encubriendo que parte o la totalidad de su plantilla trabaja con
salarios abusivos.
Tenga en cuenta las diferencias culturales y nacionales en materia de remuneración. Por ejemplo, si reside en la mayor parte
de Europa, cuenta con un buen sistema de salud nacional y podría no considerar la importancia de la atención médica a través de
su empleador. O, si reside en Estados Unidos, podría no considerar la baja por maternidad o paternidad como una prestación
esperada. Lo contrario también puede ser cierto: si reside en Estados Unidos, no necesita insistir en que los trabajadores de países
con buenas opciones de atención médica nacional también tengan acceso a la atención médica a través de su empleador.
Mi consejo es que, si tus preguntas resultaron culturalmente insensibles, seas más prudente y te disculpes después. Es mejor
ofender a alguien a quien le pagas lo justo y aprender de la experiencia, que contribuir a que alguien reciba una compensación
injusta por miedo a preguntar.
La estabilidad laboral de los trabajadores subcontratados proviene de su empleador directo. Sin embargo, al igual que debe preguntar
por su remuneración, también debe preguntar por su estabilidad laboral y sus oportunidades de ascenso.
Muchas empresas de outsourcing tienen caminos claros para la promoción dentro de sus organizaciones: los anotadores
pueden convertirse en gerentes de línea, luego gerentes de sitio, etc. También pueden tener especializaciones, como que se les
confíen tareas de anotación particularmente difíciles y datos confidenciales, que se compensan a una tasa más alta.
Si no hay oportunidades de ascenso dentro de una organización para sus trabajadores, entonces considere si deberían recibir
una mayor compensación por sus tareas, sabiendo que podrían tener que pagar capacitación y educación de su bolsillo para poder
avanzar en su carrera.
233
También es aceptable que alguien se sienta satisfecho como anotador profesional y no quiera asumir roles gerenciales o
especializados. Si trabaja en un ambiente positivo y se siente responsable de su trabajo, entonces es un trabajo digno.
Los trabajadores subcontratados son el grupo con más probabilidades de trabajar como anotadores a tiempo completo. Por lo tanto,
la transparencia suele ser fundamental para ellos, ya que les permite saber que contribuyen a la organización.
Al igual que con los trabajadores internos, los empleados estarán más motivados si tienen claridad sobre el motivo por el que
anotan datos. Por ejemplo, si anotan escenas en parques urbanos, ¿se trata de un caso práctico centrado en peatones o plantas?
Si conocen los objetivos, la precisión de los datos mejorará considerablemente y les permitirá comprender cómo contribuyen a una
tarea importante.
Si es posible, haga que sus trabajadores subcontratados sientan que contribuyen directamente a su empresa. Algunas empresas
evitan activamente nombrar a sus trabajadores subcontratados como parte de la empresa. Esto es comprensible desde la perspectiva
de la marca si le preocupa que un empleado de otra empresa pueda tergiversar su imagen. Esto no es justo si se trata simplemente
de ocultar que se está subcontratando un proceso empresarial.
Independientemente de las políticas de su organización, una persona que trabaja a tiempo completo como contratista contribuye
tanto en un día determinado como una persona que trabaja a tiempo completo en la empresa, y merece sentirse así. Por lo tanto, en
la medida de lo posible, informe a los trabajadores sobre su contribución a la organización, pero también infórmeles si no pueden
hablar de ello públicamente.
A menudo existe un punto medio donde se puede ser muy transparente con los trabajadores subcontratados sobre el valor que
generan, pero dejar claro que solo pueden hablar de ello en privado. Probablemente haya personal interno que no pueda hablar
públicamente de su trabajo.
también.
Los trabajadores subcontratados tendrán menos intuición sobre los objetivos de su empresa que sus empleados internos.
Puede que sea una gran multinacional o la startup más prometedora de su zona, pero no hay garantía de que un trabajador
subcontratado lo sepa, así que no...
Suponer demasiado. Es una situación en la que todos ganan cuando un trabajador subcontratado sabe más sobre el
En el contexto del trabajo que realizan: realizarán un trabajo de mayor calidad que merece una mejor remuneración, a un ritmo más
rápido y se sentirán más satisfechos con el proceso. Por lo tanto, procure mantener una comunicación fluida con sus anotadores
mientras trabaja con ellos.
Si está ejecutando un proyecto de aprendizaje automático, debería al menos comunicarse directamente con los gerentes de línea
que gestionan las anotaciones diariamente. Esto puede hacerse por correo electrónico, foros o (idealmente) mediante un método
más directo, como un chat en línea. La comunicación directa con los anotadores puede ser incluso más completa que con sus
gerentes inmediatos, pero, dependiendo de la escala y de sus preocupaciones sobre la privacidad, podría ser difícil o estar prohibida.
234
Como punto intermedio, podría tener un canal abierto con el gerente de línea y reuniones generales periódicas
con los anotadores a los que asista. Si mantiene reuniones periódicas, aclare a la empresa de externalización que
este es tiempo facturable y que los anotadores deberían recibir su pago.
Siempre surgirán preguntas durante el trabajo de anotación: casos extremos que no se consideraron y
suposiciones que no fueron lo suficientemente explícitas en las directrices. También es respetuoso brindar a los
anotadores comunicación directa con las personas para quienes crean datos.
He visto con frecuencia que se elimina a cuatro o cinco personas de los encargados de desarrollar los modelos
de aprendizaje automático. Por ejemplo, los científicos de datos podrían contratar a alguien interno para gestionar
los datos; ese gestor de datos trabaja con un gestor de cuentas en la empresa de externalización; ese gestor de
cuentas trabaja con el equipo de anotaciones de la empresa; el equipo de anotaciones trabaja con los responsables
de línea; y, finalmente, los responsables de línea trabajan con los anotadores individuales. ¡Eso supone cinco
pasos diferentes para comunicar directrices o comentarios!
Recuerde que, además de los anotadores, también está pagando por todos los intermediarios. En algunos
sectores, el 50 % del gasto se destina a estos gastos generales de gestión. Si se ve obligado a utilizar estructuras
de gestión ineficientes, eso no significa que su comunicación deba seguir ese camino: establezca relaciones
directas con los anotadores o sus superiores inmediatos.
Los trabajadores colaborativos, remunerados por tarea, son la fuerza laboral más comentada para la anotación de
datos. Sin embargo, también son los más pequeños. Trabajé en las empresas con los dos mercados más grandes
para trabajos de anotación colaborativa, e incluso allí contraté trabajadores externos con salarios justos por hora,
superiores a los que contraté con trabajadores colaborativos.
Los mercados en línea para trabajos colaborativos suelen permitir publicar trabajos de anotación y que los
usuarios opten por completarlos por un precio por tarea. Si se ofrecen bonificaciones o salarios prorrateados por
hora, estos suelen ser ingresos complementarios al precio por tarea.
Los trabajadores suelen ser anónimos y esto a menudo lo exigen las plataformas tanto técnicamente como en sus
términos y condiciones.
Dado que el término "crowdsourcing" (subcontratación colectiva) también incluye la recopilación de datos, la
anotación también se conoce como "microtareas". Dado que se paga por cada dato, también se le conoce como
"pago por tarea" o, de forma más general, como parte de la "economía de trabajos esporádicos". En todos los
casos, se refiere a la mayor flexibilidad laboral, pero también a la mayor vulnerabilidad a la explotación.
La mayor ventaja de usar trabajadores colaborativos es su rapidez para escalar. Si solo necesitas unos
minutos de trabajo, pero necesitas el de miles de personas, los trabajadores colaborativos de pago por tarea son
ideales.
En la mayoría de las empresas, es raro que un proyecto grande y sostenido de aprendizaje automático
dependa de trabajadores colaborativos. Se suelen utilizar para experimentos rápidos que validan si es posible
alcanzar cierto nivel de precisión en una nueva tarea. Los trabajadores colaborativos también se utilizan cuando...
235
A menudo se necesita una respuesta rápida a las anotaciones con poca antelación, aunque existen empresas de
subcontratación que ahora ofrecen personal disponible las 24 horas, los 7 días de la semana, que puede aceptar una respuesta más breve.
veces.
Dado que la investigación académica se centra más en experimentos rápidos para diferentes casos de uso que en
aumentos sostenidos de la precisión para un caso de uso específico, los trabajadores colaborativos han sido la fuerza laboral
predilecta para la anotación en muchos departamentos académicos. La importancia de este trabajo explica por qué a veces se
considera (erróneamente) un método de anotación generalizado en la industria. Consulte el extracto más adelante en este
capítulo, « No aplique la «Economía de Estudiantes de Posgrado» a su estrategia de etiquetado de datos», para obtener una
perspectiva más amplia sobre la relación entre la academia y el crowdsourcing y su influencia en el aprendizaje automático en
el mundo real.
Desde el punto de vista del trabajador, existen razones válidas para que una persona elija trabajar de forma colaborativa
en lugar de para una empresa de externalización. La principal es que podría no haber una empresa de externalización que
pueda emplearlo en su ubicación. Se puede trabajar de forma colaborativa desde prácticamente cualquier lugar con conexión
a internet.
Si históricamente has estado marginado, el trabajo colaborativo puede ser un factor de igualdad. El anonimato reduce
considerablemente la probabilidad de discriminación por etnia, género, antecedentes penales, nacionalidad, discapacidad o
cualquier otra razón que a menudo limita el empleo. Tu trabajo será evaluado por su mérito intrínseco.
Algunas personas también prefieren el trabajo colaborativo porque están limitadas o prefieren el pago por tarea. Por
ejemplo, algunas personas solo pueden contribuir unos minutos a la vez debido a otros compromisos, como el cuidado de su
familia o un trabajo de tiempo completo que les permite completar trabajo colaborativo adicional. Este es el aspecto más difícil
para garantizar la equidad. Por ejemplo, si las habilidades de alguien le llevan 60 minutos completar una tarea que a la mayoría
de las personas les toma 15 minutos, no es justo pagarle solo por 15 minutos. Debería cobrarle por 60 minutos. Si esto no se
ajusta a su presupuesto, excluya a esa persona de aceptar futuras tareas suyas de una manera que no se refleje negativamente
en ningún sistema de reputación en línea.
Los trabajadores de crowdsourcing son la fuerza laboral más fácilmente explotable. Es difícil predecir con antelación la
duración de algunas tareas, por lo que la compensación por tarea puede fácilmente resultar en salarios inferiores a los que se
pagan, incluso si las tareas se configuran con buenas intenciones. También es muy fácil que alguien configure tareas sin
buenas intenciones, ya sea falseando el tiempo necesario para completarlas u ofreciendo salarios abusivos.
He visto a gente argumentar que un trabajo muy mal pagado (digamos alrededor de 1 dólar estadounidense por hora) es
mejor que nada para alguien que tiene tiempo libre y ninguna otra fuente de ingresos disponible. Esto simplemente no es
cierto. Es éticamente incorrecto pagarle a alguien menos de lo que necesita para vivir. Además, contribuye a esa misma
desigualdad. Si tienes un modelo de negocio que solo es viable gracias a salarios abusivos, estás perjudicando a toda la
industria, ya que el resto de tu industria solo puede seguir siendo competitiva si hace lo mismo.
Por lo tanto, estás ayudando a crear una industria entera que sólo puede sobrevivir si perpetúa un modelo salarial explotador.
236
Siempre debes pagar a los trabajadores de crowdsourcing de forma justa. Todas las principales plataformas
de crowdsourcing te indicarán cuánto tiempo trabajó alguien en tu tarea, pero esta información a veces
puede ser inexacta, ya que depende del navegador para registrar el tiempo y puede o no incluir el tiempo
que dedicó a estudiar la tarea antes de empezar a trabajar en ella.
Recomendé pagar a las personas un salario justo por hora por el trabajo que realizan, según su
ubicación en el mundo y publiqué datos sobre salarios justos en esa ubicación. Cualquier plataforma de
crowdsourcing permite pagar eficazmente por hora con estructuras de bonificación, si no es posible incluir
el pago por hora directamente en el proceso de pago. Si no se puede calcular el tiempo exacto que alguien
ha dedicado, se debe preguntar directamente a los trabajadores en lugar de arriesgarse a pagarles menos.
Existe software que también puede ayudar con esto.<sup>12</sup>
Si cree que alguien no ha completado un trabajo colaborativo para usted dentro de su presupuesto,
entonces cualquier plataforma de colaboración colectiva le permitirá excluirlo de trabajos futuros.
Aun así, deberías pagarles por el trabajo que realizaron. Así que, incluso si estás 99 % seguro de que no
fueron genuinos en su trabajo, deberías pagarles para que el 1 % no los perjudique injustamente.
omitir.
Todas las principales plataformas de crowdsourcing te permiten restringir el trabajo a ciertos
trabajadores. Esto puede implementarse como "calificaciones" que puedes otorgar o simplemente como
listas de identificaciones de trabajadores, pero el resultado es el mismo: solo esas personas podrán trabajar
en tu tarea. Así, después de encontrar personas que sepas que realizan bien tus tareas, puedes limitar tu
trabajo más importante a ellas.
Todas las principales plataformas de crowdsourcing también implementan algún tipo de "trabajador de
confianza" que automatiza el rendimiento previo de alguien, generalmente mediante una combinación de
la cantidad de trabajo validado que ha completado. Sin embargo, estos sistemas son fácilmente estafados
con bots controlados por actores maliciosos. Por lo tanto, deberá crear su propio grupo de trabajadores de
confianza.
Producir buenas instrucciones es más complicado que para otros trabajadores, ya que a menudo no
se puede interactuar directamente. También puede existir una barrera lingüística si el trabajador no habla
tu idioma y usa la traducción automática en su navegador para seguir tus instrucciones. Si no se paga por
leer las instrucciones, es más probable que las hojeen y se molesten si tienen que desplazarse
continuamente. Por lo tanto, es importante tener instrucciones precisas y concisas que tengan sentido al
traducirlas a otros idiomas con la traducción automática. Obviamente, no es fácil, pero también es lo más
respetuoso: si pagas a los empleados por tarea en lugar de por hora, debes hacer que tus interfaces sean
lo más eficientes posible. Esta es una de las razones por las que se recomienda dividir las tareas en
12
Un ejemplo reciente se encuentra en el artículo «Trabajo justo: Salario mínimo en crowdwork con una sola línea de código», 2019. Mark Whiting, Grant Hugh y Michael
Bernstein. HCOMP '19. [Link]
237
subtareas más simples: no es sólo para su beneficio en calidad, es para que los trabajadores que son pagados por tarea puedan
ser lo más eficientes posible y por lo tanto ganar más por hora.
La seguridad laboral que ofrecen los trabajadores colaborativos proviene principalmente del propio mercado. Quienes completan
las tareas saben que habrá otros trabajos disponibles cuando las suyas hayan finalizado.
Para mayor seguridad a corto plazo, será útil que indiques la cantidad de trabajo disponible. Si un trabajador sabe que puede
trabajar en tus tareas durante muchas horas, días o meses, es más probable que las inicie. Esto podría no ser obvio para un
trabajador si has dividido tus tareas en trabajos más pequeños. Por lo tanto, si solo tienes 100 elementos que requieren anotaciones
en una tarea determinada, pero vas a repetir esa misma tarea con millones de elementos en total, incluye este dato en la descripción
de la tarea: es más atractivo para los trabajadores saber que se avecina más trabajo con el que están familiarizados.
En general, debe tener en cuenta que los trabajadores no reciben beneficios por trabajos de pago por tarea y podrían pasar
gran parte de su tiempo (hasta un 50 %) sin cobrar mientras buscan proyectos y leen instrucciones. Considere esto al pagar a sus
empleados y pague extra por tareas cortas y puntuales.
Al igual que con los trabajadores externalizados, los trabajadores de crowdsourcing suelen sentirse más involucrados y obtener
mejores resultados cuando existe la mayor transparencia posible. Esto es válido en ambos sentidos: siempre debe solicitar la
opinión de los trabajadores de crowdsourcing sobre su tarea. Un simple campo de comentarios puede ser suficiente.
Aunque no pueda identificar a su empresa por motivos de confidencialidad, debería compartir la motivación detrás de su
proyecto de anotación y los beneficios que puede aportar. Todos se sienten mejor al saber que están generando valor.
No apliques la "economía de posgrado" a tu estrategia de etiquetado de datos. Demasiados científicos de datos trasladan su experiencia
En los programas, la anotación de datos no se valora como ciencia, o al menos no tanto como el desarrollo de algoritmos.
Al mismo tiempo, a los estudiantes se les enseña a no valorar su propio tiempo: está bien que los estudiantes pasen semanas trabajando en un problema.
que podrían subcontratarse por unos pocos cientos de dólares.
Un factor agravante es que los estudiantes de posgrado suelen tener poco o ningún presupuesto para la anotación humana. Podrían
tienen acceso a un clúster de computadoras o créditos gratuitos de un proveedor de nube, pero no hay una forma fácil de acceder a fondos para pagar a las personas
para anotar nuevos datos.
Como resultado, las plataformas de crowdsourcing de pago por tarea son muy populares entre los estudiantes de posgrado que intentan aprovechar al máximo sus proyectos.
sus datos. También están dispuestos a dedicar mucho tiempo al control de calidad en lugar de pagar a alguien con más experiencia para
Garantizar la calidad de los datos, con las mismas limitaciones presupuestarias. Dado que sus tareas suelen ser de bajo volumen, rara vez se les asigna un objetivo.
Debido a que la anotación en sí no es parte de la ciencia en la que los estudiantes esperan avanzar, la anotación a menudo se trata
como un medio para un fin.
238
Los científicos de datos, al principio de su carrera, suelen abordar la anotación con esta misma mentalidad. Quieren ignorar los datos como...
algo que “no es su problema”, y gastan sus propios recursos seleccionando a los trabajadores con salarios bajos adecuados, en lugar de
pagar a los mejores trabajadores un salario justo para que anoten los datos con mayor precisión.
Por lo tanto, tenga cuidado de no dejar que “Economía del estudiante de posgrado” influya incorrectamente en su estrategia de anotación de datos.
Muchas de las sugerencias de este capítulo, como celebrar sesiones internas de etiquetado de datos y establecer contactos directos,
Las comunicaciones con anotadores subcontratados ayudarán con la cultura de su empresa y garantizarán que se acerque a
Es muy probable que con el tiempo quieras que algunos anotadores estén disponibles a tiempo completo, incluso si
solo necesitas trabajadores a tiempo parcial al principio. Si existe una vía para convertirse en un trabajador a tiempo
completo, deberías incluirla en la descripción de tu tarea, ya que eso atraerá a los...
Los mejores trabajadores.
Sin embargo, es necesario estructurar la posibilidad de un trabajo a tiempo completo en función del mérito
individual y no convertirlo en una situación competitiva. Si las personas saben que podrían perder oportunidades en
un entorno competitivo, existe un desequilibrio de poder demasiado grande en el trabajo colaborativo como para que
esto sea justo. Esto podría resultar en que las personas cedan demasiado por la promesa de un trabajo futuro. En
pocas palabras, no digas algo como "las 10 mejores personas obtendrán un contrato de 3 meses", di "cualquiera que
alcance un volumen X con una precisión Y obtendrá un contrato de 3 meses". Y no digas nada si no puedes prometerlo.
Eso evitará que, sin darte cuenta, crees una situación de explotación.
ambiente.
Si el mercado ofrece comentarios y reseñas, ¡úsalos! Cualquiera que haya tenido un buen desempeño...
merece ese reconocimiento y puede ayudar con el trabajo futuro y el avance profesional.
Las tres fuerzas laborales que has visto hasta ahora (trabajadores internos, trabajadores subcontratados y trabajadores
colaborativos) probablemente cubrirán la mayoría de los proyectos de aprendizaje automático en los que trabajes.
Algunas podrían estar en un punto intermedio. Por ejemplo, una empresa de externalización podría emplear a
algunos o todos sus subcontratistas en estructuras similares al crowdsourcing. O podría tener anotadores internos,
pero estos trabajan como contratistas en ubicaciones remotas. Puede aplicar la combinación adecuada de salario,
seguridad y propiedad en cualquiera de estas configuraciones para ser lo más respetuoso posible con estos empleados
y garantizar un trabajo de la mejor calidad.
Existen otros sectores laborales que no necesariamente se rigen por los mismos principios. Estos son: usuarios
finales, voluntarios, personas que juegan videojuegos y anotaciones generadas por computadora. Abordaremos cada
uno brevemente aquí.
Si puede obtener sus etiquetas de datos de forma gratuita de sus usuarios finales, ¡entonces tiene un modelo de
negocio muy potente! Esto podría incluso ser un factor importante a la hora de decidir qué productos necesita
desarrollar. Si puede lanzar su primera aplicación funcional a partir de etiquetas de datos gratuitas...
239
Si no tienes nada que hacer, puedes preocuparte por ejecutar proyectos de anotación más adelante. Para entonces, también tendrás
buenos datos de usuario para muestrear mediante aprendizaje activo y así enfocar tus esfuerzos de anotación.
Existen muchas aplicaciones donde los usuarios proporcionan retroalimentación que puede impulsar los modelos de aprendizaje
automático. Sin embargo, muchas aplicaciones que parecen depender de los usuarios finales para los datos de entrenamiento aún
utilizan una gran cantidad de anotadores. El ejemplo más obvio que usamos a diario son los motores de búsqueda. Ya sea que busque
un sitio web, un producto o una ubicación en un mapa, su elección en los resultados de búsqueda ayudará a que el motor de búsqueda
sea más inteligente al buscar coincidencias similares en el futuro.
Sería fácil asumir que los sistemas de búsqueda se basan únicamente en la opinión del usuario final, pero no es así. La relevancia
de la búsqueda es el principal uso de los anotadores. Los anotadores de pago suelen trabajar en los componentes. Por ejemplo, una
página de producto podría indexarse por tipo de producto (electrónica, alimentación, etc.), extraer las palabras clave de la página,
seleccionar automáticamente las mejores imágenes para mostrar, etc., siendo cada tarea de anotación independiente. Esto es habitual:
la mayoría de los sistemas que obtienen datos de los usuarios finales también dedican mucho tiempo a anotarlos sin conexión.
La mayor desventaja de los datos de entrenamiento proporcionados por los usuarios finales es que, en esencia, son ellos quienes
determinan la estrategia de muestreo. En los capítulos 3 y 4, aprendió lo fácil que es sesgar el modelo al anotar la muestra incorrecta
de datos. Si solo muestrea los datos que parecen más interesantes para sus usuarios en un día determinado, corre el riesgo de
obtener datos poco diversos. Es probable que las interacciones más populares de sus usuarios finales no sean las mismas que las de
una distribución aleatoria, o que sean las más importantes que su modelo debe aprender, por lo que podría obtener datos peores que
el muestreo aleatorio. Su modelo podría ser preciso solo para los casos de uso más comunes y muy deficiente para todo lo demás, lo
que puede tener implicaciones para la diversidad en el mundo real.
Si dispone de un gran conjunto de datos sin procesar, la mejor manera de combatir el sesgo de los usuarios finales es usar el
Muestreo Representativo para descubrir qué omite en las anotaciones proporcionadas por ellos y, posteriormente, obtener anotaciones
adicionales para los elementos muestreados mediante el Muestreo Representativo. Esto corregirá el sesgo en sus datos de
entrenamiento si se ha sobremuestreado lo importante para los usuarios en lugar de lo que era mejor para el modelo.
Algunas de las formas más inteligentes de obtener anotaciones generadas por el usuario son indirectas. Los CAPTCHA son un
ejemplo que podrías encontrar a diario. Un CAPTCHA («prueba de Turing pública y completamente automatizada para distinguir
computadoras de humanos») es la prueba que completas para indicar a un sitio web o aplicación que no eres un robot. Si completaste
un CAPTCHA que te pedía transcribir texto escaneado o identificar objetos en fotografías, es muy probable que estuvieras creando
datos de entrenamiento para alguna empresa. Es un caso práctico ingenioso: si el aprendizaje automático ya fuera lo suficientemente
bueno para completar la tarea, ¡no necesitarían esos datos de entrenamiento en primer lugar! Hay una fuerza laboral limitada para
este tipo de tarea, así que, a menos que trabajes en una organización que ya ofrezca este tipo de personal, probablemente no valga la
pena intentarlo.
Incluso si no puede aprovechar a sus usuarios finales para las anotaciones, debería aprovecharlos para el muestreo de
incertidumbre. Si no existen problemas de sensibilidad de los datos, revise periódicamente ejemplos en los que su modelo presentó
incertidumbre en sus predicciones durante la implementación. Esto mejorará su...
240
intuición acerca de dónde su modelo falla, y los elementos muestreados ayudarán a su modelo cuando estén anotados.
7.5.2 Voluntarios
Para tareas que tengan un beneficio inherente, es posible que puedas conseguir que la gente contribuya como trabajadores
voluntarios en colaboración colectiva.
En 2010, lideré el mayor uso de crowdsourcing para la respuesta a desastres. Un terremoto azotó Haití y cobró la vida de más
de 100.000 personas de inmediato, dejando a más de un millón sin hogar. Fui responsable del primer paso de un sistema de
respuesta y reporte de desastres. Creamos un número de teléfono gratuito, el 4636, al que cualquier persona en Haití podía enviar
un mensaje de texto para solicitar ayuda o informar sobre las condiciones locales. La mayoría de los haitianos solo hablan criollo
haitiano, y la mayoría de los miembros de la comunidad internacional de respuesta a desastres que llegaban a Haití solo hablaban
inglés.
Así que recluté y gestioné a 2000 miembros de la diáspora haitiana de 49 países para que se ofrecieran como voluntarios para
ayudar. Cuando se enviaba un mensaje de texto al número 4636 en Haití, un voluntario lo traducía, categorizaba la solicitud (comida,
medicinas, etc.) y marcaba la ubicación en un mapa. Durante el primer mes tras el terremoto, se enviaron más de 45 000 informes
estructurados a los equipos de respuesta al desastre angloparlantes, con un tiempo de respuesta promedio de menos de 5 minutos.
Al mismo tiempo, compartimos las traducciones con los equipos de Traducción Automática de Microsoft y Google para que
pudieran usar los datos y lanzar rápidamente servicios de Traducción Automática para criollo haitiano que fueran precisos para los
datos relacionados con la respuesta a desastres. Fue la primera vez que se implementó el Aprendizaje Automático con Participación
Humana en la Respuesta a Desastres.
Desde entonces se ha vuelto más común, pero rara vez con éxito, cuando se contratan voluntarios en lugar de trabajadores
remunerados.
He visto otros proyectos destacados, impulsados por voluntarios, en el ámbito científico, como el proyecto de plegamiento
genético "Fold It"13, pero estos suelen ser la excepción, no la regla. En general, es difícil poner en marcha proyectos de voluntariado
colaborativo. Haití era un caso especial: había una diáspora numerosa y con un alto nivel educativo, dispuesta a aportar todo lo que
pudiera desde lejos.
Si buscas voluntarios, te recomiendo encontrarlos y gestionarlos a través de fuertes vínculos sociales. He visto a muchas
personas intentar lanzar campañas de crowdsourcing de voluntarios con convocatorias generales en redes sociales, y el 99 % no
consigue la cantidad de personas necesaria. Peor aún, los voluntarios llegan y se van muy rápido, lo que significa que podrían no
estar completamente preparados para la precisión necesaria al irse y que han consumido muchos recursos de formación. También
es desmoralizante para los voluntarios que realizan un trabajo considerable ver a tanta gente ir y venir.
13
Construcción de nuevas estructuras de criomicroscopía electrónica en colaboración con científicos ciudadanos. 2019. Firas Khatib, Ambroise Desfosses, Foldit Players, Brian
Koepnick, Jeff Flatten, Zoran Popović, David Baker, Seth Cooper, Irina Gutsche, Scott Horowitz. PLOS
Biology. [Link]
241
Al contactar directamente con la gente y construir una comunidad con un número reducido de voluntarios, es más probable
tener éxito. Observarás este mismo patrón en proyectos de código abierto y en proyectos como Wikipedia: la mayor parte del
trabajo lo realizan pocas personas.
La gamificación del trabajo se sitúa a medio camino entre los trabajadores remunerados y los voluntarios. La mayoría de los
intentos de obtener datos de entrenamiento de los juegos han fracasado estrepitosamente. Es posible, pero no lo recomiendo
como estrategia para obtener anotaciones.
El mayor éxito que he tenido con los juegos fue cuando trabajaba en el seguimiento de epidemias. Durante un brote de E.
coli en Europa, necesitábamos personas que anotaran las noticias en alemán sobre el número de personas afectadas. No
pudimos encontrar suficientes hablantes de alemán en plataformas de crowdsourcing, lo que precedió a la creación de
empresas de externalización especializadas en anotaciones para aprendizaje automático. Finalmente, encontramos hablantes
de alemán en un juego en línea, Farmville, y les pagamos con monedas virtuales dentro del juego para que anotaran las
noticias. Así, en Alemania, se pagaba a personas que trabajaban en agricultura virtual para ayudar a rastrear el brote agrícola
real que se desarrollaba en los campos alemanes.
Este fue un caso de uso único y es difícil ver cómo pudo haber sido explotador.
Pagamos pequeñas cantidades de dinero por tarea, pero las personas que jugaban el juego recibían una compensación por
un trabajo que les habría llevado 10 veces más tiempo dentro del juego.
Más allá de su uso como estrategia de reclutamiento, aún no he visto un juego que genere datos de entrenamiento
interesantes, salvo la IA dentro del propio juego o en estudios académicos muy específicos. La gente pasa muchísimo tiempo
jugando videojuegos en línea, por lo que se trata de una fuerza laboral potencial que está prácticamente desaprovechada
actualmente.
Tenga en cuenta que no se recomienda gamificar el trabajo remunerado . Si obliga a alguien a realizar un trabajo
remunerado en un entorno similar a un juego, se volverá rápidamente molesto si no parece la forma más eficiente de anotar
datos. Además, existe mucha evidencia de que estrategias como crear una tabla de clasificación son negativas, ya que motivan
solo a un pequeño número de líderes y desmotivan a la mayoría que no se encuentran entre los primeros puestos. Piense en
su propio trabajo: ¿sería más divertido si existieran los mismos obstáculos artificiales que se encuentran en los juegos?
Si desea trasladar algo de la industria del juego al trabajo remunerado, utilice el principio de transparencia: informe a las
personas sobre su progreso individual, pero hágalo en términos de lo que aportan a su organización, no de cómo se comparan
con sus pares.
Si puedes obtener anotaciones de otra aplicación de aprendizaje automático, ¡podrás obtener muchas anotaciones a bajo
costo! Esta rara vez será tu única estrategia para obtener anotaciones. Si un algoritmo de aprendizaje automático ya puede
producir datos precisos, ¿por qué necesitas anotaciones?
¿para un nuevo modelo?
242
243
Figura 7.5: Uso de anotaciones generadas por computadora y su posterior ampliación con muestreo representativo. Si ya
cuenta con un modelo independiente para su tarea, puede generar etiquetas automáticamente con él. Es mejor centrarse
en predicciones altamente fiables y (si puede acceder a ellas) predicciones con alta activación en su red: valores
atípicos basados en modelos. A continuación, utilice el muestreo representativo para identificar los elementos que no pudo
etiquetar automáticamente y muestrearlos para su revisión manual.
Para un enfoque un poco más sofisticado, podría usar el Muestreo Representativo Adaptativo para reducir la cantidad de
elementos muestreados necesarios. Con un poco más de sofisticación, podría usar una combinación de Agrupamiento y
Muestreo Representativo, como aprendió en el Capítulo 5 y como se muestra en la Figura 7.5. Combinar Agrupamiento y
Muestreo Representativo será ideal si el problema que aborda es inherentemente heterogéneo en el espacio de características
de su conjunto de datos.
El uso de anotaciones generadas por computadora puede ser el mayor impulso para su modelo, o el
la madriguera de conejo más grande, dependiendo de sus datos y de la calidad de los modelos disponibles existentes.
Así que, para determinar si es adecuado para usted, considere el costo total del componente de anotación humana. Si ya
necesita dedicar mucho tiempo a perfeccionar las instrucciones correctas e integrar y capacitar a un equipo humano, es posible
que no ahorre tanto dinero al reducir la cantidad de anotaciones. Es decir, la ventaja podría ser menor de lo que cree.
244
Hay algunos ejemplos en los que usar un modelo existente es, sin duda, el mejor punto de partida, como la traducción
automática. Obtener traducciones humanas para grandes cantidades de datos es muy costoso, por lo que casi siempre será más
rentable implementar un modelo que comience con un conjunto de datos traducido automáticamente. También existen soluciones
de traducción automática muy precisas, proporcionadas por empresas capacitadas con millones de puntos de datos.
Otro ejemplo de cuándo usar anotaciones generadas por computadora como punto de partida es al adaptar sistemas
heredados a modelos de aprendizaje automático más recientes. Imagine que tiene un sistema heredado con muchas reglas
codificadas manualmente o sistemas ajustados manualmente para extraer las características correctas, y desea adaptarlo a un
sistema de aprendizaje automático neuronal más reciente que no requiere reglas o características personalizadas. Puede aplicar
el sistema heredado a una gran cantidad de datos sin procesar y usar las predicciones resultantes como anotaciones. Es poco
probable que este modelo alcance inmediatamente la precisión deseada, pero puede ser un buen punto de partida sobre el cual
se pueden desarrollar aprendizaje activo y anotaciones adicionales.
Señal significativa: La precisión de su modelo es estadísticamente superior a la del azar, pero pequeños cambios en los
parámetros o las condiciones iniciales producen modelos muy diferentes en cuanto a la precisión y a qué elementos se clasifican
correctamente o incorrectamente. En este punto, tiene suficiente evidencia para indicar que más anotaciones deberían aumentar
la precisión y que vale la pena intentarlo.
Precisión estable: La precisión de su modelo aún es baja, pero es estable porque pequeños cambios en los parámetros o
las condiciones iniciales producen modelos con una precisión similar y en los que los elementos se clasifican correctamente. En
esta etapa, puede empezar a confiar en la seguridad y la activación del modelo, aprovechando al máximo el aprendizaje activo.
Modelo implementado: Tiene un modelo lo suficientemente preciso para su caso de uso y puede comenzar a implementarlo
en sus aplicaciones. Puede empezar a identificar elementos en sus modelos implementados que sean inciertos o que representen
ejemplos nuevos e inéditos, adaptando su modelo a los cambios.
datos que encuentra.
Modelo de vanguardia: ¡ Su modelo es el más preciso de su sector! Continúe identificando elementos inciertos o que
representen ejemplos nuevos e inéditos en sus modelos implementados para mantener la precisión en un entorno cambiante.
245
En todos los sectores que he visto, el modelo de vanguardia que triunfó a largo plazo se debió a
mejores datos de entrenamiento, no a nuevos algoritmos. Por eso, contar con mejores datos suele
denominarse "foso de datos": los datos son la barrera que impide a la competencia alcanzar los mismos
niveles de precisión.
La mejor manera de empezar a calcular la cantidad de datos necesarios para tu proyecto es en términos de
órdenes de magnitud. En otras palabras, el número de anotaciones debe crecer exponencialmente para
alcanzar ciertos hitos en la precisión del modelo.
Por ejemplo, imagine que tiene una tarea de predicción binaria relativamente sencilla, como el ejemplo
de este libro, que predice mensajes relacionados con desastres y otros. Podría obtener una progresión
similar a esta, suponiendo que N=2:
Figura 7.6: El principio del orden de magnitud para los datos de entrenamiento. Estime un orden de magnitud mayor de datos para
246
Pasar de una señal significativa a una precisión estable, a un modelo implementado y a un modelo de vanguardia.
Usar esto como referencia para estimar la cantidad de datos necesarios antes de empezar a ver cómo se ve el aumento
real de la precisión al empezar a anotar los datos.
Podrás reducir la cantidad de elementos que necesitas anotar con el aprendizaje activo y el aprendizaje por transferencia,
pero la función escalonada sigue siendo exponencial con un N menor (digamos N=1,2).
De manera similar, podrían necesitarse más anotaciones para tareas con una gran cantidad de etiquetas o tareas
complicadas como la generación de texto completo (digamos N=3), en cuyo caso se debe asumir que la función de paso
sigue siendo exponencial pero con un N mayor.
Una vez que comiencen a llegar las anotaciones, podrá graficar el aumento real de la precisión y realizar estimaciones
más precisas de la cantidad de datos necesarios. El aumento de la precisión (o la disminución del error, como en la Figura
7.6) se denomina "Curva de Aprendizaje" del modelo, pero tenga en cuenta que este nombre tiene doble significado: el
aumento de la precisión a medida que un modelo converge también se suele denominar "Curva de Aprendizaje". Por lo
tanto, si el marco de aprendizaje automático que ha elegido muestra una "Curva de Aprendizaje", compruebe si se refiere
a un aumento de la precisión con más datos o a un aumento de la precisión a medida que el modelo converge a una
cantidad constante de datos: no son lo mismo.
Incluso con sus propios datos, es recomendable tener en cuenta la ralentización de la Figura 7.6. Puede ser
emocionante ver cómo la precisión aumenta rápidamente con las primeras 100 o 1000 anotaciones, pero no tanto cuando
la precisión mejora mucho más lentamente después. Esto es típico. No se apresure a experimentar con las arquitecturas
y parámetros de los algoritmos solo porque sea con lo que esté más familiarizado. Si observa que la precisión mejora con
más datos, pero la velocidad disminuye exponencialmente, es posible que esto se esté comportando como se esperaba.
¡Tiene su modelo de máquina listo para usar, ha demostrado que funciona con un conjunto de datos de código abierto
popular y ahora está listo para activar la manguera de datos anotados reales para su aplicación!
Si no ha configurado su estrategia de anotación en paralelo, se llevará una sorpresa: probablemente deba esperar
algunas semanas. Es frustrante esperar, pero como se recomienda al principio de este capítulo, debería comenzar a
desarrollar sus estrategias de datos y algoritmos simultáneamente. Si observa que los datos difieren demasiado del
conjunto de datos de código abierto con el que entrenó (quizás algunas etiquetas sean mucho más escasas o la diversidad
de datos sea mucho mayor), tendrá que volver a empezar de cero para su arquitectura de aprendizaje automático. En
este caso, no se apresure con la anotación y, si es necesario, prepárese para descartar esas etiquetas por completo, ya
que contendrán demasiados errores.
Se necesitarán varias iteraciones con sus líderes de etiquetado de datos para obtener las instrucciones correctas,
investigar cualquier error sistemático y refinar sus pautas adecuadamente, antes de poder encender con confianza la
manguera contra incendios para anotar grandes cantidades de datos.
247
Prepárese para que el proceso de anotación funcione correctamente en unas pocas semanas, no en unos pocos días (aunque,
a largo plazo, ¡no debería llevarle muchos meses lograrlo!). Si se trata de una tarea sencilla, como etiquetar fotografías con pocas
etiquetas, tardará cerca de una semana: necesitará definiciones precisas de qué cuenta para cada etiqueta, pero no debería llevar
mucho tiempo perfeccionarla. Si se trata de una tarea más compleja con datos y requisitos de etiquetado inusuales, tardará cerca
de cuatro semanas en perfeccionarla y que los anotadores aumenten su formación. Posteriormente, deberá perfeccionar la tarea
continuamente a medida que se descubran más casos excepcionales.
Si necesita datos de inmediato mientras espera la capacitación de su equipo de anotación, ¡comience a anotarlos usted mismo!
Aprenderá mucho sobre sus datos, lo que le ayudará tanto con sus modelos como con sus directrices de anotación. Si logra
incorporar algunas de las técnicas de aprendizaje por transferencia que abordaremos más adelante en este libro en esta etapa,
podría empezar a alcanzar una precisión estable con bastante rapidez.
7.6.3 Utilice sus anotaciones piloto y su objetivo de precisión para estimar el costo
Una vez que haya perfeccionado su proceso de anotación hasta el punto en que esté seguro de que sus pautas son completas y sus
anotadores están capacitados en su tarea, puede estimar el costo.
Deberá tener en cuenta sus requisitos de precisión utilizando la guía para órdenes de magnitud al comienzo de esta sección
(¿necesita tecnología de punta?) para estimar el número total de anotaciones que necesita. Luego, puede multiplicar eso por su
costo por anotación y estimar el costo total. Esto podría ayudar a determinar su estrategia de producto: si no tiene el presupuesto
para llegar a la precisión de vanguardia, como planeó originalmente, aún podría obtener una precisión lo suficientemente alta para
su caso de uso. Esto podría cambiar su estrategia de desarrollo de producto, por lo que es importante ser honesto consigo mismo y
con sus partes interesadas sobre la precisión que puede lograr. Por ejemplo, si su modelo era de vanguardia en un conjunto de
datos de código abierto, pero no alcanzará esa precisión en sus propios datos debido a restricciones presupuestarias, entonces
necesita establecer expectativas para todas las partes interesadas en su proyecto.
Una variable que aún no hemos abordado es el número de anotadores por elemento. A menudo, se asignará la misma tarea a
varias personas para lograr un consenso y generar datos de entrenamiento más precisos que los que un solo anotador podría
generar. Abordaremos este método de control de calidad en el próximo capítulo. Por ahora, basta con comprender que podría
terminar con múltiples anotaciones por elemento y que esto debe incluirse en su presupuesto.
Por supuesto, su presupuesto para el etiquetado podría estar fijado desde el principio. En ese caso, asegúrese de implementar
cuidadosamente buenas estrategias de aprendizaje activo para obtener los resultados esperados.
¡Saca el máximo provecho de cada anotación!
248
Una razón común para combinar personal es el control de calidad. Abordaremos este tema en el siguiente capítulo,
donde los flujos de trabajo y la selección del personal de etiquetado son métodos comunes para garantizar la precisión
del etiquetado de sus datos.
Otras razones comunes incluyen la sensibilidad y complejidad de los datos, lo que significa que algunos datos son
demasiado sensibles/complejos para ser subcontratados y algunos no lo son, lo que resulta en múltiples fuerzas de trabajo.
Cuando trabajaba en empresas grandes, generalmente contrataba a varias empresas de etiquetado de datos al
mismo tiempo para eliminar riesgos en mis canales de distribución y no dependía de ningún proveedor como única
fuente de etiquetas de datos.
Si por alguna razón terminas con múltiples fuerzas de trabajo, obviamente necesitarás
Calcule los presupuestos para cada fuerza laboral y combínelos para obtener el gasto total del proyecto.
7.7 Resumen
Existen tres tipos principales de personal para la anotación: interno, externo y colaborativo. Comprenderlos le
ayudará a elegir el personal o la combinación de ellos más adecuados para sus tareas.
• Los tres principios clave para motivar a los anotadores son el salario, la seguridad y la transparencia.
Comprender cómo aplicarlas a diferentes fuerzas laborales garantizará que obtenga el mejor trabajo posible
al contar con la fuerza laboral más feliz posible.
Existen algunos sistemas de compensación no monetaria que puede considerar, como usuarios finales de la
aplicación, voluntarios y datos/anotaciones generados por computadora. Esto le ayudará a considerar
alternativas de personal cuando tenga limitaciones presupuestarias o necesite cualificaciones especiales.
El principio de órdenes de magnitud le permite estimar el volumen total de anotaciones que necesita. Esto le
ayuda a planificar su estrategia de anotación con estimaciones iniciales significativas que puede refinar a
medida que avanza. No aplique la "economía de
estudiantes de posgrado" a su estrategia de etiquetado de datos.
249
8
Control de calidad de los datos
Anotación
• Dividir una tarea en subtareas más simples para mejorar la precisión, la eficiencia y el control de calidad.
Tienes tu modelo de aprendizaje automático listo y tienes a gente alineada para anotar tus datos, ¡así que
estás casi listo para implementarlo! Pero sabes que tu modelo solo será tan preciso como los datos con
los que se entrena, así que si no puedes obtener anotaciones de alta calidad, no tendrás un modelo
preciso. Solo necesitas asignar la misma tarea a varias personas y obtener la mayoría de votos, ¿verdad?
Desafortunadamente, su tarea de anotación probablemente sea mucho más difícil. He visto que la
anotación se subestima con más frecuencia que cualquier otra parte del ciclo de aprendizaje automático
con intervención humana. Por ejemplo, incluso si tiene una tarea de etiquetado simple, como decidir si una
imagen contiene un peatón, un animal, un ciclista o una señal, ¿cómo decide el umbral adecuado para el
acuerdo mayoritario entre diferentes anotadores, cuando cada uno ha visto diferentes combinaciones de
tareas? ¿Cómo sabe cuándo el acuerdo general es tan bajo que necesita cambiar sus directrices o la
definición de su tarea?