febrero 28, 2021

Redes Neuronales Artificiales (RNA) en Inteligencia Artificial



Las redes neuronales artificiales están basadas en el funcionamiento de las redes de neuronas biológicas. Las neuronas que todos tenemos en nuestro cerebro están compuestas de dendritas, el soma y el axón. Las dendritas se encargan de captar los impulsos nerviosos que emiten otras neuronas. Estos impulsos, se procesan en el soma y se transmiten a través del axón que emite un impulso nervioso hacia las neuronas contiguas.

Neurona biológica
Una red neuronal artificial es un grupo interconectado de nodos similar a la vasta red de neuronas en un cerebro biológico. Cada nodo circular representa una neurona artificial y cada flecha representa una conexión desde la salida de una neurona a la entrada de otra.

Desde los años 40 del siglo pasado, los científicos han tratado de imitar este comportamiento del cerebro con la finalidad de replicar las habilidades superiores en sistemas informáticos. El resultado ha sido las redes neuronales artificiales, denominadas RNA o ANN (en inglés): forman parte de la Inteligencia Artificial y de los sistemas inteligentes. 

Las redes neuronales existen desde la década de 1950. Sin embargo, la poca potencia de los equipos de aquella época y la inexistencia de algoritmos que permitiesen a las redes aprender de forma eficiente provocó que estas dejasen de usarse. Ha sido posteriormente, gracias a la creación del algoritmo de Backpropagation, al uso de GPUs (Graphics Processing Unit) que permiten realizar grandes optimizaciones para este tipo de cálculos y al mayor número de datos disponibles para entrenamiento, cuando las redes neuronales han vuelto a resurgir y a ganar protagonismo en diversos campos. Gracias a estas mejoras ha sido posible la aparición del Deep Learning, el cual se basa en el uso de redes neuronales profundas, es decir, redes formadas por un gran número de capas para tareas complejas.


Objetivo de las redes neuronales

El objetivo que da origen a las Redes Neuronales Artificiales, es construir un modelo que sea capaz de reproducir el método de aprendizaje del cerebro humano. Las células encargadas de este aprendizaje son las neuronas interconectadas entre sí a través de complejas redes. Las redes neuronales actuales suelen contener desde unos miles a unos pocos millones de unidades neuronales.

El objetivo principal de este modelo es aprender modificándose automáticamente a sí mismo de forma que puede llegar a realizar tareas complejas que no podrían ser realizadas mediante la clásica programación basada en reglas. De esta forma se pueden automatizar funciones que en un principio solo podrían ser realizadas por personas.


Funcionamiento de las redes neuronales



El funcionamiento de las redes se asemeja al del cerebro humano. Las redes reciben una serie de valores de entrada y cada una de estas entradas llega a un nodo llamado neurona. Las neuronas de la red están a su vez agrupadas en capas que forman la red neuronal. Cada una de las neuronas de la red posee a su vez un peso, un valor numérico, con el que modifica la entrada recibida. Los nuevos valores obtenidos salen de las neuronas y continúan su camino por la red. 

Del mismo modo que nuestro cerebro está compuesto por neuronas interconectadas entre sí, una red neuronal artificial está formada por neuronas artificiales conectadas entre sí y agrupadas en diferentes niveles que denominamos capas.
 
Una capa es un conjunto de neuronas cuyas entradas provienen de una capa anterior – o de los datos de entrada en el caso de la primera capa-– y cuyas salidas son la entrada de una capa posterior.

4 capas

Las neuronas de la primera capa reciben como entrada los datos reales que alimentan a la red neuronal. Es por eso que a la primera capa se conoce como capa de entrada. La salida de la última capa es el resultado visible de la red, por lo que la última capa se conoce como la capa de salida. Las capas que se sitúan entre la capa de entrada y la capa de salida se conocen como capas ocultas ya que desconocemos tanto los valores de entrada como los de salida.

En el caso de las neuronas artificiales, la suma de las entradas multiplicadas por sus pesos asociados determina el “impulso nervioso” que recibe la neurona. Este valor, se procesa en el interior de la célula mediante una función de activación que devuelve un valor que se envía como salida de la neurona.



Una red neuronal, por lo tanto, siempre está compuesta por una capa de entrada, una capa de salida – si solo hay una capa en la red neuronal, la capa de entrada coincide con la capa de salida – y puede contener 0 o más capas ocultas. El concepto de Deep Learning nace a raíz de utilizar un gran número de capas ocultas en las redes.

