Revolución IA

La Inteligencia Artificial está llamada a protagonizar la próxima Revolución tecnológica

Inicio Sobre Revolucionia Temas Para saber más Contacto

¿ Se pueden auditar las redes neuronales artificiales ?

Fernando P.    27/10/2017

Temas:  Actualidad    Aplicaciones    Divulgación    Fundamentos    Inteligencia Artificial y Sociedad

Buena parte de las aplicaciones de la Inteligencia Artificial que se han aparecido en los últimos tiempos han sido posible gracias al desarrollo de redes neuronales artificiales (en lo sucesivo RNA) muy complejas que han podido ser entrenadas usando computadores muy potentes. La lista de aplicaciones desarrolladas con éxito de esta forma es considerable.

A medida que las RNA se aplican para resolver cuestiones cada vez más importantes, surge la cuestión sobre si es posible auditar sistemas basados en RNA de la misma forma que es posible auditar otro tipo de sistemas tradicionales que se vienen usando en diferentes industrias y entidades.

Lo cierto es que resulta muy complicado auditar o incluso controlar el funcionamiento de una RNA.

Al hilo de toda esta cuestión, sucede que, recientemente, el servicio Cloud Natural Language API de Google ha sido objeto de ciertas pruebas al límite por parte de unos investigadores, revelando sesgos en las respuestas que en un humano resultarían controvertidos o incluso inaceptables.

Las RNA como cajas negras
Como ya hemos visto, una RNA es una construcción relativamente simple, depende sólo de unas cuantas matrices de números reales (cuantas más capas, más matrices). Hay variedades muy elaboradas de RNA, pero a la hora de la verdad siguen estando regidas por un conjunto de matrices.

Entrenar una RNA consiste en encontrar los valores de los elementos de todas sus matrices que consigan que la RNA clasifique bien los casos de entrada que se usan para entrenarla.

Una vez entrenada, la RNA funciona leyendo un caso de entrada y haciendo muchas multiplicaciones de matrices usando los datos de entrada, la estructura y las matrices de la red para obtener unos valores de salida que representan el resultado de clasificar la entrada proporcionada.

Pero todo ese trabajo masivo de multiplicación de matrices que se realiza para hacer funcionar la red es completamente abstracto, no hay forma de saber si un número de una matriz o una neurona en particular sirven para mejorar o empeora la clasificación de un caso concreto de entrada. No hay una correspondencia entre elementos de la red y casos a clasificar o conceptos clave del trabajo de clasificación.

La RNA se comporta como una caja negra, sabemos que está entrenada para hacer un trabajo, pero no sabemos cómo lo hace.
Auditar red neuronal artificial
Todo esto no es una sorpresa, porque algo parecido sucede con los circuitos neuronales del cerebro. No sabemos cómo funcionan estos circuitos y no se nos olvida cómo nos llamamos si se nos muere la neurona que guarda nuestro nombre, porque no existe tal neurona, no existe ese tipo de correspondencia.

Otra forma de entender que no existe tal correspondencia consiste en ver que una misma RNA se puede entrenar para funciones muy dispares, cambiando los datos de entrada y el entrenamiento, pero la estructura de la red podrá servir exactamente igual con un propósito completamente distinto, es una estructura abstracta que no tiene correspondencia con un problema concreto.

Auditando sistemas y mecanismos
La mayoría de sistemas y maquinaria que mueven el mundo moderno son auditables de una forma u otra, podemos examinarlos y saber con precisión qué van a hacer en cada situación dada.

Por ejemplo, un programa de computador que calcule nóminas es una secuencia muy precisa de instrucciones. Se puede ejecutar el programa paso a paso con unos datos de entrada y ver qué conceptos calcula en cada momento y cómo los integra para componer la nómina resultante.

Otro ejemplo: un ascensor es un conjunto de mecanismos con misiones bien determinadas que actúan coordinados. Sabemos con precisión porqué sube o baja el ascensor y también sabemos porqué no se puede caer.

Esta posibilidad de auditar sistemas no es compatible con las RNA, porque no hay una correspondencia entre elementos de la RNA y funciones o informaciones concretas.

Podemos saber si una RNA clasifica bien una serie de casos de entrada, pero:

¿ Podemos estar seguros sobre lo que hará una RNA ante una situación nueva ?

Pues, básicamente, no, será una icógnita. Si la red ha sido entrenada de forma adecuada, reconoce todos los patrones que se pueden dar y la situación nueva es asimilable a esos patrones, probáblemente funcionará bien, como ha sido entrenada.

Pero si se enfrenta a cosas no previstas en su entrenamiento, es muy posible que responda con una cosa disparatada, ni siquera será capaz de advertir que no sabe cómo actuar.

Más problemas
Por otro lado, puede suceder que tengamos un problema demasiado general y la red no sea capaz de extraer patrones generales durante el entrenamiento. En estos casos, la red tenderá a memorizar y no a generalizar.

