En los últimos años hemos visto un aumento del uso de algoritmos de machine learning y deep learning para resolver problemas de clasificación de imágenes, predicción de series, aprendizaje reforzado, procesamiento de lenguaje, etc.
Sin embargo, con el aumento de la complejidad de los algoritmos utilizados, como es el caso del deep learning, es muy complicado conocer cómo se comporta el algoritmo, la función que está modelando y por qué toma unas decisiones y no otras.
En aplicaciones médicas, financieras, ciberseguridad o en vehículos autónomos es muy importante afrontar esta opacidad y tener indicios y claves del comportamiento del algoritmo.
Por ejemplo, un banco puede usar una red neuronal supervisada para decidir si concede o no un préstamo a un cliente en función de unas 100 características de entrada (renta, patrimonio, historial crediticio, estudios, relaciones en redes sociales, …) A la hora de justificar la decisión al cliente y al comité de riesgos es importante saber qué variables han sido claves a la hora de conceder o denegar el préstamo.
En algoritmos más simples como los árboles de decisión es posible seguir la lógica y las ramas del árbol para saber por qué para una entrada se ha asignado una clasificación determinada. Las redes profundas, en cambio, son el ejemplo más típico de la opacidad de los algoritmos de machine learning. En este tipo de redes es muy complicado entender la función que el algoritmo ha aprendido.
Lo mismo nos ocurre a las personas. Muchas veces realizamos muchas actividades de manera inconsciente que nos costaría mucho poder explicar en detalle y con una secuencia lógica.
Hace un par de años la empresa Nvidia utilizó un coche autónomo experimental que no seguía ninguna instrucción concreta sino que utilizaba un algoritmo que había aprendido a conducir observando cómo lo hacía una persona. Los sensores y cámaras del vehículo iban al procesador con la red neuronal entrenada y éste emitía los comandos necesarios para operar el acelerador, frenos, volantes, etc.
Como hemos comentado, el problema sería que el coche tomara alguna acción inesperada y no se pudiera explicar las causas y por lo tanto buscar una solución.
Por ello, Nvidia ha estado trabajando en formas de aumentar la transparencia y la comprensión de los algoritmos de deep learning que utilizan para los coches autónomos. Ha desarrollado un método (ver artículo) para determinar qué elementos de las imágenes de la carretera tienen más influencia en las decisiones de PilotNet (sistema basado en una red neuronal). Con el método descubrieron que PilotNet reconocía objetos relevantes de la carretera como líneas de los carriles, bordes de las carreteras y otros coches.
Pero lo más sorprendente es que también tiene en cuenta elementos más sutiles y que serían difíciles de codificar por los ingenieros como arbustos que delimitan los bordes de la carretera y vehículos atípicos.
Este tipo de esfuerzos no consiguen explicar totalmente el comportamiento del algoritmo pero ayudan a tener una idea de los factores que más tiene en cuenta. Sin duda, iniciativas como ésta (que también se están desarrollando en otras aplicaciones) van a ayudar mucho a aumentar la confianza en el uso del machine learning.
Deja una respuesta