Aprendizaje por refuerzo profundo (edición Wang Shusen) Notas de estudio (1) - Conceptos básicos del aprendizaje automático

prefacio 

        Dado que mi trabajo está relacionado con el aprendizaje de refuerzo profundo, quiero encontrar una oportunidad para revisar el conocimiento relevante del aprendizaje de refuerzo profundo. Tengo este libro a mano. Siento que los puntos de conocimiento son bastante concisos y el contenido es bastante completo. También proporciona algunos materiales de estudio. Así que abre un pozo para registrar el proceso de aprendizaje de este libro. Los materiales relevantes (PPT, código fuente) de este libro se pueden obtener en el siguiente enlace: https://www.ituring.com.cn/book/2982

        Primero, hablaremos sobre algunas partes teóricas básicas del aprendizaje automático en el orden de este libro.

1.1 Modelo lineal

         Los modelos lineales son la clase más simple de modelos de aprendizaje automático supervisado y, a menudo, se usan para tareas simples de aprendizaje automático. Se puede pensar en un modelo lineal como una red neuronal con una sola capa.

regresión lineal

        Un modelo lineal es aquel que predice el valor de una variable de salida (variable dependiente) a través de una combinación lineal de una serie de variables de entrada (variables independientes). Entre ellos, la combinación lineal se refiere a multiplicar las variables respectivas por un peso y luego agregar una intersección constante. Este proceso se puede expresar mediante la siguiente fórmula:

f(\textbf{x};\mathbf{w},b)=w_1x_1+w_2x_2+...+w_nx_n+b

        donde f(\mathbf{x};\mathbf{w},b) es la variable de salida, x_1es x_nla variable independiente, bes el intercepto w_1y w_nes el peso de cada variable. Las combinaciones lineales también se pueden escribir de la siguiente manera: 

f(\mathbf{x};\mathbf{w},b)=\mathbf{x}^T\mathbf{w}+b

        Por ejemplo, en el tema de los precios de la vivienda, \mathbf{x}son las características de la casa ( x_1el área de la casa, x_2la ubicación de la casa, etc.), f(\mathbf{x};\mathbf{w},b)que es el precio de la casa, que depende tanto de las características de la casa y \mathbf{x}la suma de parámetros . Si es el área de la casa, entonces es la contribución del área de la casa al precio de la casa. Cuanto mayor sea, más fuerte será la correlación entre el precio de la casa y el área de la casa, por eso se llama peso. Independientemente de las características de la casa, simplemente se suma a la función lineal, por lo que se llama compensación. La compensación puede pensarse como el promedio o la mediana de los precios de la vivienda en el mercado, y no tiene nada que ver con las características de la vivienda a tasar.\mathbf{w}bx_1w_1w_1\mathbf{w}b\mathbf{x}^T\mathbf{w}b

        La regresión lineal es un algoritmo de aprendizaje automático basado en un modelo lineal que busca encontrar la línea que mejor se ajuste para predecir el valor de una variable de salida. Específicamente, la regresión lineal usa muestras del conjunto de datos de entrenamiento para determinar los pesos \textbf{w}y las intersecciones de cada variable independiente bpara hacer predicciones sobre nuevos datos:

f(\mathbf{x};\mathbf{\sombrero{w}},\sombrero{b})=\mathbf{x}^T\mathbf{\sombrero{w}}+\sombrero{b}

método de mínimos cuadrados

        Los mínimos cuadrados son un método matemático común que se utiliza para ajustar datos y resolver modelos de regresión lineal. Su idea principal es determinar los parámetros desconocidos en el modelo minimizando el error cuadrático entre el valor predicho y el valor real.

        Específicamente, supongamos que tenemos un conjunto de datos (x_1,y_1),(x_2,y_2)\cpuntos (x_n,y_n)y deseamos encontrar un f(\mathbf{x};\mathbf{w},b)=\mathbf{x}^T\mathbf{w}+bmodelo lineal de la forma para describir estos datos. \textbf{w}Podemos usar el método de mínimos cuadrados para determinar el valor de la suma de parámetros bde modo que la suma de los cuadrados de las distancias desde todos los puntos de datos a la línea recta sea la más pequeña.

         Por ejemplo, en el tema de los precios de la vivienda, el modelo ipredice el precio de la primera casa \hat{y}_i=f(\mathbf{x}_i;\mathbf{w},b), y el precio real de esta casa es y_i, esperamos y_iestar \hat{y}_ilo más cerca posible, por lo que (\hat{y}_i-y_i)^2cuanto menor sea la diferencia de cuadrados, mejor, define el función de pérdida:

