Las redes neuronales artificiales son modelos matemáticos compuestos por neuronas artificiales que se inspiran en el funcionamiento biológico del cerebro humano. Son indispensables para resolver problemas de ingeniería de inteligencia artificial y requieren chips de hardware avanzados que las soporten.
Las neuronas biológicas interconectadas forman nuestras redes neuronales cerebrales, que permiten a cada individuo razonar, hacer cálculos en paralelo, reconocer sonidos, imágenes, caras, aprender y actuar. La idea de poder replicar artificialmente el cerebro humano, simulando su funcionamiento mediante redes neuronales artificiales, tiene una historia que se remonta a principios de los años 40 [la primera neurona artificial fue propuesta por W.S. McCulloch y W. Pitts en un famoso trabajo de 1943].
A continuación, vemos qué son, por qué se habla tanto de las redes neuronales artificiales, cómo se utilizan en inteligencia artificial y aprendizaje automático, cuál es su historia y cuáles son las nuevas fronteras tecnológicas del hardware.
Índice de temas
Qué son las redes neuronales artificiales
Las redes neuronales artificiales son modelos matemáticos compuestos por neuronas artificiales inspiradas en las redes neuronales biológicas (humanas o animales) y se utilizan para resolver problemas de ingeniería de Inteligencia Artificial relacionados con distintos campos tecnológicos, como la informática, la electrónica, la simulación u otras disciplinas.
Si quisiéramos dar una definición más detallada, podríamos decir que las redes neuronales son modelos matemático-computacionales basados en el funcionamiento de las redes neuronales biológicas. Es decir, modelos consistentes en interconexiones de información. Estas interconexiones derivan de neuronas artificiales y procesos computacionales basados en el modelo de la ciencia cognitiva llamado “conexionismo”.
Es decir, basado en el PDP – Procesamiento Distribuido Paralelo de la información: el cerebro humano procesa la información de los distintos sentidos de forma paralela y distribuye la información por los distintos nodos de la red, no en una memoria central. Haciendo la comparación con la informática tradicional, los cálculos tienen lugar en serie y no en paralelo y los datos se almacenan en una memoria central, aunque, como veremos, en los últimos años se han dado enormes saltos tanto en términos de computación informática como de procesadores de hardware – ndr.
Una curiosidad: en inglés se denominan ANN – Artificial Neural Network, pero desde hace varios años utilizamos el más sencillo NN – Neural Network.
Sistemas expertos y redes neuronales
Al analizar qué son y cómo funcionan las redes neuronales, no podemos pasar por alto una mención a los llamados sistemas expertos. Se trata, en su mayoría, de aplicaciones que entran dentro de la rama de la inteligencia artificial, porque reproducen artificialmente la actuación de una persona experta en un determinado dominio del conocimiento o campo de actividad.
Esto no es nada nuevo: se trata de sistemas que gozaron de cierto protagonismo mediático y de un fuerte interés por parte de las empresas en los años 80 (sin embargo, la “excesiva” demanda en comparación con la madurez tecnológica de las ofertas de entonces pronto “enfrió sus ánimos”), pero cuya introducción en el ámbito de la investigación se remonta a los años 70, cuando los científicos consiguieron crear programas informáticos capaces de almacenar, organizar y proponer al usuario los conocimientos de un dominio preciso y, sobre todo, deducir de determinadas acciones/preguntas incluso conocimientos útiles que no se solicitaban expresamente.
Una verdadera revolución que permitió crear soluciones informáticas capaces de encontrar soluciones a problemas complejos. Soluciones que hoy clasificaríamos como sistemas de apoyo a la toma de decisiones, definiendo los sistemas expertos como software inteligente que, respondiendo dinámicamente a las preguntas de los usuarios, les ayuda a resolver un problema relacionado con un tema específico (es decir, un dominio concreto del conocimiento).
Cómo funcionan los sistemas expertos
Los sistemas expertos se estructuran en tres niveles tecnológicos diferentes
Base de conocimientos:
Podríamos identificarla como la base de datos de información que el sistema necesita para dar respuesta a un problema determinado (como haría el ser humano experto que posee los conocimientos específicos de la materia que se van a aplicar para resolver el problema). Es el repositorio donde se almacenan la información y las reglas que permiten al sistema realizar razonamientos.
Motor inferencial
La base de conocimientos que está en la base de un sistema experto también contiene la información específica de una serie de reglas. Este “motor de reglas” es, de hecho, el componente de software que, analizando y procesando la información contenida en la base de conocimientos, comprende el problema y propone una solución.
Interfaz de usuario
Es la parte del software que permite al usuario explotar el motor inferencial; suele ser una interfaz web, a veces muy simplificada (una página en la que el usuario introduce una pregunta por escrito y recibe en pantalla la respuesta elaborada por el sistema experto), a veces más estructurada (hoy en día, también puede integrarse con otros sistemas basados en inteligencia artificial, como el reconocimiento y comprensión del lenguaje natural).
Lo que diferencia a los sistemas expertos de los programas informáticos normales son los datos que constituyen la base de conocimientos: en lugar de “confiar” en una estructura predefinida de toma de decisiones, los sistemas expertos son capaces de proponer al usuario la mejor alternativa posible, encontrando la solución óptima al problema entre todas las disponibles.
En qué se diferencian los sistemas expertos y las redes neuronales artificiales
Los sistemas expertos se asocian -erróneamente- a las redes neuronales artificiales, quizá porque a menudo se utilizan comparaciones humanas para describirlos, y se dice que son sistemas capaces de replicar la actuación de un ser humano experto (entonces se habla de las redes neuronales artificiales como sistemas capaces de emular el funcionamiento del cerebro biológico).
En realidad, la diferencia entre estas tecnologías es bastante obvia cuando se comparan sus funcionalidades:
1) un sistema experto puede deducir ciertos razonamientos (Mario es un ser humano; los seres humanos son mortales; Mario no es inmortal), algo que no hace la red neuronal; ésta, sin embargo, es perfectamente capaz de reconocer un rostro humano en una imagen compleja, algo que el sistema experto es incapaz de hacer;
2) el sistema experto es capaz de explicar cómo ha llegado a una solución; en cambio, el funcionamiento de las redes neuronales es muy complejo y es casi imposible seguir el proceso lógico que ha conducido a una solución determinada;
3) los sistemas expertos requieren la intervención primaria del experto del dominio, que define las reglas que alimentan el motor inferencial, por lo que deben programarse; las redes neuronales, en cambio, “deducen” las reglas y las actividades automáticamente, mediante el aprendizaje.
Aunque hoy en día la atención se centra a menudo solo en las redes neuronales, la madurez tecnológica alcanzada por los sistemas expertos les ha permitido encontrar importantes salidas de aplicación (hoy Myti, por ejemplo, explota los sistemas expertos dentro de soluciones de software como los configuradores de productos comerciales para ayudar a los usuarios no expertos, como los vendedores, a hacer propuestas eficaces para proyectos y productos complejos), hasta el punto de que hoy se habla del “siguiente nivel”, en el que los sistemas expertos y las redes neuronales trabajan juntos.
Aunque, como hemos visto, se trata de tecnologías diferentes, hoy en día las redes neuronales podrían aprovecharse para “alimentar” la base de conocimientos de los sistemas expertos de forma autónoma. Para entender cómo vemos cómo funcionan las redes neuronales.
Cómo funcionan las redes neuronales
De hecho, una red neuronal se presenta como un sistema “adaptativo” capaz de modificar su estructura (nodos e interconexiones) basándose tanto en los datos externos como en la información interna que conecta y atraviesa la red neuronal durante la fase de aprendizaje y razonamiento.
Entendamos cómo: una red neuronal biológica recibe datos y señales externas (en humanos y animales se perciben a través de los sentidos gracias a complejas organizaciones de células nerviosas que tienen diferentes “tareas” como percibir el entorno, reconocer estímulos, etc.); se procesan en información a través de un impresionante número de neuronas (que representan la capacidad de cálculo) interconectadas en una estructura no lineal y variable en respuesta a esos datos y estímulos externos. Con esto en mente hablamos de un “modelo” matemático.
Del mismo modo, las redes neuronales artificiales son estructuras no lineales de datos estadísticos organizadas como herramientas de modelización: reciben señales externas en una capa de nodos (que representan la unidad de procesamiento, el procesador); cada uno de estos “nodos de entrada” está conectado a varios nodos internos de la red que, normalmente, están organizados en varios niveles para que cada nodo individual pueda procesar las señales recibidas transmitiendo el resultado de su procesamiento (es decir, información más evolucionada y detallada) a los niveles posteriores.
Las tres capas de las redes neuronales
En términos generales, las redes neuronales están formadas por tres capas (que, sin embargo, pueden implicar miles de neuronas y decenas de miles de conexiones)
la capa de las entradas (I – Input)
Es la que tiene la tarea de recibir y procesar las señales de entrada adaptándolas a las peticiones de las neuronas de la red;
La llamada capa oculta (H – hidden layer)
Es la encargada del procesamiento propiamente dicho (y también puede estructurarse con varias capas-columna de neuronas);
La capa de salida (O – output)
Aquí se recogen los resultados del procesamiento de la capa H y se adaptan a las demandas de la siguiente capa-bloque de la red neuronal.
Los modelos de aprendizaje de las redes neuronales
Para que este proceso funcione bien, es necesario “entrenar” las redes neuronales, es decir, asegurarse de que aprenden a comportarse cuando hay que resolver un problema de ingeniería, como el reconocimiento de un ser humano a partir del análisis de imágenes (por ejemplo, mediante la tecnología de reconocimiento facial).
El tema del aprendizaje está vinculado al Aprendizaje Automático, entendido como algoritmos que utilizan métodos matemático-computacionales para aprender información a partir de la experiencia (por tanto, de forma automática y adaptativa).
Estos son los principales modelos que se utilizan hoy en día
Aprendizaje supervisado (Supervised Learning)
Se dan al algoritmo conjuntos de datos como entrada e información sobre los resultados deseados, con el objetivo de que la red identifique una regla general que relacione los datos de entrada con los de salida; en otras palabras, se dan ejemplos de entrada y salida para que el sistema aprenda el vínculo entre ellos y extrapole una regla reutilizable para otras tareas similares;
Aprendizaje no supervisado
Al sistema solo se le proporcionan conjuntos de datos sin ninguna indicación del resultado deseado. El objetivo de este segundo método de aprendizaje es “rastrear” pautas y patrones ocultos, es decir, identificar una estructura lógica en la entrada sin etiquetarla de antemano;
Aprendizaje por refuerzo
En este caso, el sistema tiene que interactuar con un entorno dinámico (que le permite disponer de los datos de entrada) y alcanzar un objetivo (al alcanzarlo recibe una recompensa), aprendiendo también de los errores (identificados mediante “castigos”). El comportamiento (y el rendimiento) del sistema viene determinado por una rutina de aprendizaje basada en recompensas y castigos
Aprendizaje semisupervisado
Se trata de un modelo “híbrido” en el que se proporciona al ordenador un conjunto de datos incompleto para el entrenamiento/aprendizaje; algunas de estas entradas están “equipadas” con sus respectivos ejemplos de salida (como en el aprendizaje supervisado), mientras que otras carecen de ellos (como en el aprendizaje no supervisado). El objetivo, en esencia, es siempre el mismo: identificar reglas y funciones para la resolución de problemas, así como modelos y estructuras de datos útiles para alcanzar determinados objetivos.
Cómo surgieron las redes neuronales artificiales actuales
Como mencionamos al principio de nuestro “viaje” para descubrir las redes neuronales, el primer gran paso hacia el nacimiento y desarrollo de las redes neuronales artificiales lo dieron en 1943 Warren Sturgis McCulloch (neurofisiólogo) y Walter Pitts (matemático) en su publicación “Un cálculo lógico de las ideas inmanentes a la actividad nerviosa”.
Un cálculo lógico de las ideas inmanentes a la actividad nerviosa
Los dos científicos intentaron modelar una primera neurona artificial esquematizando lo que se identificó como un “combinador lineal de umbrales”, un sistema en el que la capa de entrada tenía múltiples datos binarios de entrada, mientras que la salida tenía un único dato binario de salida; para “componer” la red neuronal bastaba con combinar conceptualmente un número adecuado de estos elementos y demostró ser capaz de calcular funciones booleanas sencillas (funciones matemáticas basadas en dos variables que en informática equivalen a 1 y 0).
1943- 50
Desde 1943 hasta finales de los años 50, sin embargo, pasó muy poco. Hubo un intento en 1949 del psicólogo canadiense Donald Olding Hebb de explicar los complejos modelos del cerebro y extrapolar las primeras hipótesis de aprendizaje de las redes neuronales (se le atribuye haber introducido uno de los algoritmos de aprendizaje fundamentales en el campo de las redes neuronales, el aprendizaje Hebbiano, que se basa en el “peso” de las conexiones: se basa en el sencillo principio de que si dos neuronas se activan al mismo tiempo, su interconexión debe reforzarse).
Año 1958
En 1958 se produjo un importante salto innovador con el primer esquema de red neuronal presentado por Frank Rosenblatt (psicólogo e informático estadounidense), precursor de las redes neuronales actuales: Se llamaba Perceptrón e indicaba una red con una capa de entrada y otra de salida y una regla de aprendizaje intermedia basada en el algoritmo de “retropropagación del error”; la función matemática, en esencia, basada en la evaluación sobre los datos de salida reales -respecto a una entrada dada- altera los pesos de las conexiones (sinapsis) provocando una diferencia entre la salida real y la salida deseada.
Las teorías de Rosenblatt calentaron a la comunidad científica durante más de una década, pero en 1969 Marvin Minsky y Seymour Papert demostraron sus fuertes limitaciones: el perceptrón resultó ser una red neuronal poco potente, incapaz de calcular la función “o exclusiva” (XOR).
Año 1986
Hubo que esperar otra década para volver a ver algo innovador: en 1986, David Rumelhart introdujo la tercera capa de las redes neuronales (la que ahora se denomina capa oculta H), a través de la cual se identificaron los modelos de aprendizaje para entrenar redes MLP -Perceptrón Multicapa-. Rumelhart propuso a la comunidad científica el llamado algoritmo de retropropagación de errores (error backpropagation), que modifica sistemáticamente los pesos de las conexiones entre nodos, para que la respuesta de la red se acerque cada vez más a la deseada (algoritmo utilizado hoy en el aprendizaje supervisado).
Entre 1958 y principios de los 70, asistimos también al “lanzamiento” de los primeros lenguajes de programación específicos para la inteligencia artificial (Lisp en 1958 y Prolog en 1973), pero fue a finales de los 80 cuando se produjo otra gran aceleración con la llegada al mercado “ampliado” de nuevos procesadores potentes y chips avanzados capaces de soportar aplicaciones intensivas como el análisis y las simulaciones; A partir de entonces, el camino del avance tecnológico del hardware no se ha detenido y, hoy en día, los laboratorios de investigación ya trabajan en chips neuromórficos (que imitan el funcionamiento del cerebro humano) y en los destinados a la informática cuántica.
Prohibida su reproducción total o parcial.