La IA en 2018 y más allá

Publicado en

 

Este artículo ha sido traducido y editado por SG para publicarse aquí con el permiso del autor. La versión original en inglés se encuentra disponible en https://towardsdatascience.com/artificial-intelligence-ai-in-2018-and-beyond-e06f05167f9c

El tipo de inteligencia artificial que tenemos disponible hoy en día es bastante limitada y “angosta”. Los vehículos autónomos, casas inteligentes y cámaras de seguridad son un área de enfoque. Otra área más son los asistentes digitales en dispositivos móviles. Pero si la meta es lograr que las máquinas tengan habilidades humanas (o super humanas) que puedan ayudarnos en una gran variedad de actividade cotidianas, todavía estamos muy lejos.

En el presente artículo comparto mi perspectiva sobre algunos de los principales retos que necesitamos resolver para llegar a esa visión de auténtica inteligencia artificial.

Software

En este contexto, el software se refiere a arquitecturas de redes neuronales entrenadas con un algoritmo de optimización para resolver una tarea específica.

Actualmente las redes neuronales son la herramienta de-facto para aprender a resolver tareas que involucran aprendizaje supervisado para categorizar un conjunto de datos grande. Pero esto no es inteligencia artificial. La verdadera inteligencia artificial requiere actuar en el mundo real, aprendiendo sin supervisión de experiencias nuevas y combinando esto con conocimiento previamente adquirido en distintas circunstancias, con el objetivo de resolver el reto actual.

Entonces, ¿cómo llegamos de las redes neuronales actuales hacia una verdadera AI?

Arquitecturas de redes neuronales. Es cierto que las redes neuronales tienen la ventaja de poder aprender los parámetros ideales para un algoritmo automáticamente a partir de datos, lo cual les da ventaja sobre estrategias de configuración manual. Sin embargo, lo que no se menciona es que la arquitectura de esa red neuronal, que es la base del entrenamiento para resolver una tarea específica, no se puede generar automáticamente a partir de datos sino que es necesario crearla a mano; esta es una de las grandes limitantes de este campo. Ya hay algo de investigación para resolver este problema [1], pero necesitamos más. El problema de aprender arquitecturas de redes neuronales a partir de datos es que actualmente requiere demasiado tiempo experimentar distintas arquitecturas sobre un conjunto de datos grande. Necesitamos superar esta limitación.

Aprendizaje no supervisado. No siempre podemos estar al pendiente de nuestras redes neuronales, corrigiéndolas en cada instancia y dando retroalimentación de su desempeño. El objetivo del aprendizaje no supervisado es construir sistemas generales que pueden ser entrenados a partir de pocos datos. Necesitamos poder construir modelos que se comporten de manera similar al cerebro humano, capaz de aprender a partir de unos cuantos ejemplos, y que automáticamente pueda corregirse y aprender continuamente sobre datos más complejos [2].

Redes neuronales predictivas. Una de las principales limitantes de las redes neuronales tradicionales es que no poseen una de las capacidades más importantes del cerebro humano: el poder de predicción. La codificación predictiva es un modelo para explicar el funcionamiento del cerebro humano, que básicamente dice que el cerebro está continuamente generando y actualizando hipótesis para predecir entradas sensoriales. La predicción no solo nos ayuda a entender el mundo, sino también a saber cuando no lo estamos entendiendo y debemos aprender. Guardamos información de cosas que no sabemos y nos sorprenden, para que la próxima vez no nos sorprendan. Nuestras habilidades cognitivas están claramente relacionadas con nuestro mecanismo de atención, nuestra habilidad innata para ignorar el 99.9% de las entradas sensoriales y solo enfocarnos en aquellas que nos interesan. Construir redes neuronales predictivas es vital para poder interactuar en el mundo real [3].

Cápsulas de redes neuronales. Un camino posible para superar las limitaciones actuales de las redes neuronales convolucionales es el uso de una técnica denominada cápsulas de redes neuronales. Esta técnica busca emular el funcionamiento del cerebro humano para reconocer imágenes y objetos, partiendo de la noción de que los ojos reciben información visual y la descomponen en una representación jerárquica buscando empatarla con patrones y relaciones aprendidas previamente. Es por ello que cuando vemos una imagen de un automóvil, por ejemplo, podemos reconocer que es un automóvil independientemente de si las imágenes que vemos son fotografías tomada de distintos ángulos (de frente, de lado, de arriba), diagramas isométricos, o dibujos infantiles. La idea clave es que la representación de objetos no depende del ángulo de vista [4].

Aprendizaje continuo. Las redes neuronales necesitan continuar aprendiendo nuevos puntos de datos durante el resto de su vida. Desgraciadamente, las redes neuronales tradicionales no son capaces de aprender nuevos datos sin ser reentrenadas desde cero en cada instancia. Necesitamos lograr que las redes neuronales sean capaces de evaluar la necesidades de nuevo entrenamiento, y reconocer que ya saben algo. Esto es clave para el desempeño en el mundo real y el aprendizaje por refuerzo, donde queremos que las máquinas aprendan nuevas cosas sin olvidar las que ya saben [5].