L(\mathbf{w},b)=\frac{1}{2n}\sum_{i=1}^{n}[f(\mathbf{x}_i;\mathbf{w},b)-y_i ]^2

        El método de los mínimos cuadrados espera encontrar la suma que haga que la función de pérdida sea lo más pequeña posible, es decir, que la predicción del modelo sea lo más precisa \textbf{w}posible b . Los algoritmos de optimización numérica (como el descenso de gradiente estocástico) se usan más comúnmente en la práctica para actualizar iterativamente la \textbf{w}suma b

        Cuando el número de parámetros del modelo es grande y los datos de entrenamiento no son suficientes, la regularización se usa a menudo para aliviar el sobreajuste Después de agregar el término de regularización, el modelo de mínimos cuadrados anterior se convierte en:

\min_{\mathbf{w},b} L(\mathbf{w},b)+\lambda R(\mathbf{w})

Entre ellos L(\mathbf{w},b)está la función de pérdida, R(\mathbf{w})es el término regular, y \lambdaes el hiperparámetro para equilibrar la función de pérdida y el término regular. Los elementos de regularización comúnmente utilizados son el elemento de regularización L1 y el elemento de regularización L2: 

Regresión logística

        La regresión logística es un algoritmo de aprendizaje automático para problemas de clasificación. Predice etiquetas para nuevos puntos de datos ajustando la relación entre entidades y etiquetas en el conjunto de datos. El resultado de la regresión logística es un valor de probabilidad que representa la probabilidad de que el punto de datos pertenezca a una determinada clase.

        La función matemática utilizada en la regresión logística es la función sigmoidea, que asigna un valor de entrada a un valor de probabilidad entre 0 y 1. La fórmula de la función sigmoidea es:

 sigmoide(z)=\frac{1}{1+exp(-z)}

        Antes de explicar el algoritmo, hablemos de la entropía cruzada (Cross-entropy) , que es un indicador que se utiliza para medir la diferencia entre dos distribuciones de probabilidad. En el aprendizaje automático, la entropía cruzada se usa a menudo para medir la diferencia entre los resultados previstos del modelo y los resultados reales . usar vector

\mathbf{p}=[p_1,\cdots,p_m]^T       y          \mathbf{q}=[q_1,\cdots,q_m]^T

Representa dos distribuciones de probabilidad discretas m-dimensionales, los elementos del vector son todos no negativos, la suma de todos los elementos es 1 y la entropía cruzada entre ellos se define como

H(\mathbf{p},\mathbf{q})=-\sum_{j=1}^{m}p_j\cdot lnq_j

 La entropía es un caso especial de entropía cruzada:

H(\mathbf{p})=H(\mathbf{p},\mathbf{p})=-\sum_{j=1}^{m}p_j\cdot lnp_j

        Similar a la entropía cruzada es la divergencia KL (divergencia de Kullback-Leibler) , también conocida como entropía relativa (entropía relativa), que también es un método utilizado para medir la diferencia entre dos distribuciones de probabilidad. Para distribuciones discretas, el grado de divergencia KL se define como

KL(\mathbf{p},\mathbf{q})=\sum_{j=1}^{m}p_j\cdot ln\frac{p_j}{q_j}

Aquí se acepta ln\frac{0}{0}=0que el problema de la divergencia KL es no negativo, y sólo \mathbf{p}=\mathbf{q}cuando el valor de la divergencia KL es 0. Esto significa que cuando dos distribuciones de probabilidad coinciden, su divergencia KL alcanza un valor mínimo de 0. No es difícil ver a partir de la definición de divergencia KL y entropía cruzada

KL(\mathbf{p},\mathbf{q})=H(\mathbf{p},\mathbf{q})-H(\mathbf{p})

Dado que la entropía es una función que H(\mathbf{p})no depende de , una vez fijada , la divergencia KL es igual a la entropía cruzada más una constante. Si es fija, entonces la divergencia KL optimizada es equivalente a la entropía cruzada optimizada. En el trabajo real , los datos La distribución siempre es fija, y necesitamos hacer que la distribución predicha por el modelo sea lo más cercana posible a la distribución de los datos, es decir, tratar la divergencia KL como un problema de optimización de minimización, que es equivalente a la problema de optimización de minimización de entropía cruzada, que es la razón por la cual la entropía cruzada se usa a menudo como una función de pérdida.\mathbf{q}\textbf{p}\textbf{p}\mathbf{q}

        De acuerdo con el ejemplo del libro, recopile n informes de análisis de sangre y el diagnóstico final como conjunto de entrenamiento: (x_1,y_1),(x_2,y_2)\cpuntos (x_n,y_n), el vector x_i\epsilon \mathbb{R}^drepresenta todos los indicadores en cada i informe de análisis de sangre, y la etiqueta binaria y_i=1representa positivo y y_i=0negativo. La predicción del clasificador para el i-ésimo informe de análisis de sangre es \hat{y}_i=f(\mathbf{x}_i;\mathbf{w},b), pero la situación real es que y_isi desea utilizar la entropía cruzada para medir la diferencia entre el valor predicho y el valor real, debe expresarlos como vectores:

\begin{pmatrix} y_i\\ 1-y_i \end{pmatrix}         y        \begin{pmatrix} \hat{y}_i\\ 1-\hat{y}_i \end{pmatrix}

El primer elemento de ambos vectores corresponde a la probabilidad de ser positivo, y el segundo elemento corresponde a la probabilidad de ser negativo. Dado que se dan las etiquetas de las muestras de entrenamiento y_i, cuanto más cerca estén los dos vectores, menor será su entropía cruzada . Defina la función de pérdida del problema como el valor medio de la entropía cruzada:

L(\mathbf{w},b)=\frac{1}{n}\sum_{i=1}^{n}H(\begin{pmatrix} y_i\\ 1-y_i \end{pmatrix},\ comenzar{pmatrix} \hat{y}_i\\ 1-\hat{y}_i \end{pmatrix})

                      =-\frac{1}{n}\sum_{i=1}^{n}[y_i ln\hat{y}_i+(1-y_i)ln(1-\hat{y}_i)]

Queremos encontrar la suma que haga que la función de pérdida sea lo más pequeña posible, es decir, que la predicción del clasificador sea lo más precisa \textbf{w}posible b:

\min_{\mathbf{w},b} L(\mathbf{w},b)+\lambda R(\mathbf{w})

Se puede observar que la formulación es similar a los problemas de regresión, y este tipo de problema de optimización se denomina regresión logística . Por lo general, el algoritmo de descenso de gradiente estocástico se usa para actualizar iterativamente los parámetros.

clasificador softmax

        El ejemplo de la sección anterior era un problema de clasificación binaria, donde los datos se dividían en solo dos clases, negativa y positiva. En cambio, esta sección presentará un modelo de clasificación múltiple: el clasificador Softmax, que asigna vectores de entrada a una distribución de probabilidad. En el clasificador Softmax, cada categoría corresponde a un puntaje, y estos puntajes son normalizados por la función Softmax para obtener el valor de probabilidad correspondiente a cada categoría . Por lo tanto, el clasificador Softmax se puede utilizar para predecir a qué categoría pertenece una muestra de entrada.

        Antes de introducir el clasificador softmax, primero introduzca la función de activación softmax. Su entrada y salida son vectores k-dimensionales. Si es \mathbf{z}=[z_1,\cdots,z_k]^Tcualquier vector real k-dimensional, sus elementos pueden ser positivos o negativos. La función softmax se define como:

softmax(\mathbf{z})=\frac{1}{\sum_{l=1}^{k}exp(z_l)}[exp(z_1),\cdots,exp(z_k)]^T

La salida de esta función es un vector k-dimensional cuyos elementos son todos no negativos y suman 1.

         El clasificador lineal softmax es "función lineal + función de activación softmax", que se define como

\mathbf{\pi}=softmax(\mathbf{z}), en   \mathbf{z}=\mathbf{W}x+\mathbf{b}

donde \mathbf{W}\epsilon \mathbb{R}^{k*d}es \mathbf{b}\epsilon \mathbb{R}^kel parámetro del clasificador, d es la dimensión del vector de entrada y k es el número de etiquetas.

        El ejemplo en el libro es que hay n=60,000 imágenes digitales escritas a mano, cada una con un tamaño de 28*28 píxeles, y la imagen debe convertirse en un vector de d=28*28=784 dimensiones, indicado como \mathbf{x}_1,\cdots,\mathbf{x}_n\epsilon \mathbb{R}^d. Cada imagen tiene una etiqueta, que es un número entero del 0 al 9, un total de 10, y debe codificarse en caliente, por ejemplo, 0 es [1,0,0,0,0,0,0, 0,0, 0], 1 es [0,1,0,0,0,0,0,0,0,0], ... ,9 es [0,0,0,0,0,0, 0,0, 0,1] , se convierte en un vector caliente de dimensión k=10, denotado como \mathbf{y}_1,\cdots ,\mathbf{y}_n.

        Para la i-ésima imagen \mathbf{x}_i, el clasificador hace una predicción:

\mathbf{\pi}_i=softmax(\mathbf{W\mathbf{x}_i}+b)

Es un vector de k=10 dimensiones que puede reflejar los resultados de la clasificación. Queremos que esté lo más cerca posible de la etiqueta real \mathbf{y}_iy definimos la función de pérdida como la entropía cruzada promedio:

L(\mathbf{W},\mathbf{b})=\frac{1}{n}\sum_{i=1}^{n}H(\mathbf{\mathbf{y}_i,\pi_i})

Queremos encontrar la suma que haga que la función de pérdida sea lo más pequeña posible, es decir, que la predicción del clasificador sea lo más precisa \mathbf{W}posible \mathbf{b}:

\min_{\mathbf{W},\mathbf{b}} L(\mathbf{W},\mathbf{b})+\lambda R(\mathbf{W})

Luego, los parámetros se actualizan iterativamente utilizando el algoritmo de descenso de gradiente estocástico.

1.2 Red neuronal

Red neuronal completamente conectada

        La capa totalmente conectada (Fully Connected Layer) es el tipo de capa más utilizado en las redes neuronales, también conocida como capa densamente conectada o capa totalmente conectada. Su función es conectar todas las neuronas de la capa de entrada con todas las neuronas de la capa de salida, es decir, cada neurona de entrada está conectada con cada neurona de salida.

        En la capa totalmente conectada, la salida de cada neurona se obtiene de la suma ponderada de todas las neuronas de la capa anterior y se transforma de forma no lineal a través de una función de activación. Estos valores de pesos y sesgos son los parámetros que deben aprenderse durante el proceso de entrenamiento de la red neuronal. Por lo tanto, la capa completamente conectada suele ser la capa con más parámetros en el modelo.

         Podemos considerar la capa completamente conectada como un componente básico y luego construir una red neuronal completamente conectada como un bloque de construcción, también llamado perceptrón multicapa:

red neuronal convolucional

        La red neuronal convolucional (CNN) es una red neuronal común de aprendizaje profundo que se utiliza para tareas como la clasificación de imágenes, el reconocimiento de objetos y la visión artificial. Este libro no explica los principios de CNN en detalle y no utilizará estos principios. Solo recuerde: la entrada de CNN es una matriz o tensor de tercer orden, CNN extrae características de este tensor y genera el vector de características extraído. Las imágenes suelen ser matrices (imágenes en escala de grises) y tensores de tercer orden (imágenes en color), a partir de las cuales se pueden usar las CNN para extraer características y luego una o más capas completamente conectadas para clasificación o regresión .

