En nuestro post sobre Machine Learning, hemos hablado de manera superficial de las redes neuronales. A continuación, vamos a explicar qué es y cómo funciona una red neuronal.
Las redes neuronales artificiales están basadas en el funcionamiento de las redes de neuronas biológicas. Las neuronas que todos tenemos en nuestro cerebro están compuestas de dendritas, el soma y el axón: Las dendritas se encargan de captar los impulsos nerviosos que emiten otras neuronas. Estos impulsos, se procesan en el soma y se transmiten a través del axón que emite un impulso nervioso hacia las neuronas contiguas.
¿Qué es una red neuronal en Inteligencia Artificial?
A nivel esquemático, una neurona artificial se representa del siguiente modo:
En el caso de las neuronas artificiales, la suma de las entradas multiplicadas por sus pesos asociados determina el “impulso nervioso” que recibe la neurona. Este valor, se procesa en el interior de la célula mediante una función de activación que devuelve un valor que se envía como salida de la neurona.
Del mismo modo que nuestro cerebro está compuesto por neuronas interconectadas entre sí, una red neuronal artificial está formada por neuronas artificiales conectadas entre sí y agrupadas en diferentes niveles que denominamos capas:
» Una capa es un conjunto de neuronas cuyas entradas provienen de una capa anterior (o de los datos de entrada en el caso de la primera capa) y cuyas salidas son la entrada de una capa posterior.»
En la siguiente imagen podemos ver una red con cuatro capas:
Las neuronas de la primera capa reciben como entrada los datos reales que alimentan a la red neuronal. Es por eso por lo que la primera capa se conoce como capa de entrada. La salida de la última capa es el resultado visible de la red, por lo que la última capa se conoce como la capa de salida. Las capas que se sitúan entre la capa de entrada y la capa de salida se conocen como capas ocultas ya que desconocemos tanto los valores de entrada como los de salida.
Una red neuronal, por lo tanto, siempre está compuesta por una capa de entrada, una capa de salida (si solo hay una capa en la red neuronal, la capa de entrada coincide con la capa de salida) y puede contener 0 o más capas ocultas. El concepto de Deep Learning nace a raíz de utilizar un gran número de capas ocultas en las redes.
¿Cómo se entrena una red neuronal?
Entrenar una red neuronal consiste en ajustar cada uno de los pesos de las entradas de todas las neuronas que forman parte de la red neuronal, para que las respuestas de la capa de salida se ajusten lo más posible a los datos que conocemos.
En la siguiente animación, podemos ver un ejemplo muy simplificado del proceso de entrenamiento de una red para la detección de, en este caso, un gato en una imagen. El grosor de cada flecha representa el peso que tiene esa entrada en la red neuronal. Como podemos comprobar, a medida que se van ajustando los pesos el error disminuye.
Si queremos conseguir que la red neuronal sea capaz de generalizar e identificar gatos en cualquier imagen, es importante utilizar un elevado número de imágenes para realizar el entrenamiento, tanto de imágenes que son gatos (etiquetadas como 1) como de imágenes que no son gatos (etiquetadas como 0), incluyendo la mayor variabilidad posible. Con esto, la red será capaz de ajustar sus parámetros para satisfacer en la medida de lo posible todas las imágenes, por lo que será capaz de extraer de manera precisa las características que identifican la presencia de un gato en una imagen.
Oscar García-Olalla Olivera es Científico de datos, ingeniero de I+D en Xeridia