Ensayo de ocho partes de la entrevista sobre aprendizaje profundo (2023.9.06)

1. Optimizador

1. ¿Qué es el SGD?

  • Descenso de gradiente por lotes: atraviesa todo el conjunto de datos y calcula la función de pérdida una vez, lo cual es computacionalmente costoso y lento y no admite el aprendizaje en línea.
  • El descenso de gradiente estocástico (SGD) selecciona aleatoriamente un dato cada vez para calcular la función de pérdida, encuentra el gradiente y actualiza los parámetros. La velocidad de cálculo es rápida, pero el rendimiento de convergencia puede no ser muy bueno.
  • Descenso de gradiente estocástico por lotes (SGD por lotes mínimos): utilice un pequeño lote de muestras para aproximar todo, divida las muestras en m mini lotes , cada mini lote contiene n muestras.
  • Descenso de gradiente estocástico (SGD) usando Momentum: en el algoritmo de aprendizaje de gradiente estocástico, el paso de cada paso es fijo, pero en el algoritmo de aprendizaje de impulso, hasta dónde llega cada paso depende no solo de este tiempo El tamaño del gradiente también depende del pasado velocidad. La velocidad es el gradiente de parámetros de entrenamiento acumulados para cada ronda. Momentum resuelve principalmente dos problemas de SGD: uno es el ruido introducido por el método del gradiente estocástico, el otro es el problema mal planteado de la matriz de Hesse , que puede entenderse como el problema de que SGD oscila hacia adelante y hacia atrás más que el gradiente correcto. durante el proceso de convergencia.

2. Presente brevemente el algoritmo de Adam.

RMSprop descompone la tasa de aprendizaje en un promedio que decae exponencialmente del gradiente al cuadrado. El momento en Adam se incorpora directamente a la estimación del primer momento del gradiente (ponderado exponencialmente). En segundo lugar, en comparación con RMSProp, que carece de un factor de corrección y hace que la estimación del momento de segundo orden esté muy sesgada en las primeras etapas del entrenamiento, Adam también incluye una corrección de sesgo que corrige el momento de primer orden (término de momento) y (no -central) inicializado desde el origen.Estimación del segundo momento. Esencialmente, RMSProp con un término de impulso, utiliza las estimaciones de primer y segundo momento del gradiente para ajustar dinámicamente la tasa de aprendizaje de cada parámetro. La principal ventaja de Adam es que después de la corrección del sesgo, la tasa de aprendizaje de cada iteración tiene un cierto rango, lo que hace que los parámetros sean relativamente estables.

3. La diferencia entre Adam y SGD

  • La desventaja de SGD es que su dirección de actualización depende completamente del gradiente calculado por el lote actual, por lo que es muy inestable.
  • Las principales ventajas de Adam son: ① Considerar la información de actualización de gradiente en pasos históricos, puede reducir el ruido de actualización de gradiente. ② Además, después de la desviación y corrección, la tasa de aprendizaje de cada iteración tiene una determinada unidad, lo que hace que los parámetros sean relativamente estables.
  • Sin embargo, Adam puede sobreajustar las características que aparecieron en la etapa inicial, y es difícil que las características que aparecen en la etapa posterior corrijan el efecto de adaptación temprana. Y ni SGD ni Adam pueden evitar muy bien los problemas óptimos locales.

2. Sobreajuste

1. ¿Qué significa sobreajuste? ¿Cual es la causa? ¿Cuáles son las soluciones?

  • Definición: un modelo funciona bien en el conjunto de entrenamiento, pero funciona mal en el conjunto de prueba y en los datos nuevos.
  • Razones de la aparición: ① La complejidad del modelo es demasiado alta y hay demasiados parámetros ② Los datos de entrenamiento son relativamente pequeños ③ La distribución del conjunto de entrenamiento y el conjunto de prueba es inconsistente ④ Los datos de ruido en la muestra interfieren demasiado , lo que hace que el modelo recuerde demasiado las características de ruido.
  • Soluciones: ① Reducir la complejidad del modelo ② Mejora de los datos ③ Regularización (l1, l2, abandono) ④ Detención anticipada

2. Comparación entre sobreajuste y desajuste

Sobreajuste: el modelo funciona bien en el conjunto de entrenamiento, pero funciona mal en el conjunto de prueba y en los datos nuevos. El resultado de salida tiene una gran varianza. El modelo se ajusta bien a las muestras de entrenamiento, pero funciona muy mal en el conjunto de pruebas y tiene una gran varianza. 

Desajuste: el rendimiento del modelo tanto en el conjunto de entrenamiento como en la máquina de prueba es deficiente. Los resultados de salida tienen un sesgo alto. El modelo no puede adaptarse a las muestras de entrenamiento y tiene un sesgo grande.

3. La diferencia entre sesgo y varianza

  • Desviación: La desviación mide la desviación entre la predicción esperada del algoritmo de aprendizaje y el resultado real, y caracteriza la capacidad de ajuste del propio algoritmo de aprendizaje.
  • Varianza: la varianza mide el cambio en el rendimiento del aprendizaje causado por cambios en el conjunto de entrenamiento del mismo tamaño, es decir, representa el impacto de la alteración de los datos.

3. Normalización

1. ¿Qué es la normalización por lotes (BN)? ¿Cuál es el efecto?

  • La fórmula de cálculo de la normalización por lotes (BN) es la siguiente:

  • Función: acelerar el entrenamiento y la convergencia de la red, controlar la explosión de gradiente y evitar la desaparición del gradiente.

2. ¿Cuál es la diferencia en el cálculo de la media y la varianza en BN durante el entrenamiento y la inferencia?

  • Durante el entrenamiento, la media y la varianza son, respectivamente, la media y la varianza de las dimensiones correspondientes de los datos del lote.
  • Durante la inferencia, la media y la varianza se calculan en función de las expectativas de todos los lotes. La media y la varianza utilizadas en la inferencia se calculan mediante una media móvil, lo que puede reducir la memoria utilizada para almacenar la media y la varianza de cada lote.

3. La diferencia entre LN (normalización de capas) y BN

En comparación con BN, LN solo considera las variables estadísticas dentro de una única muestra, por lo que no es necesario utilizar la media móvil y la var móvil en la implementación de BN. LN tampoco necesita considerar en absoluto la cuestión del tamaño del lote de entrada.

4. ¿ Por qué no se aplica la normalización BN en el transformador?

  • Una explicación es que las características de los datos CV y ​​PNL son diferentes: para los datos PNL, en la propagación hacia adelante y hacia atrás, las estadísticas del lote y sus gradientes no son estables, y el componente de posición correspondiente a cada oración en un lote no es necesariamente significativo.
  • Sólo asumiendo una distribución idéntica e independiente en una determinada dimensión podemos lograr una normalización razonable. Para cv, las imágenes entre lotes son independientes, pero el texto de nlp puede considerarse esencialmente como una serie de tiempo, y la serie de tiempo tiene una longitud variable. En principio, las secuencias con diferentes longitudes pertenecen a diferentes objetos estadísticos, por lo que es difícil a Si no se obtienen estadísticas estables, no se puede establecer BN porque BN se basa en el promedio móvil para obtener un conjunto de estadísticas para la predicción.

5. Las principales razones de la desaparición y explosión del gradiente.

  • Desaparición del gradiente: principalmente porque la capa de red es profunda y, en segundo lugar, porque se utiliza una función de pérdida inapropiada, lo que hará que los parámetros cercanos a la capa de entrada se actualicen lentamente. Como resultado, durante el entrenamiento, solo equivale al aprendizaje de redes poco profundas en las siguientes capas.
  • Explosión de gradiente: generalmente ocurre en redes profundas y cuando el valor de inicialización del peso es demasiado grande. En las redes neuronales profundas o redes neuronales recurrentes, los gradientes de errores se pueden acumular y multiplicar en las actualizaciones. Si el valor del gradiente entre las capas de la red es mayor que 1,0, la multiplicación repetida hará que el gradiente crezca exponencialmente y se volverá muy grande, lo que provocará una gran actualización de los pesos de la red y, por lo tanto, hará que la red sea inestable. La explosión de gradiente hará que el valor del peso sea tan grande durante el proceso de entrenamiento que se desborde, lo que provocará que la pérdida del modelo se convierta en NaN, etc.
  • Solución: corte de gradiente, establecimiento de umbrales para gradientes, regularización de peso, BN, atajo para redes residuales

