Redes neuronales profundas – Tipos y Características
Una red neuronal profunda (DNN) es una red neuronal artificial (ANN) con varias capas ocultas entre las capas de entrada y salida. Al igual que en las ANN poco profundas, los DNN pueden modelar relaciones no lineales complejas.
El propósito principal de una red neuronal es recibir un conjunto de entradas, realizar cálculos progresivamente complejos en ellas y dar salida para resolver problemas del mundo real como la clasificación. Nos limitamos a alimentar las redes neuronales.
Tenemos una entrada, una salida y un flujo de datos secuenciales en una red profunda.
Las redes neuronales se utilizan ampliamente en el aprendizaje supervisado y en los problemas de aprendizaje por refuerzo. Estas redes se basan en un conjunto de capas conectadas entre sí.
En el aprendizaje profundo, el número de capas ocultas, en su mayoría no lineales, puede ser grande; Digamos unas 1000 capas.
Principalmente utilizamos el método de descenso de gradiente para optimizar la red y minimizar la función de pérdida.
Podemos usar Imagenet, un repositorio de millones de imágenes digitales para clasificar un conjunto de datos en categorías como gatos y perros. Las redes DL se utilizan cada vez más para imágenes dinámicas, aparte de las estáticas, y para series de tiempo y análisis de texto.
Entrenar los conjuntos de datos forma una parte importante de los modelos de Aprendizaje Profundo. Además, Backpropagation es el algoritmo principal en el entrenamiento de modelos DL.
DL trata con el entrenamiento de grandes redes neuronales con complejas transformaciones de entrada y salida.
Un ejemplo de DL es la asignación de una foto al nombre de la (s) persona (s) en la foto como lo hacen en las redes sociales y describir una imagen con una frase es otra aplicación reciente de DL.
Mapeo DL
Las redes neuronales son funciones que tienen entradas como x1, x2, x3 … que se transforman en salidas como z1, z2, z3, etc. en dos (redes poco profundas) o varias operaciones intermedias también llamadas capas (redes profundas).
Los pesos y sesgos cambian de una capa a otra. “W” y “v” son los pesos o sinapsis de las capas de las redes neuronales.
El mejor caso de uso del aprendizaje profundo es el problema de aprendizaje supervisado. Aquí, tenemos un gran conjunto de entradas de datos con un conjunto deseado de salidas.
Algoritmo de Backpropagation
Aquí aplicamos el algoritmo de propagación hacia atrás para obtener la predicción de salida correcta.
El conjunto de datos más básico de aprendizaje profundo es el MNIST, un conjunto de datos de dígitos escritos a mano.
Podemos entrenar profundamente una red neuronal convolucional con Keras para clasificar imágenes de dígitos escritos a mano a partir de este conjunto de datos.
El disparo o activación de un clasificador de red neuronal produce una puntuación. Por ejemplo, para clasificar a los pacientes como enfermos y sanos, consideramos parámetros como la altura, el peso y la temperatura corporal, la presión arterial, etc.
Una puntuación alta significa que el paciente está enfermo y una puntuación baja significa que está sano.
Cada nodo en las capas de salida y ocultas tiene sus propios clasificadores. La capa de entrada toma entradas y pasa sus puntuaciones a la siguiente capa oculta para una activación adicional y esto continúa hasta que se alcanza la salida.
Este progreso de entrada a salida de izquierda a derecha en la dirección de avance se denomina propagación hacia adelante.
La ruta de asignación de créditos (CAP) en una red neuronal es la serie de transformaciones que comienzan desde la entrada hasta la salida. Los CAP elaboran conexiones causales probables entre la entrada y la salida.
La profundidad de la CAP para una red neuronal de alimentación directa dada o la profundidad de la PAC es el número de capas ocultas más una a medida que se incluye la capa de salida. Para redes neuronales recurrentes, donde una señal puede propagarse a través de una capa varias veces, la profundidad de la PAC puede ser potencialmente ilimitada.
Redes profundas y redes poco profundas
No hay un umbral claro de profundidad que divida el aprendizaje superficial del aprendizaje profundo; pero en general se acepta que para el aprendizaje profundo que tiene múltiples capas no lineales, el CAP debe ser mayor que dos.
El nodo básico en una red neuronal es una percepción que imita a una neurona en una red neuronal biológica. Luego tenemos Percepción de múltiples capas o MLP. Cada conjunto de entradas se modifica por un conjunto de ponderaciones y sesgos. Cada borde tiene un peso único y cada nodo tiene un sesgo único.
La precisión de la predicción de una red neuronal depende de sus ponderaciones y sesgos.
El proceso de mejorar la precisión de la red neuronal se denomina entrenamiento. La salida de una red de propagación hacia adelante se compara con el valor que se sabe que es correcto.
La función de costo o la función de pérdida es la diferencia entre la salida generada y la salida real.
El objetivo del entrenamiento es hacer que el costo del entrenamiento sea lo más pequeño posible a través de millones de ejemplos de entrenamiento. Para hacer esto, la red ajusta los pesos y sesgos hasta que la predicción coincida con el resultado correcto.
Una vez bien entrenado, una red neuronal tiene el potencial de hacer una predicción precisa en todo momento.
Cuando el patrón se vuelve complejo y quiere que su computadora los reconozca, debe optar por redes neuronales. En tales escenarios de patrones complejos, la red neuronal supera a todos los demás algoritmos de la competencia.
Las computadoras han demostrado ser buenas para realizar cálculos repetitivos y seguir instrucciones detalladas, pero no han sido tan buenas para reconocer patrones complejos.
Si existe el problema del reconocimiento de patrones simples, una máquina de vectores de soporte (svm) o un clasificador de regresión logística puede hacer el trabajo bien, pero a medida que aumenta la complejidad del patrón, no hay más remedio que buscar redes neuronales profundas.
Por lo tanto, para patrones complejos como un rostro humano, las redes neuronales superficiales fallan y no tienen otra alternativa que usar redes neuronales profundas con más capas. Las redes profundas pueden hacer su trabajo dividiendo los patrones complejos en unos más simples.
Por ejemplo, en el rostro humano, se usarían bordes para detectar partes como labios, nariz, ojos, oídos y así sucesivamente y luego volver a combinarlos para formar un rostro humano
La precisión de la predicción correcta se ha vuelto tan precisa que recientemente en un Desafío de Reconocimiento de Patrones de Google, una red profunda supera a la de un humano.
Esta idea de una red de perceptrones en capas ha existido por algún tiempo. En esta área, las redes profundas imitan al cerebro humano. Pero una desventaja de esto es que toman mucho tiempo para entrenar.
Sin embargo, las GPU recientes de alto rendimiento han podido entrenar redes tan profundas en menos de una semana; mientras que la CPU rápida podría haber tomado semanas o quizás meses para hacer lo mismo.
Elegir una red profunda
¿Cómo elegir una red profunda? Tenemos que decidir si estamos construyendo un clasificador o si estamos tratando de encontrar patrones en los datos y si vamos a utilizar un aprendizaje sin supervisión. Para extraer patrones de un conjunto de datos no etiquetados, utilizamos una máquina Boltzman restringida o un codificador automático.
Considere los siguientes puntos al elegir una red profunda:
- Para el procesamiento de texto, el análisis de sentimientos, el análisis y el reconocimiento de la entidad de nombre, utilizamos una red recurrente o red de tensor neuronal recursivo o RNTN;
- Para cualquier modelo de lenguaje que funcione a nivel de carácter, usamos la red recurrente.
- Para el reconocimiento de imágenes, utilizamos la red de creencias profundas DBN o red convolucional.
- Para el reconocimiento de objetos, utilizamos una RNTN o una red convolucional.
- Para el reconocimiento de voz, utilizamos red recurrente.
En general, las redes de creencias profundas y los perceptrones multicapa con unidades lineales rectificadas o RELU son buenas opciones para la clasificación.
Para el análisis de series de tiempo, siempre se recomienda utilizar una red recurrente.
Las redes neuronales han existido por más de 50 años; Pero solo ahora se le ha dado más importancia. La razón es que son difíciles de entrenar, cuando intentamos entrenarlos con un método llamado propagación, nos encontramos con un problema llamado gradientes de fuga o explosión. Cuando eso sucede, el entrenamiento toma más tiempo y la precisión toma un segundo plano.
Cuando entrenamos un conjunto de datos, calculamos constantemente la función de costo, que es la diferencia entre la salida pronosticada y la salida real de un conjunto de datos de entrenamiento etiquetados. La función de costo se minimiza ajustando los valores de pesos y sesgos hasta el valor más bajo es obtenido. El proceso de entrenamiento utiliza un gradiente, que es la tasa a la cual el costo cambiará con respecto al cambio en los valores de peso o sesgo.
Redes de Boltzman restringidas o Autoencoders – RBN
En 2006, se logró un gran avance al abordar el problema de los gradientes de fuga. Geoff Hinton ideó una estrategia novedosa que condujo al desarrollo de la Máquina de Boltzman Restringida: RBM, una red de dos capas poco profunda.
La primera capa es la capa visible y la segunda capa es la capa oculta. Cada nodo en la capa visible está conectado a cada nodo en la capa oculta. La red se conoce como restringida porque no se permite que dos capas dentro de la misma capa compartan una conexión.
Los autocodificadores son redes que codifican datos de entrada como vectores. Crean una representación oculta o comprimida de los datos en bruto. Los vectores son útiles en la reducción de dimensionalidad. el vector comprime los datos en bruto en un número menor de dimensiones esenciales. Los codificadores automáticos se combinan con decodificadores, lo que permite la reconstrucción de los datos de entrada en función de su representación oculta.
RBM es el equivalente matemático de un traductor bidireccional. Un pase hacia adelante toma entradas y las traduce en un conjunto de números que codifica las entradas. Mientras tanto, una pasada hacia atrás toma este conjunto de números y los traduce de nuevo en entradas reconstruidas. Una red bien entrenada se desempeña de nuevo con un alto grado de precisión.
Redes de creencias profundas – DBNs
Las redes de creencias profundas (DBN) se forman combinando RBM e introduciendo un método de entrenamiento inteligente. Tenemos un nuevo modelo que finalmente resuelve el problema de la desaparición del gradiente. Geoff Hinton inventó los RBMs y también Deep Belief Nets como alternativa a la propagación hacia atrás.
Un DBN es similar en estructura a un MLP (Multi-layer perceptron), pero muy diferente cuando se trata de entrenamiento. es el entrenamiento que permite a los DBN superar a sus homólogos poco profundos.
Un DBN se puede visualizar como una pila de RBM donde la capa oculta de un RBM es la capa visible de la RBM que se encuentra arriba. El primer RBM está capacitado para reconstruir su entrada con la mayor precisión posible.
La capa oculta de la primera RBM se toma como la capa visible de la segunda RBM y la segunda RBM se entrena utilizando las salidas de la primera RBM. Este proceso se itera hasta que cada capa en la red está entrenada.
En un DBN, cada RBM aprende toda la entrada. Un DBN funciona globalmente ajustando la entrada completa en sucesión a medida que el modelo mejora lentamente como la lente de una cámara enfocando una imagen lentamente. Una pila de RBM supera a un solo RBM como un perceptron multicapa MLP supera a un solo perceptron.
En esta etapa, los RBM han detectado patrones inherentes en los datos pero sin ningún nombre o etiqueta. Para finalizar el entrenamiento de la DBN, tenemos que introducir etiquetas a los patrones y afinar la red con aprendizaje supervisado.
Necesitamos un conjunto muy pequeño de muestras etiquetadas para que las características y los patrones puedan asociarse con un nombre. Este pequeño conjunto de datos etiquetados se utiliza para la capacitación. Este conjunto de datos etiquetados puede ser muy pequeño en comparación con el conjunto de datos original.
Los pesos y sesgos se modifican ligeramente, lo que resulta en un pequeño cambio en la percepción de la red de los patrones y, a menudo, un pequeño aumento en la precisión total.
La capacitación también se puede completar en un tiempo razonable utilizando GPU que ofrezcan resultados muy precisos en comparación con las redes poco profundas y también vemos una solución para eliminar el problema del gradiente.
Redes Generativas antagónicas – GANs
Las redes generativas antagónicas son redes neuronales profundas que comprenden dos redes, enfrentadas una con la otra, por lo tanto, el nombre de “antagónicas”.
Los GAN se presentaron en un artículo publicado por investigadores de la Universidad de Montreal en 2014. Yann LeCun, experta en inteligencia artificial de Facebook, refiriéndose a los GAN, calificó la capacitación en confrontación como “la idea más interesante en los últimos 10 años en ML”.
El potencial de las GAN es enorme, ya que el escaneo en red aprende a imitar cualquier distribución de datos. Se puede enseñar a los GAN a crear mundos paralelos sorprendentemente similares a los nuestros en cualquier dominio: imágenes, música, habla, prosa. En cierto modo, son artistas de robots y su producción es bastante impresionante.
En una GAN, una red neuronal, conocida como el generador, genera nuevas instancias de datos, mientras que la otra, el discriminador, las evalúa para determinar su autenticidad.
Digamos que estamos tratando de generar números escritos a mano como los que se encuentran en el conjunto de datos MNIST, que se toma del mundo real. El trabajo del discriminador, cuando se muestra una instancia del verdadero conjunto de datos MNIST, es reconocerlos como auténticos.
Ahora considere los siguientes pasos de la GAN –
La red del generador recibe información en forma de números aleatorios y devuelve una imagen.
Esta imagen generada se proporciona como entrada a la red discriminadora junto con un flujo de imágenes tomadas del conjunto de datos real.
El discriminador toma imágenes tanto reales como falsas y devuelve probabilidades, un número entre 0 y 1, donde 1 representa una predicción de autenticidad y 0 representa falsa.
Redes neuronales recurrentes – RNNs
RNNS son redes neuronales en las que los datos pueden fluir en cualquier dirección. Estas redes se utilizan para aplicaciones como el modelado de lenguaje o el procesamiento de lenguaje natural (NLP).
El concepto básico que subyace a las RNN es utilizar información secuencial. En una red neuronal normal, se supone que todas las entradas y salidas son independientes entre sí. Si queremos predecir la siguiente palabra en una oración, tenemos que saber qué palabras vinieron antes de ella.
Los RNN se denominan recurrentes ya que repiten la misma tarea para cada elemento de una secuencia, y la salida se basa en los cálculos anteriores. Por lo tanto, se puede decir que los RNN tienen una “memoria” que captura información sobre lo que se ha calculado previamente. En teoría, las RNN pueden usar información en secuencias muy largas, pero en realidad, pueden mirar hacia atrás solo unos pocos pasos.
Redes neuronales recurrentes
Las redes de memoria a largo plazo a largo plazo (LSTM) son las RNN utilizadas con más frecuencia.
Junto con las redes neuronales convolucionales, las RNN se han utilizado como parte de un modelo para generar descripciones de imágenes sin etiquetar. Es bastante sorprendente lo bien que esto parece funcionar.
Redes neuronales profundas convolucionales – CNNs
Si aumentamos el número de capas en una red neuronal para hacerla más profunda, aumenta la complejidad de la red y nos permite modelar funciones que son más complicadas. Sin embargo, el número de pesos y sesgos aumentará exponencialmente. De hecho, aprender problemas tan difíciles puede volverse imposible para las redes neuronales normales. Esto conduce a una solución, las redes neuronales convolucionales.
Las CNN se utilizan ampliamente en la visión por computadora; Se han aplicado también en el modelado acústico para el reconocimiento automático de voz.
La idea detrás de las redes neuronales convolucionales es la idea de un “filtro en movimiento” que pasa a través de la imagen. Este filtro en movimiento, o convolución, se aplica a cierta vecindad de nodos que, por ejemplo, pueden ser píxeles, donde el filtro aplicado es 0.5 x el valor del nodo.
El destacado investigador Yann LeCun fue pionero en las redes neuronales convolucionales. Facebook como software de reconocimiento facial utiliza estas redes. CNN ha sido la solución para proyectos de visión artificial. Hay muchas capas en una red convolucional. En el desafío Imagenet, una máquina pudo vencer a un humano en el reconocimiento de objetos en 2015.
En pocas palabras, las redes neuronales convolucionales (CNN) son redes neuronales de múltiples capas. Las capas a veces tienen hasta 17 o más y asumen que los datos de entrada son imágenes.
Redes neuronales convolucionales
Las CNN reducen drásticamente la cantidad de parámetros que deben ajustarse. Por lo tanto, las CNN manejan de manera eficiente la alta dimensionalidad de las imágenes en bruto.
Written by Tutor