En estas condiciones, puede suceder perfectamente que la red ni siquiera sea capaz de clasificar bien todo el conjunto de entrenamiento. Es decir, ya empieza a funcionar con lagunas.

También puede suceder que en los datos de entrenamiento estén escondidos patrones en los que no hemos reparado y que pueden ser un problema a la hora de poner a funcionar la red. Todas estas situaciones son muy difíciles de detectar en problemas complejos con RNA muy grandes y cantidades enormes de datos para entrenarla.

Incertidumbre con las RNA
Básicamente, cuando tenemos una RNA funcionando, siempre podemos encontrarnos con que la RNA funciona de forma no adecuada si los datos de entrada se complican lo suficiente. Dado un caso de entrada, tendremos cierta probabilidad de que la red funcione bien.

Cuanto mejor hayamos hecho nuestro trabajo, más cercana al 100% será esa probabilidad, pero es casi imposible que llegue a ser 100% en problemas mínimamente complejos.

Es una situación análoga al de una empresa que decide contratar a una persona para realizar un trabajo determinado, como puede ser llevar las cuentas de la empresa, nunca se va a tener seguridad total de que esta persona es honesta y no hace ninguna cosa rara.

Problemas con Cloud Natural Language API
Todo lo que hemos discutido aquí no son cuestiones teóricas, son problemas reales y la teoría no nos proporciona muchas herramientas para solucionarlos. A modo de ejemplo, podemos considerar lo que ha sucedido recientemente con la herramienta Cloud Natural Language API de Google.

Se trata de un modelo de un servicio a través de Internet que permite analizar lenguaje natural (texto escrito) para tratar de descubrir automáticamente muchas cuestiones de interés en el texto que nos interesa.

Una de las cosas que puede hacer este servicio es tratar de detectar emociones asociadas al texto analizado. Existe una lista enorme de emociones que reconoce el servicio, que se comporta como un enorme clasificador que puede asignar emociones a un texto dado.

Una aplicación muy interesante de este servicio es la de procesar automáticamente comentarios que clientes dejan en sitios web en los que hayan adquirido bienes o servicios, básicamente para localizar clientes no satisfechos.

Naturalmente, el clasificador que mueve este servicio de Google es, al menos, una RNA de buen tamaño, entrenada con cantidades ingentes de textos clasificados manualmente. Probáblemente, esta RNA se creó originalmente con la idea de analizar comentarios de clientes y seguramente funcione muy bien en ese cometido.

El problema viene porque Google publicita este servicio sin límites claros de aplicación. Es decir, en teoría, cualquiera puede usarlo para analizar un texto dado, está abierta a hacer pruebas.

¿ Qué sucede cuando alguien intenta analizar un texto comprometido ?

Pues como sucede con todas las RNA, la red funciona como una caja negra, puede suceder que pueda encajar el texto de entrada con lo que conoce y responda con algo disparatado o puede ser que si el conjunto de datos de entrenamiento es realmente grande, como en el caso que nos ocupa, la red sea capaz de detectar cosas que nadie había previsto.

En el caso de este servicio de Google, un artículo reciente nos explica cómo se las han ingeniado para que la RNA que lo mueve proporcione estas respuestas a los siguientes textos:

Este tipo de sesgos en las respuestas no es un resultado que genere mucha confianza en el producto de Google, pero en reconocimiento de Google diremos que han reconocido el problema y que es algo con lo que pelean constantemente.

Naturalmente, aquí no nos sorprende nada este tipo de cosas, porque es la forma en la que funcionan las RNA, con sus ventajas y limitaciones. Un analizador universal de texto es algo muy ambicioso, de momento parece que el de Google funciona bien en algunas circunstancias, que no es poco.



Las RNA pueden funcionar muy bien si se diseñan y entrenan con cuidado, pero no son auditables. Siempre habrá cierta incertidumbre sobre su funcionamiento, más incertidumbre cuanto más las alejemos del tipo de información con el que han sido entrenadas.



Para saber más:

Sitio web nativo para el servicio Cloud Natural Language API de Google. En teoría está abierto para que cualquiera pueda experimentar con él, pero igual no dura mucho tanta libertad.

Artículo en sitio de noticias relacionadas con la tecnología que describe cómo han puesto a prueba el servicio Cloud Natural Language API de Google y cómo han obtenido resultados sesgados. También publican un comunicado de Google al respecto.



 

Inicio Powered by NetBSD
 
HTML5
 
En general, todo el contenido de este sitio web es original, salvo referencias o enlaces a otros sitios web y citas o reproducciones expresamente presentadas como tales.

No está permitida la reproducción ni la copia del contenido de este sitio web sin el permiso expreso de la propiedad del mismo.

Este sitio web no utiliza cookies ni ningún otro mecanismo para almacenar información en los navegadores de los visitantes ni para realizar seguimiento de los mismos.

2017,2018 Revolucionia.net
Sobre Revolucionia
Temas
Para saber más
Contacto