¿Qué son las redes neuronales?
Las redes neuronales son una rama de la Inteligencia Artificial. En las redes neuronales el conocimiento se incorpora mediante el aprendizaje a partir de ejemplos.
Las redes neuronales artificiales son ampliamente utilizadas en la actualidad por ejemplo para el escaneo de imágenes, reconocimiento de patrones, problemas de optimización, clasificación de datos financieros, apoyo al diagnóstico médico, etc.
Un computador convencional es una máquina que ejecuta una serie de instrucciones de forma secuencial, siendo capaz de realizar complicadas operaciones lógicas y aritméticas de una forma muy rápida, mucho más que el cerebro humano.
Pese a ello, existen tareas sencillas como el reconocimiento de patrones, que ni los grandes super-computadores son capaces de resolver de un modo eficiente, mientras que el cerebro lo viene haciendo desde hace millones de años con suma facilidad y eficiencia.
¿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 se puede 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 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 somos 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 a hecho dos exámenes y tiene la nota de cada uno de ellos y la final.
¿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 (Desaprobado). 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 desaprobado 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 datos que le pasamos para que aprenda.
Modo de trabajo con las redes neuronales
La figura siguiente describe el procedimiento para operar con redes neuronales. Originalmente la red neuronal no dispone de ningún tipo de conocimiento útil almacenado. Para que la red neuronal ejecute una tarea es preciso entrenarla, en terminología estadística diríamos que es necesario estimar los parámetros.
En realidad todo el procedimiento que vemos en la figura es estadístico: primero se selecciona un conjunto de datos, o patrones de aprendizaje en jerga neuronal. Después se desarrolla la arquitectura neuronal, número de neuronas, tipo de red. Por decirlo con otras palabras, se selecciona el modelo y el número de variables dependiente e independientes. Se procede a la fase de aprendizaje o estimación del modelo y a continuación se validan los resultados.
Aplicaciones de las redes neuronales artificiales
- Aprender más acerca del cerebro y otros sistemas.
- Obtención de modelos de retina.
Empresa:
- Evaluación de probabilidad de formaciones geológicas y petrolíferas.
- Explotación de bases de datos (minería de datos).
- Optimización de plazas y horarios en líneas aéreas.
- Reconocimiento de caracteres escritos.
Medio ambiente:
- Analizar tendencias y patrones.
- Previsión del tiempo.
Finanzas:
- Previsión de la evolución de los precios.
- Valoración del riesgo de los créditos.
- Identificación de falsificaciones.
Manufactura:
- Sistemas de control automatizados (visión artificial y sensores de temperatura, presión, gas, etc.).
- Control de producción en líneas de proceso.
- Control de calidad.
Medicina:
- Analizadores del habla para ayuda en la audición.
- Diagnóstico y tratamiento a partir de síntomas y/o datos analíticos (electrocardiograma, encefalograma. Análisis sanguíneo, etc.).
- Monitorización en cirugía.
- Predicción de reacciones adversas a medicamentos.
- Análisis de las causas de los ataques epilépticos.
- Lectores de rayos X.
Militares:
- Clasificación de señales de radar.
- Optimización del uso de recursos escasos.
- Creación de armas inteligentes.
Algunos puntos importantes en la redes neuronales
- Para resolver con eficiencia un problema, éste debe comprenderse bien. Rara vez existen soluciones simples a problemas complejos.
- Ningún software resolverá los problemas, solamente entrenará la red neuronal empleando ciertos algoritmos. La clave del éxito radical en factores diferentes al entrenamiento de la red; la experiencia en la resolución de problemas con esta técnica es de suma utilidad, pero la comprensión del problema es determinante.
- Un aspecto sumamente importante a considerar para la búsqueda de una solución mediante las redes neuronales artificiales, es la calidad de la data de entrada (los patrones con los que se entrenará la red), no solamente la cantidad con que se cuente. Si tenemos una gran número de patrones, pero donde muchos de ellos corresponden a copias de la misma información con diversa cantidad de ruido, esta data no nos será de mucha ayuda en el proceso de aprendizaje.Si optamos por una solución que corra sobre un computador convencional, un factor clave a considerar es la cantidad de memoria real de que se dispone, dado que el entrenamiento de la red se ejecuta en memoria, con muy poco acceso a disco.


Interesante información, gracias por el aporte. ¿En que nos ayuda las redes neuronales en la vida cotidiana?
ResponderEliminarBuen aporte compañero me sirvió de mucho, gracias
ResponderEliminarBuen perspectiva acerca de la IA, tengo una una consulta cual sería la curva de aprendizaje para dominar o entender una red neuronal artificial y conocimientos deberíamos necesitar para entrenar una. Así mismo que potencial podría llegar a tener la IA y si en algún momento podría salirse de control ya que en la actualidad se están viendo casos sonados como por ejemplo de Facebook que a tenido que desactivar BOTS con IA que habrían cobrado vida propia o como se podría explicar el caso de Google Traductor que utilizo IA con una red neuronal que fue entrenada para traducir de Español a Ingles luego de Español a Japones y luego se dieron cuenta que la red ya sabia traducir de Ingles a Japones sin problemas algo que los expertos.
ResponderEliminarExcelente aporte, me sirve para entender mas sobre el tema, una pregunta, en el campo de ingeniera de Sistemas como lo puedo aplicar?, muchas gracias.
ResponderEliminarTeniendo estos conocimientos; que podrías aportar a tu sociedad utilizando RNA?
ResponderEliminar