Explicación de los diferentes tipos de modelos de aprendizaje profundo

Vota este post

aprendizaje automático

El aprendizaje profundo es una clase de técnicas de aprendizaje automático que explota muchas capas de procesamiento de información no lineal para la extracción y transformación de características supervisadas o no supervisadas, para el análisis y la clasificación de patrones. Consiste en muchas capas jerárquicas para procesar la información de manera no lineal, donde algún concepto de nivel inferior ayuda a definir los conceptos de nivel superior.

Las redes neuronales artificiales superficiales no son capaces de manejar una cantidad significativa de datos complejos, que son evidentes en muchas aplicaciones de rutina, como el habla natural, las imágenes, la recuperación de información y otras aplicaciones de procesamiento de información de tipo humano. El aprendizaje profundo es adecuado para tales aplicaciones. Con el aprendizaje profundo, es posible reconocer, clasificar y categorizar patrones en los datos de una máquina con un esfuerzo comparativamente menor. Google es pionero en experimentar el aprendizaje profundo, iniciado por Andrew Ng.

El aprendizaje profundo ofrece un procesamiento multicapa similar al humano en comparación con la arquitectura superficial. La idea básica del aprendizaje profundo es emplear el procesamiento jerárquico utilizando muchas capas de arquitectura. Las capas de la arquitectura están organizadas jerárquicamente. Después de varios entrenamientos previos, la entrada de cada capa va a su capa adyacente. La mayoría de las veces, dicho entrenamiento previo de una capa seleccionada se ejecuta sin supervisión.

El aprendizaje profundo sigue un enfoque distribuido para administrar big data. El método asume que los datos se generan considerando numerosos factores, diferentes tiempos y varios niveles. El aprendizaje profundo facilita la disposición y el procesamiento de los datos en diferentes capas según su tiempo (ocurrencia), su escala o naturaleza.

El aprendizaje profundo a menudo se asocia con redes neuronales artificiales. Hay tres categorías de arquitecturas de aprendizaje profundo:

  • Generativo
  • Discriminatorio
  • Arquitecturas híbridas de aprendizaje profundo

Las arquitecturas de categorías generales se enfocan en el pre-entrenamiento de una capa de manera no supervisada. Este enfoque elimina la dificultad de entrenar arquitecturas de nivel inferior, que se basan en las capas anteriores. Cada capa se puede entrenar previamente y luego incluirse en el modelo para un mayor ajuste y aprendizaje general. Hacer esto resuelve el problema de entrenar la arquitectura de la red neuronal con múltiples capas y permite el aprendizaje profundo.

La arquitectura de red neuronal puede tener una capacidad de procesamiento discriminativo al apilar la salida de cada capa con los datos originales o mediante varias combinaciones de información y, por lo tanto, formar una arquitectura de aprendizaje profundo. El modelo descriptivo a menudo considera las salidas de la red neuronal como una distribución condicional sobre todas las secuencias de etiquetas posibles para la secuencia de entrada dada, que se optimizará aún más a través de una función objetivo. La arquitectura híbrida combina las propiedades de la arquitectura generativa y discriminativa. Por lo general, uno puede hacer un aprendizaje profundo de la siguiente manera.

  • Construya una red que consta de una capa de entrada y una capa oculta con los nodos necesarios
  • entrenar la red
  • Agregue otra capa oculta en la parte superior de la red previamente aprendida para generar una nueva red
  • Volver a entrenar la red
  • Repita agregando más capas y después de cada adición, vuelva a entrenar la red

Diferentes tipos de modelos de aprendizaje profundo

Codificadores automáticos

Un autocodificador es una red neuronal artificial que es capaz de aprender varios patrones de codificación. La forma simple del codificador automático es como el perceptrón multicapa, que contiene una capa de entrada o una o más capas ocultas o una capa de salida. La diferencia significativa entre el perceptrón multicapa típico y la red neuronal de avance y el autocodificador está en la cantidad de nodos en la capa de salida. En el caso del codificador automático, la capa de salida contiene la misma cantidad de nodos que la capa de entrada. En lugar de predecir los valores objetivo según el vector de salida, el codificador automático tiene que predecir sus entradas. El esquema general del mecanismo de aprendizaje es el siguiente.

Para cada entrada x,

  • Realice un pase de avance para calcular las funciones de activación proporcionadas en todas las capas ocultas y las capas de salida
  • Encuentre la desviación entre los valores calculados con las entradas usando la función de error apropiada
  • Retropropaga el error para actualizar los pesos.
  • Repita la tarea hasta obtener un resultado satisfactorio.

Si el número de nodos en las capas ocultas es menor que el de los nodos de entrada/salida, las activaciones de la última capa oculta se consideran como una representación comprimida de las entradas. Cuando los nodos de la capa oculta son más que la capa de entrada, un codificador automático puede potencialmente aprender la función de identidad y volverse inútil en la mayoría de los casos.

Red de creencias profundas