6. Multiplicación en Pytorch

  • Operación de multiplicación de números: torch.mul
  • Producto escalar vectorial: torch.dot, calcula el producto escalar (producto interno) de dos tensores, los cuales son vectores unidimensionales.
  • Operación de multiplicación de matrices: torch.mm, las dos formas tensoriales de entrada son nxc, cxm respectivamente y la salida es nxm;
  • torch.matmul, la operación realizada en tensores bidimensionales es torch.mm, además, también se puede utilizar para operaciones de tensores de alta dimensión.
  • La multiplicación del símbolo @ es equivalente a la multiplicación de matrices torch.mm, estrictamente de acuerdo con el número de columnas del primer parámetro, debe ser igual al número de filas del segundo parámetro.

4. Red neuronal

1. ¿Qué es una red convolucional?

La operación del producto interno de la imagen y la matriz de filtro es la operación de convolución.

La imagen se refiere a diferentes datos de la ventana de datos; la matriz de filtro se refiere a un conjunto de pesos fijos. Debido a que los pesos múltiples de cada neurona son fijos, se puede considerar como un filtro de filtro constante; el producto interno se refiere al elemento por fase del elemento La operación de multiplicar y sumar.

2. ¿Qué es la capa de agrupación de CNN?

La agrupación se refiere a tomar el promedio o máximo regional, es decir, la agrupación promedio o la agrupación máxima.

La figura de arriba muestra el área máxima, es decir, en la parte izquierda de la figura de arriba, 6 es el más grande en la matriz de 2x2 en la esquina superior izquierda, 8 es el más grande en la matriz de 2x2 en la esquina superior derecha, 3 es el más grande en la matriz de 2x2 en la esquina inferior izquierda, y 4 es el más grande en la matriz de 2x2 en la esquina inferior derecha. Máximo, por lo que obtenemos el resultado de la parte derecha de la imagen de arriba: 6 8 3 4

3. ¿Cómo determinar el número de canales del núcleo de convolución y el número de canales de la capa de salida convolucional de CNN?

El número de canales del núcleo de convolución de CNN = el número de canales de la capa de entrada convolucional

La cantidad de canales en la capa de salida convolucional de CNN = la cantidad de núcleos de convolución

4. Describa brevemente qué es una red generativa adversarial (GAN).

Supongamos que hay dos modelos, uno es el modelo generativo (en adelante abreviado como G) y el otro es el modelo discriminativo (en adelante abreviado como D). La tarea del modelo discriminativo (D) es determinar si una instancia es real o causado por Generado por el modelo, la tarea del modelo generativo (G) es generar una instancia para engañar al modelo discriminante (D). Los dos modelos se enfrentan entre sí y, en última instancia, no existe una diferencia real entre los dominios de instancia generados por el modelo generativo y el modelo discriminante no pueden distinguir entre modelo natural y generado.

5. ¿Presente brevemente el gráfico de cálculo de tensorflow?

 El gráfico de cálculo de Tensorflow también se denomina gráfico de flujo de datos. Los gráficos de flujo de datos utilizan gráficos dirigidos de nodos y aristas para describir cálculos matemáticos. Los nodos se utilizan generalmente para representar operaciones matemáticas aplicadas, pero también pueden representar el punto inicial de la entrada de datos y el punto final de la salida, o el punto final de la lectura/escritura de variables persistentes. Los "bordes" representan las relaciones de entrada/salida entre los "nodos" y estos "bordes" de datos pueden transportar matrices de datos multidimensionales con "tamaño dinámicamente ajustable", es decir, "tensores". La imagen visual de los tensores que fluyen a través de un gráfico es la razón por la que esta herramienta se llama "tensorflow". Una vez que todos los tensores del lado de entrada estén listos, los nodos se asignarán a varios dispositivos informáticos para realizar operaciones de forma asincrónica y en paralelo.