Una vez que se ha alcanzado el final de la red se obtiene una salida que será la predicción calculada por la red. Cuantas más capas posea la red y más compleja sea, también serán mas complejas las funciones que pueda realizar.

El "aprendizaje profundo" de la inteligencia artificial

El aprendizaje profundo es un campo perteneciente a la inteligencia artificial cuyo objetivo es el estudio y construcción de sistemas de cómputo capaces de "aprender" a partir de la experiencia, inspirándose ligeramente en algunos principios del funcionamiento del cerebro biológico.

En el contexto de la inteligencia artificial, decir que una máquina "aprende sola" se refiere simplemente al uso de técnicas – por ejemplo, el aprendizaje profundo – que le permiten al sistema generalizar su funcionamiento a casos no vistos previamente, y de manera automática, sin necesidad de reglas predefinidas.

En general, estos sistemas deben ser entrenados a partir de ejemplos conocidos, de manera similar en la que se le enseña a un niño pequeño a reconocer objetos o sonidos a su alrededor (se señala un árbol y se le dice "eso es un árbol"; o se escucha el ruido de un tren y se le dice "eso es un tren").

A este tipo de aprendizaje automático se le llama "profundo" porque presenta una estructura jerárquica que extrae diferentes niveles de detalle de los datos en cuestión. Por ejemplo, durante el reconocimiento de imágenes se extraen bordes que, combinados, permiten detectar contornos, que a su vez permiten reconocer diferentes partes del objeto, para finalmente determinar su identidad.

Antes de poder ser utilizado, un sistema de aprendizaje profundo debe ser "entrenado" a partir de una gran cantidad de ejemplos conocidos – en principio, cuantos más ejemplos, mejor será el funcionamiento –. Entonces, se le "enseñan" imágenes de diferentes automóviles – distintos modelos, colores, tamaños, etc. – indicando que todos ellos son vehículos.

Con estos ejemplos, el sistema de aprendizaje profundo ajusta sus parámetros internos de manera tal que, si se le presenta una nueva imagen de un automóvil diferente, el sistema también sea capaz de reconocerlo como tal.

El aprendizaje profundo está presente de manera muy amplia – y en algunos casos, inimaginable – en nuestro día a día. Los predictores de palabras en los teléfonos móviles, los asistentes virtuales como Apple Siri, la traducción de texto entre diferentes idiomas, y el reconocimiento automático de objetos y personas en fotografías en redes sociales son algunos ejemplos conocidos. Otras áreas con gran potencial para el uso de la inteligencia artificial incluyen el análisis de datos genómicos complejos para, por ejemplo, la detección de tumores cerebrales y desarrollo de tratamientos apropiados. 

Entrenamiento de las redes neuronales – Backpropagation o propagación hacia atrás

Para conseguir que una red neuronal realice las funciones deseadas, es necesario entrenarla. El entrenamiento de una red neuronal se realiza modificando los pesos de sus neuronas para que consiga extraer los resultados deseados. Para ello lo que se hace es introducir datos de entrenamiento en la red, en función del resultado que se obtenga, se modifican los pesos de las neuronas según el error obtenido y en función de cuanto haya contribuido cada neurona a dicho resultado. Este método es conocido como Backpropagation o propagación hacia atrás. Con este método se consigue que la red aprenda, consiguiendo un modelo capaz de obtener resultados muy acertados incluso con datos muy diferentes a los que han sido utilizados durante su entrenamiento.

Si bien las aplicaciones de las redes neuronales parecen muy generosas, están sujetas a un entrenamiento intenso para que se puedan aplicar correctamente. Es decir, se necesita partir de un conjunto de datos de entrenamiento suficientemente representativo.

Por ejemplo, si queremos resolver un problema de clasificación de textos por estados de ánimo, primero tendremos que alimentar a la red neuronal de un conjuntos de datos con texto previamente clasificado. Cuanto más compleja sea la red neuronal – mayor número de neuronas – mayor será la cantidad de datos de entrenamiento necesaria para entrenarla.

Como en el cerebro humano, una de las características más importantes de las redes neuronales es su poder de “aprendizaje”. Dependiendo del tipo de aprendizaje estos algoritmos se clasifican en tres grandes grupos: supervisado, no supervisado y reforzado.

En el aprendizaje supervisado, se “etiquetan” los datos de entrada para ayudar a los algoritmos a valorar correctamente los datos y asignar un valor de salida. Es un método de aprendizaje muy utilizado para clasificaciones y regresiones.

