Historia de Lisp y su uso en redes neuronales - Parte I

Thursday, June 21, 2018

Historia de Lisp y su uso en redes neuronales - Parte I

Escrito por Sergio Sancho Azcoitia, Security Research en ElevenPaths

Hoy damos comienzo a una nueva serie que constará de dos artículos en los que os haremos una breve introducción a Lisp, hablaremos de sus comienzos, su historia y os enseñaremos a hacer una pequeña red neuronal utilizando este lenguaje de programación. 

Desde los años 50 la programación funcional ha sido cada vez más utilizada en el campo de la inteligencia artificial, y esto se debe en gran parte a la aparición de Lisp. Este lenguaje fue creado por John McCarthy, hoy considerado por muchos como el padre de la Inteligencia Artificial, su idea era optimizar el funcionamiento y el uso de recursos en los ordenadores de la época y  como resultado apareció List Procesor (LISP). 

Este nuevo lenguaje, basado en parte en el ya existente Fortran, utilizaba algunas técnicas innovadoras como las estructuras de datos de árbol o el uso de la computación simbólica de la cual nacería posteriormente la programación simbólica. Como ya os hemos dicho al comienzo del artículo, la programación funcional tuvo sus inicios en los años 50, prácticamente a la vez que Lisp. Este nuevo estilo de programación fue en el que se basaron los ordenadores científicos  IBM700/7000 series.

Edificio del MIT.
Figura 1: Edificio del MIT.

El funcionamiento de Lisp  se basa en el cálculo lambda, el cual  es un modelo universal de computación que puede ser usado para simular cualquier máquina de Turing. Su nombre, debido a la letra griega lambda, se utiliza en términos de vincular una variable a una función. Este tipo de cálculo es sorprendentemente simple y potente. Su núcleo se basa en dos fundamentos bastante simples: la abstracción de funciones (sirve para generalizar expresiones a través de la introducción de variables) y la aplicación de la función, utilizada para evaluar expresiones dándoles nombres a determinados valores.

Lisp no tardó en convertirse en el lenguaje favorito en el mundo de la Inteligencia Artificial. Su uso en el MIT se volvió algo habitual en numerosos proyectos de investigación. A diferencia de otros lenguajes, su base matemática le permitía resolver operaciones y ser utilizado para probar teoremas. 

Muchos de los lenguajes y algunos de los programas más revolucionarios de la Inteligencia Artificial a lo largo de la historia están basados en Lisp, de hecho términos tan habituales como If, Else o Then fueron inventados por John McCarthy.

A pesar  de los términos mencionados anteriormente, Lisp utiliza una estructura distinta a los demás lenguajes de programación, sobre todo en lo que a las operaciones matemáticas se refiere. Sin embargo, no es un lenguaje que resulte complicado de comprender.

Para terminar con este primer artículo, explicaremos brevemente cómo funciona una pequeña red neuronal. Las redes neuronales se basan en una serie de pequeños nodos (neuronas artificiales) que se encuentran conectados entre sí conformando una serie de capas. Su funcionamiento pretende simular el comportamiento de un cerebro humano a la hora de resolver un problema. A medida que la señal avanza, ésta irá tomando un camino u otro en función a unos parámetros establecidos previamente hasta ofrecer un resultado. Las redes neuronales se han utilizado durante años para realizar varias tareas como, por ejemplo el reconocimiento de voz o la creación de sistema expertos con conocimiento incorporado, algo que marcó un cambio en el rumbo de la inteligencia artificial en los años 80.


También puedes seguirnos en nuestras redes sociales: @Telefonica@LUCA_D3@ElevenPaths

No comments:

Post a Comment