En los materiales sobre JavaRush, ya hemos tocado el tema de la inteligencia artificial (IA), el aprendizaje automático y otras tecnologías relacionadas de una forma u otra con la IA. En particular, ya hemos hablado sobre cómo la inteligencia artificial se relaciona con la programación en Java , discutimos mitos e historias de terror sobre la IA y en varios artículos mencionamos tecnologías clave que se utilizan en esta área.
Por lo tanto, decidimos que ahora es un buen momento para profundizar aún más en el campo de la IA y observar más de cerca la tecnología que realmente subyace a la IA y el aprendizaje automático modernos: las redes neuronales. A saber: cómo surgió originalmente el concepto de redes neuronales y cómo se transformó esta tecnología hasta su estado actual, en qué se diferencian las redes neuronales artificiales de las neuronas del cerebro humano, si realmente saben cómo aprender y de qué son realmente capaces hoy.
Una red neuronal típica contiene desde varias decenas hasta cientos, miles o incluso millones de neuronas artificiales, llamadas unidades, dispuestas en varias capas. Algunas de estas unidades, llamadas unidades de entrada, son responsables de recibir diversas formas de información del mundo exterior, que luego la red neuronal intentará aprender, recordar y procesar de otras maneras. Otras unidades, llamadas unidades de salida, ubicadas en el lado opuesto de la red, son responsables de cómo la red interactúa con esta información. Entre estas dos capas hay otras unidades que realizan el cálculo y constituyen la mayor parte de la red neuronal. La mayoría de las redes neuronales están interconectadas, lo que significa que cada unidad está conectada a otras unidades en capas a cada lado. Las conexiones entre unidades están representadas por un número llamado peso. El peso en una red neuronal puede ser positivo (si una unidad activa a otra) o negativo (si una unidad suprime o debilita a otra). Cuanto mayor sea el peso, mayor será la influencia de una unidad sobre otra. Una red neuronal simple diseñada para resolver problemas simples puede incluir solo tres capas básicas, como se muestra en la imagen. Sin embargo, entre las capas de entrada y salida puede haber varias capas diferentes que realizan diferentes funciones. Las redes neuronales con estructuras más complejas (que en la ilustración anterior) se denominan redes neuronales profundas y normalmente se utilizan para resolver problemas complejos. En teoría, el uso de una estructura profunda permite que una red neuronal asigne cualquier tipo de datos de entrada a cualquier tipo de datos de salida, lo que la hace capaz de resolver cualquier problema. Sin embargo, para ello la red neuronal necesitará un “entrenamiento” serio y prolongado, que consiste en procesar millones e incluso miles de millones de ejemplos de información con los que la red necesita trabajar.


Redes neuronales artificiales y el cerebro humano. ¿Mismo?
Inicialmente, las redes neuronales informáticas recibieron este nombre porque el principio de su diseño se asemeja al sistema de neuronas del cerebro humano. Así, el cerebro humano medio incluye más de 100 millones de pequeñas células llamadas neuronas. De hecho, nadie sabe exactamente cuántas células de este tipo podría haber realmente en el cerebro humano: se calcula que son entre 50 mil millones y 500 mil millones. Cada neurona consta de un cuerpo celular con muchas de las llamadas dendritas (entradas celulares, transmiten información a la célula). ) y un axón ( salida celular - transmite información desde la célula). Las neuronas son tan pequeñas que se pueden colocar alrededor de un centenar de estas células en un área de un milímetro cuadrado. Dentro de una computadora, el equivalente a una neurona son pequeños dispositivos de conmutación llamados transistores. Los microprocesadores más modernos (computadoras de un solo chip) contienen más de 30 mil millones de transistores. Incluso el primer microprocesador Pentium, creado hace unos 20 años, tenía alrededor de 50 millones de transistores empaquetados en un circuito integrado con un área de sólo 25 mm. De hecho, según los expertos, aquí termina la conexión entre los procesadores de computadora y las neuronas del cerebro humano, porque de lo contrario son muy diferentes entre sí y funcionan de manera completamente diferente. Los transistores de computadora están conectados en circuitos en serie relativamente simples, cada uno de los cuales puede conectarse a otros dos o tres, mientras que las neuronas en el cerebro están estrechamente conectadas de maneras complejas en paralelo. Así, los científicos han calculado que cada neurona puede estar conectada a más de 10 mil de sus vecinas.¿Qué es una red neuronal artificial?
Por tanto, la diferencia estructural más significativa entre las computadoras y las neuronas del cerebro es cómo funcionan. La idea básica detrás de las redes neuronales es simular o, si se prefiere, modelar, de forma simplificada, el funcionamiento de muchas neuronas interconectadas en el cerebro. Esto es lo que permite que una red neuronal haga cosas que los microprocesadores comunes no pueden hacer, es decir, aprender, reconocer patrones y tomar decisiones según un principio similar al del cerebro humano. Sin embargo, es importante destacar que en la actualidad las redes neuronales son una simple emulación de software del trabajo de las neuronas en el cerebro.

