Semana 2 | Stanford CS229 Aprendizaje automático

prefacio

Este artículo son las notas de estudio del curso de aprendizaje automático CS229 de la Universidad de Stanford

La parte principal de este artículo es una reimpresión del Dr. Huang Haiguang. El enlace se proporciona al final del artículo . Si está interesado, puede visitar directamente la página de inicio de las notas para descargar los materiales del curso y los códigos de tarea correspondientes.

Sitio web oficial del curso: CS229: Machine Learning (stanford.edu)

Video del curso: Stanford CS229: Curso de aprendizaje automático, Clase 1 - Andrew Ng (otoño de 2018) - YouTube

Resumen de notas: Resumen de notas | Stanford CS229 Machine Learning_ReturnTmp's Blog-CSDN Blog

Semana 2

4. Regresión lineal con múltiples variables

4.1 Características multidimensionales

Vídeo de referencia: 4 - 1 - Funciones múltiples (8 min).mkv

Hasta ahora, hemos explorado el modelo de regresión de univariante/características. Ahora añadimos más características al modelo de precio de la vivienda, como el número de habitaciones y pisos, etc., para formar un modelo con múltiples variables. Las características en el modelo son ( x 1 , x 2 , . . . , xn ) \left( {x_{1}},{x_{2}},...,{x_{n}} \right)( X1,X2,... ,Xn)

Después de agregar más funciones, presentamos un nuevo conjunto de anotaciones:

nnn representa el número de características

x ( yo ) {x^{\izquierda(yo \derecha)}}X( i ) RepresentanteIILa instancia de entrenamiento i es la i-ésimaen la matriz de característicasLa línea i es un vector(vector).

Por ejemplo, lo anterior

x ( 2 ) = [ 1416 3 2 40 ] {x}^{(2)}\text{=}\begin{bmatrix} 1416\\\ 3\\\ 2\\\ 40 \end{bmatrix}X( 2 ) = 1416 3 2 40 ,

xj ( yo ) {x}_{j}^{\izquierda( yo \derecha)}Xj( yo )Representa el ii en la matriz de características.jjde la fila iLa función j , es decir, laiiEl jjth de la i instancia de entrenamientocaracterísticas j .

Como se muestra arriba x 2 ( 2 ) = 3 , x 3 ( 2 ) = 2 x_{2}^{\left( 2 \right)}=3,x_{3}^{\left( 2 \right)}= 2X2( 2 )=3 ,X3( 2 )=2 ,

Apoya la hipótesis multivariada hhDefina h : h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . . . . . . . + θ nxn h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2} }+...+{\theta_{n}}{x_{n}}hi( X )=i0+i1X1+i2X2+...+inXn,

En esta fórmula hay n + 1 n+1norte+1 parámetro ynnn variables, para simplificar la fórmula, introduzcax 0 = 1 x_{0}=1X0=1 , entonces la fórmula se transforma en:h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ nxn h_{\theta} \left( x \right)={ \theta_ {0}}{x_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n }} {x_{n}}hi( X )=i0X0+i1X1+i2X2+...+inXn

En este momento, los parámetros en el modelo son n + 1 n+1norte+Vector unidimensional , cualquier instancia de entrenamiento también esn + 1 n+1norte+Vector unidimensional, matriz característica XXLa dimensión de X esm ∗ ( n + 1 ) m*(n+1)metro( n+1 ) . Entonces, la fórmula se puede simplificar como:h θ ( x ) = θ TX h_{\theta} \left( x \right)={\theta^{T}}Xhi( X )=iT X, donde el superíndiceTTT significa matriz transpuesta.

4.2 Descenso de gradiente multivariante

Video de referencia: 4 - 2 - Descenso de gradiente para múltiples variables (5 min).mkv

Similar a la regresión lineal univariante, en la regresión lineal multivariante, también construimos una función de costo, que es la suma de los cuadrados de todos los errores de modelado, a saber: J ( θ 0 , θ 1 . . . θ n ) = 1 2 m ∑ i = 1 metro ( h θ ( X ( yo ) ) − y ( yo ) ) 2 J\left( {\theta_{0}},{\theta_{1}}...{\theta_{ n}} \right )=\frac{1}{2m}\sum\limits_{i=1}^{m}{ {\ izquierda ( h_{\theta} \left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}}j( yo0,i1... yon)=2 metros1yo = 1m( hi( X( yo ) )y( yo ) )2 ,

Ejemplo: h θ ( X ) = θ TX = θ 0 + θ 1 X 1 + θ 2 X 2 + . . . + θ nxn h_{\theta}\left( x \right)=\theta^{T}X={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{ 2}}{x_{2}}+...+{\theta_{n}}{x_{n}}hi( X )=iTX _=i0+i1X1+i2X2+...+inXn,

Nuestro objetivo, como en el problema de regresión lineal univariante, es encontrar el conjunto de parámetros que minimizan la función de costo.
El algoritmo de descenso de gradiente por lotes para la regresión lineal multivariante es:

Ahora mismo:

Después de tomar la derivada, obtenemos:

cuando n >= 1 n>=1norte>=1时,
θ 0 : = θ 0 − un 1 metro ∑ yo = 1 metro ( h θ ( X ( yo ) ) − y ( yo ) ) X 0 ( yo ) { {\ 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 )

θ 1 : = θ 1 − un 1 metro ∑ yo = 1 metro ( h θ ( X ( yo ) ) − y ( yo ) ) X 1 ( yo ) { {\ theta }_{1}}:={ { \ theta }_{1}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{({ {h}_ {\theta }}({ {x}^{( i)}})-{ {y}^{(i)}})}x_{1}^{(i)}i1:=i1ametro1yo = 1m( hi( X( yo ) )y( yo ) )x1( yo )

θ 2 : = θ 2 − un 1 metro ∑ yo = 1 metro ( h θ ( X ( yo ) ) − y ( yo ) ) X 2 ( yo ) { {\ theta }_{2}}:={ { \ theta }_{2}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{({ {h}_ {\theta }}({ {x}^{( i)}})-{ {y}^{(i)}})}x_{2}^{(i)}i2:=i2ametro1yo = 1m( hi( X( yo ) )y( yo ) )x2( yo )

Comenzamos seleccionando aleatoriamente una serie de valores de parámetros, calculamos todas las predicciones y luego damos a todos los parámetros un nuevo valor, y así sucesivamente hasta la convergencia.

Ejemplo de código:

计算代价函数
J ( θ ) = 1 2 metro ∑ i = 1 metro ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left( \theta \right)=\frac{1}{2m} \sum\limits_{i=1}^{m}{ { {\left( {h_{\theta}}\left( {x^{(i)}} \right)-{y^{(i)} } \derecho)}^{2}}}j( yo )=2 metros1yo = 1m( hi( X( yo ) )y( yo ) )2
其中:h θ ( X ) = θ TX = θ 0 X 0 + θ 1 X 1 + θ 2 X 2 + . . . + θ nxn {h_{\theta}}\left( x \right)={\theta^{T}}X={\theta_{0}}{x_{0}}+{\theta_{1}}{ x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}hi( X )=iTX _=i0X0+i1X1+i2X2+...+inXn

código pitón :

def computeCost(X, y, theta):
    inner = np.power(((X * theta.T) - y), 2)
    return np.sum(inner) / (2 * len(X))

4.3 Práctica 1 del método de descenso de gradiente - Escalado de características

Video de referencia: 4 - 3 - Descenso de gradiente en la práctica I - Escalado de características (9 min).mkv

Cuando enfrentamos el problema de las características multidimensionales , debemos asegurarnos de que estas características tengan escalas similares , lo que ayudará a que el algoritmo de descenso de gradiente converja más rápido .

Tome el problema del precio de la casa como ejemplo. Supongamos que usamos dos características, el tamaño de la casa y el número de habitaciones. El valor del tamaño es 0-2000 pies cuadrados, y el valor del número de habitaciones es 0-5. Los dos parámetros son coordenadas horizontales y verticales, dibujando el mapa de contorno de la función de costo, se puede ver que la imagen aparecerá muy plana, y el algoritmo de descenso de gradiente necesita muchas iteraciones para converger.

La solución es intentar escalar todas las características entre -1 y 1 tanto como sea posible . Como se muestra en la imagen:

La forma más sencilla es establecer: xn = xn − μ nsn { {x}_{n}}=\frac{ { {x}_{n}}-{ { {\mu}_{n}}}{ { { s}_{n}}}Xn=snXn- metron, donde μ norte {\mu_{n}}metrones la media, sn {s_{n}}snes la desviación estándar.

4.4 Tasa de aprendizaje de la práctica del método de descenso de gradiente 2

Vídeo de referencia: 4 - 4 - Descenso de gradiente en la práctica II - Tasa de aprendizaje (9 min).mkv

El número de iteraciones requeridas para la convergencia del algoritmo de descenso de gradiente varía según el modelo, y no podemos predecirlo de antemano.Podemos dibujar un gráfico del número de iteraciones y la función de costo para observar cuando el algoritmo tiende a converger .

También hay formas automáticas de probar la convergencia, como comparar el cambio en la función de costo con algún umbral (por ejemplo, 0.001) , pero generalmente es mejor mirar un gráfico como el de arriba.

Cada iteración del algoritmo de descenso de gradiente se ve afectada por la tasa de aprendizaje, si la tasa de aprendizaje aaSi a es demasiado pequeño, el número de iteraciones requeridas para lograr la convergencia será muy alto; si la tasa de aprendizajeaaSi a es demasiado grande, es posible que cada iteración no reduzca la función de costo y que cruce el mínimo local y no converja.

Por lo general, puede considerar probar algunas tasas de aprendizaje:

α = 0,01,0,03,0,1,0,3,1,3,10 \alpha=0,01,0,03,0,1,0,3,1,3,10a=0,01 , 0,03 , 0,1 , 0,3 , 1 , 3 , 10

4.5 Regresión propia y polinomial

Video de referencia: 4 - 5 - Características y regresión polinomial (8 min).mkv

Por ejemplo, el problema de predicción del precio de la vivienda,

h θ ( x ) = θ 0 + θ 1 × frente + θ 2 × profundidad h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}\times{frente }+{\theta_{2}}\times{profundidad}hi( X )=i0+i1×frente _ _ _ _ _ _+i2×profundidad _ _ _

x 1 = fachada {x_{1}}= fachadaX1=frente (ancho de la fachada), x 2 = profundidad {x_ {2} } = profundidadX2=d e pt h(纵向深度),x = frente ∗ profundidad = áreax=frente*profundidad=áreaX=frente _ _ _ _ _ _profundidad _ _ _=Sea a (definición), es decir :h θ ( x ) = θ 0 + θ 1 x {h_{\theta}}\left( x \right)={\theta_{0}}+{\theta_{1} } Xhi( X )=i0+i1x _
La regresión lineal no es adecuada para todos los datos, a veces necesitamosuna curva que se ajuste a nuestros datos, como un modelo cuadrático:h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 h_{\theta} \ izquierda( x \derecha)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}hi( X )=i0+i1X1+i2X22
El valor predeterminado: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 + θ 3 x 3 3 h_{\theta}\left( x \right)={\theta_{0}} + {\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}+{\theta_{3}}{x_{3}^3}hi( X )=i0+i1X1+i2X22+i3X33

A menudo necesitamos observar los datos antes de decidir qué modelo probar. Adicionalmente, podemos realizar:

x 2 = x 2 2 , x 3 = x 3 3 { {x}_{2}}=x_{2}^{2},{ {x}_{3}}=x_{3}^{3}X2=X22,X3=X33, transformando así el modelo en un modelo de regresión lineal .

De acuerdo con las propiedades del gráfico de función, también podemos hacer:

h θ ( x ) = θ 0 + θ 1 ( tamaño ) + θ 2 ( tamaño ) 2 { { { h}}_{\theta}}(x)={ {\theta }_{0}}\text{ +}{ {\theta }_{1}}(tamaño)+{ {\theta}_{2}}{ {(tamaño)}^{2}}hi( X )=i0+ yo1( Tamaño ) _ _+i2( Tamaño ) _ _2

o:

h θ ( x ) = θ 0 + θ 1 ( tamaño ) + θ 2 tamaño { { {h}}_{\theta}}(x)={ {\theta }_{0}}\text{+}{ {\ theta }_{1}}(tamaño)+{ {\theta }_{2}}\sqrt{tamaño}hi( X )=i0+ yo1( Tamaño ) _ _+i2tamaño _ _

Nota: si usamos un modelo de regresión polinomial , es necesario escalar las características antes de ejecutar el algoritmo de descenso de gradiente .

4.6 Ecuaciones normales

Video de referencia: 4 - 6 - Ecuación normal (16 min).mkv

Hasta ahora hemos estado usando el algoritmo de descenso de gradiente, pero para algunos problemas de regresión lineal, el enfoque de ecuación normal es una mejor solución . como:

La ecuación normal es encontrar los parámetros que minimizan la función de costo resolviendo la siguiente ecuación: ∂ ∂ θ j J ( θ j ) = 0 \frac{\partial}{\partial{\theta_{j}}}J\left ( {\theta_{j}} \derecha)=0θjj( yoj)=0 _
Supongamos que nuestra matriz de características del conjunto de entrenamiento esXXX (contienex 0 = 1 { {x}_{0}}=1X0=1 ) y nuestro resultado del conjunto de entrenamiento es el vectoryyy , luego usa la ecuación normal para resolver el vectorθ = ( XTX ) − 1 XT y \theta ={ {\left( {X^T}X \right)}^{-1}}{X^{T} }yi=( XTX )_1X _Ty .__
El superíndiceTrepresenta la matriz transpuesta y el superíndice -1 representa la inversa de la matriz. Sea matrizA = XTXA={X^{T}}XA=XT X,则:( XTX ) − 1 = A − 1 { {\left({X^T}X \right)}^{-1}}={A^{-1}}( XTX )_1=A1
Lo siguiente representa los datos como un ejemplo:

Ahora mismo:

Resuelva los parámetros usando el método de la ecuación normal:

En Octave , la ecuación normal se escribe como:

pinv(X'*X)*X'*y

Nota: Para aquellas matrices que son irreversibles (generalmente porque las características no son independientes, como incluir tanto el tamaño en pies como el tamaño en metros, o el número de características puede ser mayor que el número de conjuntos de entrenamiento), la ecuación normal El método no está disponible .

Descenso de gradiente en comparación con las ecuaciones normales:

descenso de gradiente ecuación normal
Necesidad de elegir la tasa de aprendizaje α \alphaa innecesario
requiere múltiples iteraciones Una operación produce
Cuando el número de características nnTambién es adecuado para grandes n Necesita calcular ( XTX ) − 1 { {\left( { {X}^{T}}X \right)}^{-1}}( XTX )_1 Si el número de características n es grande, el costo de operación es alto, porque la complejidad del tiempo de cálculo de la matriz inversa esO ( n 3 ) O\left( { {n}^{3}} \right)O( n3 ), generalmente hablando cuandonnEs aceptable cuando n es menor que 10000
Apto para todo tipo de modelos. Solo apto para modelos lineales, no apto para otros modelos como los modelos de regresión logística

Para resumir, la ecuación estándar es una buena alternativa para calcular los parámetros $\theta$ siempre que el número de características variables no sea grande. En concreto, siempre que el número de variables de características sea inferior a 10 000, suelo utilizar el método de ecuación estándar en lugar del descenso de gradiente.

A medida que obtenemos algoritmos de aprendizaje cada vez más complejos, por ejemplo, cuando hablamos de algoritmos de clasificación, como los algoritmos de regresión logística, veremos que en realidad para esos algoritmos, no se puede usar el enfoque de ecuación estándar. Para aquellos algoritmos de aprendizaje más complejos, aún tendremos que usar el descenso de gradiente. Por lo tanto, el método de descenso de gradiente es un algoritmo muy útil que se puede utilizar en problemas de regresión lineal con una gran cantidad de variables de características. O hablaremos sobre algunos otros algoritmos en el curso más adelante, porque el método de ecuación estándar no es adecuado o no se puede usar para ellos. Pero para este modelo de regresión lineal en particular, el método de ecuación estándar es una alternativa más rápida que el descenso de gradiente. Entonces, dependiendo del problema específico y la cantidad de variables de características, vale la pena aprender ambos algoritmos.

Implementación de Python de la ecuación normal :

import numpy as np
    
 def normalEqn(X, y):
    
   theta = np.linalg.inv(X.T@X)@X.T@y #X.T@X等价于X.T.dot(X)
    
   return theta

4.7 Ecuaciones normales e irreversibilidad (opcional)

Video de referencia: 4 - 7 - No invertibilidad de la ecuación normal (opcional) (6 min).mkv

Habla sobre las ecuaciones normales y su irreversibilidad en este video .
Dado que este es un concepto profundo y me preguntan sobre él todo el tiempo, quiero discutirlo aquí, y dado que es un concepto profundo, tómatelo con calma con este material opcional, tal vez puedas explorarlo en profundidad, y lo hará. ser muy útil para entender en el futuro. Pero incluso si no comprende la relación entre las ecuaciones normales y la regresión lineal, no importa.

El problema del que queremos hablar es el siguiente: θ = ( XTX ) − 1 XT y \theta ={ {\left( {X^{T}}X \right)}^{-1}}{X^{ T}}yi=( XTX )_1X _T y

Observaciones: Al final de esta sección, escribo el proceso de derivación.

Algunos estudiantes me preguntaron una vez, al calcular θ \thetaθ =inv(X'X ) X'y, entonces para la matrizX ′ X X'XX"¿ Qué pasa si el resultado de Xes irreversible?
Si sabes un poco de álgebra lineal, puedes saber que algunas matrices son invertibles y algunas matrices no lo son. Llamamos a esasmatrices no invertibles matrices singulares o degeneradas.
El punto de la pregunta esX ′ X X'XX Rara vez ocurre el problema irreversible deX.Octave, si lo usas para darte cuenta deθ \thetaCálculo de θ , obtendrá una solución normal. EnOctave, hay dos funciones para encontrar la inversa de una matriz, una se llama ypinv()la otra esinv(), la diferencia entre las dos es un poco un proceso computacional, una es la llamada pseudo-inversa y la otra se llama el inverso pinv()El proceso matemático se puede mostrarusandoθ \thetaEl valor de θ , incluso si la matrizX ′ X X’XX' Xes irreversible.

¿Cuáles son las diferencias específicas entre y pinv()?inv()

Introduce inv()el concepto de cálculo numérico avanzado. Por ejemplo, al predecir los precios de la vivienda, si x 1 {x_{1}}X1es una casa en pies, x 2 {x_{2}}X2es una casa calculada en metros cuadrados. Al mismo tiempo, también sabes que 1 metro es igual a 3.28 pies (redondeado a dos decimales). De esta manera, tus dos valores propios siempre cumplirán las restricciones: x 1 = x 2 ∗ ( 3,28 ) 2 {x_{1}}={x_{2}}*{ { \left( 3,28 \right)}^{2}}X1=X2( 3.28 )2 .
De hecho, puedes mostrar esos dos valores propios asociados con una ecuación lineal como esta, la matrizX' X X'XX' Xserá irreversible.

La segunda razón es que cuando intenta practicar su algoritmo de aprendizaje con una gran cantidad de valores propios, puede resultar en la matriz X ′ X X’XX' El resultado de Xes irreversible.
En concreto, enmmCuando m es menor o igual que n, por ejemplo, hay mmLas muestras de entrenamiento con m igual a 10 también tienennnn es igual a 100 para el número de características. Para encontrar el ajuste( n + 1 ) (n + 1)( n+1 ) vector de parámetros dimensionalesθ \thetaθ , que se convierte en un vector de 101 dimensiones, tratar de encontrar valores que satisfagan 101 parámetros de 10 ejemplos de entrenamiento puede llevarle un tiempo, pero no siempre es una buena idea. Debido a que, como hemos visto, solo tiene 10 muestras para ajustarse a estos 100 o 101 parámetros, los datos aún son un poco pequeños.

Más adelante veremos cómo usar muestras de datos pequeños para obtener estos parámetros 100 o 101. Por lo general, usaremos un método de álgebra lineal llamado regularización, eliminando ciertas características o usando ciertas técnicas .m quennProblemas cuando n era joven. Incluso si tiene un conjunto de entrenamiento relativamente pequeño, puede usar muchas funciones para encontrar muchos parámetros adecuados.
En resumen, cuando encuentras la matrizX′ X X'XX' El resultado de Xes singular, u otras matrices encontradas no son invertibles, le aconsejo que lo haga.

Primero, vea si hay algunas características redundantes en los valores propios, como estas x 1 {x_{1}}X1y x 2 {x_{2}}X2están relacionados linealmente y son funciones lineales entre sí. Al mismo tiempo, cuando hay algunas funciones redundantes, una de las dos funciones repetidas se puede eliminar y no es necesario mantener las dos funciones al mismo tiempo, lo que resolverá el problema de la irreversibilidad. Por lo tanto, en primer lugar, debe verificar si hay funciones redundantes observando todas las funciones. Si hay funciones redundantes, elimínelas hasta que ya no sean redundantes. Si hay demasiadas funciones, las eliminaré y usaré menos funciones. para reflejarlos Tanto contenido como sea posible, de lo contrario consideraría métodos de regularización.
Si la matriz X′ X X’XX Xes irreversible (por lo general, esto no sucederá), si está enoctava, se puede realizar con función pseudo-inversapinv(). Este enfoque que utiliza diferentes bibliotecas de álgebra lineal se denomina pseudoinverso. Incluso siX' X X'XX' El resultado de Xes irreversible, pero el proceso de ejecución del algoritmo es correcto. En resumen, la aparición de matrices irreversibles rara vez ocurre, por lo que en la mayoría de las implementaciones de regresión lineal, los problemas irreversibles no deben prestar demasiada atención aXTX {X^{T}}XXTX es irreversible.

agregar contenido:

θ = ( XTX ) − 1 XT y \theta ={ {\left( {X^{T}}X \right)}^{-1}}{X^{T}}yi=( XTX )_1X _El proceso de derivación de T y:

J ( θ ) = 1 2 metro ∑ yo = 1 metro ( h θ ( X ( yo ) ) − y ( yo ) ) 2 J\left( \theta \right)=\frac{1}{2m}\sum\ límites_{i=1}^{m}{ { \left( {h_{\theta}}\left( {x^{(i)}} \right)-{y^{(i)}} \right )}^{2}}}j( yo )=2 metros1yo = 1m( hi( X( yo ) )y( yo ) )2
其中:h θ ( X ) = θ TX = θ 0 X 0 + θ 1 X 1 + θ 2 X 2 + . . . + θ nxn {h_{\theta}}\left( x \right)={\theta^{T}}X={\theta_{0}}{x_{0}}+{\theta_{1}}{ x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}hi( X )=iTX _=i0X0+i1X1+i2X2+...+inXn

Convierta la forma de expresión vectorial a la forma de expresión matricial, entonces hay J ( θ ) = 1 2 ( X θ − y ) 2 J(\theta )=\frac{1}{2}{ { \left( X\theta - y \right)}^{2}}J ( θ )=21( y )2 , dondeXXX esmmm filannUna matriz de n columnas (mmm es el número de muestras,nnn es el número de características),θ \thetaθ esnnUna matriz con n filas y 1 columna,yyy esmmUna matriz con m filas y 1 columna, paraJ ( θ ) J(\theta )J ( θ ) se transforma de la siguiente manera

J ( θ ) = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta )=\frac{1}{2}{ {\ left( X\theta -y\right)}^{ T}}\izquierda( X\theta -y \derecha)J ( θ )=21( y )T( y )

​= 1 2 ( θ TXT − y T ) ( X θ − y ) =\frac{1}{2}\left( { {\theta }^{T}}{ {X}^{T}}-{ {y}^{T}} \derecha)\izquierda(X\theta -y \derecha)=21( yoTX _Tyt )( y )

​= 1 2 ( θ TXTX θ − θ TXT y − y TX θ − y T y ) =\frac{1}{2}\left( { { \theta }^{T}}{ {X}^{T }}X\theta -{ {\theta}^{T}}{ {X}^{T}}y-{ {y}^{T}}X\theta -{ {y}^{T}}y \bien)=21( yoTX _TXθ _iTX _T yyTXθ _yT y)

Siguiente para J ( θ ) J(\theta )La derivada parcial J ( θ ) requiere las siguientes reglas de derivación de matrices:

d AB d B = AT \frac{dAB}{dB}={ {A}^{T}}d Bd A B=AT

d XTAX d X = 2 AX \frac{d{ {X}^{T}}AX}{dX}=2AXd Xd XT AX=2 A X

F:

∂ J ( θ ) ∂ θ = 1 2 ( 2 XTX θ − XT y − ( y TX ) T − 0 ) \frac{\parcial J\left( \theta \right)}{\parcial \theta }=\frac {1}{2}\left(2{ {X}^{T}}X\theta -{ {X}^{T}}y -{}({ {y}^{T}}X )^{ T}-0 \derecho)θJ ( θ )=21( 2X _TXθ _XT y( yTX )_T0 )

= 1 2 ( 2 XTX θ − XT y − XT y − 0 ) =\frac{1}{2}\left(2{ { X}^{T}}X\theta -{ {X}^{T} }y -{ {X}^{T}}y -0 \right)=21( 2X _TXθ _XT yXT y0 )

​= XTX θ − XT y ={ {X}^{T}}X\theta -{ {X}^{T}}y=XTXθ _XT y

∂ J ( θ ) ∂ θ = 0 \frac{\parcial J\left( \theta \right)}{\parcial \theta }=0θJ ( θ )=0 ,

则有θ = ( XTX ) − 1 XT y \theta ={ {\left( {X^{T}}X \right)}^{-1}}{X^{T}}yi=( XTX )_1X _T y

5. Tutorial de octava

Octave ya no se usa, puede obtener el último código del curso de python aquí

Supongo que te gusta

Origin blog.csdn.net/m0_63748493/article/details/132087305
Recomendado
Clasificación