Usamos cookies. Tienes opciones. Las cookies nos ayudan a mantener el sitio funcionando sin problemas e informar sobre nuestra publicidad, pero si deseas realizar ajustes, puedes visitar nuestro Aviso de cookies para más información.
Utilizamos cookies propias y de terceros para analizar su actividad en el sitio web con el objetivo de enviarle publicidad personalizada y mejorar el funcionamiento de la web. Puedes aceptar todas las cookies pulsando el botón “ACEPTAR” o seleccionarlas en función de su funcionalidad pulsando el botón “AJUSTES”.
×

La predicción del dato: Redes Neuronales Artificiales

Amazon, Facebook, Google… Empresas digitales que a pesar de ser diferentes en cuanto a negocio (eCommerce, Red Social, Buscador…), tienen algo importante en común: la explotación de la minería de datos para mejorar su negocio y dinamizar acciones encaminadas a optimizar aquello que abarcan.

Como es posible que ya sepáis, la minería de datos es un importante concepto con el que trabajamos a menudo y que hace referencia al proceso de selección, exploración y modelización de grandes cantidades de datos, descubriendo patrones de comportamiento desconocidos para conseguir ventajas de negocio.

¿Qué podemos obtener gracias a la minería de datos?

El estado actual de la compañía a través de indicadores que describan cómo va el negocio (altas, bajas, ingresos, costes, etc…), tipología de clientes que existen en la cartera… Usando estadística descriptiva (histogramas, tablas de frecuencia, gráficos de línea/tarta/barras, análisis “cluster”…).

La evolución del negocio de la propia compañía, de la competencia o del mercado… Lo haremos a través de la estadística predictiva.

Una vez en posesión de la parte explicativa y la parte predictiva, podremos realizar simulaciones sobre el impacto que podría haber tenido diferentes estrategias sobre el negocio de la compañía o plantear escenarios distintos (usando el conocido método de Montecarlo o simulaciones estocásticas, entre otros). Lo que nos lleva a la fase de optimización, donde se determinan las estrategias a seguir para optimizar los beneficios de la compañía (investigación operativa, programación matemática…).

Pero me centraré en la predicción del dato para poder tener una visión virtual de lo que podría pasar en nuestro negocio. Este tema ya fue tratado anteriormente (con un punto de vista muy acertado) por nuestro compañero Javier Pozueco en su post sobre previsión en analítica web y la segunda parte del mismo. Entonces, ¿qué aportamos de nuevo? En este caso, ahondaremos un poco más en dicha predicción, pero a través de una curiosa forma (como pensamos algunos) en la que el proceso matemático simula a una red neuronal biológica.

RNA (Redes Neuronales Artificiales)

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.

Conociendo un poco de biología básica, sabemos que en el proceso de sinápsis se establece la posibilidad de “transmisión de información” entre unas neuronas y otras (desde las terminaciones en las que se ramifica el axón de una neurona hacia las dendritas de otra); cuando el estímulo (o impulso eléctrico) llega a un terminal nervioso, hace que el nervio libere neurotransmisores. Dependiendo del tipo de neurotransmisor liberado, las neuronas receptoras pueden excitarse si llegan a recibir el estímulo de las neuronas con las que está conectada o inhibirse si dicha información no llega a recibirse, generando una respuesta de uno u otro tipo en cada caso.

Así mismo, también son capaces de extraer patrones y detectar tramas que son muy difíciles de apreciar por el ser humano u otras técnicas computacionales, siendo la facilidad de implementación de estos métodos lo que ha facilitado su popularidad. Estas RNA se caracterizan por tres partes fundamentales: la topología de la red (propagación hacia adelante o recurrentes), la regla de aprendizaje (supervisado, no supervisado, reforzado, etc…) y el tipo de entrenamiento.

¿Cómo funciona cada neurona?

Las Redes Neuronales, se componen de neuronas, que serían las unidades básicas del modelo. El proceso es “simple”: cada neurona recibe una serie de entradas, que llevarán un peso, emitiendo una salida. La salida viene dada por tres funciones:

  • La función de propagación, suele ser el sumatorio de cada entrada multiplicada por el peso asignado.
  • La función de activación, tiene como misión modificar a la de propagación. No siempre aparece, coincidiendo en estos casos con la dicha propagación. Las más habituales suelen ser la función tipo escalón (Heaviside) o funciones no lineales como la sigmoidea (parecida a la escalón pero suavizada), logística, tangente hiperbólica…
  • La función de transferencia, se aplica al valor dado por la función de aplicación y se utiliza para acotar la salida de cada neurona según la interpretación que le queramos dar al resultado.

¿Cómo funcionan estas Redes Neuronales Artificiales?

La idea es sencilla, ya que se trata de imitar a las neuronas biológicas, conectadas entre sí y trabajando en conjunto, aprendiendo sobre el proceso. Dados unos parámetros hay una forma de combinarlos para predecir un cierto resultado. El problema estará en saber cómo combinarlos. Las redes neuronales son un modelo para encontrar esa combinación de parámetros y aplicarla al mismo tiempo. El objetivo es encontrar la combinación que mejor se ajusta entrenando a la red neuronal. Este entrenamiento, aprendizaje, es la parte crucial de la RNA, ya que nos marcará la precisión del algoritmo. Consiste en encontrar esa relación de pesos a través de un proceso iterativo en el que, secuencialmente, se va analizando cada uno de los patrones de entrada a la red, reajustando en cada iteración la relación de pesos. Es en este punto cuando se introducirá una función de error que irá midiendo el rendimiento de la red en un momento dado, donde el objetivo será, obviamente, minimizar dicha función de error. El algoritmo se detendrá cuando se alcance la cota de error establecida por el usuario (o en caso de ciclo corto, cuando el error no decrezca sensiblemente).

Una red ya entrenada se puede usar luego para hacer predicciones o clasificaciones, es decir, para “aplicar” la combinación.

El modelo más sencillo es el “conocido” perceptrón. Un perceptrón es un elemento que tiene varias entradas con un cierto peso cada una. Si la suma de esas entradas por cada peso es mayor que un determinado número, la salida del perceptrón es un uno. Si es menor, la salida es un cero. Además de como una unidad básica, también puede entenderse como una red neuronal artificial en sí misma. Gráficamente, podría representarse de esta forma:

Neurona 1

 

Pero, ¿no decíamos al principio que las redes neuronales eran un grupo de neuronas conectadas entre sí? ¿Cómo se logra esa “conexión” en las redes neuronales? Es en este momento cuando entra en juego el concepto de las capas. En este caso, lo que suele ocurrir es que existen diferentes entradas con diferentes pesos donde, a su vez, hay entradas que necesitan de reglas diferentes a las anteriores para poder codificar y producir un resultado coherente al resto.

Neurona 2

 

Hemos añadido información que no estaba antes. Cogemos los datos de entrada, los exploramos y sacamos las características que mejor nos ayuden a entender qué está pasando. Lo que se suele hacer es poner varias capas con varios nodos, cada uno conectado a todas las entradas anteriores. La ventaja es que, este proceso es de aprendizaje, cada capa “aprende” a encontrar y detectar las características que mejor ayudan a clasificar los datos.

Neurona 3

 

Este tipo de procesos predictivos, similares a los conocidos ARIMA, tienen cada vez más aplicaciones en nuestro entorno habitual. Algunos ejemplos de todo esto involucran a Google que utilizó una red neuronal convolucional para reconocer los números de calle en las imágenes que iban tomando con sus coches, consiguiendo un 96% de precisión en sus resultados. Ver ejemplo de Google.

Por otro lado, estas técnicas predictivas, suelen emplearse en control meteorológico, medición de audiencias de televisión, previsión de impacto en RRSS, predicción en los mercados financieros…además de ser la base para la inteligencia artificial.

Anecdóticamente, la predicción del dato fue de gran importancia en un mundo como el de Matrix, donde el personaje de “El Arquitecto” estaba construido sobre un algoritmo predictivo que iba aprendiendo a lo largo de las diferentes versiones que fue creando sobre el mundo virtual para mantener dormidos a los humanos. Por otro lado, otro algoritmo de predicción, “El Oráculo”, trabajaba como una RNA, el cual poseía una entrada con un importante peso, Neo, que se encargaría de llegar al resultado esperado: la destrucción de Matrix o conseguir el equilibrio entre máquinas y humanos.

Por lo que podemos ver, la predicción del dato no sólo puede mejorar el negocio digital, sino también el negocio cinematográfico en las taquillas.

 

En nuestra compañía