1.3 Descenso de gradiente y retropropagación 

descenso de gradiente

        Tanto el modelo lineal como el entrenamiento de redes neuronales pueden describirse como un problema de optimización sin restricciones:

\min_{\mathbf{w}^{(1)},\cdots \mathbf{w}^{(l)}} L(\mathbf{w}^{(1)},\cdots \mathbf{w} ^{(l)})

        Los algoritmos más utilizados para este tipo de problemas de optimización son el descenso de gradiente y el descenso de gradiente estocástico. Gradiente es un concepto matemático. Para funciones unarias, usamos el concepto de "derivada". La derivada de una función de una variable es un escalar. Para una función multivariante, usamos los conceptos de "gradiente" y "derivada parcial". El gradiente de una función multivariante es un vector, y cada elemento del vector es el parcial. derivada de la función con respecto a una variable.

        En el aprendizaje automático, dado que nuestro objetivo es minimizar la función objetivo, debemos actualizar los parámetros a lo largo de la dirección negativa del gradiente, es decir, el método de descenso del gradiente, que puede acercarse gradualmente al mínimo local de la función. Para una función objetivo dada, primero calculamos sus \mathbf{w}_{ahora}^{(1)}, \cdots ,\mathbf{w}_{ahora}^{(l)}derivadas parciales con respecto a cada parámetro ( ), que forman el vector gradiente. Luego, \alfamultiplicamos el vector de gradiente con un número positivo llamado tasa de aprendizaje y restamos el valor del parámetro actual del resultado para obtener el nuevo valor del parámetro.

\mathbf{w}_{nuevo}^{(i)}\leftarrow \mathbf{w}_{ahora}^{(i)}-\alpha \cdot \bigtriangledown _\mathbf{w^{(i)} }L(\mathbf{w}_{ahora}^{(1)}, \cdots ,\mathbf{w}_{ahora}^{(l)})

Este proceso se repite hasta que se alcanza una condición de convergencia o se alcanza un número predefinido de iteraciones. De esta manera, se puede encontrar un mínimo local de la función objetivo.

Cabe señalar que la idea básica del método de descenso de gradiente es actualizar los parámetros del modelo calculando el gradiente promedio de todas las muestras. No puede garantizar encontrar el mínimo global, porque puede haber múltiples mínimos locales. El método de descenso de gradiente estocástico solo usa la información de gradiente de una sola muestra para actualizar los parámetros cada vez, por lo que es fácil saltar fuera del mínimo local.

retropropagación

Backpropagation es un algoritmo para entrenar redes neuronales. Calcula el gradiente de la función de pérdida para cada parámetro y luego usa el método de descenso de gradiente para actualizar los parámetros, de modo que la red neuronal pueda aprender la salida correcta.

Específicamente, el algoritmo de retropropagación primero calcula la salida de la red neuronal a través de la propagación directa y luego compara la salida con el valor real para obtener una función de pérdida. A continuación, el algoritmo calcula el gradiente de cada parámetro a la función de pérdida a través de la regla de la cadena y utiliza el descenso de gradiente para actualizar los parámetros. Este proceso se repite hasta que se alcanza una condición de parada preestablecida.

Resumen de este artículo

El primer capítulo de este libro habla principalmente sobre algunos conceptos básicos del aprendizaje automático para el aprendizaje de refuerzo profundo introductorio, y presenta brevemente modelos lineales, redes neuronales, descenso de gradiente y retropropagación. Si el lector tiene una buena base en aprendizaje automático, puede omitir este capítulo. En términos generales, el contenido de este capítulo es relativamente básico, si desea una comprensión más profunda, puede consultar otros libros.

Supongo que te gusta

Origin blog.csdn.net/qq_42286607/article/details/130125662
Recomendado
Clasificación