Icono del sitio Pascual Parada

Toda la verdad, y nada más que la verdad, sobre los algoritmos caja negra de Inteligencia Artificial

[vc_row][vc_column][vc_column_text]

Introducción

El Machine Learning es la rama de la Inteligencia Artificial que tiene por objetivo diseñar y desarrollar algoritmos capaces de aprender por sí mismos. Un algoritmo no es otra cosa que el código de un programa informático que funciona ofreciendo unos datos de salida dados unos datos de entrada.

Por ejemplo, un algoritmo en una industria de fabricación de piezas de acero devuelve como salida si la pieza es o no es válida dados unos datos de entrada que puede ser un escáner 3D de cada pieza. Pero esto aún no es Inteligencia Artificial (IA), un algoritmo de IA sería una evolución del anterior donde además de decirnos en tiempo real las piezas que salen defectuosas, nos hará una predicción sobre las piezas que posiblemente saldrán defectuosas en función del proveedor de acero.

Otro ejemplo de algoritmo en IA, de los miles que existen, es el que utilizaba Google Photos para etiquetar personas en imágenes. En Junio de 2015, un usuario de esta plataforma observó como el algoritmo de Google etiquetaba a sus amigos de color de piel negra como gorilas. Google decidió eliminar a los monos y a los gorilas de su sistema de IA para evitar el error, pero no revisó el algoritmo argumentando el éste era de tipo caja negra y que no sabían cómo el algoritmo había tomado dichas decisiones al etiquetar a éstas personas.

Pero ¿es cierto? ¿los algoritmos caja negra no sabemos cómo toman las decisiones? ¿Se pueden mejorar para que aprendan de forma correcta o una vez lanzados no tenemos control sobre ellos?

Veamos primera una definición para luego sacar y aclarar conclusiones.

[/vc_column_text][vc_column_text]

Algoritmos caja negra vs caja blanca

Los algoritmos caja blanca son aquellos que normalmente trabajan sobre funciones matemáticas o de lógica que el programador conoce muy bien y que va modificando para mejorar el rendimiento del algoritmo. Por ejemplo, una empresa podría desarrollar un algoritmo capaz de clasificar a sus clientes en función de una serie de datos de entrada como el tipo de productos que compra o las veces que compra.

Este tipo de algoritmos requiere que los técnicos tengan mucho conocimiento tanto en la parte de ingeniería como en la parte de negocio, ya que han de ir mejorando las distintas fórmulas que clasificarán a sus clientes.

Por el contrario, un algoritmo caja negra es aquel cuya fórmula para clasificar a dichos clientes no es conocida. Para este tipo de algoritmos se utilizan por ejemplo redes neuronales. Imagina una neurona de tu cerebro, y ahora imagina que esa neurona la podemos simular en informática y que le llamamos nodo. Un nodo puede recibir, por ejemplo, tres datos de entrada que puede ser ponderados con un peso, y sobre los que se aplica una sencilla fórmula matemática para dar una única salida, que podría ser un “si” o un “no”. Ahora imagina un programa informático compuesto por cientos de miles de estos nodos, y todos conectados entre sí. Si a todo ese conjunto de nodos, que llamamos red neuronal, le damos unos datos de entrada, y nos produce una salida, no sabremos exactamente en que se ha basado el algoritmo para dar dicha salida. Una salida que podría ser etiquetar una persona como un gorila.[/vc_column_text][vc_single_image image=”3703″ img_size=”full” alignment=”center”][vc_column_text]

Conclusiones

Un algoritmo de caja negra se entrena con miles de ejemplos que luego queremos que el algoritmo haga por sí sólo. Además, en un algoritmo de caja negra no sabremos exactamente cuál fue el camino lógico que siguió para dar una salida concreta, pero los ingenieros podrán en todo momento cambiar tanto la estructura de la red, como la fórmula de cada nodo, como los pesos de las variables de entrada de cada nodo para mejorar su rendimiento.

Por tanto, podemos decir hoy día que los ingenieros tienen el control total sobre los resultados de todo tipo de algoritmos, incluidos los de caja negra, y que si en algún momento los resultados no son los esperados puede ser que las razones sean un mal entrenamiento, o un contexto equivocado, o una programación no útil.

Esperemos que a los algoritmos no les dé por pensar fuera de la caja ¿no?[/vc_column_text][/vc_column][/vc_row]

Salir de la versión móvil