Redes neuronales: un poco de historia
Bueno, hemos resuelto las explicaciones básicas de lo que son esencialmente las redes neuronales, ahora podemos retroceder un poco en la teoría y hablar sobre la historia de esta tecnología y cuándo apareció. Esto puede sorprender a muchos, pero las redes neuronales aparecieron en la ciencia hace más de 70 años. El concepto fue propuesto por primera vez en 1944 por Warren McCullough y Walter Pitts, dos investigadores de la Universidad de Chicago que se trasladaron al Instituto Tecnológico de Massachusetts en 1952, donde fundaron el primer grupo de investigación en ciencia cognitiva. Las redes neuronales fueron en realidad un área importante de investigación tanto en neurociencia como en informática hasta 1969. Es decir, esta tecnología, que subyace a los sistemas modernos de inteligencia artificial, ya ha estado, en términos modernos, en boca de todos durante más de una década, aproximadamente desde mediados de los años cincuenta hasta finales de los sesenta. Se cree que el "asesino" de esta exageración fue un libro escrito por dos informáticos, Marvin Minsky y Seymour Papert, quienes en su trabajo revelaron todas las limitaciones de las redes neuronales. El hecho es que las primeras redes neuronales solo tenían una o dos capas entrenables. Minsky y Papert demostraron que redes tan simples son matemáticamente incapaces de modelar fenómenos complejos del mundo real. Como resultado, el interés por las redes neuronales como tecnología se perdió durante muchos años: durante los años setenta y la primera mitad de los ochenta, objetivamente se les prestó poca atención. El interés no se renovó hasta 1986, con la publicación de un artículo que introducía el concepto de retropropagación, un método práctico para entrenar redes neuronales profundas. Gracias a la retropropagación, las redes neuronales profundas se volvieron más amigables desde el punto de vista computacional, pero aún requerían enormes recursos informáticos para funcionar. Y las investigaciones de las décadas de 1990 y 2000 a menudo demostraron que las redes neuronales complejas no producían los resultados deseados en términos de eficiencia. Como resultado, las redes neuronales cayeron de la ola de publicidad por un tiempo y solo regresaron en la segunda década de la década de 2000, en gran parte debido al aumento de la potencia informática de los chips gráficos, que permiten que las redes neuronales profundas funcionen de manera más eficiente que antes. El fenómeno de tal ciclicidad en la ciencia en su conjunto está bien explicado.Tomaso Poggio, profesor del Instituto Tecnológico de Massachusetts: “Existe una explicación de que las ideas científicas se propagan de forma muy parecida a como lo hacen los virus. Por ejemplo, hay cinco o seis cepas principales del virus de la influenza y cada una regresa aproximadamente una vez cada 25 años. Las personas se infectan, desarrollan inmunidad y están protegidas de la infección durante los próximos 25 años. Y luego llega una nueva generación y vuelve a infectarse con la misma cepa del virus. En la ciencia, la gente se enamora de las ideas y trabaja en ellas hasta el agotamiento, hasta el punto de desarrollar inmunidad en forma de fatiga de ideas. Y luego la idea vuelve con otra generación de científicos”. Dado que las redes neuronales y las tecnologías de inteligencia artificial son todavía una tecnología bastante nueva y subdesarrollada, es posible que el revuelo en torno a ellas pronto comience a disminuir nuevamente, para regresar nuevamente en un par de décadas más.
¿Cómo aprenden las redes neuronales?
Normalmente, la información pasa a través de una red neuronal de dos maneras. Cuando la red recién está aprendiendo o ya está funcionando después del entrenamiento, ingresan patrones de información a través de unidades de entrada, que lanzan capas de unidades ocultas, que a su vez ingresan a unidades de salida. Esta estructura general se denomina red feedforward. No todas las unidades funcionan al mismo tiempo. Cada unidad recibe datos entrantes de las unidades de la izquierda y los multiplica por el peso de las conexiones por las que pasa. Cada unidad suma todos los datos que recibe de esta forma y, en el tipo de red más simple, si la suma supera un determinado umbral, la unidad activa las demás unidades a las que está conectada (las de la derecha). Uno de los puntos clave que permite aprender a cualquier red neuronal es la retroalimentación. Así como un niño necesita ser criado por un adulto que le diga qué es bueno y qué es malo, las redes neuronales necesitan retroalimentación y orientación. Utilizan un enfoque de entrenamiento llamado retropropagación . En este método, la red compara la producción que produce con la producción que debería producir y utiliza la diferencia entre estos dos factores para cambiar el peso de las conexiones entre las unidades de la red, desde unidades de salida, pasando por unidades intermedias hasta unidades de entrada. es decir, viceversa. Con el tiempo, la retropropagación obliga a la red a aprender, reduciendo la diferencia entre la salida real y la estimada hasta el punto en que coinciden exactamente.
GO TO FULL VERSION