Últimanente, 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?
¿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 pueden 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.
¿Una nueva época dorada para redes neuronales?
Las redes neuronales no son una idea nueva. Datan de los años 40 y 50, cuando se empezaron a publicar los primeros conceptos. Sin embargo, nunca tuvieron un gran éxito, más que nada porque se necesita una cantidad importante de recursos de un ordenador para entrenar y ejecutar una red neuronal con buenos resultados.
En los últimos años se han conseguido grandes avances gracias a la mejora de los ordenadores y al uso de GPUs para este tipo de computaciones. Hace poco os hablábamos en Xataka de los pies de foto generados por ordenador gracias a una red neuronal de convolución (para el reconocimiento de imagen) junto con una red neuronal recurrente para formar las frases. Los investigadores de Stanford usaron tarjetas GPU para poder entrenar y ejecutar este tipo de redes neuronales en un tiempo razonable.
Reconocimiento de números, de voz, de objetos en imágenes… las redes neuronales están empezando a resolver problemas que se le escapaban a los ordenadores.
Algo parecido montó Google con Street View: una red neuronal convolucional que lograba una precisión del 96% a la hora de reconocer números de calle en las imágenes que toman sus coches. Los de Mountain View están bastante enamorados de las redes neuronales, de hecho: también las usaron para mejorar el reconocimiento de voz de Android o para ahorrar electricidad en sus centros de datos.
Las redes neuronales parece que incluso podrían acabar dominando uno de los juegos que se les resiste a los ordenadores: el juego de Go. En la Universidad de Edimburgo, unos investigadores han logrado usar redes convolucionales para detectar patrones en los tableros y tratar de sacar el mejor movimiento con una efectividad considerable: 90% de juegos ganados contra GNU Go y 10% contra Fuego, dos de los programas que mejor juegan a Go. Aunque pueda parecer poco, hay que tener en cuenta que ambos exploran un buen número de movimientos posibles para ver cuál da más ventaja. La red neuronal sólo mira al estado actual del tablero y emite un veredicto en muchísimo menos tiempo.
Por supuesto, estas redes tampoco son la panacea. A modo de curiosidad, unos investigadores usaron una red neuronal para generar imágenes que engañaban a otra red neuronal diseñada para reconocer objetos. Así, lo que a nosotros nos parece una imagen aleatoria, para la red neuronal es un bikini o un armadillo. Es parte del problema del sobreajuste: redes que se comportan muy bien para los datos de ejemplo o parecidos, pero que con datos muy distintos dan resultados absurdos.
Sea como sea, es un campo muy interesante y que promete bastantes avances a corto plazo sobre todo en reconocimiento de imagen y de sonido. Estaremos atentos para ver qué sorpresas nos deparan.
Fuente: xataka.com