Descenso de gradiente de aprendizaje automático

Machine Learning Gradient Descent

El enlace del blogger original es muy bueno.
Este artículo hablará sobre:

(1)Definición de regresión lineal

(2)Regresión lineal univariante



(3)función de costo: un método para evaluar si la regresión lineal se ajusta al conjunto de entrenamiento (4)Descenso de gradiente: uno de los métodos para resolver la regresión lineal (5)escalamiento de características: un método para acelerar la velocidad de ejecución del descenso de gradiente

(6)Regresión lineal multivariante




Regresión lineal Tenga en cuenta una oración: ¡Se requiere la escala de características antes de la regresión lineal multivariante!

Método: La regresión lineal pertenece al aprendizaje supervisado, por lo que el método y el aprendizaje supervisado deben ser iguales. Primero proporcione un conjunto de entrenamiento, aprenda una función lineal de acuerdo con este conjunto de entrenamiento y luego pruebe si esta función está bien entrenada Combine los datos de entrenamiento), seleccione la mejor función (la función de costo es la más pequeña)Nota: (1) Debido a que es una regresión lineal, la función aprendida es una función lineal, es decir, una función lineal (2) Debido a que es una sola variable, solo hay una x
Podemos dar un modelo de regresión lineal univariante: A menudo nos referimos a x como característica y h (x) como hipótesis
Desde el 'método' anterior, definitivamente tenemos una pregunta, ¿cómo podemos ver si la función lineal se ajusta bien? Necesitamos usar la función de costo (función de costo), cuanto menor es la función de costo, mejor es la regresión lineal (mejor se ajusta al conjunto de entrenamiento), por supuesto, el mínimo es 0, que es ajuste completo

Para dar un ejemplo práctico:



Queremos predecir el precio de la casa en función del tamaño de la casa, dado el siguiente conjunto de datos:

Dibuje en el gráfico basándose en el conjunto de datos anterior, como se muestra a continuación:



Necesitamos ajustar una línea recta basada en estos puntos para minimizar la función de costo.

Aunque todavía no sabemos cómo se ve la función de costo, nuestro objetivo es: dado el vector de entrada x, el vector de salida y, el vector theta y la salida el valor de costo
Arriba hemos descrito el proceso general de regresión lineal univariante

Función de costo

El propósito de la función de costo: evaluar la función hipotética, cuanto menor es la función de costo, mejor se ajustan los datos de capacitación La siguiente figura detalla el papel de la función de costo cuando la función de costo es una caja negra
Pero definitivamente queremos saber cuál es la estructura interna de la función de costos. Entonces damos la fórmula a continuación: dónde: Representa el i-ésimo elemento en el vector x Representa el i-ésimo elemento en el vector y Representa una función de hipótesis conocida m es el número de conjuntos de entrenamiento

Por ejemplo, dado el conjunto de datos (1,1), (2,2), (3,3)
Entonces x = [123], y = [123] (la gramática aquí es la gramática del lenguaje Octave, que significa una matriz de 3 * 1)
Si predecimos theta0 = 0 y theta1 = 1, entonces h (x) = x, entonces la función de costo:
J (0,1) = 1 / (2 * 3) * [(h (1) -1) ^ 2 + (h (2) -2) ^ 2 + (h (3) -3) ^ 2] = 0 ;
Si predecimos theta0 = 0 y theta1 = 0.5, entonces h (x) = 0.5x, entonces la función de costo:
J (0,0.5) = 1 / (2 * 3) * [(h (1) -1) ^ 2 + (h (2) -2) ^ 2 + (h (3) -3) ^ 2] = 0,58 ;


Si theta0 es siempre 0, entonces las funciones de theta1 y J son: Si theta0 y theta1 no son fijos, las funciones de theta0, theta1 y J son:
Por supuesto, también podemos utilizar gráficos bidimensionales, es decir, mapas de contorno.

Nota: Si se trata de regresión lineal, la función de función de costo J debe tener forma de cuenco, es decir, solo hay un punto mínimo
Arriba explicamos la definición y fórmula de la función de costo.

Descenso de gradiente

Pero otro problema conduce a ello. Aunque dada una función, podemos saber si la función se ajusta bien de acuerdo con la función de costo. ¿Correcto? Entonces llevamos al descenso de gradiente: podemos encontrar el valor mínimo de la función de costo Principio de descenso de gradiente: Compare la función con una montaña. Nos paramos en una ladera y miramos a nuestro alrededor. Desde qué dirección bajamos un pequeño escalón, el descenso más rápido es
Por supuesto, hay muchas formas de resolver el problema, el descenso de gradiente es solo una de ellas, existe otro método llamado Ecuación Normal
método: (1) Primero determine el tamaño del paso para el siguiente paso, lo llamamos Tasa de aprendizaje (2) Dé un valor inicial arbitrariamente: ; (3) Determine una dirección descendente, baje el ritmo predeterminado y actualice ; (4) Cuando la altura de descenso es menor que un valor definido, deje de descender
algoritmo