6. ¿Qué experiencia tiene en el ajuste de parámetros de aprendizaje profundo (RNN, CNN)?

El ajuste de parámetros de CNN se centra principalmente en la función de optimización, la dimensión de la integración y el número de capas de la red residual.

  • Hay dos opciones para las funciones de optimización: SGD y Adam. Relativamente hablando, Adam es mucho más simple, no requiere configuración de parámetros y el efecto no es malo.
  • La incrustación tendrá un punto de valor máximo a medida que aumenta la dimensión, es decir, el efecto mejorará gradualmente a medida que aumenta la dimensión al principio. Después de alcanzar un punto, y luego a medida que aumenta la dimensión, el efecto empeorará.
  • El número de capas de la red residual está relacionado con la dimensión de la incrustación. A medida que aumenta el número de capas, el cambio de efecto también es una función convexa.
  • Puede incluir el uso de funciones de activación, capas de abandono y capas BN. Se recomienda utilizar relu como función de activación. El número de capas de abandono no debe establecerse demasiado grande. Si es demasiado grande, provocará una falta de convergencia. El paso de ajuste puede ser 0,05. Generalmente, el valor óptimo puede se puede encontrar ajustándolo a 0,5 o 0,5.

7. ¿Por qué se puede utilizar CNN en diferentes campos del aprendizaje automático? ¿Qué problemas comunes resuelve CNN en estos campos? ¿Cómo lo solucionó?

La clave de CNN es la operación de convolución: la conexión local entre el núcleo de convolución y la capa de entrada de convolución puede obtener la información de características locales de toda la entrada o las características combinadas de cada característica de entrada. Por lo tanto, la esencia de CNN es completar la extracción de características o la combinación de características de las características originales, aumentando así la capacidad de expresión del modelo. El aprendizaje automático en diferentes campos se modela a través de las características de los datos para resolver problemas en este campo. Por lo tanto, CNN resuelve el problema de la extracción de características en diferentes campos, y el método utilizado se basa en conexión local/compartimiento de peso/operación de agrupación/estructura multinivel.

8. ¿Por qué la estructura LSTM es mejor que RNN?

LSTM tiene cambios en la puerta de olvido, la puerta de entrada, el estado de la celda, la información oculta, etc.; debido a que LSTM tiene entrada y salida, y la información actual de la celda se superpone después de ser controlada por la puerta de entrada, RNN es una superposición, por lo que LSTM puede evitar el gradiente sea pequeño o explote.

9. ¿Cuáles son las ventajas y desventajas de las tres funciones de activación Sigmoide, Tanh y Relu?

  • Función sigmoidea, ① Ventajas: el rango de salida está entre (0, 1), adecuado para problemas de clasificación binaria, la salida se puede interpretar como probabilidad, tiene derivadas suaves y se puede entrenar utilizando algoritmos de optimización como el descenso de gradiente. ② Desventajas: la función sigmoidea tiene un problema de saturación de gradiente. Cuando la entrada es muy grande o muy pequeña, el gradiente es cercano a cero, lo que hace que el gradiente desaparezca y la velocidad de entrenamiento disminuya, y la salida sigmoidea no está centrada en cero, lo que puede hacer que la red neuronal sea moderadamente inestable en el proceso de entrenamiento; calcular la operación exponencial de la función sigmoidea es costoso.
  • Función Tanh: ① Ventajas: El rango de salida es (-1, 1). En comparación con sigmoide, el valor medio está más cerca de cero, lo que ayuda a aliviar el problema del gradiente evanescente; tiene derivadas suaves y puede usarse para algoritmos de optimización como como descenso de gradiente. ② Desventajas: todavía existe el problema de la saturación del gradiente: cuando la entrada es grande o pequeña, el gradiente es cercano a cero, lo que hace que el gradiente desaparezca. Calcular la operación exponencial de la función Tanh también es más caro.
  • Función Relu (Unidad lineal rectificada): ① Ventajas: El cálculo es simple, solo necesita comparar si la entrada es mayor que cero, por lo que la velocidad de entrenamiento es rápida. En comparación con las dos primeras funciones de activación, la función relu no se satura cuando se activa, lo que evita el problema del gradiente que desaparece. ②Desventajas: algunas neuronas pueden "morir" (la salida siempre es cero y no se actualiza), lo que provocará la escasez de la red; el gradiente de Relu para entradas negativas es cero, lo que puede provocar problemas de explosión de gradiente y la salida no está limitada Puede causar un problema de explosión de gradiente.
  • Para superar las deficiencias anteriores, los investigadores han desarrollado varias funciones de activación mejoradas, como Leaky Relu, Parametric Relu, ELU y Swish, etc. Estas funciones resuelven hasta cierto punto problemas como la saturación de gradiente, la explosión de gradiente y la muerte de neuronas.

10. ¿Por qué introducir una función de excitación no lineal?

La premisa del aprendizaje profundo es que se agrega una función de activación no lineal a la capa oculta de la red neuronal, lo que mejora la capacidad de expresión no lineal del modelo y permite que la red neuronal se aproxime a cualquier función compleja. Supongamos que hay una red neuronal completamente conectada de 100 capas, y las funciones de activación de sus capas ocultas son todas lineales, entonces la capa de entrada a la capa de salida puede ser reemplazada de manera equivalente por una capa de red neuronal completamente conectada, que no puede lograr el verdadero aprendizaje profundo. Ejemplo: la función lineal f(x)=2x+3 que sufre tres transformaciones lineales idénticas en x es equivalente a una sola transformación lineal en x: f(f(f(x)))=2(2(2x+3) +3 )+3=8x+21.

11. ¿Por qué el modelo LSTM tiene funciones de activación sigmoidea y tanh, en lugar de elegir unificar una sigmoidea o tanh? ¿Cuál es el propósito de esto?

  • La función sigmoidea se utiliza en varias puertas para generar valores entre 0 y 1. Generalmente, solo sigmoidea es la más directa, lo que equivale a recordar 1 o olvidar 0.
  • Tanh se utiliza en el estado y la salida para procesar los datos. Es posible que se utilicen otras funciones de activación para esto.

12. ¿Cómo resolver los problemas de explosión y dispersión del gradiente RNN?

Para resolver el problema de la explosión del gradiente, Thomas Mikolov primero propuso una solución heurística simple, que consiste en truncar el gradiente a un número menor cuando supera un cierto umbral.

13. ¿Qué tipo de conjuntos de datos no son adecuados para el aprendizaje profundo?

  • Cuando el conjunto de datos es demasiado pequeño y no hay muestras suficientes en el conjunto de datos, el aprendizaje profundo no tiene ninguna ventaja obvia sobre otro aprendizaje automático.
  • El conjunto de datos no tiene características de correlación local. En la actualidad, las áreas donde el aprendizaje profundo funciona bien son principalmente el procesamiento de imágenes/habla/lenguaje natural, etc. Un punto en común en estos campos es la correlación local. Los píxeles de las imágenes forman objetos, los fonemas de las señales del habla se combinan en palabras y las palabras de los datos del texto se combinan en oraciones. Una vez que se interrumpe la combinación de estos elementos característicos, el significado de la representación también cambia. Los conjuntos de datos sin tales correlaciones locales no son adecuados para su procesamiento mediante algoritmos de aprendizaje profundo. Por ejemplo: para predecir el estado de salud de una persona, los parámetros relevantes incluirán varios elementos como edad, ocupación, ingresos, estado familiar, etc. La alteración de estos elementos no afectará los resultados relevantes.

14. ¿Cómo se utiliza el modelo lineal generalizado en el aprendizaje profundo?

Desde una perspectiva estadística, el aprendizaje profundo puede verse como un modelo lineal generalizado recursivo. En comparación con el modelo lineal clásico, el núcleo del modelo lineal generalizado es la introducción de la función de conexión g(.), cuya forma pasa a ser y=g−1(wx+b). El modelo lineal generalizado recursivo en el aprendizaje profundo, la función de activación de las neuronas, es la función de conexión del modelo lineal generalizado. La función logística de la regresión logística (un tipo de modelo lineal generalizado) es la función sigmoidea en la función de activación neuronal. Muchos métodos similares tienen nombres diferentes en estadísticas y redes neuronales, lo que fácilmente puede causar confusión.

15. Una breve historia del desarrollo de las redes neuronales.

  • El sigmoide se saturará, provocando que el gradiente desaparezca. Entonces existe ReLU.
  • El semieje negativo de ReLU es una zona muerta, lo que hace que el gradiente se vuelva 0. Entonces existen LeakyReLU y PReLU.
  • Énfasis en la estabilidad del gradiente y la distribución del peso, lo que da como resultado ELU y el SELU más nuevo.
  • Era demasiado profundo y no se podía pasar la pendiente, por lo que se creó la autopista.
  • Simplemente ni siquiera necesita los parámetros de la carretera y cámbielos directamente a los residuales, así nace ResNet.

16. ¿Cuál es el verdadero significado de la función de activación en una red neuronal?

  • No linealidad: es decir, la derivada no es una constante. Esta condición es la base de las redes neuronales multicapa y garantiza que las redes multicapa no degeneren en redes lineales de una sola capa. Este es también el significado de la función de activación.
  • Diferenciable en casi todas partes: la diferenciabilidad garantiza la computabilidad de los gradientes en la optimización. Las funciones de activación tradicionales, como la sigmoidea, son diferenciables en todas partes. Para funciones lineales por partes como ReLU, solo es diferenciable en casi todas partes (es decir, no es diferenciable solo en un número limitado de puntos). Para el algoritmo SGD, dado que es casi imposible converger a una posición donde el gradiente sea cercano a cero, los puntos limitados no diferenciables no tendrán un gran impacto en los resultados de la optimización.
  • El cálculo es sencillo: existen muchas funciones no lineales. En el extremo, una red neuronal multicapa también se puede utilizar como una función no lineal, de forma similar a como se trata como una operación de convolución en Network In Network [2]. Sin embargo, el número de cálculos de la función de activación en la dirección de avance de la red neuronal es proporcional al número de neuronas, por lo que una función no lineal simple es naturalmente más adecuada como función de activación. Esta es una de las razones por las que ReLU y similares son más populares que otras funciones de activación que utilizan operaciones como Exp.

17. Las redes neuronales profundas convergen fácilmente a óptimos locales ¿Por qué se utilizan tanto?

La red neuronal profunda "converge fácilmente al óptimo local" es probablemente una imaginación. La situación real es que es posible que nunca encontremos el "óptimo local", y mucho menos el óptimo global. Mucha gente opina que "la optimización local es la principal dificultad en la optimización de redes neuronales". Esto proviene de la imaginación intuitiva de problemas de optimización unidimensionales. En el caso de variables únicas, la dificultad más intuitiva en los problemas de optimización es que hay muchos valores extremos locales.

18. ¿Cómo determinar si se produce una explosión de gradiente?

  • El modelo no puede obtener actualizaciones de los datos de entrenamiento, como baja pérdida
  • El modelo es inestable, provocando cambios significativos en las pérdidas durante el proceso de actualización.
  • Durante el entrenamiento, la pérdida del modelo se convierte en NaN.

19. ¿Cuál es la diferencia entre GRU y LSTM? 

GRU significa Unidades recurrentes cerradas, que es un tipo de red neuronal recurrente.

  • GRU tiene solo dos puertas (actualizar y restablecer), y GRU pasa directamente el estado oculto a la siguiente unidad.
  • LSTM tiene tres puertas (olvido, entrada, salida) y LSTM usa celdas de memoria para envolver el estado oculto.

Supongo que te gusta

Origin blog.csdn.net/qq_43687860/article/details/132711739
Recomendado
Clasificación