¿Qué es una RNA (Red Neuronal Artificial)?
Voy a comenzar esta sección de artículos, hablando sobre el componente fundamental del Deep Learning, conocido como red neuronal artificial (RNA). Vamos a empezar formulando probablemente la pregunta más sencilla de todas y es ¿Qué es una red neuronal artificial?
Una red neuronal artificial no es más que un tipo de algoritmo de machine learning inspirado en las neuronas biológicas. Es importante subrayar las redes neuronales biológicas. Y ¿Por qué?
Porque que algo que se inspire en otra cosa no significa que esté implementado de la misma manera. Por ejemplo, dentro de otros ámbitos del mundo real, como puede ser un avión. Tenemos aviones que son capaces de volar y que probablemente en el origen podían estar inspirados, por ejemplo, por las aves que también son capaces de volar.
Sin embargo, si nosotros vemos la implementación de las alas de un avión, pues las alas de un avión son rígidas, no se mueven. Las alas de un ave sí que se mueven, se agitan para poder volar, con lo cual tenemos algo que puede estar inspirado en otro concepto. No obstante, la implementación, pues no es la misma. En este caso ocurre algo muy similar.
Tenemos redes neuronales artificiales que están inspiradas en las redes neuronales biológicas, es decir, que surgen un poco como consecuencia de pensar cómo funcionará nuestro cerebro. Sin embargo, la implementación no tiene absolutamente nada que ver. De hecho, fijaros hasta donde llega a este punto, que a día de hoy hay muchos científicos muy populares y muy famosos dentro de la disciplina de la inteligencia artificial y el machine learning, que ya están promoviendo un poco el deshacerse de esta comparación entre redes neuronales artificiales y redes neuronales biológicas.
Porque realmente a día de hoy la implementación de las redes neuronales artificiales no tiene nada que ver con la forma en la que funciona nuestro cerebro, que de hecho, pues tampoco conocemos al 100%.
Bien, vamos a continuar. De hecho, todo lo que vamos a ver, prácticamente todo, van a ser redes neuronales artificiales, van a tener diferentes arquitecturas, van a tener diferentes capas de neuronas, diferentes neuronas, funciones de activación, van a tener componentes diferentes, pero al fin y al cabo y de manera básica, todos los algoritmos que vamos a ver, se van a basar en redes neuronales artificiales (RNA).
Fijaros si vamos un poquito a la historia de este tipo de algoritmos, pues básicamente este tipo de algoritmos surgen por primera vez en 1943.
Parece que son algoritmos muy nuevos que han surgido hace dos años, pero realmente no es así. Es algo que lleva existiendo desde hace muchísimo tiempo. Concretamente, el neuropsicólogo Warren McCulloch y el matemático Walter Pitts generan el primer paper en el que hablan de una neurona artificial, de una primera red neuronal artificial en los años 40.
Cuando surge este paper, qué pasa?
Pues que se empiezan a generar un montón de expectativas alrededor, con que pronto tendremos máquinas inteligentes que serán capaces de pensar por sí mismas, etcétera. Evoluciona un poquito esta disciplina. Empiezan a darle vueltas a esta primera neurona artificial que veremos más adelante. Y lo que sucede es que en 1960, un tiempo después, se descubre que realmente todas estas expectativas de que rápidamente íbamos a disponer de máquinas inteligentes, pues no iban a cumplirse, lógicamente.
Entonces, qué es lo que sucede?
Pues que toda esta disciplina relacionada con la red neuronal artificial o con las redes neuronales artificiales, lo que hoy en día se conoce es deep learning, entra en un invierno. Es decir, se deja de investigar porque digamos que ese potencial que se presuponía que tenían, pues se descubre un poco que quizá no sea para tanto. Entran en un invierno de aproximadamente unos 20 años en los que casi nadie le da vueltas dentro de la comunidad de investigación, alrededor de las redes neuronales artificiales.
Y en los 80, pues bueno, comienzan a surgir otra vez, empiezan a desarrollarse nuevas arquitecturas, nuevas técnicas de entrenamiento, etcétera. Y parece que resurge otra vez todo este concepto de una red neuronal artificial, parece que se puede volver a aplicar y que realmente volverá a resurgir expectativas alrededor, etcétera.
Qué sucede?
Pues que unos poquitos años después, concretamente diez años después, alrededor de los años noventa de 1990, otra vez comienzan a perder interés y entran en un segundo invierno.
Por qué pierden interés?
Porque aparecen otras nuevas técnicas de machine learning, técnicas más sencillas que eran más fáciles de describir formalmente. Es decir, de describir matemáticamente, que proporcionan además mejores. Por ejemplo, el Support Vector Machine. Entran en un segundo invierno hasta que en el año 2012. Fijaros que el 2012 es hace muy poquito. Concretamente hace ocho años vuelven a resurgir con más fuerza que nunca.
Por qué?
Pues porque llega un científico muy popular dentro de la investigación de redes neuronales artificiales y en general el Deep Learning, que se llama Geoffrey Hinton y gana uno de los retos que se realizan de manera periódica a nivel mundial, que es el ImageNet y que consiste en clasificar un conjunto de imágenes en función de lo que aparece en esas imágenes.
Si aparece un coche o un animal, etcétera, lo gana con una red neuronal artificial, concretamente con una red convolución que ya veremos más adelante. Con lo cual, fijaros, las redes neuronales artificiales son un tipo de algoritmos que han surgido hace bastante tiempo.
Han pasado por varios inviernos, normalmente porque no eran capaces de cumplir con las expectativas que se suponía que iban a generar y en consecuencia, pues no se han desarrollado hasta llegar a 2012 concretamente.
Hace muy poquitos años, donde realmente ha pegado un boom muy grande y digamos que nos encontramos, por decirlo así, en la época dorada de esta disciplina. Probablemente alguno de vosotros esté pensando, pero si hemos hablado de que en los años 60, por ejemplo, se descubre que no van a cumplirse estas expectativas, pero luego los 80 resurgen con nuevos algoritmos, con nuevos métodos de entrenamiento, nuevas arquitecturas, que es lo que pasó después.
Por qué ahora sí que nos encontramos en una época dorada?
Y qué es diferente a lo que sucedió en el pasado?
Qué nos hace pensar que no volvamos a entrar en otro invierno?
Pues bueno, la realidad es que a día de hoy este tipo de algoritmos están proliferando y realmente están teniendo un empuje tan grande debido a diferentes factores de los que disponemos y que no se disponía en el pasado.
¿Por qué resurgen las RNA?
- En la actualidad existe una gran cantidad de datos disponibles. Esto es algo que iremos viendo a medida que vayamos profundizando en ellas. Pero para que su rendimiento sea bueno, para que sean capaces de realizar buenas predicciones, para que sean capaces de funcionar adecuadamente, van a necesitar conjuntos de datos muy elevados, conjuntos de datos muy grandes. Hace 60 años no teníamos esa capacidad de recolectar o de recopilar esos grandes conjuntos de datos. Sin embargo, fijaros que ahora, sobretodo por el Internet, nosotros tenemos al alcance prácticamente de un par de clicks conjuntos de datos enormes con los que podemos investigar, con los que podemos entrenar redes neuronales, podemos mejorarlas, etcétera.
- Otro de los puntos que hacen que esta disciplina a día de hoy se considere que está en su época dorada, es que en las últimas décadas el poder computacional, es decir, el poder de cómputo, se ha multiplicado, permitiendo la ejecución de algoritmos muy costosos y muy complejos. Esta es otra de las características que tienen las redes neuronales artificiales. Son capaces de resolver problemas muy complejos.
Sin embargo, van a requerir mucho poder computacional, tanto para el entrenamiento como para la predicción, etcétera. Hace muchos años o hace 60 años, 80 años, no disponíamos de este poder de cómputo. No disponíamos de ordenadores personales que fueran potentes y por lo tanto no podíamos entrenar grandes redes neuronales.
No podíamos, al fin y al cabo, investigar y ejecutar estos algoritmos de manera eficiente.
Qué es lo que ha pasado con el paso del tiempo?
Han evolucionado algunas industrias que también hayan hecho, que también han hecho que el poder computacional aumente?
Qué industrias?
Por ejemplo, la industria del gaming, los videojuegos. Es algo que todos sabemos. Los videojuegos requieren mucho poder computacional. Requieren muchos recursos. Y como los videojuegos se venden mucho. Es una industria que da muchísimo dinero, pues lógicamente también se han esforzado en que el poder computacional aumente y esté al alcance de todas las personas. Otra de las industrias podría ser, por ejemplo, la computación en la nube (Cloud). Hay un montón de industrias que han hecho que todo este poder computacional haya incrementado exponencialmente a lo largo de los últimos años.
- Los algoritmos también en los que se basan las redes neuronales artificiales han mejorado. Veremos que no han sido cambios muy sustanciales respecto a los que ya se habían hecho, por ejemplo, en los años 80. Sin embargo, sí que han sido cambios muy pequeñitos, pero que han tenido mucho impacto. Pues a lo mejor se han utilizado una función de activación diferente, que ya veremos lo que es o un algoritmo para entrenarlas diferente o se ha hecho, se ha modificado un híper parámetro de otra forma o una arquitectura diferente.
Y aunque son cambios pequeñitos de manera global, pues estos cambios tienen mucho impacto. Y hacen que estas redes neuronales, que estos algoritmos sean mucho más útiles.
- Por último, hay muchas limitaciones que se habían intuido de manera teórica que resultaron no cumplirse en la práctica. Esto es algo muy interesante porque a priori, cuando se investigó de manera formal, de manera matemática, este tipo de algoritmos, por ejemplo, surgían algunas restricciones a la hora de usarlos, como que en el proceso de entrenamiento se presuponía que estos algoritmos iban a quedarse en mínimos locales y por lo tanto no iban a alcanzar el mínimo global de la función de error.
Eso ya lo veremos más adelante en temas de cómo se entra en este tipo de algoritmos. No iban a alcanzarlo de manera frecuente y por lo tanto, el resultado no iba a ser bueno cuando realizase predicciones.
Qué es lo que sucede?
Que aunque formalmente digamos que esto se cumple cuando nosotros entrenamos prácticamente una red neuronal, resulta que raras veces se atasca en un mínimo local y la mayoría de las veces es capaz de converger en el mínimo global. Con lo cual realmente, aunque formalmente veíamos que había algunas restricciones, cuando hemos tenido suficiente capacidad de cómputo y suficientes datos para probarlas, hemos visto que prácticamente sí funcionan bien y no se cumple esto que se había supuesto previamente con ciertas investigaciones formales.
Pues esto es un poquito el contexto global. Espero que ahora os quede más claro desde el punto en el que partimos, que es una red neuronal artificial.
En qué punto nos encontramos a día de hoy?
Dentro del contexto histórico de las redes neuronales artificiales y en los siguientes temas entraremos más en profundidad sobre esa primera red neuronal que inventaron Warren McCulloch y Walter Pitts. A por el Sábado y una buenalectura histórica y de contexto.