Características: (1) El punto inicial es diferente, el valor mínimo obtenido también es diferente, por lo que el descenso del gradiente solo encuentra el valor mínimo local (2) Cuanto más cerca del valor mínimo, más lenta es la velocidad de descenso
Pregunta: si El valor inicial está en la posición mínima local, luego ¿Cómo va a cambiar?Respuesta: porque Ya en la posición mínima local, entonces la derivada debe ser 0, entonces No cambiará
Si obtiene una correcta Valor, la función de costo debe hacerse cada vez más pequeñaPregunta: como conseguirlo ¿valor? Respuesta: observar en cualquier momento Valor, si la función de costo se vuelve más pequeña, entonces está bien, de lo contrario, tome un valor más pequeño
La siguiente figura ilustra el proceso de descenso de gradiente en detalle:
Como puede ver en la imagen de arriba:El punto inicial es diferente, el valor mínimo obtenido también es diferente, Por lo que el descenso de gradiente solo encuentra el mínimo local
Nota: El tamaño del paso de caída es muy importante, porque si es demasiado pequeño, la velocidad de encontrar el valor mínimo de la función es muy lenta, si es demasiado grande, puede ocurrir el fenómeno de sobrepaso del mínimo.
La siguiente figura es el fenómeno de sobreimpulso mínimo:
Si el valor de la tasa de aprendizaje encuentra que la función J ha aumentado, debe reducir el valor de la tasa de aprendizaje

Integración con gradiente descendente y regresión lineal

El descenso de gradiente puede encontrar el valor mínimo de una función Se debe solicitar la regresión lineal, de modo que la función de costo sea mínima
Por lo tanto, podemos aplicar el descenso de gradiente a la función de costo, es decir, integrar el descenso de gradiente y la regresión lineal, como se muestra en la siguiente figura:


El descenso de gradiente se realiza a través de iteraciones sin parar, y prestamos más atención al número de iteraciones, porque esto está relacionado con la velocidad de ejecución del descenso de gradiente, para reducir el número de iteraciones, se introduce el Escalado de características.

Escala de funciones

Este método se utiliza para el descenso de gradientes, con el fin deAcelerar la ejecución del descenso de gradiente; Idea: estandarice el valor de cada característica para hacer el rango de valoresaproximadamenteEstán entre -1<=x<=1
El método común es la normalización media, es decir O: [X-mean (X)] / std (X)

Para dar un ejemplo práctico,

Hay dos características: (1) tamaño, el rango de valores es 0 ~ 2000 (2) # dormitorio, el rango de valores es 0 ~ 5 Después de pasar la escala de características,


Ejercicios
Queremos predecir los resultados del examen final a través del puntaje inicial a mitad de período. La ecuación que queremos obtener es:
Dado el siguiente conjunto de formación:
Examen de mitad de período (Examen de mitad de período)2 final exam
89 7921 96
72 5184 74
94 8836 87
69 4761 78
Queremos realizar el escalado de funciones en (examen de mitad de período) ^ 2, luego ¿Cuál es el valor después de la escala de características?
max = 8836, min = 4761, mean = 6675.5, luego x = (4761-6675.5) / (8836-4761) = -0.47

Regresión lineal multivariante

Anteriormente, solo introdujimos la regresión lineal univariante, es decir, solo hay una variable de entrada, lo cual es imposible en el mundo real, por lo que aquí queremos introducir la regresión lineal multivariante.
Por ejemplo: los precios de la vivienda en realidad están determinados por muchos factores, como el tamaño, la cantidad de dormitorios, la cantidad de pisos, la antigüedad de la casa, etc. Aquí asumimos que los precios de la vivienda están determinados por 4 factores, como se muestra en la siguiente figura:


Definimos el modelo de regresión lineal univariante anteriormente:

Aquí podemos definir un modelo de regresión lineal multivariante:


La función de costo es la siguiente:
Si queremos usar el descenso de gradiente para resolver la regresión lineal multivariante, aún podemos usar el algoritmo de descenso de gradiente tradicional para calcular:



Ejercicios generales:


1. Queremos predecir los resultados del segundo año en base a los resultados de un estudiante en el primer año, x es el número de A obtenido en el primer año, y es el número de A obtenido en el segundo año, Dado el siguiente conjunto de datos:
x y
3 4
2 1
4 3
0 1
(1) ¿Cuál es el número de conjuntos de entrenamiento? 4 (2) ¿Cuál es el resultado de J (0,1)? J (0,1) = 1 / (2 * 4) * [(3-4) ^ 2 + (2-1) ^ 2 + (4-3) ^ 2 + (0-1) ^ 2] = 1 / 8 * (1 + 1 + 1 + 1) = 1/2 = 0,5 ;
También podemos calcular rápidamente J (0,1) por vectorización: