Tras el anterior post explicando más o menos en qué consiste realmente la Inteligencia Artificial y algunos de los principales algoritmos mediante los que se intenta lograr en la computación, hoy vamos a centrarnos en un tipo especial de elos: las redes neuronales.

Red Neuronal

En ellas, la unidad básica se denomina neurona y recibe unas entradas (valores numéricos) a las que realiza una operación (generalmente suma) y al resultado le aplica una función. Esta función devuelve otro resultado que envía a más neuronas, hasta llegar a la salida final. La idea general está inspirada en el sistema nervioso animal,  siendo una pobre imitación del mismo, pero muy útil aún así.

Cada entrada dirigida a una neurona viene acompañada de un peso, el cual multiplica el valor de la entrada. La entrada total de la neurona será la suma (u otra operación) de todas ellas al que, en ocasiones, se le suma una constante umbral. En toda red hay dos capas conectadas con el exterior, la capa de entradas que recibe los datos, y la capa de salidas, que devuelve la respuesta de la red. Entre ambas pueden situarste una o más capas denominadas ocultas. La capa de entradas tiene la función de distribuir los datos entre la red, por lo que no se cuentan como una capa más.

Con esta idea básica se han establecido muy diveros tipos de redes neuronales clasificados según su número de capas (monocapa, multicapa) , topología (unidireccionales, realimentadas), aprendizaje (supervisado, no supervisado, mixto), datos de entrada/salida (contínuos, discretos), tipo de respuesta(autoasociativa, heteroasociativa).  Con lo que tenemos Perceptron (problemas binarios, de clasificación), MLP (problemas no linearmente separables), Adaline (Perceptron con entradas reales y no binarias), Máquina de Bolzman (problemas de combinatoria), Memorias Asociativas (recuperación de información mediante alguna de sus partes, por asociación), Red de Hopfield(tipo de asociativa, basada en perceptron), Mapas autoorganizados/Redes de Kohonen y muchos otros tipos diferentes.

Las redes neuronales tienen dos fases principales de operación: aprendizaje o entrenamiento, recuerdo o ejecución. Durante el entrenamiento se aplican “ejemplos”, generalmente un conjunto de datos conocidos que definen una solución conocida, que mediante una regla de aprendizaje modifican los diferentes pesos de cada neurona en función de cómo difiera la respuesta de la red de la solución esperada. Los valores de estos pesos representan el grado de conocimiento. El entrenamiento concluye cuando el margen de error entre la salida de la red y la salida real es aceptable. Después, en la fase de ejecución, se aplican nuevos datos con solución desconocida y se espera que la red esté preparada para dar una solución verdadera en base a lo aprendido durante el entrenamiento. Generalmente en esta fase cesa el aprendizaje, por lo que no se modifican los pesos.

Estos “ejemplos” de los que hablaba no son nada especial. Pueden ser fotografías de pacientes con cáncer de pulmon y sanos (que estén catalogadas) y la red “descubrirá” patrones en ellas. Luego, se pasa una nueva foto y debería discernir si hay cáncer o no. Unos datos de entrada más comunes podrían ser edad, sexo, peso, altura, color de piel, color de ojos, color de pelo, grupo sanguíneo, y la salida la raza a la que pertenece el sujeto. O figuras geométricas, bien sea mediante imágenes o las coordenadas de sus puntos y líneas en el plano. Las posibilidades son infinitas.