Una red neuronal profunda (Deep Neural Network, DNN) es una técnica de aprendizaje automático que permite a un ordenador, mediante su entrenamiento, realizar tareas que serían muy difíciles de llevar a cabo utilizando técnicas de programación convencionales. Los algoritmos de redes neuronales se inspiraron en el cerebro humano y sus funciones: al igual que nuestra mente humana, está diseñada para funcionar no solo siguiendo una lista preestablecida de reglas, sino prediciendo soluciones y sacando conclusiones basadas en iteraciones y experiencias anteriores.
¿Qué es la arquitectura de redes neuronales?
Una red neuronal está compuesta por varias capas de nodos que reciben entradas de otras capas y producen una salida hasta llegar a un resultado final. Las redes neuronales pueden tener cualquier número de capas ocultas: cuantas más capas de nodos tenga la red, mayor será su complejidad. He aquí diferentes arquitecturas de redes neuronales:
- Las redes neuronales tradicionales suelen estar compuestas por 2 o 3 capas ocultas;
- Red de aprendizaje profundo, que puede tener hasta 150 capas ocultas;
¿Cuál es la diferencia entre redes neuronales y redes neuronales profundas?
Una red neuronal profunda es un sistema mucho más complicado que un sistema neuronal "simple". Una red neuronal es comparable a una partida de ajedrez, y se comporta según algoritmos: se sugerirán diferentes tácticas en función de los movimientos y acciones del adversario. Esta red neuronal se limitará a lo que introduzca el programador:
- Cómo se mueven las piezas de ajedrez;
- El tamaño del tablero de ajedrez;
- Diferentes estrategias para diferentes situaciones;
Una red neuronal que va más allá de los datos de entrada y puede aprender de experiencias anteriores se convierte en una red neuronal profunda
En el mismo ordenador se podría, por ejemplo, entrenar una red neuronal, luego jugar con ella contra otras personas y dejar que aprenda mientras juega. A partir de ahí, si una red neuronal puede aprender de distintos jugadores, puede resultar difícil, o literalmente imposible, derrotar a una red neuronal profunda, incluso para los maestros del ajedrez.
Las redes neuronales profundas pueden reconocer comandos de voz, identificar voces, reconocer sonidos y gráficos y hacer mucho más que una red neuronal. Las redes de aprendizaje profundo utilizan "Big Data'' junto con algoritmos para resolver un problema, y estas redes neuronales profundas pueden resolver problemas con una aportación humana limitada o nula.
¿Cómo visualizar el trabajo de una red neuronal profunda?
El proceso de una red neuronal profunda se entiende mejor con un ejemplo. Imagina que tienes cientos de miles de imágenes, algunas de ellas con perros, y decides que quieres escribir un programa informático que reconozca perros en las fotos.
Tiene dos opciones. Puedes escribir un programa que identifique explícitamente a los perros, o puedes escribir un programa que "aprenda" a identificar a los perros.
Decide imprudentemente intentar hacer lo primero.
Utilizar técnicas de programación convencionales es largo y difícil, y los resultados no siempre son precisos.
Para identificar imágenes de perros, se crea un programa informático que utiliza sentencias "si" y "entonces" en las que la probabilidad de que estemos viendo un perro se programa para que aumente cada vez que identifiquemos un atributo canino como el pelo, las orejas caídas y la cola. Sin embargo, este tipo de sistema neuronal es difícil a muchos niveles:
Por ejemplo, si un grupo de píxeles se parece a una cola, aumenta la probabilidad de que estemos ante un perro. Su red neuronal profunda tiene que identificar grupos de píxeles que se correspondan con los atributos similares a un perro. Aunque lo consiga, su algoritmo tendrá problemas:
- Muchos objetos fotografiados comparten algunos de los atributos del perro, especialmente las fotografías de animales similares. Será necesario añadir reglas;
- A veces los atributos están ahí, pero ocultos. Sus algoritmos no los detectarán;
- A veces, los atributos sólo tienen importancia cuando están presentes otros atributos. Se necesitarán más reglas de decisión;
La clasificación falla. Se da cuenta de que no puede identificar manualmente el conjunto completo de atributos y mucho menos elaborar todas las reglas necesarias para tratar todos estos casos especiales.
Te rindes sabiamente y decides probar el segundo enfoque. Utilizar una red neuronal o, mejor aún, una red neuronal profunda.
Un modelo de aprendizaje profundo puede ahorrarle tiempo de codificación y ofrecerle mejores resultados
La red neuronal se llama así porque existe una similitud entre este enfoque de programación y la forma en que funciona el cerebro.
Al igual que el cerebro, los algoritmos de redes neuronales utilizan una red de neuronas o nodos. Al igual que el cerebro, estas neuronas son funciones discretas (o maquinitas, si se prefiere) que reciben entradas y generan salidas. Estos nodos se organizan en capas, de forma que las salidas de las neuronas de una capa se convierten en las entradas de las neuronas de la capa siguiente hasta que las neuronas de la capa exterior de la red generan el resultado final.
Por lo tanto, hay capas de neuronas en las que cada una recibe entradas muy limitadas y genera salidas muy limitadas, como en el cerebro. La primera capa de neuronas (o capa de entrada) recibe las entradas y la última capa de neuronas (o capa de salida) emite el resultado.
¿Es correcto llamar "red neuronal" a este tipo de algoritmo?
Por supuesto, el cerebro humano es mucho más complejo y potente que una red neuronal. Denominar al algoritmo "red neuronal profunda" fue un acierto de marca, pero puede crear expectativas poco realistas sobre lo que se puede conseguir con estas técnicas. Dicho esto, hay personas que intentan rediseñar el cerebro utilizando una red neuronal muy compleja, con la esperanza de que así puedan reproducir la inteligencia general humana en el desarrollo de robots. Entonces, ¿cómo nos pueden ayudar una red neuronal y las técnicas de aprendizaje automático con nuestro problema de reconocimiento de perros?
Pues bien, en lugar de definir manualmente los atributos del perro, un algoritmo de red neuronal profunda puede identificar los atributos importantes y tratar todos los casos especiales sin necesidad de programación.
¿Cómo funciona una red neuronal profunda?
Lo hace de la siguiente manera:
Cada neurona de la capa de entrada recibe un bit de información de la imagen como entrada y luego pondera aleatoriamente (entre cero y uno) si esa información sugiere un perro o no. Una ponderación baja (menos de 0,5) significa que es menos probable que la información esté asociada a un perro y una ponderación alta significa que es más probable que la información esté asociada a un perro. Este enfoque de red neuronal multicapa se denomina aprendizaje profundo. Las redes neuronales y el aprendizaje profundo son técnicas muy potentes para lograr la comprensión informática.
Las redes neuronales profundas están compuestas por múltiples capas de nodos que se comportan como las neuronas de nuestro cerebro
Para continuar con las redes neuronales profundas, los pesos de estas neuronas se introducen como entradas en las otras capas de neuronas, que también asignan pesos aleatoriamente y los transmiten como entradas a más neuronas de la red. Esto continúa hasta que la capa de neuronas de salida da un veredicto binario. Si la media de los pesos que reciben es superior a 0,5, se trata de un perro. Estas conexiones entre neuronas y su activación a través de múltiples capas de nodos son las que confieren a las aplicaciones de redes neuronales profundas su potencia.
¿Cómo sabe una red neuronal profunda si produce la respuesta correcta?
Las preguntas pertinentes en este punto son: ¿ha acertado o no la red neuronal profunda y qué ocurre si ha acertado o no? Y ¿cómo sabe una red neuronal si ha adivinado correctamente o no?
Una forma de saberlo sería si se emprendiera la tarea de clasificación, que lleva muchísimo tiempo, de etiquetar todas las fotografías como "perro" o "no perro", dependiendo de si hay un perro en la foto o no. La red neuronal simplemente mirará la etiqueta para ver si ha identificado correctamente al perro o no.
Y, por supuesto, no nos interesa saber si acertó la pregunta "Perro o no" en una sola foto de perro. Nos interesa saber si acertó la pregunta en todas las fotos, o al menos averiguar qué porcentaje de las veces acertó al evaluar si había un perro o no en la foto.
¿Cómo utilizan las redes neuronales profundas el entrenamiento para aprender?
Una red neuronal aprende de cada iteración a través de los datos para mejorar su precisión
Para un conjunto determinado de pesos en todas las neuronas de la red, la red neuronal hará conjeturas para todas las fotos y luego determinará su grado de precisión. ¿Qué porcentaje de veces acertó, es decir, que el perro estaba en la foto cuando estaba en la foto, y cuántas veces se equivocó, es decir, que el perro estaba en la foto cuando no estaba o que el perro no estaba en la foto cuando sí estaba? Esta indicación de la precisión del algoritmo de IA es esencial para el modelo de red neuronal.
Una vez que ha pasado por todas las fotos una vez, puede ajustar al azar (o de otra manera) algunos de los pesos y luego hacer todo el ejercicio de adivinar lo que está en la foto de nuevo. Si el resultado de la segunda ejecución es mejor, se mantendrá en lugar de volver al conjunto anterior de pesos. Si el resultado de la segunda ejecución es peor, puede volver al conjunto anterior de pesos y luego probar diferentes modificaciones de esos pesos.
Este proceso continuará hasta que la red neuronal sea capaz de identificar perros en fotos (con suerte).
Cuando el algoritmo puede identificar perros con precisión, se dice que ha convergido. Se ha "entrenado" con éxito para identificar perros.
¿Cuáles son los distintos tipos de redes neuronales?
Redes neuronales convolucionales
Las redes neuronales convolucionales (CNN) son un tipo de inteligencia artificial diseñada para procesar o aprender de grandes conjuntos de datos. Red neuronal convolucional es un término de reciente acuñación que describe específicamente este tipo de red, o la tecnología de IA en general.
Las CNN son potentes herramientas de IA de reconocimiento de imágenes que utilizan el aprendizaje profundo para realizar no solo tareas generativas, sino también descriptivas. Ejemplos de tareas generativas son el recorte automático, la redacción de pies de foto, la videografía, el mimeógrafo y la superposición de imágenes. Una red neuronal convolucional contiene lo que se denominan capas convolucionales. Cada neurona de estas capas sólo procesa información de una pequeña parte del campo visual. Las entradas de cada neurona se alinean de forma similar a una suma de comprobación para generar un mapa de características.
Redes neuronales artificiales
Una red neuronal artificial (RNA) es una red de muchos perceptrones a diferentes profundidades o capas que puede entenderse como una Regresión Logística. Las RNA suelen denominarse redes neuronales de alimentación directa porque las entradas sólo se procesan en dirección directa: una capa recibe una entrada y envía una salida de forma lineal.
Las redes neuronales artificiales también se conocen como aproximadores de funciones universales. Los algoritmos de redes neuronales puras como las RNA y las funciones de aproximación que pueden implementarse como aprendizaje profundo permiten a los ordenadores aprender cualquier función. Una de las razones por las que la aproximación universal es importante es la función de activación. Las funciones de activación introducen propiedades no lineales en la red mientras aprende cualquier relación compleja entre la entrada y la salida. Ayuda a los distintos tipos de red a aprender unos de otros.
¿Cómo mejora una red neuronal profunda con el tiempo?
Una forma de imaginar lo que hace el algoritmo es imaginar cada neurona como una especie de prueba de certeza. En lugar de codificar todas esas afirmaciones si-entonces para identificar perros, cada neurona se calibra para sumar o restar al juicio final de que el objeto de la foto es un perro. Es como si el juicio (como perro o no) se dividiera en un gran número de juicios conectados que contribuyen en conjunto a un juicio final.
Por supuesto, el objetivo principal es lograr la convergencia, si es posible. También es un objetivo importante hacerlo en un tiempo razonable, preferiblemente en poco tiempo.
Los algoritmos de aprendizaje profundo tienen un proceso de aprendizaje que los hace difíciles de entender para los humanos
Lo interesante es que la lógica que permite a las redes neuronales identificar a los perros de la imagen no es comprensible para los humanos. Los modelos de aprendizaje profundo tienen una lógica oculta, esencialmente una caja negra de capas ocultas de nodos que crean su propia red profunda. Dicho esto, ha habido algunos intentos de tratar de representar visualmente la lógica que hay detrás de las redes neuronales para tareas de reconocimiento de imágenes. En otros casos, no es posible ver lo que hace el algoritmo entre bastidores y los métodos de aprendizaje profundo permanecen ocultos.
Las redes neuronales y el aprendizaje automático son populares ahora, pero muchos de estos algoritmos se conocían hace unos 50 años.
¿Por qué las redes neuronales profundas son cada vez más populares en diversos sectores?
Una de las principales razones por las que las redes neuronales son mucho más populares ahora que cuando se inventaron es que la potencia de procesamiento es más rápida y barata que antes. La potencia de cálculo ha marcado la diferencia a la hora de lograr una convergencia rápida. La otra razón es que los datos son ahora omnipresentes, lo que aumenta el valor de los algoritmos que pueden hacer uso de los datos, como chatbots para las empresas.
Las redes neuronales avanzadas requieren gran capacidad de procesamiento y muchos datos
Las redes neuronales de aprendizaje profundo son técnicas que consumen muchos datos y procesadores y que pueden lograr resultados que serían imposibles de alcanzar para los programadores que utilizan técnicas de programación. Son ideales para determinados problemas en los que se dispone de datos ubicuos y es fácil categorizar o clasificar los resultados preferibles.
Sin disponer de cientos de miles o, preferiblemente, millones de fotos de perros sería imposible entrenar el algoritmo. Estas técnicas sólo funcionan cuando se dispone de muchos datos. Esto es bastante obvio, ya que es poco probable que todos los casos especiales estén representados en un conjunto de sólo 1.000 fotos.
Las redes neuronales pueden enfrentarse a datos estructurados o no estructurados
Uno de los problemas del ejemplo anterior es que se necesita mucho trabajo manual para etiquetar todas las fotos. A los algoritmos les resulta más fácil utilizar datos etiquetados de forma estructurada. El aprendizaje automático mediante redes neuronales que utiliza datos estructurados se denomina aprendizaje supervisado.
Esto nos lleva a una pregunta central: ¿es posible evitar todo ese trabajo de etiquetado? Sería bueno, porque no sólo se evitaría mucho trabajo manual, sino que además la mayoría de los datos disponibles en Internet no están estructurados, es decir, no están cuidadosamente etiquetados ni estructurados.
¿Pueden las redes neuronales trabajar con datos no estructurados?
Las redes neuronales artificiales y el aprendizaje automático que funcionan con datos no estructurados se denominan aprendizaje no supervisado. Por supuesto, este es el santo grial del aprendizaje automático y es más análogo a cómo aprenden los humanos. Sin embargo, incluso el aprendizaje no supervisado de las máquinas requiere muchos más datos para "aprender" que los humanos y las máquinas no pueden extrapolar fácilmente a ejemplos que están fuera de aquello en lo que han sido entrenadas.
Muchos modelos de aprendizaje profundo intentan reproducir los procesos cerebrales humanos
Algunas personas creen que este tipo de algoritmos puede desarrollarse, quizás mediante la reingeniería del cerebro, hasta el punto de que los algoritmos empiecen a acercarse a una "comprensión" de nivel humano. Creen que será posible utilizar sofisticadas tecnologías de escaneado del cerebro para comprender cómo funcionan realmente las redes neuronales del cerebro. Copiando estos diseños y patrones podremos reproducir la inteligencia humana.
Aunque las técnicas son sin duda ingeniosas y muy útiles, especialmente cuando se dispone de un gran conjunto de datos, es difícil imaginar que unos algoritmos tan simples puedan ser la base de una inteligencia altamente creativa similar a la humana.
Índice
Manténgase al día sobre lo último en agentes de IA
Comparte esto en: