Que son las redes neuronales?

Muchos han escuchado alguna vez hablar sobre las redes neuronales o la «inteligencia artificial» y hemos de ser honestos que cuando alguien utiliza aquellas palabras, suena como todo un Einstein de la computación sacado de Terminator 2.

Básicamente, las redes neuronales, se aplican cuando el desarrollador no tiene la más mínima idea sobre como abordar un problema, por ende, prefiere que el computador lo «entienda» haga el trabajo de motelar el problema. Esto se logra creando un modelo (o formula) que debe ser calibrada.

Una red neuronal tiene dos particularidades: la forma funcional o modelo y la estrategia para calibrar este, hablaré sobre estas particularidades en el orden que fueron nombradas, pero primero recordemos lo que es un modelo o representación de la realidad:

Un modelo que todos conocemos desde física en el colegio, cuando nos enseñaban como funcionaban los resortes, se postulaba que el modelo era: extensión = K*fuerza, donde K debía ser medido con experimentos y luego, con una regresión, se calibraba el modelo, este tenía como particularidad que daba una «linea recta», eso debido a que es un modelo lineal (como se puede ver en el siguiente gráfico).

Quiero dejar claro que en este y en todos los modelo, existen 3 componentes:

  1. Valor a predecir: En este caso se quiere predecir la extensión
  2. Variables de entrada o Dato: en este caso es la fuerza
  3. Constantes de Calibración: En este caso K.

Una red neuronal, es un modelo NO LINEAL, es tan no lineal que puede tomar prácticamente cualquier forma y puede depender de varias muchas Variables y tiene aun más Constantes y aunque esta función no lineal puede tomar casi cualquier forma, su estructura está bastante clara.

La red neuronal, se compone de muchas mini-funciones, donde cada una de llama: neurona, perceptrón, función de respuesta, curva S o como plazca al que teclea en ese minuto lo importante es que cada una de estas funciones es una neurona conectada a otras neuronas. Las neuronas se conectan por capas, donde cada neurona toma el resultado  de las anteriores, los procesa y lo pasa a la siguiente secuencial-mente entre ellas generando una red que se ve del siguiente modo:

En el esquema anterior, cada cuadrado rojo es un dato de entrada y cada circulo es una neurona, donde cada neurona depende de todas los datos provenientes de la etapa anterior (pueden ser n capas).

Así en nuestra capa W1 tenemos funciones de la forma: $f(x_1,x_2,x_3,…,x_n,1)$, donde una función simple puede ser una lineal: $ f(x_1,x_2,x_3, … ,x_n,1) = B_1 x_1 + B_2 x_2 + B_3 x_3 + … + c $ y como dije antes esta función es a gusto del programador, en general determinada por prueba y error. En general se utilizan curvas S o función logistica.

Lo que hace especiales a las redes neuronales y a la mayoría de estos modelos de inteligencia artificial, es la forma de calibrarlos. Como son complejos y en general se tienen muchos datos de entrada y muchas muestras, si se aborda de la forma que se aborda una regresión lineal, colapsaríamos hasta el más poderoso de los computadores de la NAZA, por ello en vez de calibrar, se habla de «entrenar» la red neuronal.

El entrenamiento de la red neuronal consiste en tomar uno de los casos de muestra, aplicarle el modelo y ver el resultado, si el resultado es bueno, mantener la red como esta, si es malo, ajustar un poquito los parámetros para que sea mejor y luego repetir con la siguiente muestra. Después de hacer esto varias veces para cada muestra, tendremos nuestra red neuronal entrenada y lista para viajar al pasado a destruir skynet.

Actualización: Si te gustó el post, ve a jugar con redes neuronales en nuestro otro post llamado Jugando con Redes Neuronales

Si te gustó, síguenos en cualquiera de nuestros medios, allí aparecerán todas las publicaciones.

Y no olvides compartir en tus RRSS, vuestras visitas son mi motivación.

Print Friendly, PDF & Email