La web está repleta de bots que pululan por internet. Para diferenciar entre humanos y bots se usan los CAPTCHAs (Completely Automated Public Turing test to tell Computers and Humans Apart). Los más comunes se basan en textos sucios para dificultar su legibilidad. Se publica en Science un algoritmo neurobioinspirado capaz de descifrar de forma automática los CAPTCHAs. Usa un sistema jerárquico llamado red cortical recursiva (RCN), que combina un modelo regenerativo sobre cómo funciona la visión humana con el aprendizaje supervisado usando redes de neuronas artificiales. El resultado es un lector de CAPTCHAs con un probabilidad de acierto similar a la de un humano.
Lo relevante del nuevo trabajo no es que los CAPTCHAs dejen de ser seguros; con técnicas de aprendizaje profundo se podría lograr un resultado similar, aunque con una base de datos de entrenamiento más grande y una fase de entrenamiento más costosa. En mi opinión es mucho más interesante que los algoritmos bioinspirados en los descubrimientos neurocientíficos están empezando a lograr resolver problemas prácticos de interés tecnológico. Nuestro encéfalo está inspirando muchos logros en inteligencia artificial y dichos logros acabarán ayudándonos a entender mejor nuestras habilidades cognitivas.
El artículo es Dileep George, Wolfgang Lehrach, …, D. Scott Phoenix, «A generative vision model that trains with high data efficiency and breaks text-based CAPTCHAs,» Science 358: eaag2612 (08 Dec 2017), doi: 10.1126/science.aag2612.
El nuevo algoritmo se basa en combinar técnicas conocidas que ya se usan en el reconocimiento de textos manuscritos. La RCN usa un modelo compositivo con estructura de árbol, también llamado máquina compositiva (composition machine); la información se agrega (combina) usando operadores lógicos AND-OR, que en el contexto del reconocimiento de caracteres se llaman grafos AND-OR gramaticales. Se parte de un algoritmo de detección de bordes con un motor de inferencia que propaga la creencia (belief propagation) asociada a que los bordes (edges) correspondan a los trazos que definen los caracteres de las letras. No quiero entrar en detalles técnicos del algoritmo, muy bien explicados en la información suplementaria del artículo (73 páginas).
La RCN es capaz de romper la seguridad de muchos CAPTCHAs textuales que se usan hoy en día. Resuelve los de reCAPTCHA con una precisión del 66,6% (a nivel de caracteres individuales alcanza 94,3%), los de BotDetect con 64,4%, los de Yahoo con 57,4%, y los de PayPal at 57,1%. Estos valores deben ser comparados con la precisión humana, que para reCAPTCHA es del 87,4%; se estima que dos humanos ofrecen la misma respuesta a un mismo CAPTCHA solo el 81% de las veces.
En el artículo en Science se estima que las RCN logran el mismo nivel de precisión que las redes de neuronas convolucionales (CNN) con una base de datos de entrenamiento 50 000 veces más pequeña (quizás los autores pecan de optimistas). Estiman que para que una CNN alcance una precisión del 89,9% se requieren 2,3 millones de imágenes únicas de CAPTCHAs en el entrenamiento asociadas a unas 79 000 palabras distintas. No sé si todos los expertos en CNNs estarán de acuerdo con estos números, pero en realidad no importan mucho.
En resumen, un nuevo artículo sobre inteligencia artificial en Science. Todos nuestros dispositivos móviles incluyen algoritmos de inteligencia artificial, aunque a veces no seamos conscientes de ello (recomiendo leer a Sara Robisco Cavite @SaraRC83, «¿En qué narices piensa mi GPS?» Naukas, 07 Dic 2017). Seguramente esto es lo que te preguntas cada vez q. Pronto todos incluirán un coprocesador neuronal para ejecutar algoritmos de aprendizaje profundo y neurobioinspirados.
Y que hay de AlphaAGo Zero ahora jugando ajedrez. Buena enrada