El aprendizaje no supervisado se basa en no etiquetar ningún dato de entrada y dejar que el algoritmo encuentre variantes de patrones y correlaciones. Se utiliza cuando justamente queremos descubrir qué hay detrás de los datos que no vemos, por ejemplo para perfilado o “clustering” de clientes.

El aprendizaje reforzado se basa en el ensayo y error. Un ejemplo, para explicarlo de una forma sencilla, sería un videojuego. Recordando el famoso juego de la serpiente para móviles, la serpiente tiene unos movimientos limitados que puede hacer (arriba, abajo, izquierda y derecha). Para que aprenda, cada vez que choca con una pared o con ella misma se le penaliza, y cada vez que come se le premia. Al principio la serpiente se moverá de forma totalmente aleatoria chocando con ella misma o con la pared muy frecuentemente, después de haber jugado millones de partidas se puede ver como la serpiente ha aprendido a jugar y tarda un tiempo muy largo en equivocarse.


Funciones de las redes neuronales

El alcance de las funciones de las redes neuronales es muy amplio, debido a su funcionamiento, son capaces de aproximar cualquier función existente con el suficiente entrenamiento. Principalmente las redes neuronales son utilizadas para tareas de predicción y clasificación. Su rango de actuación es amplio y de gran utilidad hoy en día

Las RNA han sido aplicadas a un número en aumento de problemas en la vida real y de considerable complejidad, donde su mayor ventaja está en la solución de problemas que son bastante complejos para la tecnología actual, tratándose de problemas que no tienen una solución algorítmica o cuya solución algorítmica es demasiado compleja para ser encontrada.

En general, debido a que son parecidas a las del cerebro humano, las RNA son bien nombradas ya que son buenas para resolver problemas que el humano puede resolver pero las computadoras no. De cualquier forma, el humano tiene capacidad para el reconocimiento de patrones, pero la capacidad de las redes neuronales no se ve afectada por la fatiga, condiciones de trabajo, estado emocional, y compensaciones.


Primera red neuronal artificial que funciona con luz

Científicos de las Universidades de Münster (Alemania), de Oxford y Exeter (Reino Unido), cuyo artículo fue publicado en Nature de mayo 2019, han creado una red neuronal artificial (ANN) que funciona con impulsos de luz : almacena y procesa información de manera similar a como lo hace el cerebro humano. Título original : “All-optical spiking neurosynaptic networks with self-learning” ("Redes neurosinápticas de picos totalmente ópticos con auto-aprendizaje").

Imitando el cerebro


Una neurona biológica puede recibir unas 10.000 entradas y enviar a su vez su salida a varios cientos de neuronas a la vez. Cada cerebro humano contiene cien mil millones de neuronas y cien billones de sinapsis. Las neuronas artificiales pretenden aproximarse todo lo posible a esa capacidad biológica para aumentar la eficiencia de las computadoras en el procesamiento de datos.

Lo que se ha conseguido hasta el momento es entrenar a una red neuronal artificial para que realice una tarea, como reconocer un patrón en la dinámica sináptica, y conseguir que use ese patrón para enviar la información a otras unidades de la red neuronal artificial.

Las redes neuronales se han utilizado hasta ahora para resolver determinadas funciones, como la visión por computadora o el reconocimiento de voz, pero no han podido desarrollar todo su potencial debido a la arquitectura propia de las computadoras.

Al tener una computadora y una memoria separadas entre sí, las computadoras se diferencian sustancialmente del cerebro humano, que procesa y almacena información en el mismo lugar – las sinapsis –. Por ello resulta complicado implementar en las computadoras muchas neuronas y sinapsis para desarrollar tareas más complejas.

Sinapsis ópticas 

Esta es la dificultad que ha resuelto la creación de redes neuronales basadas en la luz : codifica los datos en fotones – las partículas de la luz –, que se mueven a gran velocidad a través de materiales ópticos sin generar mucho calor. Además, pueden usar diferentes colores para enviar grandes cantidades de información simultáneamente.

Al estar basada en la luz y no en electrones, como ocurre en las redes neuronales tradicionales, puede procesar datos con mucha mayor rapidez y aproximarse drásticamente al modo de funcionamiento del cerebro biológico.

Los investigadores pudieron además comprobar que esta red es capaz de “aprender” de la información y de usarla para calcular y reconocer patrones, tal como hace el cerebro.

El invento ha resuelto una dificultad técnica no menos relevante : los impulsos lumínicos no se comunican entre sí, un proceso necesario para emular la sinapsis.

