Herramientas de usuario

Herramientas del sitio


inteligencia_artificial:modelos_clasicos

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
inteligencia_artificial:modelos_clasicos [2023/07/18 11:57] – [Optimization] albertointeligencia_artificial:modelos_clasicos [2023/09/05 16:26] (actual) – [Naïve Bayes] alberto
Línea 76: Línea 76:
 //N(µ<sub>i</sub>, σ<sub>i</sub>)// significa que la distribución normal estará centrada en el valor medio, y con una extensión definida por σ a cada lado. No conocemos exactamente los valores µ y σ, pero podemos aproximarlos a partir de los datos de entrenamiento para cada clase. \\ //N(µ<sub>i</sub>, σ<sub>i</sub>)// significa que la distribución normal estará centrada en el valor medio, y con una extensión definida por σ a cada lado. No conocemos exactamente los valores µ y σ, pero podemos aproximarlos a partir de los datos de entrenamiento para cada clase. \\
  
-Si, por ejemplo, deseamos conocer la probabilidad de que //x<sub>3</sub>// de nuestro vector de características a clasificar, se encuentre dentro de la distribución normal correspondiente a la etiqueta //y=0//, usaríamos la [[https://es.wikipedia.org/wiki/Funci%C3%B3n_de_densidad_de_probabilidad|fórmula de densidad de probabilidad de una distribución normal]]fórmula de densidad de probabilidad de una distribución normal: {{ :ia:bayes5.png?200 |}} \\+Si, por ejemplo, deseamos conocer la probabilidad de que //x<sub>3</sub>// de nuestro vector de características a clasificar, se encuentre dentro de la distribución normal correspondiente a la etiqueta //y=0//, usaríamos la [[https://es.wikipedia.org/wiki/Funci%C3%B3n_de_densidad_de_probabilidad|fórmula de densidad de probabilidad de una distribución normal]]: {{ :ia:bayes5.png?200 |}} \\
 Hay que recordar que estamos haciendo 2 suposiciones: la independencia entre atributos, y la distribución normal de los valores de cada atributo. \\ Hay que recordar que estamos haciendo 2 suposiciones: la independencia entre atributos, y la distribución normal de los valores de cada atributo. \\
  
Línea 173: Línea 173:
 Matemáticamente, podemos encontrar el hiperplano de margen máximo resolviendo un problema de optimización. En este tipo de problemas, dependemos de una serie de parámetros de los cuales debemos encontrar su valor. \\ Matemáticamente, podemos encontrar el hiperplano de margen máximo resolviendo un problema de optimización. En este tipo de problemas, dependemos de una serie de parámetros de los cuales debemos encontrar su valor. \\
  
-En una SVM, la orientación del hiperplano viene definida por el vector **//w//**. Hay un offset **//b//** que debemos encontrar. Para hacer la condición de optimización más simple, cambiamos las clases 0 y 1, por -1 y +1.\\+En una SVM, la orientación del hiperplano viene definida por el vector **// w//**. Hay un offset **//b//** que debemos encontrar. Para hacer la condición de optimización más simple, cambiamos las clases 0 y 1, por -1 y +1.\\
  
-Matemáticamente queremos encontrar // ⃗w// y //b//, tal que la cantidad ½ ||// ⃗w//||<sup>2</sup> sea tan pequeña como sea posible, dado que //y<sub>i</sub>//(// ⃗w// · // ⃗x//-b) ≥ 1, para todas las etiquetas //y<sub>i</sub>// y los vectores //x<sub>i</sub>// del dataset. \\+Matemáticamente queremos encontrar // ⃗w// y //b//, tal que la cantidad ½ ||// ⃗w//||<sup>2</sup> sea tan pequeña como sea posible, dado que //y<sub>i</sub>//(// ⃗w//·// ⃗x// - b) ≥ 1, para todas las etiquetas //y<sub>i</sub>// y los vectores //x<sub>i</sub>// del dataset. \\
 Este tipo de problemas de optimización se resuelven a través de una técnica denominada "programación cuadrática" //quadratic programming//. De nuevo, no nos vamos a parar en las matemáticas, que incluyen la resolución de un Lagrangiano. No nos vamos a meter en el fango, no es lo nuestro. \\ Este tipo de problemas de optimización se resuelven a través de una técnica denominada "programación cuadrática" //quadratic programming//. De nuevo, no nos vamos a parar en las matemáticas, que incluyen la resolución de un Lagrangiano. No nos vamos a meter en el fango, no es lo nuestro. \\
  
Línea 184: Línea 184:
  
 ==== Kernels ==== ==== Kernels ====
 +Hay un concepto matemático más que debemos presentar. La descripción anterior es para una SVM lineal y usa los datos de entrenamiento directamente. \\
  
- ⃗x+En caso de que la SVM sea no lineal (es decir, los datos están mezclados y no se puede hacer mediante un hiperplano "recto"), usamos el "truco" del //kernel//. En este caso, los datos de entrenamiento se transforman a a otro espacio a través de una función Φ(⃗x), que produce una nueva versión del vector de datos de entrenamiento. Siendo  ⃗x los datos de entrenamiento clasificados '0', y ⃗z los datos de entrenamiento clasificados '1', el algoritmo SVM podría separar estos datos __de forma lineal__ (hiperplano "recto") a través de la expresión: ⃗x<sup>T</sup> ⃗z, es decir: Φ(⃗x)<sup>T</sup>Φ(⃗z).\\ 
 + 
 +Esta expresión se denomina //kernel// (lineal) y se escribe: {{ :ia:kernels.png?200 |}}  
 + 
 +Hay varios tipos de kernel, en función de la complejidad de la clasificación de los datos. Como por ejemplo el polinomial, que podemos decir "malamente" que en lugar de tener un hiperplano "recto", este va presentando "curvas" para adecuarse a la clasificación.\\ 
 +Un kernel muy común es el //Gaussian kernel//, también conocido como //Radial Basis Function (RBF)// kernel, que introduce un nuevo parámetro **//γ//**, que según aumenta su valor, aumentan las "curvaturas" del hiperplano.  
 + 
 +En resumen, una máquina de vectores de soporte utiliza los datos de entrenamiento transformados, a través de una función kernel, para optimizar la orientación y la ubicación de un hiperplano que produce el margen máximo entre el hiperplano y los vectores de soporte de los datos de entrenamiento. El usuario debe seleccionar la función del kernel y los parámetros asociados como //C// e //γ// para que el modelo se ajuste mejor a los datos de entrenamiento. 
 + 
 +Las SVM dominaron el aprendizaje automático en la década de 1990 y principios de la de 2000, antes de la llegada del aprendizaje profundo. Esto se debe a su eficiencia y a que no necesitan grandes recursos computacionales. \\ 
 +Después llegó el aprendizaje profundo, que con las redes neuronales han conseguido hacer cosas que con las SVM hubiera sido imposibles. \\ 
 +Aún así, las SVM tienen aplicaciones en la actualidad. Es común usar una gran red neuronal entrenada con un dataset concreto, como preprocesador para un dataset diferente, con una SVM entrenada a la salida de la red neuronal (menos las capas superiores).
inteligencia_artificial/modelos_clasicos.1689674229.txt.gz · Última modificación: por alberto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki