Aprendizaje automático: la regularización resuelve el problema de sobreajuste

1. Problema de sobreajuste

La siguiente figura es un ejemplo de un problema de regresión:
Insertar descripción de la imagen aquí
el primer modelo es un modelo lineal, no se adapta bien y no puede adaptarse bien a nuestro conjunto de entrenamiento; el tercer modelo es un modelo de cuarta potencia, que pone demasiado énfasis en ajustar los datos originales. . , y pierde la esencia del algoritmo: predecir nuevos datos. Podemos ver que si se le da un nuevo valor para predecir, funcionará muy mal y se sobreajustará. Aunque puede adaptarse muy bien a nuestro conjunto de entrenamiento, puede que no sea efectivo al predecir nuevas variables de entrada. Bien; y el modelo intermedio parece ser la mejor opción.

También existe un problema de este tipo en los problemas de clasificación:
Insertar descripción de la imagen aquí
en términos de comprensión de polinomios, cuanto mayor sea el grado de x, mejor será el ajuste, pero la capacidad de predicción correspondiente puede empeorar.

¿Cómo afrontar el problema de sobreajuste?
1. Descartar algunas características que no puedan ayudarnos a predecir correctamente. Puede seleccionar manualmente qué características conservar o utilizar algunos algoritmos de selección de modelos como ayuda (como PCA)
2. Regularización. Mantenga todas las funciones, pero reduzca la magnitud de los parámetros.

2. Regularización

En el problema de regresión anterior, si nuestro modelo es:
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 + θ 3 x 3 3 + θ 4 x 4 4 {h_\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}+{\theta_{3}} {x_ {3} ^ 3} + {\ theta_ {4}} {x_ {4} ^ 4}hi( x )=i0+i1X1+i2X22+i3X33+i4X44

Podemos ver en los ejemplos anteriores que son esos términos de orden superior los que causan el sobreajuste, por lo que si podemos acercar los coeficientes de estos términos de orden superior a 0, podemos obtener un buen ajuste.

Entonces lo que tenemos que hacer es reducir los valores de estos parámetros θ hasta cierto punto, que es el método básico de regularización. Decidimos reducir θ 3 {\theta_{3}}i3Suma θ 4 {\ theta_ {4}}i4El tamaño de , lo que tenemos que hacer es modificar la función de costos, donde θ 3 {\theta_{3}}i3Suma θ 4 {\ theta_ {4}}i4Establece un pequeño castigo. Al hacerlo, también debemos tener en cuenta esta penalización al intentar minimizar el costo, lo que en última instancia lleva a elegir un θ 3 {\theta_{3}} más pequeño.i3Suma θ 4 {\ theta_ {4}}i4.
Cuanto menor sea el valor del parámetro, más fluida y simple será la función que obtenemos, por lo que es menos propensa a problemas de sobreajuste. θ 3 {\theta_{3}} seleccionado a través de dicha función de costoi3Suma θ 4 {\ theta_ {4}}i4El impacto en los resultados de las previsiones es mucho menor que antes.

Determine el rango del rango: min ⁡ θ 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + 1000 θ 3 2 + 10000 θ 4 2 ] \underset{\ theta }{\origin{\min }}\,\frac{1}{2m}[\sum\limits_{i=1}^{m}{ { {\left( { {h}_{\ theta } } \left({ {x}^{(i)}}\right)-{ {y}^{(i)}}\right)}^{2}}+1000\theta_{3}^{2} + 10000\theta_{4}^{2}]}imin2m_ _1[yo = 1m( hi( x( yo ) )y( yo ) )2+1000 yo32+10000 yo42]

Si tenemos muchas funciones y no sabemos cuál de ellas queremos penalizar, penalizaremos todas las funciones y dejaremos que el software de optimización de funciones de costos elija el grado de estas penalizaciones. El resultado es una suposición más simple que puede evitar problemas de sobreajuste: J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J\left( \theta \right)=\frac{1}{2m}[\sum\limits_{i=1}^{m}{ { {({h_ \ theta }({ { x } ^ {(i)}})-{ {y}^{(i)}})}^{2}}+\lambda \sum\limits_{j=1}^{n}{ \theta_{j}^{ 2}}]}j( yo )=2m_ _1[yo = 1m( hi( x( yo ) )y( yo ) )2+yoj = 1norteij2]

Entre ellos, λ también se denomina parámetro de regularización ( Parámetro de regularización ).

El papel de λ: controla el equilibrio entre dos objetivos diferentes. El primer objetivo está relacionado con el primer término de la función de costos, es decir, queremos ajustar mejor los datos. El segundo objetivo está relacionado con el segundo término, que es mantener los parámetros, manténgalo lo más pequeño posible para mantener el modelo de hipótesis simple y evitar el sobreajuste.

Nota: Por convención, no especificamos θ 0 {\theta_{0}}i0ejecutar el castigo. La posible comparación entre el modelo regularizado y el modelo original se muestra en la siguiente figura:
Insertar descripción de la imagen aquí
Si el parámetro de regularización seleccionado λ \lambdaSi λ es demasiado grande, todos los parámetros se minimizarán, lo que hará que el modelo se convierta enh θ ( x ) = θ 0 {h_\theta}\left( x \right)={\theta_{0}}hi( x )=i0, que es la situación que muestra la línea recta roja en la figura anterior, lo que provoca un ajuste insuficiente.
Entonces, ¿por qué el término agregado λ = ∑ j = 1 n θ j 2 \lambda =\sum\limits_{j=1}^{n}{\theta_j^{2}}yo=j = 1norteij2Puedes hacer θ \theta¿Qué pasa si el valor de θ disminuye?
Porque si dejamosλ \lambdaSi el valor de λ es grande, para quela función de costolo más pequeña posible, todos losθ \thetaEl valor de θ (excluyendoθ 0 {\theta_{0}}i0) se reducirá hasta cierto punto.
Pero si λ \lambdaEl valor de λ es demasiado grande, entoncesθ \thetaθ (excluyendoθ 0 {\theta_ {0}}i0) tenderá a 0, por lo que lo que obtenemos sólo puede ser una recta paralela a xxLa línea recta del eje x .

Entonces, para la regularización, debemos elegir un λ \lambda razonableEl valor de λ puede aplicar mejor la regularización.

3. Regularización de la regresión lineal.

Para la solución de la regresión lineal, previamente derivamos dos algoritmos de aprendizaje: uno basado en el aprendizaje automático de descenso de gradiente (método de descenso de gradiente multivariado ) y otro basado en ecuaciones normales.

1. Descenso de gradiente

La función de costos de la regresión lineal regularizada es:

J ( θ ) = 1 2 m ∑ i = 1 m [ ( ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ) ] J\left( \theta \ derecha)=\frac{1}{2m}\sum\limits_{i=1}^{m}{[({ { ({h_\theta}({ {x}^{(i)}})-{ {y}^{(i)}})}^{2}}+\lambda \sum\limits_{j=1}^{n}{\theta _{j}^{2}})]}j( yo )=2m_ _1yo = 1m[( ( hi( x( yo ) )y( yo ) )2+yoj = 1norteij2)]

Si queremos usar el descenso de gradiente para minimizar esta función de costo, porque no hemos calculado θ 0 \theta_0i0Se realiza la regularización, por lo que el algoritmo de descenso de gradiente se dividirá en dos situaciones:

R epetir RepetirRepita hasta que _ _ _ _hasta n t i l convergencia convergenciaconvergencia { _ _ _ _ _ _ _

​θ 0 : = θ 0 − a 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) ) {\theta_0}:={\theta_0}-a \frac{1}{m}\sum\limits_{i=1}^{m}{(({h_\theta}({ {x} ^{(i)}})-{ {y}^{( i)}})x_ {0}^{(i)}})i0:=i0ametro1yo = 1m(( hi( x( yo ) )y( yo ) )x0( yo ))

​θ j : = θ j − a [ 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) xj ( i ) + λ m θ j ] {\theta_j}:={ \theta_j}-a[\frac{1}{m}\sum\limits_{i=1}^{m}{(({h_\theta}({ {x}^{(i)}})- { {y}^{(i)}})x_{j}^{\left( i \right)}}+\frac{\lambda }{m}{\theta_j}]ij:=ijun [metro1yo = 1m(( hi( x( yo ) )y( yo ) )xj( yo )+metroyoij]

​para paraf o j = 1 , 2 , . . . nj=1,2,...nj=1 ,2 ,... norte

​ }

Para el algoritmo anterior, j = 1, 2,..., nj=1,2,...,nj=1 ,2 ,... ,Después de ajustar la fórmula de actualización en el momento n , podemos obtener:

θ j : = θ j ( 1 − a λ m ) − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) xj ( i ) {\theta_j}:={\theta_j }(1-a\frac{\lambda }{m})-a\frac{1}{m}\sum\limits_{i=1}^{m}{({h_\theta}({ {x } ^{(i)}})-{ {y}^{(i)}})x_{j}^{\left(i \right)}}ij:=ij( 1ametroyo)ametro1yo = 1m( hi( x( yo ) )y( yo ) )xj( yo )

Como se puede ver en la fórmula anterior, en primer lugar, el primer término, ( 1 − a λ m ) (1-a\frac{\lambda }{m})( 1ametroyo) es un número ligeramente menor que 1 porque normalmenteaaa es un número muy pequeño ymmm suele ser muy grande y el primer término es equivalente aθ j {\theta_j}ijUn poco más pequeño. El segundo término es el mismo que la actualización del descenso de gradiente antes de agregar el término de regularización. Por lo tanto, el cambio del algoritmo de descenso de gradiente de regresión lineal regularizada es que cada vez que θ \theta se actualiza según las reglas de actualización del algoritmo original.El valor theta se reduce en un valor adicional.

2. Ecuación normal

También podemos usar ecuaciones normales para resolver el modelo de regresión lineal regularizado, el método es el siguiente: El
Insertar descripción de la imagen aquí
tamaño de la matriz en la figura es (n + 1) ∗ (n + 1) (n+1)*(n+1)( n.+1 )( n.+1 )

4. Regularización de la regresión logística.

Aprendizaje automático para problemas de regresión logística : algoritmo de regresión logística , que utiliza el método de descenso de gradiente para optimizar la función de costos J (θ) J\left( \theta \right)j( yo ) .

Insertar descripción de la imagen aquí
Calcule la derivada usted mismo. De manera similar, para la regresión logística, también agregamos una expresión regularizada a la función de costos para obtener la función de costos:
J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) log ⁡ ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J\left( \theta \right ) =\frac{1}{m}\sum\limits_{i=1}^{m}{[-{ { y}^{(i)}}\log \left( {h_\theta}\left( { {x}^{(i)}} \right) \right)-\left( 1-{ { y}^{(i)}} \right)\log \left( 1-{h_\theta}\ izquierda ( { {x}^{(i)}} \right) \right)]}+\frac{\lambda }{2m}\sum\limits_{j=1}^{n}{\theta _ {j } ^{2}}j( yo )=metro1yo = 1m[ y( yo )iniciar sesión( hi( x( yo ) ))( 1y( yo ) )iniciar sesión( 1hi( x( yo ) )))]+2m_ _yoj = 1norteij2
Para minimizar esta función de costo, mediante derivación, el algoritmo de descenso de gradiente es:

R epetir RepetirRepita hasta que _ _ _ _hasta n t i l convergencia convergenciaconvergencia { _ _ _ _ _ _ _

​θ 0 : = θ 0 − a 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) ) {\theta_0}:={\theta_0}-a \frac{1}{m}\sum\limits_{i=1}^{m}{(({h_\theta}({ {x} ^{(i)}})-{ {y}^{( i)}})x_ {0}^{(i)}})i0:=i0ametro1yo = 1m(( hi( x( yo ) )y( yo ) )x0( yo ))

​θ j : = θ j − a [ 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) xj ( i ) + λ m θ j ] {\theta_j}:={\ theta_j}-a[\frac{1}{m}\sum\limits_{i=1}^{m}{({h_\theta}({ {x}^{(i)}})-{ { y }^{(i)}})x_{j}^{\left( i \right)}}+\frac{\lambda }{m}{\theta_j}]ij:=ijun [metro1yo = 1m( hi( x( yo ) )y( yo ) )xj( yo )+metroyoij]

​para paraf o j = 1 , 2 , . . . nj=1,2,...nj=1 ,2 ,... norte

​ }

Nota: Parece lo mismo que la regresión lineal, pero sabemos que h θ ( x ) = g ( θ TX ) {h_\theta}\left( x \right)=g\left( {\theta^T}X \ bien)hi( x )=gramo( yoT X), por lo que es diferente de la regresión lineal.

Se trata de regularización. Este artículo son algunas notas que tomé mientras estudiaba el aprendizaje automático de Andrew Ng. Si tiene alguna pregunta, ¡no dude en preguntar!

Supongo que te gusta

Origin blog.csdn.net/Luo_LA/article/details/127640971
Recomendado
Clasificación