TCAV: La lucha de Google contra el aprendizaje con sesgo en Inteligencia Artificial
No han sido pocas las voces que se ha denunciado el sesgo que muestran muchos modelos de Inteligencia Artificial que emplean grandes compañías al haber sido entrenados con datos que ya tenían ese sesgo, algo que es importante vigilar. Ya en una entrada anterior, se veía como Google Translate demuestra un claro sesgo de género con las traducciones de profesiones, pero no es la única herramienta con ese problema.
Hace poco surgieron grandes críticas al sistema de reconocimiento facial de Amazon, presente en departamentos de policías y en oficinas de inmigración, ya que esta herramienta presentaba una tasa de error mayor cuando trataba de identificar pieles más oscuras y rostros femeninos.
¿Cuál es el problema para que aparezcan estos sesgos?
Cuando se entrenan modelos de redes neuronales siempre surge el problema de interpretar cuáles son los conceptos que una red neuronal debe comprender para generar predicciones. Para abordar esto es necesario una profunda comprensión de la materia, ya que en la mayoría de modelos, los conceptos que los humanos entendemos como “decisivos” no tienen por qué ser los que una máquina interprete como relevantes.
Por poner un ejemplo, un modelo destinado a predecir el cáncer de piel en fases tempranas, si no está correctamente ajustado, podría tomar como concepto relevante el tono de piel, si el algoritmo ignora los tonos de piel oscura podría suponer un fallo de diagnostico y un potencial riesgo de salud para cierto sector de la población.
Figura 3: Google I/O 2019 Keynote
Por esto es muy importante conocer los Conceptos de Activación en los modelos predictivos, tanto es así, que en el pasado Google I/O 2019, el propio CEO de la compañía, Sundar Pichai, dedicó una gran parte de la conferencia a hablar de los peligros que representa el sesgo dentro del mundo de la Inteligencia Artificial.
Fue aquí donde anunció una de las soluciones con las que la compañía de Mountain View va a intentar frenar este problema: usando técnicas de interpretabilidad. Toda estas información que Sundar Pichai anunció, la dejó plasmada en un artículo que puedes leer online.
Definición de TCAV: Testing with Concept Activation Vectors
TCAV son las siglas de “Testing with Concept Activation Vectors” o “Pruebas con Vectores de Activación de Concepto”. Este nuevo método de interpretación permite comprender qué señales usan los modelos de redes neuronales para sus predicciones. Los métodos de interpretabilidad no son algo nuevo, pero la gran diferencia de TCAV es que muestra la importancia de los conceptos de alto nivel (por ejemplo color, género, raza, etcétera) para una clase de predicción frente a los pesos de cada característica de entrada de los métodos de interpretabilidad comunes.
Las técnicas de interpretabilidad llevan ya tiempo usándose en modelos de Machine Learning. Fundamentalmente, estas técnicas se basan en exploración de los datos antes de construir los modelos o interpretabilidad asociada a un modelo preexistente. El problema viene que la mayoría de modelos de Machine Learning están diseñados para operar con conceptos de bajo nivel como por ejemplo el color de un solo píxel o la relación con los píxeles adyacentes.
Aunque esta forma de generar los algoritmos de Machine Learning pueden ser muy útiles en detección de ataques de red, o técnicas de bypass de soluciones antimalware, como se explica en el libro de "Machine Learning aplicado a Ciberseguridad: Técnicas y ejemplos en la detección de amenazas" que escribieron mis compañeros, esto es radicalmente diferente a los conceptos de alto nivel que los humanos manejamos, como el color de las hojas de un árbol, el número de ruedas de un coche o las rayas de una cebra, y hace que esos algoritmos - especialmente en servicios cognitivios - sean susceptibles de cometer sesgos de género, raza o sexo.
Aquí es donde entra TCAV, una iniciativa del equipo de Google AI que permite una interpretación del estado interno de una red neuronal usando derivadas direccionales para cuantificar el grado por el cual un concepto definido por un usuario es importante para el resultado de una clasificación.
Funcionamiento de TCA
Poniendo el ejemplo que se detalló en la conferencia vamos a ver el funcionamiento interno de TCAV. Supongamos que tenemos un modelo entrenado para detectar cebras en una imagen. Querríamos saber cuales son las variables relevantes en el proceso de clasificación. TCAV nos permitiría entender si las rayas de la cebra son un detalle importante para la predicción del modelo, siendo verdad en este caso.
Ahora es donde entramos en el asunto del sesgo, pongamos que vamos a mirar un modelo entrenado con un Dataset de doctores. Si el modelo ha sido entrenado con demasiadas fotos de hombres con batas blancas y estetoscopios puede que determinen el género masculino como un factor relevante, demostrando que existe un sesgo en nuestro set de datos de entrenamiento. Aquí reside el verdadero poder de TCAV, el entender en lenguaje “Humano” los vectores de activación importantes de nuestro modelo para así tener conocimiento y control sobre este mismo.
No voy a detenerme mucho en los conceptos matemáticos detrás de esta técnica, para profundizar más en el tema os recomiendo consultar el paper de TCAV y tienes el código del proyecto en Github donde se puede ver con más detalle la implementación subyacente a esta técnica así como ejemplos prácticos para Tensorflow.
Conclusiones
TCAV es sin duda una buena herramienta para interpretar de forma sencilla el estado interno de un modelo de Deep Learning, pero no es la solución a todos los problemas, las compañías van a tener que seguir haciendo grandes esfuerzos para eliminar los sesgos dentro de sus modelos de Inteligencia Artificial. Sin embargo, esta técnica es un primer paso muy importante para solucionar un problema cada vez más evidente en este nuevo mundo.
Autor: Lucas Fernández Aragón (@lucferbux) investigador en el equipo de Ideas Locas.
Figura 1: TCAV: La lucha de Google contra el aprendizaje con sesgo en Inteligencia Artificial |
Hace poco surgieron grandes críticas al sistema de reconocimiento facial de Amazon, presente en departamentos de policías y en oficinas de inmigración, ya que esta herramienta presentaba una tasa de error mayor cuando trataba de identificar pieles más oscuras y rostros femeninos.
¿Cuál es el problema para que aparezcan estos sesgos?
Cuando se entrenan modelos de redes neuronales siempre surge el problema de interpretar cuáles son los conceptos que una red neuronal debe comprender para generar predicciones. Para abordar esto es necesario una profunda comprensión de la materia, ya que en la mayoría de modelos, los conceptos que los humanos entendemos como “decisivos” no tienen por qué ser los que una máquina interprete como relevantes.
Figura 2: Sesgos en profesiones en Google Translate |
Por poner un ejemplo, un modelo destinado a predecir el cáncer de piel en fases tempranas, si no está correctamente ajustado, podría tomar como concepto relevante el tono de piel, si el algoritmo ignora los tonos de piel oscura podría suponer un fallo de diagnostico y un potencial riesgo de salud para cierto sector de la población.
Figura 3: Google I/O 2019 Keynote
Por esto es muy importante conocer los Conceptos de Activación en los modelos predictivos, tanto es así, que en el pasado Google I/O 2019, el propio CEO de la compañía, Sundar Pichai, dedicó una gran parte de la conferencia a hablar de los peligros que representa el sesgo dentro del mundo de la Inteligencia Artificial.
Figura 4: A more helpful Google for everyone by Sundar Pichai |
Fue aquí donde anunció una de las soluciones con las que la compañía de Mountain View va a intentar frenar este problema: usando técnicas de interpretabilidad. Toda estas información que Sundar Pichai anunció, la dejó plasmada en un artículo que puedes leer online.
Definición de TCAV: Testing with Concept Activation Vectors
TCAV son las siglas de “Testing with Concept Activation Vectors” o “Pruebas con Vectores de Activación de Concepto”. Este nuevo método de interpretación permite comprender qué señales usan los modelos de redes neuronales para sus predicciones. Los métodos de interpretabilidad no son algo nuevo, pero la gran diferencia de TCAV es que muestra la importancia de los conceptos de alto nivel (por ejemplo color, género, raza, etcétera) para una clase de predicción frente a los pesos de cada característica de entrada de los métodos de interpretabilidad comunes.
Figura 5: Paper sobre TCAV de Google Research |
Las técnicas de interpretabilidad llevan ya tiempo usándose en modelos de Machine Learning. Fundamentalmente, estas técnicas se basan en exploración de los datos antes de construir los modelos o interpretabilidad asociada a un modelo preexistente. El problema viene que la mayoría de modelos de Machine Learning están diseñados para operar con conceptos de bajo nivel como por ejemplo el color de un solo píxel o la relación con los píxeles adyacentes.
Aunque esta forma de generar los algoritmos de Machine Learning pueden ser muy útiles en detección de ataques de red, o técnicas de bypass de soluciones antimalware, como se explica en el libro de "Machine Learning aplicado a Ciberseguridad: Técnicas y ejemplos en la detección de amenazas" que escribieron mis compañeros, esto es radicalmente diferente a los conceptos de alto nivel que los humanos manejamos, como el color de las hojas de un árbol, el número de ruedas de un coche o las rayas de una cebra, y hace que esos algoritmos - especialmente en servicios cognitivios - sean susceptibles de cometer sesgos de género, raza o sexo.
Figura 6: Machine Learning aplicado a Ciberseguridad: Técnicas y ejemplos en la detección de amenazas |
Aquí es donde entra TCAV, una iniciativa del equipo de Google AI que permite una interpretación del estado interno de una red neuronal usando derivadas direccionales para cuantificar el grado por el cual un concepto definido por un usuario es importante para el resultado de una clasificación.
Funcionamiento de TCA
Poniendo el ejemplo que se detalló en la conferencia vamos a ver el funcionamiento interno de TCAV. Supongamos que tenemos un modelo entrenado para detectar cebras en una imagen. Querríamos saber cuales son las variables relevantes en el proceso de clasificación. TCAV nos permitiría entender si las rayas de la cebra son un detalle importante para la predicción del modelo, siendo verdad en este caso.
Figura 7: Modelo para reconocimiento de cebras + TCA |
Ahora es donde entramos en el asunto del sesgo, pongamos que vamos a mirar un modelo entrenado con un Dataset de doctores. Si el modelo ha sido entrenado con demasiadas fotos de hombres con batas blancas y estetoscopios puede que determinen el género masculino como un factor relevante, demostrando que existe un sesgo en nuestro set de datos de entrenamiento. Aquí reside el verdadero poder de TCAV, el entender en lenguaje “Humano” los vectores de activación importantes de nuestro modelo para así tener conocimiento y control sobre este mismo.
Figura 8: TCAV descubre que ser hombre tiene un 37 % de importancia |
No voy a detenerme mucho en los conceptos matemáticos detrás de esta técnica, para profundizar más en el tema os recomiendo consultar el paper de TCAV y tienes el código del proyecto en Github donde se puede ver con más detalle la implementación subyacente a esta técnica así como ejemplos prácticos para Tensorflow.
Conclusiones
TCAV es sin duda una buena herramienta para interpretar de forma sencilla el estado interno de un modelo de Deep Learning, pero no es la solución a todos los problemas, las compañías van a tener que seguir haciendo grandes esfuerzos para eliminar los sesgos dentro de sus modelos de Inteligencia Artificial. Sin embargo, esta técnica es un primer paso muy importante para solucionar un problema cada vez más evidente en este nuevo mundo.
Autor: Lucas Fernández Aragón (@lucferbux) investigador en el equipo de Ideas Locas.
2 comentarios:
Bueno he tenido un problema personal en hacienda. No sé si a alguien le ha pasado esto! daré les datos haber cual es la mejor fórmula de resorberla. Me toca a pagar hasta ahí deacuerdo, una cuantía (X) porque el programa entiende que yo percibí un dinero ( Y ) entre lo trabajado, el paro y un alquiler, retenciones, gastos,etc. Vamos ahondar más en el problema, el año anterior me salió a devolver una cuantía (Z). En la última declaración cundo hacienda me dice que he de pagar, la persona a cargo de mi caso simplifica, sumatorio da ingresos y gastos y programa listo n de cuanto y hasta la próxima. Bueno y yo pienso no eso no fue así. En el año que me devolvió hacienda, no recuerdo buen cuanto fue la cuantía percibida en concepto de paro, el banco solo va dos años hacia atrás en el historial de su aplicación, lo gracioso de todo esto es que el paro se equivocó y la persona por una reactivación del paro antiguo no me explico que perdería el nuevo así que la resolución a este problema fue que en último año de la declaración se unieron los dos paros pero no en ingresos simples, sino en un ingreso único más no recuerdo bien uno meses rendición de no sé cuanto pero en la misma cuantía y uno más reducido aún, lo curioso es poder acceder a todos los datos para saber si me interesa cambiar la última declaración y hacer una suplementaria de la anterior. El de hacienda me manda al paro a mirar las cuantías ella me da unas hojas después de dos horas de esperar y dice que el de hacienda está ínter comunicado con el paro, tendré que ir al banco a mirar lo percibido en 2017 y 2018.pasar las cuantías de eso dinero percibidos dividirlos correctamente si error de días dado que son sumatoria y encima con porcentajes de meses y porcentaje de cuantías. Bueno esto es solo para saber si me interesa modificar las declaraciones haber como me salen. Yo no soy un experto ni me dedico a el tema informático pero capen información útil no es correcto al final supongo que pagaré y me aguantaré ya que tengo que trabajar y no tengo tiempo para todo eso. Gracias, haber si alguien mejora un poquito las instituciones.
Publicar un comentario