martes, 15 de septiembre de 2015

Redes Neuronales

ultimanente, las redes neuronales están volviendo a la actualidad por los logros que están consiguiendo. Por ejemplo, Google ha logrado derrotar a su propio reCAPTCHA con redes neuronales, en Stanford han conseguido generar pies de fotos automáticamente... Metas bastante impresionantes y que cada vez se acercan más a esa idea original de reproducir el funcionamiento del cerebro humano en un ordenador.
Ahora bien, ¿en qué consisten estos modelos? ¿Cómo puede imitar un ordenador el proceso de aprendizaje y acabar desarrollando una "cosa" que funciona? Hoy en Xataka vamos a profundizar un poco en este tema que tanta atención está logrando, y vamos a empezar, como siempre, por el principio.

¿Cómo funciona una red neuronal?

A pesar de su nombre, las redes neuronales no tienen un concepto demasiado complicado detrás de ellas. El nombre, como podéis imaginar, viene de la idea de imitar el funcionamiento de las redes neuronales de los organismos vivos: un conjunto de neuronas conectadas entre sí y que trabajan en conjunto, sin que haya una tarea concreta para cada una. Con la experiencia, las neuronas van creando y reforzando ciertas conexiones para "aprender" algo que se queda fijo en el tejido.
Ahora bien, por bonito que suene esto, el enfoque biológico no ha sido especialmente útil: las redes neuronales han ido moviéndose para tener un foco en matemáticas y estadística. Se basan en una idea sencilla: dados unos parámetros hay una forma de combinarlos para predecir un cierto resultado. Por ejemplo, sabiendo los píxeles de una imagen habrá una forma de saber qué número hay escrito, o conociendo la carga de servidores de un Centro de Procesamiento de Datos (CPD), su temperatura y demás existirá una manera de saber cuánto van a consumir, como hacía Google. El problema, claro está, es que no sabemos cómo combinarlos.
Las redes neuronales permiten buscar la combinación de parámetros que mejor se ajusta a un determinado problema.
Las redes neuronales son un modelo para encontrar esa combinación de parámetros y aplicarla al mismo tiempo. En el lenguaje propio, encontrar la combinación que mejor se ajusta es "entrenar" la red neuronal. Una red ya entrenada se puede usar luego para hacer predicciones o clasificaciones, es decir, para "aplicar" la combinación.
Para entender bien cómo funciona esta red vamos a ir con un ejemplo. Supongamos que sois alumnos de una clase en la que el profesor no ha dicho exactamente cómo va a poner las notas. Para empezar, supongamos que sólo habéis hecho dos exámenes y tenéis la nota de cada uno de ellos y la final.
PerceptronLa unidad básica de la red neuronal: el perceptrón. Las entradas son las dos notas, n1 y n2, cada una con su correspondiente peso wn (lo que hay que encontrar). La salida, nf, será 1 si está aprobado y 0 si se va a septiembre.
¿Cómo usamos una red neuronal para saber cuánto vale cada examen? Aquí nos bastará con la unidad fundamental de la red neuronal: el 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.
En nuestro ejemplo, las entradas serían las dos notas de los exámenes. Si la salida es uno (esto es, la suma de las notas por su peso correspondiente es mayor que cinco), es un aprobado. Si es cero, suspenso. Los pesos son lo que tenemos que encontrar con el entrenamiento. En este caso, nuestro entrenamiento consistirá en empezar con dos pesos aleatorios (por ejemplo, 0.5 y 0.5, el mismo peso a cada examen) y ver qué resultado da la red neuronal para cada alumno. Si falla en algún caso, iremos ajustando los pesos poco a poco hasta que esté todo bien ajustado.
Por ejemplo, si un alumno con muy buena nota en el segundo examen ha suspendido el curso, bajaremos el peso del segundo examen porque claramente no influye demasiado. Poco a poco acaberemos encontrando los pesos que se ajusten a las notas que puso el profesor. La idea del ajuste o retroalimentación es ir adaptando la red a la información "oculta" que tienen los datosque le pasamos para que aprenda.

No hay comentarios:

Publicar un comentario