Julien Simon, Principal Evangelist ML/AI EMEA, Amazon Web Services, nos habla en este interesante artículo sobre las redes neuronales y su funcionamiento aplicado a la inteligencia artificial.
En 1956, un pequeño grupo de científicos informáticos dirigidos por John McCarthy organizó un seminario dedicado a la “Inteligencia Artificial” (IA), que estableció la base para esta tecnología tal y como la conocemos en la actualidad. El término también fue inventado por el mismo McCarthy, quien lo definió como “cualquier aspecto del aprendizaje o de cualquier característica de la inteligencia que puede, en principio, ser descrito con tanta precisión que una máquina podría ser diseñada para simularlo”.
Durante los primeros años, los científicos de este grupo intentaron predecir lo que podría hacer la IA dentro de un periodo de tiempo razonable, aunque resultó que estaban equivocados. Cualquier intento de realizar un progreso importante en IA no tuvo éxito, y las diferencias entre las expectativas y los resultados eran tan grandes que se redujo la financiación y los proyectos se abandonaron uno tras otro. Como era de esperar, estas numerosas decepciones desalentaron a casi todos, excepto a algunos fervientes defensores de la IA.
Mientras tanto, en la costa oeste de Estados Unidos…
Al mismo tiempo, varias start-ups reinventaron el mundo y desarrollaron sus plataformas en Internet a un ritmo frenético. Después de llegar a millones de usuarios y de acumular montañas de datos, muy pronto resultó evidente que esta enorme cantidad de información era toda una mina de oro. Con equipos informáticos estándar, sus ingenieros crearon plataformas de procesamiento para extraer valor de estos datos.
En la actualidad, los usuarios tienen una amplia gama de posibilidades, desde el DIY al aprendizaje automático como servicio. Uno de los primeros pasos para la creación de una aplicación de aprendizaje automático es la “extracción de características”. Para ello, los científicos especializados en datos exploran un conjunto de datos para determinar las variables que son útiles para predecir o clasificar los datos, así como aquellas que no lo son.
Aunque este proceso es largo y aburrido, se utiliza ahora de forma generalizada para datos estructurados o semiestructurados, como el historial de Internet o los datos de ventas. Sin embargo, aún no podemos ocuparnos de asuntos más complejos relacionados con la IA, como la visión o la voz por ordenador, porque es prácticamente imposible definir las características de manera formal. Por ejemplo, ¿qué hace que un gato sea un gato? ¿O un león? El aprendizaje automático actual no se ocupa de este tipo de problemas, y creemos que hay una necesidad para contar con nuevas herramientas.
Regreso al futuro
En 1957, Frank Rosenblatt creó una red neuronal electromecánica, el Perceptron, que se entrenó para el reconocimiento de imágenes. En 1975, Paul Werbos publicó un artículo en el que describió la “retropropagación”, un algoritmo que permite crear redes neuronales con mayor rapidez y de forma más eficiente.
Si las redes neuronales han existido durante tanto tiempo, es posible que también hayan sido en parte responsables de todos los intentos fallidos para el desarrollo de la IA. ¿Deberíamos resucitarlas? ¿Podrían darnos de repente grandes resultados?
Lo primero y lo más importante es entender el funcionamiento de las redes neuronales. Una neurona es una sencilla construcción que incorpora varios datos ponderados de entrada para producir datos de salida como resultado. Las neuronas se organizan en “n + 1” capas. La primera capa se conoce como la capa de entrada y recibe los datos, por ejemplo, los valores del pixel de una imagen. La última capa es la capa de salida y genera los resultados, por ejemplo, una categoría para la imagen (“esto es un perro”).
La ventaja de las redes neuronales es que son capaces de organizarse por sí mismas: cuando se les proporciona un conjunto de datos lo suficientemente amplio (por ejemplo, las etiquetas de las imágenes de entrada y de las categorías de los resultados), una red neuronal puede aprender automáticamente para generar las respuestas correctas. Asimismo, gracias a un proceso de entrenamiento iterativo, es posible determinar las características que hacen posible la categorización de las imágenes, además de ajustar los valores varias veces para obtener los mejores resultados, para conseguir de esta forma los menores márgenes de error.
La fase de entrenamiento y el descubrimiento automático de las características son procesos especialmente apropiados para la resolución de problemas informales, aunque, por otra parte, éste es el mayor reto, que asumen una gran cantidad de operaciones matemáticas que tienden a crecer exponencialmente, de la misma forma que lo hace el tamaño de la muestra de los datos con fotografías de alta resolución, algo que hace aumentar el número de capas. Este problema se conoce como el “azote de la dimensión”, y es una de las principales razones por la que las redes neuronales han estado estancadas durante décadas, ya que la potencia informática era, sencillamente, insuficiente para utilizarlas a una escala necesaria.
Las redes neuronales necesitan una enorme cantidad de datos para funcionar bien. Cuanto mayor sea la cantidad de datos, mejor funcionan. Pero, hasta muy recientemente, era sencillamente imposible recopilar y almacenar grandes cantidades de datos digitales -solo tenemos que recordar las tarjetas perforadas y los discos blandos-.
En 1998, Yann Le Cun realizó un importante descubrimiento, cuando inventó la Red Neuronal Convolucional (RNC), una nueva forma de red de múltiples capas (de ahí el término “aprendizaje profundo”). En resumen, las RNC pueden extraer de manea eficiente características, reduciendo al mismo tiempo el tamaño de los datos de entrada, lo que permite el uso de redes más pequeñas para el proceso de clasificación, reduciendo drásticamente el coste de las TI para las redes. Este enfoque ha tenido tanto éxito que los bancos han adoptado sistemas basados en RNC para automatizar el reconocimiento de la escritura a mano en los cheques. Este avance ha representado todo un éxito para el desarrollo e impulso de las redes neuronales. Pero lo mejor está aún por llegar.
El contraataque del imperio (neuronal)
A finales de la primera década de este siglo XXI, tres eventos tuvieron lugar de forma casi simultánea que hicieron posible el desarrollo de las redes neuronales a gran escala.
En primer lugar, los grandes conjuntos de datos se encontraron ampliamente disponibles. Textos, imágenes, películas y música, todo ello digitalizado de repente y disponible para ser usado para el desarrollo de redes neuronales. En la actualidad, la base de datos de ImageNet contiene más de 14 millones de imágenes identificadas que son utilizadas por los investigadores de todo el mundo cada año para competir en capacidad de invención y para el desarrollo de la mayor red de clasificación y detección de imágenes.
En segundo lugar, los investigadores pueden utilizar el extraordinario poder del procesamiento en paralelo de los procesadores gráficos (GPU) para crear amplias redes neuronales. Debemos tener en cuenta que las redes neuronales que ganaron el concurso de ImageNet en 2015 y 2016 tenían 152 y 269 capas, respectivamente.
Por último y, por encima de todo, la nube ha proporcionado elasticidad y flexibilidad a los investigadores, permitiéndoles usar la infraestructura que necesiten para el entrenamiento y sin necesidad de crear, gestionar o pagar por su uso a largo plazo.
De hecho, la convergencia de estos tres factores ha permitido hacer realidad las promesa de las redes neuronales realizadas hace sesenta años: las redes innovadoras actuales son capaces de clasificar las imágenes más rápidamente y con mayor precisión que cualquier ser humano (con menos de un 3% de error, en comparación al 5% para los seres humanos). Dispositivos como Amazon Echo entienden el lenguaje natural y pueden respondernos. Los vehículos autónomos se están haciendo realidad. Y la lista de aplicaciones basadas en inteligencia artificial crece cada día. ¿Te gustaría añadir la tuya a este listado?