Aprendizaje transferido. ¿Cómo hacemos que los algoritmos aprendan por sí solos a partir de observar videos, tal como nosotros lo hacemos cuando queremos aprender a cocinar algo? Esta habilidad requiere todos los componentes que hemos listado anteriormente. Esto nos permitirá entrenar a máquinas simplemente dándoles un ejemplo, tal como lo hacen los humanos.

Aprendizaje por refuerzo. Esta técnica se enfoca en lograr que un agente decida por sí solo qué acciones o caminos tomar para maximizar el beneficio obtenido. Por ejemplo, consideremos cómo enseñamos un truco a un perro: no podemos darle una especificación detallada de todo lo que queremos, pero sí podemos recompensar/castigar comportamientos, dejando que el animal deduzca que es lo que hizo para obtener la recompensa o castigo. Podemos usar un método similar para entrenar computadoras. Aunque este es un campo en el que actualmente hay gran énfasis, todavía hay mucho camino por recorrer. El tipo de problemas que se resuelven todavía están muy acotados. Por ejemplo, podemos usarlo para aprender a jugar juegos de tablero como ajedrez o Go —de hecho, se usó aprendizaje por refuerzo para entrenar al programa AlphaGo [6]— en los que todas las acciones son visualmente observables, pero de eso a poder resolver problemas en entornos complejos todavía falta mucho.

Redes basadas en atención. Otra área de investigación prometedora es la de incorporar mecanismos de atención en redes neuronales. A grandes rasgos, los mecanismos de atención consisten en poder enfocarse solamente en las características de una imagen que tienen información relevante para resolver el problema que tenemos. Los mecanismos de atención no son algo nuevo y desde hace tiempo se usan en el reconocimiento de imágenes, pero recientemente se ha comenzado a usarlos en conjunto con redes neuronales recurrentes (RNN), típicamente utilizadas para el procesamiento de lenguaje natural. Los resultados son muy positivos, arrojando cerca de 100 veces menos operaciones requeridas para lograr el mismo desempeño [7] que los RNN tradicionales.

Hardware

El hardware es clave para el avance del aprendizaje profundo. No olvidemos que la fuerte expansión que ha tenido este campo en los últimos años se debe principalmente a avances de hardware:

  • Sensores de imagen baratos en cada teléfono permiten recolectar conjuntos de datos enormes.

  • GPUs poderosos que aceleran el entrenamiento de redes neuronales.

El área de hardware para procesamiento de redes neuronales está teniendo una explosión importante. Entre las empresas trabajando en este espacio destacan NVIDIA, Intel, Nervana, Movidius, Bitmain, Google, Huawei, ARM, Wave Computing, entre otras.  La gran mayoría de estas compañías están desarrollando procesadores de uso específico para entrenar redes neuronales.

Pero más allá de tener procesadores específicos para AI, también necesitamos un gran avance en el resto del hardware. Existe una gran cantidad de aplicaciones que no son posibles hoy en día por limitaciones en el hardware, no en el software, ya sea por el rendimiento de batería, portabilidad, velocidad de comunicación o interfaz de uso.

Aplicaciones

A continuación comparto unos ejemplos comunes de cómo la AI y redes neuronales seguirán adentrándose en nuestras vidas.

Categorización de imágenes y videos. Esto ya es posible por medio de servicios basados en la nube, pero el siguiente paso es poder hacer esto localmente.

Asistentes por voz. Los asistentes como Siri, Cortana, Alexa o Google Assistant han mejorado significativamente en los últimos años. Veremos mejoras en la experiencia a través de distintos dispositivos (hogar, teléfono, automóvil), así como la capacidad de realizar el procesamiento para brindar un mejor desempeño y mitigar preocupaciones de privacidad.

Realidad aumentada. La realidad aumentada es otro tipo de asistente cuya adopción aumentará a través de los próximos años. Los lentes tipo HoloLens todavía requieren mejorar su desempeño, comodidad y costo, pero eventualmente llegaremos ahí.

 

Referencias

  1. B. Zoph et al. “Learning Transferrable Architectures for Image Recognition”. arXiv, 2017. http://swgu.ru/v6

  2. E. Culurciello. “Navigating the Unsupervised Learning Landscape“.  http://swgu.ru/v7

  3. E. Culurciello. “A new kind of deep neural networks”. http://swgu.ru/v8

  4. M. Pechyonkin. “Understanding Hinton’s Capsule Networks. Part 1: Intuition”. http://swgu.ru/v9

  5. V. Lomonaco. “Why Continuous Learning is the Key Towards Machine Intelligence”. http://swgu.ru/va

  6. “AlphaGo”, Wikipedia. http://swgu.ru/vb

  7. E. Culurciello. “Memory, attention, sequences”. http://swgu.ru/vc

[Bio]

Eugenio Culurciello es fundador y CTO de FWDNXT, así como profesor asociado en la Universidad de Purdue. Cuenta con cerca de 20 años de experiencia con redes neuronales tanto en hardware como software. Previamente dirigió el área de machine intelligence en Movidius.