Esta dificultad podría resolverse convirtiendo las señales ópticas en señales eléctricas, para que la sinapsis se produzca, y a continuación convertirlas de nuevo en luz para transmitirlas a más velocidad.

Pero esta solución fue descartada porque la conversión y reconversión de señales lumínicas en eléctricas aumenta la complejidad del proceso y el consumo de energía, al mismo tiempo que reduce el flujo de información.

Los autores de esta investigación han ido por ello más lejos : para conseguir la sinapsis entre fotones han fabricado la red neuronal artificial sobre un material de cambio de fase que se calienta con un pulso de láser. Este material de cambio de fase ya se utiliza, por ejemplo, en el DVD-RW (regrabable).

4 neuronas, 60 sinapsis

Estos materiales de cambio de fase se caracterizan por el hecho de que cambian dramáticamente sus propiedades ópticas, dependiendo de si son cristalinos, cuando sus átomos se organizan de manera regular, o amorfos, cuando sus átomos se organizan de manera irregular.

Este cambio de fase puede ser activado por la luz si un láser calienta el material. Cuando este material cambia de fase, imita las sinapsis y replica el funcionamiento del cerebro, sin necesidad de convertir la luz en electricidad en ningún momento.

Usando un material de cambio de fase, el equipo construyó un chip totalmente óptico que comprende cuatro neuronas artificiales y 60 sinapsis. El equipo probó su chip mediante el uso de dos algoritmos de aprendizaje ANN establecidos – aprendizaje supervisado y no supervisado – para capacitar a su red a reconocer imágenes de píxeles en blanco y negro en una cuadrícula de 3 × 5.

Este sistema ha permitido dar un paso importante hacia la creación de hardware que se comporta de manera similar a las neuronas y las sinapsis en el cerebro y que también puede trabajar en tareas del mundo real.

Identificar células cancerígenas 

Al trabajar con fotones en lugar de electrones, los investigadores pueden aprovechar al máximo el potencial conocido de las tecnologías ópticas, no solo para transferir datos, como ha sido el caso hasta ahora, sino también para procesar y almacenarlos en un solo lugar.

Según los investigadores un ejemplo muy específico de esta tecnología es que, con la ayuda de esta red, las células cancerosas podrían identificarse automáticamente. Sin embargo, será necesario realizar más trabajos antes de que dichas aplicaciones se conviertan en realidad.

Necesitan aumentar el número de neuronas artificiales y sinapsis, así como la profundidad de las redes neuronales, para conseguir aplicaciones significativas. Esto se conseguiría, por ejemplo, con chips ópticos fabricados con tecnología de silicio.


Áreas de aplicación

Identificación de sistemas. Tiene por objeto obtener el modelo matemático lineal o no lineal de un sistema dinámico a partir de datos experimentales. Dicho modelo debe reproducir con suficiente exactitud las características dinámicas del proceso objeto de estudio.

Sistema. Es toda realidad en la que interactúan variables de diferentes tipos para producir señales observables.

Las señales observables se denominan : salida del sistema y las señales que pueden ser manipuladas libremente se llaman : entradas del sistema y aquellas que ingresan al sistema de forma aleatoria y que no se pueden controlar se llaman perturbaciones.

Control de procesos. El control de procesos trata de mantener, mediante un sistema automático, las principales variables de un proceso en valores próximos a los deseados a pesar de las posibles perturbaciones.

Gestión de los recursos naturales. Es la actividad de la sociedad humana encaminada a satisfacer sus necesidades mediante el uso de los recursos naturales. La gestión de la naturaleza racional es característica de la economía intensiva, que se desarrolla sobre la base del progreso científico, tecnológico y la buena organización del trabajo con una alta productividad.

Química cuántica. Es una ciencia interdisciplinar – Física, Química, Ciencia de la Computación, Matemáticas aplicadas – que estudia, a escala atómica y sub-atómica, el conocimiento de los enlaces y de las reacciones químicas entre los átomos y las moléculas. Este objetivo se consigue con la utilización de los principios de la mecánica cuántica.

Reconocimiento de patrones. Identificación de blancos de radares. Simulación de centrales de producción de energía. Detección de explosivos. Reconocimiento facial, clasificación de señales, reconocimiento de objetos. Reconocimiento de secuencia – gesto, voz –. Reconocimiento de textos manuscritos. Reconocimiento del habla.

Aplicaciones financieras. Por ejemplo, sistemas automatizados de comercio – trading algorítmico –, minería de datos o descubrimiento de conocimiento en bases de datos, "KDD".

