Galería de mapas mentales Conocimientos teóricos del aprendizaje profundo.
Parte del contenido está colapsado y se incluyen un total de 1216 módulos. Basado en los dos libros de Yasuki Saito "Introducción al aprendizaje profundo: teoría e implementación basada en Python" y "Aprendizaje profundo avanzado: procesamiento del lenguaje natural Autor: [japonés] Yasuki Saito Traductor: Lu Yujie". Este es el libro más adecuado que he leído para comenzar con el aprendizaje profundo. ¡Lo recomiendo mucho antes de estudiar "Aprendizaje profundo práctico" de Li Mu! El contenido que contiene no requiere ningún conocimiento básico. Se enseña desde cero y puede ser entendido por estudiantes de secundaria.
Editado a las 2024-02-04 00:57:48,Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Conocimientos teóricos del aprendizaje profundo.
introducción
conceptos básicos
El problema del aprendizaje profundo es un problema de aprendizaje automático, que se refiere a resumir reglas generales a través de algoritmos a partir de ejemplos limitados y aplicarlas a nuevos datos desconocidos.
A diferencia del aprendizaje automático tradicional, los modelos utilizados en el aprendizaje profundo son generalmente más complejos.
El flujo de datos desde la entrada original hasta el destino de salida pasa a través de múltiples componentes lineales o no lineales. Cada componente procesa información y, a su vez, afecta a los componentes posteriores.
Cuando finalmente obtenemos el resultado, no sabemos exactamente cuánto contribuye cada componente. Esta pregunta se llama contribución. Problema de asignación.
El problema de asignación de contribuciones también se traduce a menudo como problema de asignación de crédito o problema de asignación de crédito.
El problema de la asignación de contribuciones es un tema muy crítico, que está relacionado con cómo aprender los parámetros en cada componente.
En la actualidad, el modelo que puede resolver mejor el problema de la distribución de contribuciones es la red neuronal artificial (RNA).
Las redes neuronales y el aprendizaje profundo no son equivalentes. El aprendizaje profundo puede utilizar modelos de redes neuronales u otros modelos (por ejemplo, la red de creencias profundas es un modelo de gráfico probabilístico).
AI
Conceptos básicos de IA
concepto inteligente
inteligencia natural
definición
Se refiere al poder y las habilidades de comportamiento de los humanos y algunos animales.
inteligencia humana natural
Es la capacidad integral de los seres humanos para comprender el mundo objetivo que se manifiesta mediante los procesos de pensamiento y las actividades mentales.
Diferentes visiones y jerarquías de la inteligencia.
Vista
teoria de la mente
La inteligencia proviene de actividades de pensamiento.
teoría del umbral del conocimiento
La inteligencia depende del conocimiento aplicable.
teoría evolutiva
La inteligencia se puede lograr mediante una evolución gradual.
Jerarquía
Capacidades características incluidas en la inteligencia.
Percepción
Habilidades de memoria y pensamiento.
aprendizaje y adaptabilidad
capacidad
Concepto de inteligencia artificial
explicar
Utilice métodos artificiales para lograr inteligencia en las máquinas
Estudiar cómo construir máquinas o sistemas inteligentes, y simular y ampliar la inteligencia artificial.
prueba de Turing
Contenido básico de la investigación de la IA.
La posición subjetiva de la inteligencia artificial.
La intersección de las ciencias naturales y las ciencias sociales
Núcleo: Pensamiento e Inteligencia
Materias básicas: matemáticas, ciencias del pensamiento, informática.
Investigación interdisciplinaria con ciencias del cerebro y ciencias cognitivas.
Investigación sobre métodos y tecnologías de simulación inteligente.
percepción de la máquina
Visión
audiencia
pensamiento de la máquina
aprendizaje automático
comportamiento de la máquina
Clasificación de dominio
Percepción: es decir, simular la capacidad de percepción humana para percibir y procesar información de estímulos externos (visuales y del habla, etc.). Las principales áreas de investigación incluyen el procesamiento de información del habla y la visión por computadora.
Aprendizaje: simular la capacidad de aprendizaje humano, principalmente estudiando cómo aprender de ejemplos o interactuando con el entorno. Las principales áreas de investigación incluyen el aprendizaje supervisado, el aprendizaje no supervisado y el aprendizaje por refuerzo.
Cognición: simula las capacidades cognitivas humanas. Las principales áreas de investigación incluyen la representación del conocimiento, la comprensión del lenguaje natural, el razonamiento, la planificación, la toma de decisiones, etc.
historia
Diferentes escuelas de investigación en IA
simbolismo
Simbolismo, también conocido como logicismo, escuela de psicología o escuela de informática. Analizando las funciones de la inteligencia humana y luego realizando estas funciones a través de computadoras.
Supuestos básicos
La información se puede representar mediante símbolos.
Los símbolos se pueden manipular mediante reglas explícitas (como operaciones lógicas)
Los procesos cognitivos humanos pueden verse como procesos de manipulación simbólica. En el período de razonamiento y conocimiento de la inteligencia artificial, el método simbólico es más popular y ha logrado muchos resultados.
conexionismo
El conexionismo, también conocido como escuela biónica o escuela fisiológica, es un tipo de métodos y teorías de procesamiento de información en el campo de la ciencia cognitiva.
En el campo de la ciencia cognitiva, el proceso cognitivo humano puede considerarse como un proceso de procesamiento de información. El conexionismo cree que los procesos cognitivos humanos son procesos de procesamiento de información en redes neuronales compuestas por una gran cantidad de neuronas simples, en lugar de operaciones simbólicas.
Por tanto, la estructura principal del modelo conexionista es una red interconectada compuesta por una gran cantidad de unidades simples de procesamiento de información, que tiene las características de no linealidad, distribución, paralelización, computación local y adaptabilidad.
Behaviorismo
El conductismo cree que la inteligencia artificial surge de la cibernética.
Además del aprendizaje profundo, actualmente existe otra tecnología interesante en el campo del aprendizaje automático: el aprendizaje por refuerzo.
Deje que un agente (Agente) realice continuamente diferentes acciones (Acción), cambie su estado (Estado) e interactúe con el entorno (Entorno) para obtener diferentes recompensas (Recompensa). Solo necesitamos diseñar reglas de recompensa (Recompensa) apropiadas. el agente puede aprender estrategias apropiadas mediante prueba y error continuos.
Redes neuronales
red neuronal cerebral
Redes neuronales artificiales
La historia del desarrollo de las redes neuronales.
Modelo propuesto
El período comprendido entre 1943 y 1969 fue el primer período culminante del desarrollo de las redes neuronales. Durante este período, los científicos propusieron muchos modelos neuronales y reglas de aprendizaje.
En 1943, el psicólogo Warren McCulloch y el matemático Walter Pitts describieron por primera vez una red neuronal artificial idealizada y construyeron un mecanismo informático basado en operaciones lógicas simples. El modelo de red neuronal que propusieron se llama modelo MP.
era de Hielo
De 1969 a 1983, fue el primer desarrollo de bajo nivel de una red neuronal. período del valle. Durante este período, la investigación sobre redes neuronales estuvo estancada y baja durante muchos años.
En 1969, Marvin Minsky publicó el libro "Perceptron", señalando dos defectos clave de las redes neuronales: el primero es que el perceptrón no puede manejar el problema del bucle XOR, el segundo es que las computadoras en ese momento no podían soportar el procesamiento de grandes cantidades; Redes neuronales. Requiere potencia informática.
En 1974, Paul Webos de la Universidad de Harvard inventó el algoritmo de retropropagación (BP), pero no recibió la atención que merecía en ese momento.
El renacimiento provocado por el algoritmo de retropropagación
1983~1995. El algoritmo de retropropagación ha reavivado el interés por las redes neuronales.
El físico de Caltech John Hopfield propuso una red neuronal para memoria asociativa y cálculos de optimización, llamada red Hopfield. La red Hopfield obtuvo entonces los mejores resultados con el problema del viajante y causó sensación.
David Rumelhart y James McClelland brindan una discusión exhaustiva sobre la aplicación del conexionismo a las simulaciones por computadora de la actividad neuronal y reinventan el algoritmo de retropropagación.
Disminución de la popularidad
1995~2006. Las máquinas de vectores de soporte y otros métodos más simples (como los clasificadores lineales) están superando gradualmente a las redes neuronales en popularidad en el campo del aprendizaje automático.
El auge del aprendizaje profundo
2006 ~ ahora. Las redes neuronales de avance multicapa se pueden entrenar previamente capa por capa y luego ajustarlas utilizando el algoritmo de retropropagación. Aprenda de manera efectiva.
aprendizaje automático
Preprocesamiento de datos
Después del preprocesamiento de datos, como eliminación de ruido, etc. Por ejemplo, en la clasificación de textos, eliminación de palabras vacías, etc.
Extracción de características
Extraiga algunas características efectivas de los datos sin procesar. Por ejemplo, en clasificación de imágenes, extracción de bordes, características de transformación de características invariantes de escala (SIFT), etc.
Transformación de características
Realice cierto procesamiento en las características, como reducción de dimensionalidad y mejora de dimensionalidad. La reducción de dimensionalidad incluye dos enfoques: extracción de características y selección de características. Los métodos de transformación de características comúnmente utilizados incluyen análisis de componentes principales (PCA), análisis discriminante lineal (análisis discriminante lineal), etc.
predecir
La parte central del aprendizaje automático, hacer predicciones a través de una función.
Indica aprendizaje
Para mejorar la precisión de los sistemas de aprendizaje automático, convierta la información de entrada en funciones efectivas.
Si existe un algoritmo que puede aprender automáticamente características efectivas y mejorar el rendimiento del modelo final de aprendizaje automático, entonces este tipo de aprendizaje puede denominarse aprendizaje de representación.
método de visualización
representación local
Una forma de representar colores es nombrar diferentes colores con diferentes nombres.
La dimensión es alta y no se puede ampliar. La similitud entre diferentes colores es 0.
representación distribuida
Valores RGB para representar colores
Para aprender una buena representación semántica de alto nivel (representación generalmente distribuida), generalmente es necesario comenzar desde las características de bajo nivel y pasar por múltiples pasos de transformación no lineal para obtenerla.
aprendizaje profundo
paso
Problema de distribución de contribuciones
A diferencia del "aprendizaje superficial", el problema clave que el aprendizaje profundo debe resolver es la distribución de la contribución.
Tomemos como ejemplo el siguiente juego de Go. Siempre que se juega un juego, el resultado final es una victoria o una pérdida. Pensaremos en qué movimientos llevaron a la victoria final y qué movimientos llevaron a la derrota final. Cómo juzgar la contribución de cada movimiento es el problema de la distribución de las contribuciones, que también es un problema muy difícil.
En cierto sentido, el aprendizaje profundo también puede considerarse como un tipo de aprendizaje reforzado (RL). Cada componente interno no puede obtener información de supervisión directamente, pero necesita obtenerla a través de la información de supervisión final (recompensa) de todo el modelo, y existe. Cierto retraso.
El modelo de red neuronal puede utilizar el algoritmo de retropropagación de errores, que puede resolver mejor el problema de distribución de contribuciones.
Aprendizaje de un extremo a otro
estilo de aprendizaje tradicional
En algunas tareas complejas, los métodos tradicionales de aprendizaje automático necesitan dividir artificialmente la entrada y salida de una tarea en muchos submódulos (o múltiples etapas), y cada submódulo se aprende por separado.
Por ejemplo, una tarea de comprensión del lenguaje natural generalmente requiere pasos como la segmentación de palabras, el etiquetado de partes del discurso, el análisis sintáctico, el análisis semántico y el razonamiento semántico.
Hay dos problemas con esta forma de aprender.
Primero, cada módulo debe optimizarse por separado, y no se garantiza que sus objetivos de optimización y los objetivos generales de la misión sean consistentes.
El segundo es la propagación de errores, es decir, los errores en el paso anterior tendrán un gran impacto en los modelos posteriores. Esto aumenta la dificultad de la aplicación práctica de los métodos de aprendizaje automático.
Nueva forma de aprender
El aprendizaje de un extremo a otro, también conocido como capacitación de un extremo a otro, se refiere al objetivo general de optimizar directamente la tarea sin realizar capacitación en módulos o etapas durante el proceso de aprendizaje.
Generalmente, no es necesario dar explícitamente las funciones de diferentes módulos o etapas, y no se requiere intervención humana en el proceso intermedio.
La mayor parte del aprendizaje profundo que utiliza modelos de redes neuronales también puede considerarse como un aprendizaje de un extremo a otro.
Marcos de aprendizaje profundo comúnmente utilizados
Theano: un conjunto de herramientas de Python de la Universidad de Montreal, utilizado para definir, optimizar y ejecutar de manera eficiente el proyecto Theano, actualmente no se encuentra en mantenimiento. Los datos de una matriz multidimensional corresponden a expresiones matemáticas. Theano puede utilizar GPU y símbolos eficientes de forma transparente diferencial.
Caffe: el nombre completo es Arquitectura convolucional para incrustación rápida de funciones. Es un marco informático para modelos de red convolucionales. La estructura de red que se implementará se puede especificar en el archivo de configuración y no requiere codificación. Caffe se implementa en C y Python y se utiliza principalmente para visión por computadora.
TensorFlow: un conjunto de herramientas de Python desarrollado por Google que puede ejecutarse en cualquier dispositivo con CPU o GPU. El proceso de cálculo de TensorFlow se representa mediante gráficos de flujo de datos. El nombre de Tensor Flow proviene del hecho de que el objeto de operación en su proceso de cálculo es una matriz multidimensional, es decir, un tensor.
Chainer: uno de los primeros marcos de redes neuronales que utiliza gráficos informáticos dinámicos. Su equipo de desarrollo principal es Preferred Networks, una startup de aprendizaje automático de Japón. En comparación con los gráficos de cálculo estáticos utilizados por Tensorflow, Theano, Caffe y otros marcos, los gráficos de cálculo dinámico pueden construir gráficos de cálculo dinámicamente en tiempo de ejecución, por lo que son muy adecuados para algunas tareas complejas de razonamiento o toma de decisiones.
PyTorch5: un marco de aprendizaje profundo desarrollado y mantenido por Facebook, NVIDIA, Twitter y otras empresas. Su predecesor es Torch6 del lenguaje Lua. PyTorch también es un marco basado en gráficos de computación dinámica, que tiene ventajas obvias en tareas que requieren cambiar dinámicamente la estructura de las redes neuronales.
Organización de este libro.
perceptrón
Un perceptrón es un algoritmo con entradas y salidas. Dada una entrada, se generará un valor determinado.
El perceptrón establece pesos y sesgos como parámetros.
Los circuitos lógicos como las puertas AND y OR se pueden representar mediante perceptrones.
Una puerta XOR no puede representarse mediante un perceptrón de una sola capa.
Una puerta XOR se puede representar utilizando un perceptrón de 2 capas.
Los perceptrones de una sola capa solo pueden representar espacios lineales, mientras que los perceptrones de múltiples capas pueden representar espacios no lineales.
Un perceptrón de dos capas puede (en teoría) representar una computadora.
Redes neuronales
Perceptrones y redes neuronales
"Perceptrón ingenuo" se refiere a una red de una sola capa y un modelo que utiliza la función de paso como función de activación.
"Perceptrón multicapa" se refiere a una red neuronal, es decir, una red multicapa que utiliza funciones de activación suave como la función sigmoidea o la función ReLU.
Operación: producto interno de la red neuronal
Y = np.punto(X, W)
Las redes neuronales se pueden implementar de manera eficiente mediante el uso de operaciones matriciales.
capa afín
La operación del producto matricial realizada en la propagación hacia adelante de la red neuronal se denomina "transformación afín" en el campo de la geometría.
La transformación afín incluye una transformación lineal y una traducción, que corresponden respectivamente a la operación de suma ponderada y la operación de compensación de la red neuronal.
Y = sigmoide (Y)
capa de salida
Función de activación: la función de identidad se usa para problemas de regresión y la función softmax se usa para problemas de clasificación.
Función de identidad
La señal de entrada se emitirá sin cambios.
función softmax
Suponga que la capa de salida tiene n neuronas en total y calcule la salida yk de la k-ésima neurona.
Características: la suma de los valores de salida de la capa de salida es 1
Nota: problemas de desbordamiento
cantidad
Problema de clasificación
Generalmente establecido en el número de categorías.
Reconocimiento de dígitos escritos a mano
La capa de entrada tiene 28 * 28 = 784 neuronas y la capa de salida tiene 10 neuronas. También hay dos capas ocultas y el número de neuronas puede ser cualquier valor.
Procesamiento por lotes
Ingrese múltiples conjuntos de datos a la vez
Aprendizaje de redes neuronales
función de pérdida
Introducir conceptos
Cuando busca parámetros óptimos (pesos y sesgos), busca parámetros que hagan que el valor de la función de pérdida sea lo más pequeño posible, por lo que necesita calcular las derivadas de los parámetros (el gradiente para ser precisos).
¿Por qué no utilizar directamente la precisión del reconocimiento como indicador?
La derivada del parámetro será 0 en la mayoría de los lugares.
Lo mismo ocurre con las funciones de paso que con las funciones de activación.
tipo
error cuadrático medio
error de entropía cruzada
mini lote
Extraer algunos datos de prueba
degradado
El vector resumido por las derivadas parciales de todas las variables se llama gradiente.
La dirección indicada por el gradiente es la dirección en la que el valor de la función en cada punto disminuye más.
hiperparámetros
Ajuste manual
tasa de aprendizaje sustantivo, femenino—
tamaño del minilote
Tiempos de actualización iters_num
formación obtenida
Peso w y sesgo theta
Redes neuronales
El gradiente de la función de pérdida con respecto a los parámetros de peso.
época
Número de ciclos/tamaño del minibatch
Descenso de gradiente estocástico (SGD)
Realizar un descenso de gradiente en datos seleccionados aleatoriamente
método de propagación hacia atrás del error
Aunque la diferenciación numérica es simple y fácil de implementar, su desventaja es que su cálculo requiere mucho tiempo. Existe un método que puede calcular eficientemente el gradiente de los parámetros de peso: método de retropropagación del error
Gráfico computacional
Al utilizar gráficos de cálculo, puede comprender intuitivamente el proceso de cálculo.
La propagación hacia adelante de gráficos computacionales realiza cálculos generales. Al propagar hacia atrás el gráfico computacional, se pueden calcular las derivadas de cada nodo.
El término de error de la capa l se puede calcular mediante el término de error de la capa l 1 Obtenido, esta es la propagación hacia atrás del error.
fórmula
calcular
La cantidad de amarillo es el valor obtenido durante la retropropagación.
La cantidad verde es una cantidad conocida.
Al implementar los elementos constituyentes de una red neuronal como capas, los gradientes se pueden calcular de manera eficiente
Al comparar los resultados obtenidos por la diferenciación numérica y el método de retropropagación del error, puede confirmar si la implementación del método de retropropagación del error es correcta (confirmación de gradiente)
Vídeo de referencia
https://www.bilibili.com/video/BV1LM411J7cW/?spm_id_from=333.788&vd_source=048c7bdfe54313b8b3ee1483d9d07e38
red neuronal convolucional
Todo debe ser lo más sencillo posible, pero no demasiado. [Albert Einstein]
todo el marco
Comparado
Red basada en una capa totalmente conectada (capa afín)
Red basada en CNN
orden de enlace
Convolución [capa de convolución] -ReLU- (Agrupación [capa de agrupación])
La capa cercana a la salida utiliza la combinación Affine [transformación afín] - ReLU anterior
La capa de salida final utiliza la combinación anterior Affine-Softmax
capa de convolución
Concepto de convolución
Problemas con la capa completamente conectada
La forma de los datos se "ignora". La imagen suele ser una forma tridimensional en las direcciones de altura, longitud y canal, pero los datos tridimensionales deben aplanarse en datos unidimensionales cuando se ingresan.
La imagen es una forma tridimensional y esta forma debe contener información espacial importante.
Los píxeles espacialmente adyacentes tienen valores similares
Cada canal de RBG está estrechamente relacionado entre sí.
Hay poca correlación entre píxeles que están muy separados
La capa convolucional puede mantener la forma sin cambios.
definición
Los datos de entrada y salida de la capa convolucional se denominan mapas de características.
Los datos de entrada de la capa convolucional se denominan mapa de características de entrada.
Los datos de salida se denominan mapa de características de salida.
operación de convolución
La operación de convolución es equivalente a la operación de filtro en el procesamiento de imágenes.
La función principal de la convolución es deslizar un núcleo de convolución (es decir, un filtro) sobre una imagen (o alguna característica) y obtener un nuevo conjunto de características a través de la operación de convolución.
bidimensional
Dada una imagen X ∈ R(M×N), y un filtro W ∈ R (m × n), generalmente m << M, n << N, la convolución es
tridimensional
Correlación
En el proceso de cálculo de la convolución, a menudo es necesario invertir el núcleo de convolución.
Voltear es invertir el orden en dos dimensiones (de arriba a abajo, de izquierda a derecha), es decir, girar 180 grados.
En términos de implementación específica, se utilizan operaciones de correlación cruzada en lugar de convoluciones, lo que reducirá algunas operaciones innecesarias o gastos generales.
La correlación cruzada es una función que mide la correlación entre dos series, generalmente implementada mediante un cálculo del producto escalar de ventana deslizante.
Dada una imagen X ∈ R(M×N) y un núcleo de convolución W ∈ R (m×n), su correlación cruzada es
La diferencia entre correlación cruzada y convolución es únicamente si el núcleo de convolución está invertido. La correlación cruzada también se puede denominar convolución sin inversión.
La convolución se utiliza en redes neuronales para la extracción de características. El hecho de que el núcleo de convolución se invierta no tiene nada que ver con su capacidad de extracción de características. Especialmente cuando el núcleo de convolución es un parámetro que se puede aprender, la convolución y la correlación cruzada son equivalentes.
Variantes de convolución
relleno cero
Para mantener constante el tamaño del espacio, es necesario rellenar los datos de entrada
longitud de zancada
El intervalo de posiciones en el que se aplica el filtro se llama zancada.
Convoluciones de uso común
Convolución estrecha: tamaño de paso s = 1, sin relleno de ceros en ambos extremos p = 0 y la longitud de salida después de la convolución es n − m 1.
Convolución amplia: tamaño de paso s = 1, relleno cero en ambos extremos p = m − 1 y la longitud de salida después de la convolución es n m − 1.
Convolución de igual ancho: tamaño de paso s = 1, relleno cero en ambos extremos p = (m −1)/2, longitud de salida n después de la convolución.
Propiedades matemáticas de la convolución.
Operación de convolución en datos 3D
Los datos de entrada y los números de canal de filtro deben establecerse en el mismo valor.
Múltiples operaciones de convolución
En cuanto a los filtros de la operación de convolución, también se debe considerar el número de filtros. Por lo tanto, como datos de 4 dimensiones, los datos de peso del filtro deben escribirse en el orden de (canal_salida, canal_entrada, alto, ancho). Por ejemplo, si hay 20 filtros con un número de canal de 3 y un tamaño de 5 × 5, se puede escribir como (20, 3, 5, 5).
Procesamiento por lotes
Esperamos que la operación de convolución también corresponda al procesamiento por lotes. Para hacer esto, los datos pasados entre cada capa deben guardarse como datos de 4 dimensiones. Específicamente, los datos se guardan en el orden de (núm_lote, canal, alto, ancho).
Propiedades de las capas convolucionales.
Conexión local: cada neurona en la capa convolucional (se supone que es la l-ésima capa) solo está conectada a las neuronas en una ventana local en la siguiente capa (l-1 capa), formando una red de conexión local. El número de conexiones entre la capa convolucional y la siguiente capa se reduce considerablemente, desde las conexiones originales n(l) × n(l - 1) hasta n(l) × m conexiones. m es el tamaño del filtro.
Peso compartido: el filtro w (l) como parámetro es el mismo para todas las neuronas en la capa l.
Debido a las conexiones locales y al reparto de peso, los parámetros de la capa convolucional solo tienen un peso m-dimensional w(l) y un sesgo unidimensional b(l), con un total de m 1 parámetros.
El número de neuronas en la capa l no se elige arbitrariamente, sino que satisface n(l) = n(l−1) − m 1.
capa de agrupación
También llamada capa de agregación, capa de submuestreo
La agrupación es la selección de funciones, que reduce la cantidad de funciones, lo que reduce la cantidad de parámetros, reduce las dimensiones de las funciones y reduce el espacio en las direcciones de altura y longitud.
Funciones de agregación de uso común
Máximo: Generalmente, se toma el valor máximo de todas las neuronas de una región.
Agregación promedio (Media): Generalmente, se toma el valor promedio de todas las neuronas del área.
Una capa de agrupación típica divide cada mapa de características en regiones no superpuestas de tamaño 2 × 2 y luego utiliza la agrupación máxima para reducir la resolución.
La capa de agrupación también se puede considerar como una capa convolucional especial.
En algunas de las primeras redes convolucionales (como LeNet-5), a veces se usaban funciones de activación no lineales en la capa de agrupación.
donde Y(′d) es la salida de la capa de agrupación, f(·) es la función de activación no lineal, w(d) y b(d) son pesos y sesgos escalares que se pueden aprender.
Características de la capa de agrupación.
No hay parámetros para aprender.
El número de canales no cambia.
Robusto a pequeños cambios de posición (robustez)
aprendizaje de parámetros
Cálculo del término de error.
Visualización de CNN
Visualización de pesos de capa 1.
El filtro antes del aprendizaje se inicializa aleatoriamente, por lo que no hay ningún patrón en los tonos de blanco y negro, pero el filtro después del aprendizaje se convierte en una imagen normal. Descubrimos que a través del aprendizaje, los filtros se actualizan en filtros regulares, como filtros que degradan de blanco a negro, filtros que contienen áreas en bloques (llamadas manchas), etc. Filtro sensible a bordes horizontales y verticales.
Se puede ver que los filtros de la capa convolucional extraerán información original como bordes o parches. La CNN recién implementada pasará esta información sin procesar a capas posteriores.
Extracción de información basada en estructura jerárquica.
Información extraída de las capas convolucionales de CNN. Las neuronas de la capa 1 responden a bordes o parches, la capa 3 responde a la textura, la capa 5 responde a las partes del objeto y la capa final completamente conectada responde a la categoría del objeto (perro o automóvil).
Si se apilan varias capas convolucionales, a medida que las capas se profundizan, la información extraída se vuelve más compleja y abstracta. Esta es una parte muy interesante del aprendizaje profundo. A medida que las capas se profundizan, las neuronas cambian de formas simples a información de "alto nivel". En otras palabras, así como entendemos el "significado" de las cosas, los objetos de respuesta cambian gradualmente.
Red neuronal convolucional típica
LeNet-5
LeNet se propuso en 1998 como una red para el reconocimiento de dígitos escritos a mano. Tiene capas convolucionales y capas de agrupación consecutivas y finalmente genera los resultados a través de una capa completamente conectada.
Excluyendo la capa de entrada, LeNet-5 tiene un total de 7 capas.
Capa de entrada: el tamaño de la imagen de entrada es 32 × 32 = 1024.
Capa convolucional: utilizando 6 filtros de 5 × 5, se obtienen 6 conjuntos de mapas de características con un tamaño de 28 × 28 = 784. Por lo tanto, la cantidad de neuronas en la capa C1 es 6 × 784 = 4704, la cantidad de parámetros entrenables es 6 × 25 6 = 156 y la cantidad de conexiones es 156 × 784 = 122304 (incluidos los sesgos, lo mismo a continuación).
Capa de agrupación: la ventana de muestreo es 2 × 2, se utiliza la agrupación promedio y se utiliza una función no lineal. El número de neuronas es 6 × 14 × 14 = 1176, el número de parámetros entrenables es 6 × (1 1) = 12 y el número de conexiones es 6 × 196 × (4 1) = 5, 880.
Capa convolucional. En LeNet-5 se utiliza una tabla de conexión para definir la dependencia entre los mapas de características de entrada y salida. Como se muestra en la figura, se utilizan un total de 60 filtros de 5 × 5 para obtener 16 grupos de mapas de características con un tamaño de 10 ×. 10. El número de neuronas es 16 × 100 = 1, 600, el número de parámetros entrenables es (60 × 25) 16 = 1, 516 y el número de conexiones es 100 × 1, 516 = 151, 600.
En la capa de agrupación, la ventana de muestreo es 2 × 2 y se obtienen 16 mapas de características de tamaño 5 × 5. El número de parámetros entrenables es 16 × 2 = 32 y el número de conexiones es 16 × 25 × (4 1. ) = 2000.
Las capas convolucionales, utilizando 120 × 16 = 1, 920 filtros 5 × 5, obtienen 120 conjuntos de mapas de características con un tamaño de 1 × 1. El número de neuronas en la capa C5 es 120, el número de parámetros entrenables es 1, 920 × 25 120 = 48120 y el número de conexiones es 120 × (16 × 25 1) = 48120.
La capa completamente conectada tiene 84 neuronas y el número de parámetros entrenables es 84 × (120 1) = 10164. La cantidad de conexiones y la cantidad de parámetros entrenables son las mismas, que es 10164.
Capa de salida: la capa de salida consta de 10 funciones de base radial euclidiana
unirse a la mesa
La relación completamente conectada entre los mapas de características de entrada y salida de la capa convolucional no es necesaria y se puede utilizar convolución no compartida.
Defina una tabla de enlaces (Tabla de enlaces) T para describir la relación de conexión entre los mapas de características de entrada y salida.
Si el p-ésimo mapa de características de salida depende del d-ésimo mapa de características de entrada, entonces Tp,d = 1; de lo contrario, 0.
alexnet
Fue propuesto en 2012 y utiliza muchos métodos técnicos de redes convolucionales profundas modernas.
Entrenamiento paralelo usando GPU
La función de activación utiliza ReLU
Utilice Dropout para evitar el sobreajuste
Utilice el aumento de datos para mejorar la precisión del modelo
Utilice la capa LRN (Normalización de respuesta local) para la normalización local
Red de inicio
Módulo inicial: una capa convolucional contiene múltiples operaciones de convolución de diferentes tamaños
La red Inception está compuesta por múltiples módulos iniciales y una pequeña cantidad de capas de agregación.
versión V1
La primera versión v1 de la red Inception es la muy famosa GoogLeNet [Szegedy et al., 2015], y ganó el concurso de clasificación de imágenes ImageNet de 2014.
Red residual ResNet
La eficiencia de propagación de información se mejora agregando bordes directos a la capa convolucional no lineal.
elementos no lineales
Puede ser una o más capas convolucionales.
Dejemos que esta unidad no lineal f(x, θ) se aproxime a una función objetivo h(x)
Una unidad no lineal compuesta por una red neuronal tiene la capacidad suficiente para aproximarse aproximadamente a la función objetivo original o a la función residual, pero en la práctica esta última es más fácil de aprender.
Conclusión: Deje que la unidad no lineal f(x, θ) se aproxime a la función residual h(x)−x, y use f(x, θ) x para aproximar h(x).
La red residual es una red muy profunda compuesta por muchas unidades residuales conectadas en serie.
Otros métodos de convolución
convolución transpuesta
Convolución atroz (convolución dilatada)
aprendizaje profundo
Profundizar la red
Hacia una red más profunda
Esta red se refiere a VGG, que se presentará en la siguiente sección.
Capa convolucional basada en filtros pequeños de 3×3
La función de activación es ReLU.
La capa Dropout se utiliza detrás de la capa completamente conectada.
Optimización basada en Adam
Utilice el valor inicial de He como valor inicial del peso.
La precisión del reconocimiento es del 99,38%.
Mejorar aún más la precisión del reconocimiento
Aprendizaje conjunto
caída de la tasa de aprendizaje
Aumento de datos
Aumente el número de imágenes aplicando pequeños cambios como rotación, movimiento vertical u horizontal, recorte, volteo, aumento de brillo, etc.
Motivación más profunda
Mejorar el rendimiento del reconocimiento
La importancia de la profundización se puede ver en los resultados de los concursos de reconocimiento de imágenes a gran escala representados por ILSVRC. Los resultados de esta competencia muestran que los métodos más populares recientemente se basan principalmente en el aprendizaje profundo y tienden a profundizar gradualmente las capas de la red. En otras palabras, se puede ver que cuanto más profunda es la capa, mayor es el rendimiento del reconocimiento.
Reducir el número de parámetros de la red.
La ventaja de apilar filtros pequeños para profundizar la red es que puede reducir la cantidad de parámetros y expandir el campo receptivo (una región espacial local que impone cambios en las neuronas). Además, a través de capas superpuestas, funciones de activación como ReLU se intercalan en el medio de la capa convolucional, lo que mejora aún más la expresividad de la red. Esto se debe a que se agrega a la red expresividad "no lineal" basada en funciones de activación. A través de la superposición de funciones no lineales, se pueden expresar cosas más complejas.
Haga que el aprendizaje sea más eficiente
En comparación con una red sin capas de profundización, al profundizar las capas, los datos de aprendizaje se pueden reducir y el aprendizaje se puede realizar de manera eficiente.
Estructura de red de aprendizaje profundo
Competencia ILSVRC
ImageNet contiene una variedad de imágenes y cada imagen está asociada con una etiqueta (nombre de categoría). Cada año se lleva a cabo el concurso de reconocimiento de imágenes ILSVRC que utiliza este enorme conjunto de datos.
El concurso de reconocimiento de imágenes a gran escala ILSVRC se celebró en 2012. En la competencia de ese año, el método basado en aprendizaje profundo (comúnmente conocido como AlexNet) ganó abrumadoramente, subvirtiendo por completo los métodos anteriores de reconocimiento de imágenes. En competiciones posteriores, el aprendizaje profundo ha estado activo en el centro del escenario.
En particular, ResNet de 2015 (una red profunda con más de 150 capas) redujo la tasa de reconocimiento falso al 3,5%. Se dice que este resultado supera incluso la capacidad de reconocimiento de la gente corriente.
VGG
VGG es una CNN básica compuesta por capas convolucionales y capas de agrupación. Sin embargo, su característica es que superpone capas ponderadas (capas convolucionales o capas completamente conectadas) a 16 capas (o 19 capas), las cuales tienen profundidad (a veces también llamada "VGG16" o "VGG19" dependiendo de la profundidad de la capa).
GoogleLeNet
La red no solo tiene profundidad vertical, sino también amplitud horizontal, lo que se denomina estructura Inception.
Resnet
Tiene una estructura más profunda que las redes anteriores.
Ya sabemos que profundizar en la profundidad es importante para mejorar el rendimiento. Sin embargo, en el aprendizaje profundo, si se profundiza demasiado, el aprendizaje no se desarrollará sin problemas en muchos casos, lo que dará como resultado un rendimiento final deficiente. En ResNet, para resolver este tipo de problemas, se introduce una "estructura de acceso directo" (también llamada "acceso directo" o "ruta"). Después de importar esta estructura de acceso directo, el rendimiento se puede mejorar continuamente a medida que la capa se profundiza (por supuesto, la profundidad de la capa también es limitada).
En la práctica, los datos de peso aprendidos utilizando el enorme conjunto de datos de ImageNet a menudo se aplican de manera flexible. Esto se denomina aprendizaje por transferencia. Los pesos (partes) aprendidos se copian a otras redes neuronales para su reaprendizaje (ajuste fino). Por ejemplo, prepare una red con la misma estructura que VGG, use los pesos aprendidos como valores iniciales y use el nuevo conjunto de datos como objeto para volver a aprender. El aprendizaje por transferencia es muy eficaz cuando el conjunto de datos disponible es pequeño.
Acelerar el aprendizaje profundo
Problemas que deben resolverse
La relación de tiempo de cada capa en el procesamiento directo de AlexNet: el lado izquierdo es cuando se usa GPU y el lado derecho es cuando se usa CPU. "conv" en la figura corresponde a la capa convolucional, "pool" corresponde a la capa de agrupación, "fc" corresponde a la capa completamente conectada y "norm" corresponde a la capa de regularización
El tiempo de procesamiento de la capa convolucional representa el 95% de la GPU total y el 89% de la CPU total.
Aceleración basada en GPU
Las GPU las proporcionan principalmente dos empresas, NVIDIA y AMD. Aunque ambas GPU se pueden utilizar para cálculos numéricos generales, la GPU de NVIDIA está más "cerca" del aprendizaje profundo. De hecho, la mayoría de los marcos de aprendizaje profundo solo se benefician de las GPU de NVIDIA. Esto se debe a que el marco de aprendizaje profundo utiliza CUDA, un entorno de desarrollo integral para computación GPU proporcionado por NVIDIA.
Aprendizaje distribuido
Computación distribuida en múltiples GPU o múltiples máquinas
TensorFlow de Google y CNTK de Microsoft conceden gran importancia al aprendizaje distribuido durante el proceso de desarrollo
El eje horizontal es el número de GPU. El eje vertical es la tasa de aceleración en comparación con una sola GPU.
Reducción de dígitos de la precisión aritmética.
En cuanto a la precisión numérica (número de dígitos para representar un valor), ya sabemos que el aprendizaje profundo no requiere precisión numérica en dígitos. Esta es una propiedad importante de las redes neuronales. Esta propiedad se basa en la robustez de las redes neuronales.
En el futuro, se utilizarán números de coma flotante de media precisión como estándar y se espera que alcancen velocidades de hasta aproximadamente 2 veces las de la generación anterior de GPU.
Casos de aplicación de aprendizaje profundo
Detección de objetos
Determinar el tipo de objeto y la ubicación del objeto a partir de la imagen.
Entre los métodos de uso de CNN para la detección de objetos, existe un método llamado R-CNN
Segmentación de imagen
Clasificar imágenes a nivel de píxeles
FCN clasifica todos los píxeles mediante un proceso de avance.
FCN significa literalmente "una red compuesta enteramente de capas convolucionales". En comparación con la CNN general que contiene capas completamente conectadas, FCN reemplaza las capas completamente conectadas con capas convolucionales que desempeñan el mismo papel.
Generación de títulos de imagen
Un método representativo para generar títulos de imágenes basado en el aprendizaje profundo se llama NIC.
NIC está compuesta por CNN profunda y RNN (red neuronal recurrente) que procesa el lenguaje natural.
El futuro del aprendizaje profundo
Transformación de estilo de imagen
Generación de imágenes
Piloto automático
aprendizaje reforzado
Representación distribuida de lenguaje natural y palabras.
Marty: "Esto es pesado". Dr. Brown: “¿En el futuro, las cosas serán tan pesadas?” —La película "Regreso al futuro"
¿Qué es el procesamiento del lenguaje natural?
Nuestro lenguaje está hecho de palabras y el significado del lenguaje está hecho de palabras. En otras palabras, una palabra es la unidad más pequeña de significado.
Tres formas de hacer que las computadoras comprendan el significado de las palabras
Enfoque basado en sinónimos
enfoque basado en el recuento
Enfoque basado en inferencias (word2vec)
Enfoque basado en sinónimos
Considere definir manualmente el significado de las palabras
Actualmente muy utilizado es el diccionario de sinónimos.
Un diagrama basado en la relación hiperónimo-hipónimo según el significado de cada palabra
WordNet
El diccionario de sinónimos más famoso.
efecto
Obtener sinónimos de una palabra
Calcular similitud entre palabras.
Utilizado a través del módulo NLTK
Problemas
Siguen apareciendo nuevas palabras que dificultan la adaptación a los cambios de los tiempos
Alto costo laboral
Incapaz de expresar diferencias sutiles en palabras.
enfoque basado en el recuento
cuerpo
Un corpus es una gran cantidad de datos de texto.
Los corpus utilizados en el campo del procesamiento del lenguaje natural a veces agregan información adicional a los datos de texto. Por ejemplo, cada palabra de los datos del texto se puede marcar con una parte del discurso. Aquí, se supone que el corpus que utilizamos no tiene etiquetas agregadas.
Preprocesamiento de corpus basado en Python
corpus famosos
Wikipedia y Google Noticias
preprocesamiento
Mayúsculas -> Minúsculas
texto.inferior()
Puntuación del proceso
texto.reemplazar('.', ' .')
re.split('(\W )', texto)
\W: Coincide con caracteres que no son palabras (ni letras, números ni guiones bajos)
: Indica que coincide con el patrón anterior "\W" repetido una o más veces
Cree ID de palabras y tablas de correspondencia.
Convertir una lista de palabras en una lista de ID de palabras
corpus = [word_to_id[w] para w en palabras]
Representación distribuida de palabras.
Construya representaciones vectoriales compactas y razonables en el dominio de palabras.
Hipótesis de distribución
El significado de una palabra está formado por las palabras que la rodean.
El contexto se refiere a las palabras que rodean una palabra centrada.
El tamaño del contexto se llama tamaño de ventana.
El tamaño de la ventana es 1 y el contexto contiene 1 palabra a la izquierda y a la derecha.
matriz de coocurrencia
La forma más sencilla de utilizar un vector es contar cuántas veces aparece una palabra a su alrededor.
text = 'Tú dices adiós y yo saludo.'
Establecer el tamaño de la ventana en 1
similitud entre vectores
similitud coseno
Clasificación de palabras similares
Obtenga el vector de palabras de la palabra de consulta
Obtenga la similitud del coseno entre el vector de palabras de la palabra de consulta y todos los demás vectores de palabras, respectivamente.
Resultados basados en similitud de cosenos, mostrando sus valores en orden descendente
Mejoras en los métodos basados en el recuento.
Haga clic en información mutua
En la matriz de coocurrencia, se considerará que palabras comunes como will tienen una fuerte correlación con sustantivos como car
PMI
, P (x) representa la probabilidad de que ocurra x, P (y) representa la probabilidad de que ocurra y y P (x, y) representa la probabilidad de que xey ocurran simultáneamente.
PMI basado en matriz de coocurrencia
insuficiente
Cuando el número de co-ocurrencias de dos palabras es 0, log(2)(0) = −∞
información mutua de puntos positivos
Obtenga la matriz PPMI basada en la matriz de coocurrencia
Reducción de dimensionalidad
Necesitamos observar la distribución de datos y encontrar "ejes" importantes.
Descomposición de valores singulares (SVD)
SVD descompone cualquier matriz en el producto de 3 matrices
donde U y V son matrices ortogonales cuyos vectores columna son ortogonales entre sí, y S es una matriz diagonal en la que todos los elementos menos los diagonales son 0
La matriz original se puede aproximar eliminando los vectores de columna redundantes en la matriz U
U, S, V = np.linalg.svd(W)
Si el tamaño de la matriz es N*N, la complejidad computacional de SVD alcanzará O(N^3). Por lo tanto, a menudo se utilizan métodos más rápidos como el SVD truncado. El SVD truncado logra una alta velocidad truncando las partes con valores singulares más pequeños.
desde sklearn.utils.extmath importar randomized_svd U, S, V = randomized_svd(W, n_components=wordvec_size, n_iter=5, random_state=Ninguno)
conjunto de datos PTB
El corpus PTB se utiliza a menudo como punto de referencia para evaluar los métodos propuestos.
Preprocesamiento del corpus PTB
corchetes para reemplazar palabras raras con el carácter especial
Reemplace números específicos con "N"
El preprocesamiento que hice
Concatene todas las oraciones y trátelas como una gran serie de datos de tiempo. En este momento, se inserta un carácter especial <eos> al final de cada oración.
Asignación de hiperparámetros
tamaño_ventana = 2
tamaño_palabravec = 100
Evaluación basada en el conjunto de datos de PTB
Para la palabra de consulta usted, puede ver que los pronombres personales como i y nosotros ocupan el primer lugar. Estas son palabras con el mismo uso en gramática.
La palabra de consulta año tiene sinónimos como mes y trimestre.
La palabra de consulta automóvil tiene sinónimos como automóvil y vehículo.
Al utilizar toyota como término de consulta, aparecían nombres de fabricantes de automóviles o marcas como nissan, honda y lexus.
Resumir
Utilice el corpus para calcular la cantidad de palabras en el contexto, conviértalas en una matriz PPMI y luego obtenga buenos vectores de palabras basados en la reducción de dimensionalidad SVD.
palabra2vec
"Si no tienes una base para juzgar, no razones". ——Arthur Conan Doyle, "Un escándalo en Bohemia"
incrustación de palabras
Word2Vec es un algoritmo para generar "incrustaciones de palabras"
Además de Word2Vec, existen otros métodos para generar incrustaciones de palabras, como GloVe (Vectores globales para representación de palabras), FastText, etc. Estos métodos pueden utilizar diferentes estrategias y algoritmos, pero todos tienen como objetivo capturar de forma eficaz la información semántica de las palabras en el espacio vectorial.
Métodos basados en inferencia y redes neuronales.
Problemas con los métodos basados en el recuento
En el mundo real, los corpus tratan con una gran cantidad de palabras. Por ejemplo, se dice que el vocabulario en inglés tiene más de 1 millón de palabras. Si el tamaño del vocabulario excede 1 millón, entonces usar el método basado en conteo requiere generar una matriz enorme de 1 millón × 1 millón, pero obviamente no es realista realizar SVD en una matriz tan grande.
Enfoques basados en inferencias que utilizan redes neuronales.
Aprendizaje sobre datos de mini lotes. Es decir, utilizar parte de los datos para aprender y actualizar repetidamente los pesos.
El aprendizaje de redes neuronales se puede realizar en paralelo utilizando múltiples máquinas y múltiples GPU, acelerando así todo el proceso de aprendizaje.
Resumen de métodos basados en inferencia
Objetivo
Predice qué palabras aparecerán en el medio cuando se le den las palabras circundantes (contexto), como un cloze.
método de razonamiento
Ingrese el contexto y el modelo generará la probabilidad de aparición de cada palabra.
Como producto del aprendizaje modelo, obtendremos una representación distribuida de la palabra.
Cómo procesar palabras en redes neuronales
Convertir palabras a vectores
Las redes neuronales no pueden procesar palabras directamente como usted o dice. Para usar redes neuronales para procesar palabras, primero debe convertir las palabras en vectores de longitud fija.
Método de conversión
vector caliente
Sólo un elemento es 1, los demás elementos son 0
Redes neuronales
capa de entrada
Capa completamente conectada
Los pesos iniciales son aleatorios.
palabra2vec simple
Inferencia del modelo CBOW
estructura
Características
Hay dos capas de entrada.
La transformación de la capa de entrada a la capa intermedia se completa con la misma capa completamente conectada (peso W (pulg.))
La transformación de las neuronas de la capa intermedia a la capa de salida se completa con otra capa completamente conectada (peso W (salida))
Las neuronas de la capa intermedia son el "promedio" de los valores obtenidos por cada capa de entrada después de ser transformadas por la capa completamente conectada.
Las neuronas en la capa de salida son las puntuaciones de cada palabra, y cuanto mayor sea su valor Cuanto mayor sea el valor, mayor será la probabilidad de aparición de la palabra correspondiente.
Aprendizaje del modelo CBOW
Convierta puntuaciones en probabilidades usando la función Softmax
Encuentre el error de entropía cruzada entre estas probabilidades y las etiquetas supervisadas
Aprendelo como una pérdida
Representación ponderada y distribuida de word2vec.
El peso W(in) es la representación distribuida de la palabra que queremos
Preparar datos del estudio
contexto y palabras objetivo
Convertir a representación one-hot
Implementación del modelo CBOW
Información adicional
Modelos CBOW y probabilidad.
La probabilidad de que wt ocurra después de que ocurran wt−1 y wt 1.
Función de pérdida L (logaritmo de probabilidad negativa) del modelo CBOW
modelo de salto de gramo
word2vec tiene dos modelos
CBOW
saltar-gramo
Skip-gram es un modelo que invierte el contexto y las palabras objetivo procesadas por el modelo CBOW.
diagrama de estructura de red skip-gram
modelos de salto de gramo y probabilidad
El modelo skip-gram tiene solo una capa de entrada y la cantidad de capas de salida es igual a la cantidad de palabras en el contexto. Primero, las pérdidas de cada capa de salida deben calcularse por separado y luego sumarse como pérdida final.
Predecir el contexto wt−1 y wt 1 según la palabra del medio (palabra objetivo) wt
La función de pérdida del modelo de salto de gramo se puede expresar como
Comparación de funciones de pérdida
El número de predicciones del modelo skip-gram es tanto como el número de palabras de contexto, por lo que su función de pérdida requiere la suma de las pérdidas correspondientes a cada palabra de contexto. El modelo CBOW sólo requiere la pérdida de la palabra objetivo.
A juzgar por la precisión de la representación distribuida de palabras, el modelo skip-grm da mejores resultados en la mayoría de los casos.
Basado en conteo versus basado en inferencia
Escenarios en los que es necesario agregar nuevas palabras al vocabulario y actualizar la representación distribuida de las palabras
Los métodos basados en recuentos requieren cálculos desde cero
Los métodos basados en inferencias permiten el aprendizaje incremental de parámetros
Propiedades de las representaciones distribuidas de palabras.
Los métodos basados en conteo codifican principalmente la similitud de palabras.
Los métodos basados en inferencias pueden comprender patrones complejos entre palabras
mujer rey = reina
Precisión de las representaciones distribuidas de palabras.
Los métodos basados en inferencia y los métodos basados en conteo son indistinguibles
Acelerando word2vec
No intentes saberlo todo o no sabrás nada. ——Demócrito (filósofo griego antiguo)
Mejorar
estudiar
otro
Aplicación de word2vec
La representación distribuida de palabras obtenida con word2vec se puede utilizar para encontrar palabras aproximadas.
transferir aprendizaje
El conocimiento aprendido en un campo se puede aplicar a otros campos.
Al resolver tareas de procesamiento del lenguaje natural, word2vec generalmente no se usa para aprender la representación distribuida de palabras desde cero, sino que primero se aprende en un corpus a gran escala (datos de texto como Wikipedia, Google News, etc.) y luego. la representación distribuida aprendida se aplica a una sola tarea.
En tareas de procesamiento del lenguaje natural, como clasificación de texto, agrupación de texto, etiquetado de partes del discurso y análisis de sentimientos, el primer paso de la vectorización de palabras puede utilizar la representación distribuida de las palabras aprendidas.
¡Las representaciones distribuidas de palabras funcionan muy bien en casi todos los tipos de tareas de procesamiento del lenguaje natural!
Utilizando representaciones distribuidas de palabras, también es posible convertir documentos (secuencias de palabras) en vectores de longitud fija.
Si puede convertir el lenguaje natural en vectores, puede utilizar muchos métodos de aprendizaje automático.
Cómo evaluar vectores de palabras
conjunto de evaluación de similitud de palabras creado artificialmente para evaluar
La similitud entre gato y animal es 8, y la similitud entre gato y automóvil es 2... De manera similar, la similitud entre palabras se califica manualmente con una puntuación de 0 a 10.
Compare las puntuaciones dadas por las personas y la similitud del coseno dada por word2vec para examinar la correlación entre ellas.
en conclusión
Diferentes modelos tienen diferentes precisiones (elija el mejor modelo según el corpus)
Cuanto mayor sea el corpus, mejores serán los resultados (siempre se necesitan big data)
La dimensionalidad de los vectores de palabras debe ser moderada (demasiado grande conducirá a una precisión deficiente)
RNN
Sólo me recuerdo maullando y llorando en un lugar oscuro y húmedo. ——"Soy un gato" de Natsume Soseki
Modelos de probabilidad y lenguaje
Una red de avance simple no puede aprender completamente las propiedades de los datos de series de tiempo. Como resultado, surgió RNN (Red neuronal recurrente).
word2vec desde una perspectiva probabilística
¿Se puede utilizar para algo el propósito original del modelo CBOW de "predecir las palabras objetivo a partir del contexto"? ¿Puede P(wt|wt−2, wt−1) desempeñar un papel en algunos escenarios prácticos?
Las ventanas que consideramos antes son todas simétricas, y luego solo consideramos la ventana izquierda.
modelo de lenguaje
Utilice la probabilidad para evaluar la probabilidad de que ocurra una secuencia de palabras, es decir, el grado en que una secuencia de palabras es natural.
Representación de probabilidad
Donde P(A,B) = P(A|B)*P(B) = P(B|A)*P(A)
Usando el modelo CBOW como modelo de lenguaje
cadena de markov
Cuando la probabilidad de un evento depende sólo de los N eventos que lo preceden, se denomina "cadena de Markov de orden N".
Limitar el contexto a las 2 palabras de la izquierda es una cadena de Markov de segundo orden.
insuficiente
Si la ventana es demasiado corta, el contexto no se puede combinar.
Si la ventana es demasiado larga, se ignorará el orden de las palabras en el contexto.
CBOW es la abreviatura de Bolsa de palabras continua. Bag-Of-Words significa "una bolsa de palabras", lo que significa que se ignora el orden de las palabras en la bolsa.
RNN tiene un mecanismo que puede recordar información de contexto sin importar cuán largo sea el contexto. Por lo tanto, los datos de series temporales de longitud arbitraria se pueden procesar utilizando RNN.
word2vec es un método destinado a obtener representaciones distribuidas de palabras y generalmente no se utiliza en modelos de lenguaje.
RNN
red neuronal recurrente
La estructura de la capa RNN.
La entrada en el momento t es xt, lo que implica que los datos de series de tiempo (x0, x1, ···, xt, ···) se ingresarán en la capa. Luego, en la forma correspondiente a la entrada, salida (h0, h1, ··· , ht, ···)
La salida tiene dos bifurcaciones, lo que significa que se copió lo mismo. Una bifurcación en la salida se convertirá en su propia entrada.
bucle desenrollado
Usamos la palabra "momento" para referirnos al índice de datos de series de tiempo (es decir, los datos de entrada en el momento t son xt). Se utilizan expresiones como "la t-ésima palabra" y "la t-ésima capa RNN", así como expresiones como "la palabra en el momento t" o "la capa RNN en el momento t".
La capa RNN en cada momento recibe dos valores, que son la entrada pasada a esta capa y la salida de la capa RNN anterior.
RNN tiene dos pesos, a saber, el peso Wx que convierte la entrada x en la salida hy el peso Wh que convierte la salida de la capa RNN anterior en la salida en el momento actual. Además, existe un sesgo b.
Desde otra perspectiva, RNN tiene un estado h, que se actualiza continuamente mediante la fórmula anterior. Entonces h puede llamarse estado oculto o vector de estado oculto
Los dos métodos de dibujo esquemático son equivalentes.
Propagación hacia atrás a través del tiempo
retropropagación basada en el tiempo
Para encontrar el gradiente basado en BPTT, se deben guardar en la memoria los datos intermedios de la capa RNN en cada momento. Por lo tanto, a medida que los datos de la serie temporal se hacen más largos, también aumenta el uso de memoria de la computadora (no solo los cálculos).
BPTT truncado
Para resolver el problema anterior, al procesar datos de series temporales largas, la práctica común es cortar la conexión de red a una longitud adecuada.
Las redes que son demasiado largas en la dirección del eje de tiempo se truncan en ubicaciones apropiadas para crear múltiples redes pequeñas, y luego se realiza el método de retropropagación de errores en las redes pequeñas recortadas. Este método se denomina BPTT truncado (BPTT truncado).
En BPTT truncado, la conexión de propagación hacia atrás de la red se corta, pero la conexión de propagación hacia adelante aún se mantiene.
Orden de procesamiento
Lo primero que debe hacer es introducir los datos de entrada del bloque 1 (x0,..., x9) en la capa RNN.
Realice primero la propagación hacia adelante y luego hacia atrás para obtener el gradiente deseado.
A continuación, los datos de entrada del siguiente bloque (x10, x11, ···, x19) se introducen en la capa RNN. El cálculo de esta propagación hacia adelante requiere el último estado oculto h9 del bloque anterior, para que se pueda mantener la conexión de propagación hacia adelante.
Aprendizaje por mini lotes de BPTT truncado
Al comienzo de los datos de entrada, es necesario realizar una "compensación" dentro de lotes individuales.
Aviso
Para ingresar datos en orden
Para cambiar la posición inicial de cada lote (cada muestra) de datos de entrada
Implementación de RNN
Teniendo en cuenta el aprendizaje basado en BPTT truncado, la red neuronal objetivo recibe datos de series de tiempo de longitud T (T es cualquier valor), y estos estados T pueden considerarse como una capa.
Llame a una capa que procesa T pasos a la vez como "capa Time RNN"
La capa que realiza el procesamiento de un solo paso en la capa Time RNN se denomina "capa RNN".
Al igual que Time RNN, las capas que procesan datos de series temporales de manera integral reciben nombres que comienzan con la palabra "Tiempo", que es la convención de nomenclatura establecida en este libro. Después de eso, también implementaremos la capa Time Affine, la capa Time Embedding, etc.
Implementación de la capa RNN
propagación hacia adelante
Propagación hacia atrás
Implementación de la capa Time RNN
propagación hacia adelante
La capa Time RNN guarda el estado oculto h en una variable miembro para heredar el estado oculto entre bloques
Utilice el parámetro con estado para registrar si se llama al estado oculto h. En la propagación hacia atrás, cuando el estado es Falso, el estado oculto de la primera capa RNN es la matriz cero.
Propagación hacia atrás
Almacenamos el gradiente que fluye al estado oculto en el momento anterior en la variable miembro dh. Esto se debe a que lo usaremos cuando analicemos seq2seq (secuencia a secuencia) en el Capítulo 7.
Implementación de capas para el procesamiento de datos de series temporales.
Imagen completa de RNNLM
Los modelos de lenguaje basados en RNN se denominan RNNLM.
estructura
La capa 1 es la capa de incrustación, que convierte los ID de palabras en representaciones distribuidas de palabras (vectores de palabras). Este vector de palabras se introduce en la capa RNN.
La capa RNN envía el estado oculto a la siguiente capa (arriba) y también envía el estado oculto a la siguiente capa RNN (derecha).
La salida del estado oculto de la capa RNN hacia arriba pasa a través de la capa Affine y pasa a la capa Softmax.
Muestra
Tú dices adiós, y yo digo hola
Se ingresa la primera palabra, usted con ID de palabra 0. En este momento, al observar la distribución de probabilidad generada por la capa Softmax, podemos ver que la probabilidad de decir es la más alta, lo que indica que se predice correctamente que la palabra que aparece después de usted será dicha.
La palabra 2 dice. En este momento, la salida de la capa Softmax tiene una mayor probabilidad de adiós y hola. Porque la capa RNN guarda la información pasada de "tú dices" como un breve vector de estado oculto. El trabajo de la capa RNN es pasar esta información a la capa Affine de arriba y a la capa RNN en el momento siguiente.
Implementación de la capa de tiempo
Estructura de la red neuronal objetivo
Tiempo afín
La capa Time Affine no utiliza simplemente capas T Affine, sino que utiliza operaciones matriciales para lograr un procesamiento general eficiente.
Tiempo Softmax
El error de pérdida se implementa en Softmax. La capa de error de entropía cruzada calcula el error de entropía cruzada.
T Softmax con capas de pérdida calcula cada una la pérdida, luego las suma y promedia, y el valor resultante se utiliza como la pérdida final.
Aprendizaje y evaluación de RNNLM
Implementación de RNNLM
Evaluación del modelo de lenguaje
Los datos de entrada son 1.
La perplejidad se utiliza a menudo como indicador para evaluar el rendimiento de predicción de los modelos lingüísticos. Perplejidad=1/probabilidad
Los datos de entrada son múltiples.
Aquí se supone que la cantidad de datos es N. tn es la etiqueta de solución correcta en forma de un vector único, tnk representa el k-ésimo valor de los n-ésimos datos e ynk representa la distribución de probabilidad (la salida de Softmax en una red neuronal). Por cierto, L es la pérdida de la red neuronal.
Cuanto mayor sea la probabilidad, mejor, y cuanto menor sea la confusión, mejor.
La perplejidad representa la cantidad de opciones que se pueden elegir a continuación. Si la confusión es 1,25, significa que el número de candidatos para la siguiente palabra es aproximadamente 1.
Aprendizaje de RNNLM
Clase de entrenador de RNNLM
Encapsule las operaciones anteriores en clases.
Extendido a estructuras gráficas.
red neuronal recurrente
Hay tres capas ocultas h1, h2 y h3, donde h1 se calcula a partir de dos entradas x1 y x2, h2 se calcula a partir de otras dos capas de entrada x3 y x4, y h3 se calcula a partir de dos capas ocultas h1 y h2.
red grafica
RNN cerrado
Saca tu equipaje y viaja ligero. ——Nietzsche
Cuando decimos RNN, nos referimos más a la capa LSTM que al RNN del capítulo anterior. Cuando necesitamos referirnos explícitamente al RNN del capítulo anterior, decimos "RNN simple" o "Elman".
Problemas con RNN simple
Durante el proceso de aprendizaje, la capa RNN aprende las dependencias en la dirección del tiempo pasando "gradientes significativos" al pasado. Pero el gradiente de aprendizaje es difícil de controlar, lo que puede provocar la desaparición o explosión del gradiente.
razón
función de activación
tanh
Como puede ver en el gráfico, su valor es menor que 1,0 y su valor disminuye a medida que x se aleja de 0. Esto significa que a medida que el gradiente retropropagado pasa a través del nodo tanh, su valor será cada vez más pequeño. Por lo tanto, si pasa la función tanh T veces, el gradiente también disminuirá T veces.
ReLU
El gradiente no se degrada
Nodo MatMul (producto de matriz)
explosión de gradiente
Como se muestra en la figura, el tamaño del gradiente aumenta exponencialmente con el paso del tiempo. Si se produce una explosión de gradiente, eventualmente provocará un desbordamiento y valores como NaN (no es un número, valor no numérico). Como resultado, el aprendizaje de la red neuronal no funcionará correctamente.
el gradiente desaparece
Como se muestra en la figura, el tamaño del gradiente disminuye exponencialmente con el paso del tiempo. Si ocurre la desaparición del gradiente, el gradiente se hará más pequeño rápidamente. Una vez que el gradiente se vuelve pequeño, el gradiente de peso no se puede actualizar y el modelo no puede aprender dependencias a largo plazo.
Razón para el cambio
La matriz Wh se multiplica repetidamente T veces. Si Wh fuera un escalar, el problema sería simple: cuando Wh es mayor que 1, el gradiente aumenta exponencialmente; cuando Wh es menor que 1, el gradiente disminuye exponencialmente.
Si Wh es una matriz. En este punto, los valores singulares de la matriz se convertirán en indicadores. En pocas palabras, los valores singulares de una matriz representan el grado de dispersión de los datos. Dependiendo de si este valor singular (más precisamente el máximo de múltiples valores singulares) es mayor que 1, se pueden predecir cambios en la magnitud del gradiente.
Contramedidas contra gradientes explosivos
Existe un método establecido para resolver la explosión de gradiente, que se llama recorte de gradiente.
Aquí se supone que los gradientes de todos los parámetros utilizados por la red neuronal pueden integrarse en una variable y representarse mediante el símbolo g. Luego establezca el umbral en umbral. En este momento, si la norma L2 g del gradiente es mayor o igual que el umbral, el gradiente se corrige como se describe anteriormente.
Degradados desaparecidos y LSTM
En el aprendizaje RNN, la desaparición del gradiente también es un gran problema. Para resolver este problema, es necesario cambiar fundamentalmente la estructura de la capa RNN. Aquí está a punto de aparecer el tema de este capítulo, Gated RNN. Se han propuesto muchos marcos Gated RNN (estructuras de red), entre los cuales LSTM y GRU son los representativos.
interfaz LSTM
LSTM es la abreviatura de Long Short-Term Memory, lo que significa que puede mantener la memoria a corto plazo (Short-Term Memory) durante mucho tiempo.
Primero exprese el cálculo de tanh(h(t−1)*Wh xt*Wx b) como un nodo rectangular tanh (ht−1 y xt son vectores fila)
Comparemos la interfaz (entrada y salida) de LSTM y RNN
La diferencia entre la interfaz de LSTM y RNN es que LSTM también tiene la ruta c. Esta c se llama unidad de memoria (o simplemente "unidad"), que es equivalente al departamento de memoria dedicado de LSTM.
La característica de la unidad de memoria es que solo recibe y transmite datos dentro de la capa LSTM. Es decir, desde el lado que recibe la salida del LSTM, la salida del LSTM solo tiene el vector de estado oculto h. La unidad de memoria c es invisible para el mundo exterior y ni siquiera necesitamos considerar su existencia.
La estructura de la capa LSTM.
ct almacena la memoria del LSTM en el momento t, que se puede considerar que contiene toda la información necesaria desde el pasado hasta el momento t. Luego, según el ct de esta memoria portadora, se genera el estado oculto ht.
calcular
La unidad de memoria actual ct se calcula en función de las tres entradas c(t−1) h(t−1) y xt mediante "algún tipo de cálculo" (que se describe más adelante).
El estado oculto ht se calcula utilizando el ct actualizado, la fórmula es ht = tanh(ct)
Puerta
El grado de apertura y cierre de la puerta también se aprende automáticamente a partir de los datos. El grado de apertura y cierre está representado por un número real de 0,0 a 1,0 (1,0 es completamente abierto).
puerta de salida
El estado oculto ht solo aplica la función tanh a la unidad de memoria ct, y consideramos aplicar puertas a tanh(ct). Dado que esta puerta gestiona la salida del siguiente estado oculto ht, se denomina puerta de salida.
La puerta de salida se calcula de la siguiente manera. La función sigmoidea está representada por σ()
ht se puede calcular a partir del producto de o y tanh (ct). El método de cálculo es el producto de elementos, que es el producto de los elementos correspondientes. También se denomina producto de Hadamard.
puerta del olvido
Ahora, agregamos una puerta para olvidar recuerdos innecesarios en la unidad de memoria c (t −1), que aquí se llama puerta de olvido.
El cálculo de la puerta de olvido es el siguiente.
ct se obtiene por el producto de esta f y el elemento correspondiente de la unidad de memoria anterior ct−1
nueva unidad de memoria
Ahora también queremos agregar información nueva a esta unidad de memoria que conviene recordar, para esto agregamos un nuevo nodo tanh.
El resultado calculado en función del nodo tanh se suma a la unidad de memoria ct-1 en el momento anterior.
La función de este nodo tanh no es bloquear, sino agregar nueva información a la unidad de memoria. Por lo tanto, no utiliza la función sigmoidea como función de activación, sino que utiliza la función tanh.
puerta de entrada
Agregamos una puerta a g en la Figura 6-17. Esta puerta recién agregada se llama aquí puerta de entrada.
La puerta de entrada determina el valor de cada elemento de la nueva información g. Las puertas de entrada no agregan nueva información sin consideración; más bien, toman decisiones sobre qué información agregar. En otras palabras, la puerta de entrada añade nueva información ponderada.
La puerta de entrada se calcula de la siguiente manera
flujo de gradiente LSTM
La retropropagación de las celdas de memoria solo fluye a través de los nodos " " y "×". El nodo " " fluye desde el gradiente aguas arriba tal como está, por lo que el gradiente no cambia (degenera). El cálculo del nodo "×" no es un producto matricial, sino el producto de los elementos correspondientes (producto Hadama), que no provocará cambios de gradiente.
Implementación de LSTM
Para cambios afines como x*Wx h*Wh b, se puede integrar en una fórmula
Las bibliotecas de matrices son generalmente más rápidas cuando se calculan "matrices grandes" y el código fuente es más limpio al administrar los pesos juntos.
Modelo de lenguaje usando LSTM
El modelo de lenguaje implementado aquí es casi el mismo que el del capítulo anterior. La única diferencia es que donde se usó la capa Time RNN en el capítulo anterior, esta vez se usa la capa Time LSTM.
Mejoras adicionales a RNNLM
Multicapa de capas LSTM
Profundizar la capa LSTM (apilar varias capas LSTM) a menudo funciona bien.
¿Cuántas capas son apropiadas?
Debido a que el número de capas es un hiperparámetro, es necesario determinarlo en función de la complejidad del problema a resolver y el tamaño de los datos de entrenamiento que se pueden proporcionar.
En el caso de aprender un modelo de lenguaje en el conjunto de datos PTB, se pueden obtener mejores resultados cuando el número de capas LSTM es de 2 a 4.
El modelo GNMT utilizado en Google Translate se superpone a una red de 8 capas de LSTM.
Suprimir el sobreajuste basado en la deserción
Al profundizar la profundidad, se pueden crear modelos más expresivos, pero dichos modelos a menudo sufren de sobreajuste. Para empeorar las cosas, las RNN son más propensas a sobreadaptarse que las redes neuronales de alimentación directa convencionales, por lo que las contramedidas de sobreajuste para las RNN son muy importantes.
Contramedidas
Agregar datos de entrenamiento
Reducir la complejidad del modelo
Regularización
Abandonar
Abandonar
Dropout selecciona aleatoriamente un subconjunto de neuronas, luego las ignora y deja de transmitir señales.
Posición de inserción de la capa de eliminación
Abandono regular
estructura de error
Si se inserta Dropout en la dirección de la serie temporal, la información se perderá gradualmente con el tiempo a medida que el modelo aprende.
Estructura correcta
Insertar capa de abandono verticalmente
Abandono de variación
Al compartir la máscara entre Dropouts de la misma capa, la máscara queda "fijada". De esta manera, la forma en que se pierde la información también se "arregla", por lo que se puede evitar la pérdida exponencial de información que ocurre con el abandono normal.
compartir peso
Atar peso puede traducirse literalmente como "atar peso".
El truco para vincular (compartir) los pesos de la capa de incrustación y la capa afín es compartir el peso. Al compartir los pesos entre estas dos capas, la cantidad de parámetros aprendidos se puede reducir considerablemente. Además de esto, mejora la precisión.
Mejor implementación de RNNLM
Investigación de frontera
Generar texto basado en RNN
No existe un artículo perfecto, como tampoco existe la desesperación perfecta. ——Haruki Murakami "Escucha el canto del viento"
Generar texto usando modelos de lenguaje.
Cómo generar la siguiente palabra nueva
Seleccione la palabra con mayor probabilidad, el resultado se determina de forma única
Las palabras con alta probabilidad son fáciles de seleccionar, las palabras con baja probabilidad son difíciles de seleccionar.
Implementación de generación de texto.
Mejor generación de texto
Utilice mejores modelos de lenguaje
modelo seq2seq
Seq2Seq (Secuencia a secuencia, modelo de secuencia a secuencia)
Modelos para convertir datos de series temporales en otros datos de series temporales
El principio de seq2seq
Este modelo tiene dos módulos: codificador y decodificador. El codificador codifica los datos de entrada y el decodificador decodifica los datos codificados.
seq2seq consta de dos capas LSTM, el codificador LSTM y el decodificador LSTM.
El estado oculto h de LSTM es un vector de longitud fija. La diferencia entre este y el modelo de la sección anterior es que la capa LSTM recibe el vector h. Este pequeño y único cambio permitió que los modelos de lenguaje ordinario evolucionaran hasta convertirse en decodificadores que podían manejar la traducción.
Un intento simple de conversión de datos de series temporales
Intentando que seq2seq haga cálculos de suma
Datos de series temporales de longitud variable
relleno
Complete los datos originales con datos no válidos (sin sentido), de Y alinee la longitud de los datos.
Cuando use relleno, debe agregar algún procesamiento específico de relleno a seq2seq
Cuando se ingresa relleno en el decodificador, su pérdida no debe calcularse (esto se puede resolver agregando una función Softmax con máscara de pérdida a la capa)
Al rellenar la entrada en el codificador, la capa LSTM debe generar la entrada del momento anterior tal como está
conjunto de datos aditivos
Implementación de seq2seq
Mejoras en seq2seq
Invertir datos de entrada
En muchos casos, el aprendizaje avanza más rápido y la precisión final mejora tras utilizar esta técnica.
Intuitivamente, la propagación de gradientes puede ser más suave y efectiva después de invertir los datos.
espiando
El codificador que usa el casco se llama Peeky Decoder, y el seq2seq que usa Peeky Decoder se llama Peeky seq2seq.
El codificador convierte la oración de entrada en un vector h de longitud fija, que concentra toda la información requerida por el decodificador. Es la única fuente de información para el decodificador.
La salida h del codificador, que concentra información importante, se puede asignar a otras capas del decodificador.
Se ingresan dos vectores a la capa LSTM y a la capa Affine al mismo tiempo, lo que en realidad representa la concatenación de los dos vectores.
Aplicación de seq2seq
Traducción automática: convierta "texto en un idioma" en "texto en otro idioma"
Autoresumen: convertir "un texto largo" en un "resumen breve"
Sistema de preguntas y respuestas: convierte "pregunta" en "respuesta"
Respuesta automática de correo electrónico: convierta el "texto del correo electrónico recibido" en "texto de respuesta"
chatbot
aprendizaje de algoritmos
Descripción automática de la imagen
Atención
La atención lo es todo. ——Título del artículo de Vaswani
La atención es sin duda una de las tecnologías más importantes en el campo del aprendizaje profundo en los últimos años. El objetivo de este capítulo es comprender la estructura de Atención a nivel de código y luego aplicarla a problemas prácticos para experimentar sus maravillosos efectos.
Estructura de atención
Problemas con seq2seq
Se utiliza un codificador en seq2seq para codificar los datos de la serie temporal y luego la información codificada se pasa al decodificador. En este punto, la salida del codificador es un vector de longitud fija.
Los vectores de longitud fija significan que cualquiera que sea la longitud de la declaración de entrada (sin importar cuán larga sea), se convertirá en un vector de la misma longitud.
Mejoras en el codificador
La longitud de la salida del codificador debe cambiar en consecuencia según la longitud del texto de entrada.
Debido a que el codificador procesa de izquierda a derecha, estrictamente hablando, el vector "cat" solo contiene la información de las tres palabras "我的人", "は" y "猫". Teniendo en cuenta el equilibrio general, es mejor incluir la información alrededor de la palabra "gato" de manera uniforme. En este caso, el RNN bidireccional (o LSTM bidireccional) que procesa datos de series temporales desde ambas direcciones es más efectivo.
Mejoras en el decodificador
Anteriormente, colocamos el "último" estado oculto de la capa LSTM del codificador en el estado oculto "inicial" de la capa LSTM del decodificador.
El decodificador del capítulo anterior solo utilizó el último estado oculto de la capa LSTM del codificador. Si se usa hs, solo se extrae la última fila y se pasa al decodificador. A continuación mejoramos el decodificador para poder utilizar todos los hs.
Nos centramos en una determinada palabra (o conjunto de palabras) y convertimos esta palabra en cualquier momento. Esto permite a seq2seq aprender la correspondencia entre "qué palabras en la entrada y salida están relacionadas con qué palabras".
Ejemplo
Mi generación [わがはい] = yo
猫[ねこ] = gato
Muchos estudios explotan el conocimiento de las correspondencias de palabras como "gato =gato". Esta información que indica la correspondencia entre palabras (o frases) se llama alineación. Hasta ahora, la alineación se ha realizado principalmente de forma manual, pero la tecnología de Atención que presentaremos ha introducido con éxito la idea de alineación en seq2seq de forma automática. Esta es también la evolución de la "operación manual" a la "automatización mecánica".
cambios estructurales
Como calcular
¿Se puede sustituir la operación de "selección" por una operación diferenciable? En lugar de "selección única", es mejor "seleccionar todo". Calculamos por separado el peso que representa la importancia (valor de contribución) de cada palabra.
a Como una distribución de probabilidad, cada elemento es un escalar de 0,0 a 1,0 y la suma es 1. Luego, calcule la suma ponderada del peso que representa la importancia de cada palabra y el vector de palabras hs para obtener el vector objetivo.
Al procesar datos de secuencia, la red debe prestar más atención a las partes importantes de la entrada e ignorar las partes sin importancia. Pesa explícitamente las partes importantes de la secuencia de entrada aprendiendo los pesos de diferentes partes, para que el modelo pueda pagar mejor. mucha atención a la información relacionada con los resultados. La clave del mecanismo de Atención es introducir un mecanismo para calcular dinámicamente el peso de cada posición en la secuencia de entrada, de modo que en cada paso de tiempo, las diferentes partes de la secuencia de entrada se ponderen y sumen para obtener la salida del paso de tiempo actual. . Al generar cada salida, el decodificador presta diferente atención a diferentes partes de la secuencia de entrada, lo que permite que el modelo se centre mejor en información importante en la secuencia de entrada.
Aprendizaje del peso a
Nuestro objetivo es expresar numéricamente qué tan "similar" es esta h a los vectores de palabras individuales de hs.
Aquí utilizamos el producto interno vectorial más simple.
Hay varias formas de calcular la similitud de vectores. Además de los productos internos, también existe la práctica de utilizar pequeñas redes neuronales para generar puntuaciones.
A continuación, s se regulariza utilizando la antigua función Softmax.
Integrar
Implementación de seq2seq con Atención
Evaluación de la atención.
Pasamos a confirmar el efecto de seq2seq con Atención estudiando el problema de la "conversión de formato de fecha"
Problema de conversión de formato de fecha
Aprendizaje de seq2seq con atención
Visualización de la atención
Otros temas sobre Atención
RNN bidireccional
Si consideramos el equilibrio general, esperamos que el vector contenga información sobre la palabra "gato" de manera más uniforme.
LSTM bidireccional agrega un procesamiento de capa LSTM en la dirección opuesta encima de la capa LSTM anterior.
Empalme los estados ocultos de las dos capas de LSTM en cada momento y utilícelo como el vector de estado oculto final (además de empalmar, también puede "suma" o "promediado", etc.)
Cómo utilizar la capa de Atención
La salida de la capa de atención (vector de contexto) se conecta a la entrada de la capa LSTM en el momento siguiente. A través de esta estructura, la capa LSTM puede utilizar la información del vector de contexto. Por el contrario, el modelo que implementamos utiliza vectores de contexto en la capa Affine.
Profundización de seq2seq y omisión de conexión.
Profundizar la capa RNN
seq2seq con atención usando 3 capas de capa LSTM
conexión residual
En el cruce de la conexión residual se añaden dos salidas.
Debido a que la suma propaga los gradientes "tal cual" durante la retropropagación, los gradientes en las conexiones residuales se pueden propagar a la capa anterior sin ningún efecto. De esta manera, incluso si la capa se profundiza, el gradiente puede propagarse normalmente sin que desaparezca (o explote) y el aprendizaje puede continuar sin problemas.
Aplicación de atención
GNMT
La historia de la traducción automática
Traducción basada en reglas
Utilice la traducción basada en casos
Traducción basada en estadísticas
Traducción automática neuronal
Desde 2016, Google Translate utiliza la traducción automática neuronal para servicios reales. Sistema de traducción automática llamado GNMT
GNMT requiere grandes cantidades de datos y recursos informáticos. GNMT utiliza una gran cantidad de datos de entrenamiento (1 modelo) aprendidos en casi 100 GPU durante 6 días. Además, GNMT también está tratando de mejorar aún más la precisión basándose en tecnologías como el aprendizaje conjunto y el aprendizaje por refuerzo que pueden aprender 8 modelos en paralelo.
Transformador
RNN puede manejar bien datos de series temporales de longitud variable. Sin embargo, RNN también tiene desventajas, como problemas de procesamiento paralelo.
RNN debe calcularse paso a paso en función de los resultados del cálculo del momento anterior, por lo que es (básicamente) imposible calcular RNN en paralelo en la dirección del tiempo. Esto se convertirá en un gran cuello de botella al realizar aprendizaje profundo en un entorno informático paralelo utilizando GPU, por lo que tenemos la motivación para evitar RNN.
Transformer no usa RNN, pero usa Atención para el procesamiento. Echemos un vistazo breve a este Transformer.
Autoatención
Transformer se basa en la Atención, que utiliza la técnica de Autoatención, lo cual es importante. La autoatención se traduce literalmente como "la propia atención a uno mismo", es decir, es una atención basada en datos de una serie de tiempo, con el objetivo de observar la relación entre cada elemento de una serie de datos de tiempo y otros elementos.
Utilice una red neuronal completamente conectada con una capa oculta y función de activación ReLU. Además, Nx en la figura significa que los elementos rodeados por el fondo gris se apilan N veces.
MNA
NTM (máquina neuronal de Turing)
Las redes neuronales también pueden obtener capacidades adicionales utilizando dispositivos de almacenamiento externos.
Basados en Atención, los codificadores y decodificadores implementan "operaciones de memoria" en las computadoras. En otras palabras, esto se puede interpretar como que el codificador escribe la información necesaria en la memoria y el decodificador lee de la memoria. Obtenga la información necesaria.
Para imitar el funcionamiento de la memoria de la computadora, el funcionamiento de la memoria de NTM utiliza dos atenciones,
La atención basada en contenido es la misma que la atención que presentamos antes y se utiliza para encontrar vectores similares de un determinado vector (vector de consulta) en la memoria.
La atención basada en la posición se utiliza para avanzar y retroceder desde la dirección de memoria (el peso de cada ubicación en la memoria) en la que se centró en el último momento. Aquí omitimos la discusión de sus detalles técnicos, que se pueden lograr mediante operaciones de convolución unidimensional. La función de movimiento basada en la ubicación de la memoria puede reproducir la actividad única de la computadora de "leer mientras avanza (una dirección de memoria)".
NTM ha resuelto con éxito problemas de memoria a largo plazo, problemas de clasificación (ordenación de números de mayor a menor), etc.
Optimización y regularización de la red.
Ningún truco matemático puede compensar la falta de información [Cornelio Lanczos]
Dos grandes dificultades
Mejoramiento
Difícil de optimizar y computacionalmente intensivo.
problema de generalización
La capacidad de adaptación es demasiado fuerte y es fácil sobreadaptarse.
Optimización de la red
Dificultades en la optimización de la red.
Diversidad de la estructura de la red
Es difícil encontrar un método de optimización general. Los diferentes métodos de optimización también tienen diferencias relativamente grandes en diferentes estructuras de red.
Dificultades con espacios de baja dimensión.
Cómo elegir los parámetros de inicialización
Escapar del óptimo local
Dificultades con espacios de alta dimensión.
Cómo elegir los parámetros de inicialización
Cómo escapar de un punto de silla
En algunas dimensiones es el punto más alto, en otras dimensiones es el punto más bajo.
fondo plano
Hay muchos parámetros en las redes neuronales profundas y existe un cierto grado de redundancia, lo que hace que cada parámetro tenga un impacto relativamente pequeño en la pérdida final.
atrapado en el mínimo local
mejoramiento
Tipo de método de descenso de gradiente
descenso de gradiente por lotes
descenso de gradiente estocástico
descenso de gradiente de mini lotes
Si está en descenso de gradiente, calcular el gradiente en todos los datos de entrenamiento para cada iteración requiere más recursos informáticos. Además, los datos de conjuntos de entrenamiento grandes suelen ser muy redundantes y no es necesario calcular gradientes en todo el conjunto de entrenamiento.
caída de la tasa de aprendizaje
La tasa de aprendizaje debe mantenerse mayor al principio para garantizar la velocidad de convergencia y menor cuando converge cerca del punto óptimo para evitar oscilaciones de ida y vuelta.
tipo
Decaimiento del tiempo inverso
Decrecimiento exponencial
decaimiento exponencial natural
β es la tasa de atenuación, normalmente 0,96.
También existen métodos para ajustar de forma adaptativa la tasa de aprendizaje, como AdaGrad, RMSprop, AdaDelta, etc.
Método AdaGrad
Entre las técnicas efectivas para medir la tasa de aprendizaje se encuentra un método llamado disminución de la tasa de aprendizaje, que disminuye gradualmente la tasa de aprendizaje a medida que avanza el aprendizaje.
AdaGrad lleva esta idea más allá, ajustando la tasa de aprendizaje de manera adecuada para cada elemento de los parámetros mientras aprende al mismo tiempo.
Ada proviene de la palabra inglesa Adaptive, que significa "apropiada".
Al igual que el SGD anterior, W representa el parámetro de peso que se actualizará, la derivada parcial representa el gradiente y n representa la tasa de aprendizaje.
Pero aparece una nueva variable h, que almacena la suma de los cuadrados de todos los valores de gradiente anteriores. Por lo tanto, cuanto más profundo es el aprendizaje, menor es la amplitud de actualización.
Método RMSProp
Si aprende sin cesar, la cantidad de actualización será 0
El método RMSProp no suma todos los gradientes anteriores por igual, sino que los olvida gradualmente y refleja más información sobre los nuevos gradientes al realizar la operación de suma.
Técnicamente hablando, esta operación se denomina "media móvil exponencial", que reduce exponencialmente la escala de los gradientes pasados.
Optimización de la dirección del gradiente
Método del momento
En el descenso de gradiente de mini lotes, si el número de muestras seleccionadas cada vez es relativamente pequeño, la pérdida disminuirá de forma oscilante.
Utilizando el gradiente promedio en el último período de tiempo en lugar del gradiente en el momento actual como dirección de actualización del parámetro.
también llamado método de impulso
Desventajas del SGD
f(x,y)=(1/20)*x^2 y^2
Ruta de actualización optimizada basada en SGD: avanzar hacia el valor mínimo (0, 0) en forma de zigzag, baja eficiencia
formas de mejorar
Al igual que el SGD anterior, W representa el parámetro de peso que se actualizará, la derivada parcial representa el gradiente y n representa la tasa de aprendizaje.
Pero aparece una nueva variable v, que corresponde a la velocidad física, que puede entenderse como la fuerza ejercida sobre el objeto en la dirección del gradiente.
método adán
El impulso se mueve según las reglas físicas de una bola que rueda en un cuenco y AdaGrad ajusta el ritmo de actualización de forma adecuada para cada elemento del parámetro. Combinarlos es idea de Adam
No existe (actualmente) ningún método que funcione bien en todos los problemas. Cada uno de estos cuatro métodos tiene sus propias características y cada uno tiene sus propios problemas que resuelve bien y problemas que no resuelve bien.
corte de gradiente
Si el gradiente aumenta repentinamente, el uso de un gradiente grande para actualizar los parámetros lo alejará del punto óptimo.
Cuando el módulo del gradiente es mayor que un cierto umbral, el gradiente se trunca.
Limite el módulo del gradiente a un intervalo y trunquelo cuando el módulo del gradiente sea menor o mayor que este intervalo.
tipo
Truncar por valor
gt = máx(mín(gt, b), a).
Truncar según el molde
Inicialización de parámetros
Inicialización de la distribución gaussiana
El método de inicialización gaussiano es el método de inicialización más simple. Los parámetros se inicializan aleatoriamente a partir de una distribución gaussiana con una media fija (como 0) y una varianza fija (como 0,01).
Cuando el número de conexiones de entrada de una neurona es n(in), su peso de conexión de entrada se puede configurar para que se inicialice con la distribución gaussiana de N(0,sqrt(1/nin)).
Si también se considera el número de conexiones de salida nout, se puede inicializar de acuerdo con la distribución gaussiana de N(0,sqrt(2/(nin nout)))
Inicialización distribuida uniformemente
La inicialización de distribución uniforme utiliza una distribución uniforme para inicializar parámetros dentro de un intervalo dado [−r, r]. La configuración del hiperparámetro r también se puede ajustar de forma adaptativa según el número de conexiones de neuronas.
Tipo de función de activación
función logística
tanh
valor inicial de xavier
Intentamos utilizar los valores iniciales de peso recomendados en el artículo de Xavier Glorot et al.
Si el número de nodos en la capa anterior es n, el valor inicial utiliza una distribución gaussiana con una desviación estándar de (1/sqrt(n))
Valor inicial del peso ReLU
Cuando la función de activación usa ReLU, generalmente se recomienda usar el valor inicial dedicado a ReLU, que es el valor inicial recomendado por Kaiming He et al., también conocido como el "valor inicial de He".
Cuando el número de nodos en la capa actual es n, el valor inicial de He utiliza una distribución gaussiana con una desviación estándar de (2/sqrt(n))
Preprocesamiento de datos
diferentes unidades
Las diferentes fuentes y unidades de medida de cada característica dimensional harán que el rango de distribución de estos valores de características sea muy diferente. Cuando calculamos la distancia euclidiana entre diferentes muestras, las características con un rango de valores grande jugarán un papel dominante.
normalización de escala
El rango de valores de cada característica se normaliza a [0, 1] o [−1, 1] mediante escala.
normalización estándar
También llamada normalización de puntuación z
Cada característica dimensional se procesa para ajustarse a la distribución normal estándar (la media es 0, la desviación estándar es 1).
Redundancia de datos
Una vez que se blanquean los datos de entrada, la correlación entre las características es baja y todas las características tienen la misma variación.
Una de las principales formas de lograr el blanqueamiento es utilizar el análisis de componentes principales para eliminar la correlación entre los componentes.
Normalización capa por capa
Cuando se utiliza el descenso de gradiente estocástico para entrenar una red, cada actualización de parámetros hará que cambie la distribución de entradas a cada capa en el medio de la red. Cuanto más profunda sea la capa, más obviamente cambiará la distribución de su entrada.
normalización por lotes
También llamado normalización por lotes, método BN
Para que cada capa tenga la amplitud adecuada, se "obliga" a ajustar la distribución de los valores de activación.
Realice la regularización para que la media de la distribución de datos sea 0 y la varianza sea 1.
Se puede normalizar cualquier capa intermedia de la red neuronal.
ventaja
Puede hacer que el aprendizaje suceda rápidamente (puede aumentar la tasa de aprendizaje)
Menos dependiente de los valores iniciales (no tan sensible a los valores iniciales)
Suprimir el sobreajuste (reducir la necesidad de abandono, etc.)
Capa de norma por lotes
Afín->Norma de lote->ReLU
normalización de capas
Limitaciones de la normalización por lotes
La normalización por lotes es una operación de normalización en una sola neurona en una capa intermedia, por lo que el número de muestras de mini lotes no debe ser demasiado pequeño; de lo contrario, será difícil calcular la información estadística de una sola neurona.
Si la distribución de la entrada neta de una neurona cambia dinámicamente en una red neuronal, como una red neuronal recurrente, entonces no se puede aplicar la operación de normalización por lotes.
La normalización de capas normaliza todas las neuronas en una capa intermedia.
La normalización por lotes es muy eficaz en redes neuronales convolucionales (CNN), mientras que la normalización de capas es más común en redes neuronales recurrentes (RNN) y redes Transformer.
Optimización de hiperparámetros
composición
Estructura de red
conexiones entre neuronas
Número de capas
Número de neuronas por capa
Tipo de función de activación
Parámetros de optimización
Métodos de optimización de red.
tasa de aprendizaje
Tamaño de muestra para lotes pequeños
coeficiente de regularización
Datos de validación (conjunto de validación)
El rendimiento de los hiperparámetros no se puede evaluar utilizando datos de prueba
Si utiliza datos de prueba para confirmar la "bondad" del valor del hiperparámetro, el valor del hiperparámetro se ajustará para que solo se ajuste a los datos de la prueba.
Los datos de entrenamiento se utilizan para aprender parámetros (pesos y sesgos) y los datos de validación se utilizan para la evaluación del rendimiento de los hiperparámetros. Para confirmar la capacidad de generalización, los datos de la prueba deben usarse al final (idealmente solo una vez)
Mejoramiento
búsqueda de cuadrícula
Apunte al correcto probando todas las combinaciones de hiperparámetros Métodos para la configuración de hiperparámetros grupales.
Elija varios valores de "experiencia". Por ejemplo, la tasa de aprendizaje α, podemos establecer α ∈ {0,01, 0,1, 0,5, 1,0}.
búsqueda aleatoria
Establezca el rango de hiperparámetros y tome muestras aleatoriamente del rango establecido de hiperparámetros
Evalúe la precisión del reconocimiento a través de datos de validación (pero establezca una época muy pequeña)
Repita lo anterior (100 veces, etc.) y reduzca el rango de hiperparámetros en función de los resultados de su precisión de reconocimiento.
optimización bayesiana
Asignación dinámica de recursos
regularización de la red
Propósito: Suprimir el sobreajuste
caída de peso
La caída de peso es un método que se ha utilizado con frecuencia para suprimir el sobreajuste. Este método penaliza los pesos grandes durante el proceso de aprendizaje.
En pocas palabras, la función de pérdida se convierte en
λ es un hiperparámetro que controla la fuerza de la regularización
método de descarte
Método de abandono
Si el modelo de red se vuelve muy complejo, será difícil abordarlo utilizando únicamente la caída de peso.
El método de eliminar neuronas aleatoriamente durante el proceso de aprendizaje elige descartar neuronas aleatoriamente cada vez. La forma más sencilla es establecer una probabilidad fija p. Para cada neurona, existe una probabilidad p de determinar si se debe retener.
aumento de datos
Rotar, voltear, escalar, traducir, agregar ruido
suavizado de etiquetas
Agregue ruido a las etiquetas de salida para evitar el sobreajuste del modelo
Modelo de método de aprendizaje independiente.
Aprendizaje conjunto
Integre múltiples modelos a través de una determinada estrategia para mejorar la precisión de la toma de decisiones a través de la toma de decisiones grupal. La cuestión principal en el aprendizaje conjunto es cómo integrar múltiples modelos. Las estrategias de integración más utilizadas incluyen el promedio directo, el promedio ponderado, etc.
Autoformación y formación colaborativa
Todos pertenecen al aprendizaje semi-supervisado.
Auto-entrenamiento
El autoentrenamiento consiste en usar primero datos etiquetados para entrenar un modelo y usar este modelo para predecir las etiquetas de muestras no etiquetadas, agregar muestras con una confianza de predicción relativamente alta y sus pseudoetiquetas predichas al conjunto de entrenamiento y luego volver a entrenar el nuevo modelo. y siga repitiendo este proceso.
entrenamiento colaborativo
El coentrenamiento es un método mejorado de autoentrenamiento
Dos clasificadores basados en diferentes puntos de vista se promocionan entre sí. Muchos datos tienen diferentes perspectivas que son relativamente independientes.
Debido a la independencia condicional de diferentes perspectivas, los modelos entrenados en diferentes perspectivas equivalen a comprender el problema desde diferentes perspectivas y tienen cierta complementariedad. La formación colaborativa es un método que aprovecha esta complementariedad para realizar la autoformación. Primero, se entrenan dos modelos f1 y f2 en el conjunto de entrenamiento de acuerdo con diferentes perspectivas, y luego se usan f1 y f2 para predecir en el conjunto de datos sin etiquetar. Se seleccionan muestras con una confianza de predicción relativamente alta para agregarlas al conjunto de entrenamiento. Se vuelven a entrenar dos perspectivas diferentes y se repite este proceso.
aprendizaje multitarea
Los modelos generales de aprendizaje automático están dirigidos a una única tarea específica, como el reconocimiento de dígitos escritos a mano, la detección de objetos, etc. Los modelos para diferentes tareas se aprenden por separado en sus respectivos conjuntos de entrenamiento.
Si dos tareas están relacionadas, habrá algún conocimiento compartido entre ellas y este conocimiento será útil para ambas tareas. Estos conocimientos compartidos pueden ser representaciones (características), parámetros del modelo o algoritmos de aprendizaje, etc.
tipo
transferir aprendizaje
Si hay una tarea relacionada que ya tiene una gran cantidad de datos de entrenamiento, aunque la distribución de estos datos de entrenamiento es diferente de la de la tarea objetivo, debido a la escala relativamente grande de los datos de entrenamiento, asumimos que podemos aprender algo. conocimiento generalizable a partir de él, entonces este conocimiento será útil para las tareas de Target y será de alguna ayuda. Cómo transferir el conocimiento generalizable en los datos de entrenamiento de tareas relacionadas a la tarea objetivo es el problema que debe resolverse mediante el aprendizaje por transferencia.
El aprendizaje por transferencia se refiere al proceso de transferencia de conocimiento entre dos campos diferentes, utilizando el conocimiento aprendido en el dominio de origen (dominio de origen) DS para ayudar a las tareas de aprendizaje en el dominio de destino (dominio de destino) DT. La cantidad de muestras de entrenamiento en el dominio de origen es generalmente mucho mayor que la del dominio de destino.
Clasificación
aprendizaje por transferencia inductiva
Se aprende un modelo en el conjunto de datos de entrenamiento que minimiza el riesgo esperado (es decir, la tasa de error en la distribución de datos reales).
Derivando el aprendizaje por transferencia
Aprenda un modelo que minimice el error en un conjunto de pruebas determinado
El ajuste fino es un método de aplicación del aprendizaje por transferencia. Por lo general, se refiere al uso de conjuntos de datos nuevos y específicos de tareas para realizar capacitación adicional sobre la base de un modelo ya entrenado para mejorar el rendimiento del modelo en una tarea específica. El propósito del ajuste es utilizar el conocimiento general aprendido por el modelo previamente entrenado en datos a gran escala para acelerar y optimizar el proceso de aprendizaje en tareas específicas.
el aprendizaje permanente
pregunta
Una vez que se completa la capacitación, el modelo permanece fijo y ya no se actualiza de forma iterativa.
Sigue siendo muy difícil que un modelo tenga éxito en muchas tareas diferentes al mismo tiempo.
El aprendizaje permanente, también llamado aprendizaje continuo, se refiere a la capacidad de aprendizaje continuo como los humanos, utilizando la experiencia y el conocimiento aprendido en tareas históricas para ayudar a aprender nuevas tareas que surgen constantemente, y estas experiencias y conocimientos se acumulan continuamente y no cambiarán debido a nuevas tareas y olvidar viejos conocimientos.
En el aprendizaje permanente, se supone que un algoritmo de aprendizaje permanente ha aprendido un modelo en las tareas históricas T1, T2, · · ·, Tm. Cuando aparece una nueva tarea Tm 1, este algoritmo puede aprender un modelo basado en las tareas pasadas aprendidas. m tareas. conocimiento para ayudar a la m 1ª tarea, mientras se acumula conocimiento en todas las m 1 tareas.
Esta configuración es muy similar al aprendizaje por transferencia inductiva, pero el objetivo del aprendizaje por transferencia inductiva es optimizar el desempeño de la tarea objetivo sin preocuparse por la acumulación de conocimiento. El objetivo del aprendizaje permanente es el aprendizaje continuo y la acumulación de conocimientos. Además, a diferencia del aprendizaje multitarea, el aprendizaje permanente no implica aprender todas las tareas simultáneamente.
metaaprendizaje
Según el teorema del almuerzo gratis, ningún algoritmo de aprendizaje universal es eficaz en todas las tareas. Por lo tanto, cuando utilizamos algoritmos de aprendizaje automático para implementar una determinada tarea, normalmente necesitamos "discutir el asunto" y elegir el modelo, la función de pérdida, el algoritmo de optimización y los hiperparámetros adecuados en función de las tareas específicas.
La capacidad de ajustar dinámicamente sus propios métodos de aprendizaje se denomina metaaprendizaje, también conocido como aprendizaje del aprendizaje.
Otro problema de aprendizaje automático relacionado con el metaaprendizaje es el aprendizaje de muestras pequeñas.
Dos métodos típicos de metaaprendizaje
Metaaprendizaje basado en optimizadores
La diferencia entre diferentes algoritmos de optimización radica en las diferentes reglas para actualizar parámetros. Por lo tanto, un metaaprendizaje natural es aprender automáticamente una regla para actualizar parámetros, es decir, modelar el proceso de descenso de gradiente a través de otra red neuronal (como una neuronal recurrente). red).
Metaaprendizaje independiente del modelo
Es un algoritmo de metaaprendizaje simple, independiente del modelo y de la tarea.