Voy a empezar a hablar de un nuevo paradigma de la programación. Hoy en día, el más utilizado es el de la programación orientada a objetos, pero no podemos olvidarnos de la inteligencia aritificial y su paradigma de aprendizaje inspirado en las neuronas de los seres vivos.
McCulloch, neurólogo y uno de los padres de la informática, diseñó en 1943 el primer modelo de red neuronal y demostró que un programa de la máquina de Turing se podía implementar en una red finita de neuronas convencionales.
Una neurona recibe estímulos externos a través de las dentritas, llegando al núcleo donde se decide si el impulso es transmitido o no por medio de un sencillo algoritmo.
En 1957 Frank Rosenblatt desarrolló el Perceptrón sobre un IBM 704 (primera computadora producida en masa con hardware basado en aritmética de punto flotante) que simulaba a una neurona real. En 1960, se desarrolló la primera aplicación industrial basada en redes neuronales. Por aquel entonces se hicieron predicciones de lo que sería la industria informática en las próximas décadas, llegando incluso a afirmar que en la próximos 10 años las máquinas serían capaces de ganar al ajedrez a un ser humano o incluso que en el año 2000 una máquina pasaría el test de Turing.
El modelo matemático de una neurona artificial es:
suma =x1 * w1 + x2 * w2 + … + xn-1 * wn-1 + xn * wn + b
donde x son las entradas y w son los pesos especificos de cada entrada. Estos pesos específicos son la clave y la elección de su valor determinará el resultado. El cálculo del valor de los pesos, lo realizará la misma neurona artificial en base a un proceso de aprendizaje el cual detallo a continuación:
si suma > 1 entonces y=1 y en caso contrario y=0
una vez que tenemos el valor de y calculamos el error
error = v – y
donde v es el valor deseado e y el valor calculado por nuestro algoritmo.
Una vez calculado el error, debemos corregir los pesos especificos:
w1 = w1 + error * x1
w2 = w2 + error * x2
wn = wn + error * xn
y volvemos a pasar la serie de datos para que vaya «aprendiendo».
Un ejemplo útil de este tipo de aplicaciones puede ser el diagnostico de tumores a través de imágenes médicas. Comenzaríamos pasandole a nuestra aplicación una serie de imágenes junto con su resultado. Una vez que le hubiéramos pasado un numero considerable de imágenes, nuestra aplicación podría determinar por si sola el resultado.
No responses yet