Una red de creencias profundas es una solución al problema de manejar funciones objetivas no convexas y mínimos locales mientras se usa el perceptrón multicapa típico. Es un tipo alternativo de aprendizaje profundo que consta de múltiples capas de variables latentes con conexión entre las capas. La red de creencias profundas se puede ver como máquinas de Boltzmann restringidas (RBM), donde la capa oculta de cada subred actúa como la capa de entrada visible para la capa adyacente de la red. Hace que la capa visible más baja sea un conjunto de entrenamiento para la capa adyacente de la red. De esta manera, cada capa de la red se entrena de forma independiente y con avidez. Las variables ocultas se utilizan como variables observadas para entrenar cada capa de la estructura profunda. El algoritmo de entrenamiento para una red de creencias tan profunda se proporciona de la siguiente manera:

  • Considere un vector de entradas
  • Entrene una máquina de Boltzmann restringida usando el vector de entrada y obtenga la matriz de peso
  • Entrene las dos capas inferiores de la red usando esta matriz de peso
  • Genere un nuevo vector de entrada utilizando la red (RBM) mediante muestreo o activación media de las unidades ocultas
  • Repita el procedimiento hasta llegar a las dos capas superiores de la red.

El ajuste fino de la red de creencias profundas es muy similar al perceptrón multicapa. Tales redes de creencias profundas son útiles en el modelado acústico.

Redes neuronales convolucionales

Una red neuronal convolucional (CNN) es otra variante del perceptrón multicapa feedforward. Es un tipo de red neuronal de avance, donde las neuronas individuales se ordenan de manera que responden a todas las regiones superpuestas en el área visual.

Deep CNN funciona modelando consecutivamente pequeños fragmentos de información y combinándolos más profundamente en la red. Una forma de entenderlos es que la primera capa intentará identificar los bordes y formar plantillas para la detección de bordes. Luego, las capas subsiguientes intentarán combinarlas en formas más simples y eventualmente en plantillas de diferentes posiciones de objetos, iluminación, escalas, etc. Las capas finales harán coincidir una imagen de entrada con todas las plantillas, y la predicción final es como una suma ponderada. de todos ellos Por lo tanto, las CNN profundas pueden modelar variaciones y comportamientos complejos, brindando predicciones muy precisas.

Tal red sigue el mecanismo visual de los organismos vivos. Las células de la corteza visual son sensibles a pequeñas subregiones del campo visual, llamadas campo receptivo. Las subregiones están dispuestas para cubrir toda el área visual y las celdas actúan como filtros locales sobre el espacio de entrada. El algoritmo de retropropagación se utiliza para entrenar los parámetros de cada núcleo de convolución. Además, cada núcleo se replica en toda la imagen con los mismos parámetros. Hay operadores convolucionales que extraen características únicas de la entrada. Además de la capa convolucional, la red contiene una capa de unidad lineal rectificada, capas de agrupación para calcular el valor máximo o promedio de una característica en una región de la imagen y una capa de pérdida que consta de funciones de pérdida específicas de la aplicación. El reconocimiento de imágenes, el análisis de video y el procesamiento del lenguaje natural son aplicaciones importantes de una red neuronal de este tipo.

El área de la visión artificial ha sido testigo de frecuentes avances en los últimos años. Uno de los avances más declarados son las CNN. Ahora, las CNN profundas forman el núcleo de las aplicaciones de visión por computadora más sofisticadas, como los autos sin conductor, el reconocimiento de gestos, el etiquetado automático de amigos en nuestras imágenes de Facebook, las funciones de seguridad facial y el reconocimiento automático de matrículas.

Redes neuronales recurrentes

El modelo convolucional funciona con un número fijo de entradas, genera un vector de tamaño fijo como salida con un número predefinido de pasos. Las redes recurrentes nos permiten operar sobre secuencias de vectores en entrada y salida. En el caso de la red neuronal recurrente, la conexión entre unidades forma un ciclo dirigido. A diferencia de la red neuronal tradicional, la entrada y salida de la red neuronal recurrente no son independientes sino que están relacionadas. Además, la red neuronal recurrente comparte los parámetros estándar en cada capa. Se puede entrenar la red recurrente de forma similar a la red neuronal tradicional utilizando el método de retropropagación.

Aquí, el cálculo del gradiente no depende del paso actual sino también de los pasos anteriores. Una variante llamada red neuronal recurrente bidireccional también se utiliza para muchas aplicaciones. La red neuronal bidireccional considera no solo la salida anterior sino también la salida futura esperada. En redes neuronales recurrentes directas y bidireccionales, el aprendizaje profundo se puede lograr mediante la introducción de múltiples capas ocultas. Estas redes profundas brindan una mayor capacidad de aprendizaje con muchos datos de aprendizaje. El habla, el procesamiento de imágenes y el procesamiento del lenguaje natural son algunas de las áreas candidatas en las que se pueden utilizar las redes neuronales recurrentes.

Aprendizaje por refuerzo de redes neuronales

El aprendizaje por refuerzo es una especie de hibridación de la programación dinámica y el aprendizaje supervisado. Los componentes típicos del enfoque son el entorno, el agente, las acciones, la política y las funciones de costo. El agente actúa como controlador del sistema; la política determina las acciones a tomar, y la función de recompensa especifica el objetivo general del problema de aprendizaje por refuerzo. Se puede considerar que un agente, que recibe la máxima recompensa posible, realiza la mejor acción para un estado determinado.

Aquí, un agente se refiere a una entidad abstracta, ya sea un objeto o un sujeto (automóviles autónomos, robots, humanos, chatbots de atención al cliente, etc.), que realiza acciones. El estado de un agente se refiere a su posición y estado de ser en su entorno abstracto; por ejemplo, una posición específica en un mundo de realidad virtual, un edificio, un tablero de ajedrez o la posición y velocidad en una pista de carreras. El aprendizaje de refuerzo profundo promete un procedimiento de aprendizaje muy generalizado que puede aprender un comportamiento útil con muy poca retroalimentación. Es un área emocionante y desafiante, que sin duda será una parte esencial del futuro panorama de la IA.