Algoritmos genéticos (AG). Otro tipo especial de redes neuronales artificiales se ha aplicado en conjunción con los algoritmos genéticos para crear controladores para robots. La disciplina que trata la evolución de redes neuronales se denomina Robótica Evolutiva.

Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. Un algoritmo genético es una técnica de programación inspirada en la reproducción de los seres vivos y que imita a la evolución biológica como estrategia para resolver problemas de optimización.

Traducción automática neuronal. Utiliza una nueva generación de sistemas de aprendizaje automático, denominados redes neuronales profundas, que emplean complejas representaciones internas para aprender a realizar tareas extrayendo regularidades de los datos. Los datos son grandes cantidades de textos originales y traducidos, y la tarea en cuestión consiste en predecir la traducción a partir de la frase original. Esta es procesada y transformada en una representación abstracta independiente del idioma que el sistema ha aprendido durante el entrenamiento. A partir de esta representación, la frase traducida se genera teniendo en cuenta no solo el contenido del original, sino también las regularidades y convenciones de uso del idioma de destino.

Prevención de spam (correo basura) de correo electrónico. La inteligencia Artificial y el Machine Learning han simplificado la comunicación por correo electrónico. En la última década, los servidores de correo electrónico han implementado algoritmos de detección de spam eficientes para identificar y bloquear el correo no deseado.

Diagnóstico médico. La medicina es uno de los campos del conocimiento que más podrían beneficiarse de una interacción cercana con la computación y las matemáticas, mediante la cual se optimizarían procesos complejos e imperfectos como el diagnóstico diferencial. De esto se ocupa el aprendizaje automático, rama de la inteligencia artificial que construye y estudia sistemas capaces de aprender a partir de un conjunto de datos de adiestramiento y de mejorar procesos de clasificación y predicción.

Juegos y la toma de decisiones. Backgammon, ajedrez, póquer.

Casos de éxito más conocidos


Recomendador de Youtube. Youtube es la compañía más grande del mundo para compartir, crear y visualizar contenido audiovisual. Las recomendaciones de YouTube son responsables de ayudar a más de mil millones de usuarios a descubrir contenido personalizado. Uno de los mayores retos que tuvieron que afrontar a la hora de crear el algoritmo es la cantidad de datos que son subidos a youtube por segundo. Por lo tanto esta red neuronal tiene que tener la capacidad de ser sensible – responsive – tanto al último contenido subido a la plataforma como a las interacciones del usuario con esta.

Dynamic pricing Amazon. Amazon es el líder indiscutible del comercio electrónico. Es conocido por todos que utiliza precios dinámicos, según un estudio Amazon varía los precios más de 2.5 millones de veces al día. El reto de esta red neuronal es que los precios en la era digital deben fijarse en tiempo real basándose en la oferta y la demanda de un determinado producto durante un limitado periodo de tiempo. Compañías como Wallmart o Uber utilizan estos algoritmos para ofrecer precios más competitivos a sus clientes.

Identificar riesgos en banca. HSBC es una de los bancos que utiliza redes neuronales para transformar la forma de procesar los préstamos e hipotecas. Esta compañía usa este tipo de algoritmos de inteligencia artificial para analizar el comportamiento de antiguos clientes y así poder dar una estimación del riesgo para un cliente nuevo a la hora de adquirir una hipoteca o préstamo.

Personalizar las estrategias de marketing. En los últimos años son varias las compañías que utilizan inteligencia artificial para mejorar sus estrategias de marketing. Las redes neuronales son algoritmos que pueden procesar gran cantidad de datos como : perfiles de compradores, patrones de compra u otro tipo de datos específicos para cada empresa. Este tipo de características hace que sean los algoritmos perfectos para analizar el mercado y proponer una estrategia de marketing personalizada por cliente. Sephora o Starbucks son dos de las compañías que utilizan este tipo de inteligencia artificial para incrementar sus beneficios.

*
*   *

Las redes neuronales son algoritmos que pueden llegar a resolver problemas muy complejos de una forma muy precisa. No se puede olvidar que estos tipos de algoritmos necesitan una gran cantidad de datos de entrenamiento y un esfuerzo computacional considerable a la hora de entrenarlas.

Las redes neuronales se han convertido en una pieza clave para el desarrollo de la Inteligencia Artificial, es uno de los principales campos de investigación y el que más está evolucionando con el tiempo, ofreciendo cada vez soluciones más complejas y eficientes.


Ver también…