| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa |
| inteligencia_artificial:modelos_clasicos [2023/07/18 12:20] – [Kernels] alberto | inteligencia_artificial:modelos_clasicos [2023/09/05 16:26] (actual) – [Naïve Bayes] alberto |
|---|
| //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. \\ |
| |
| 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. \\ | 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. \\ |
| |
| En caso de tener datos no lineales, se mapean los datos de entrenamiento a otro espacio pasándolos a través de una función Φ(⃗x), que produce una nueva versión del vector de datos de entrenamiento. El algoritmo SVM usa productos internos, ⃗x<sup>T</sup> ⃗z, lo que significa que la versión mapeada usará Φ(⃗x)<sup>T</sup>Φ(⃗z). Esto dará como resultado un escalar.\\ | 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).\\ |
| |
| El producto interior se escribe como: {{ :ia:kernels.png?200 |}} | Esta expresión se denomina //kernel// (lineal) y se escribe: {{ :ia:kernels.png?200 |}} |
| La función //K( ⃗x, ⃗z)// es denominada como un //kernel//. \\ | |
| |
| El //Gaussian kernel//, también conocido como //Radial Basis Function (RBF)// kernel, introduce un nuevo parámetro **//γ//** que relaciona la dispersión del kernel gaussiano alrededor de un punto de entrenamiento particular, con valores más pequeños que amplían el rango de influencia de la muestra de entrenamiento. Por lo general, se usa una búsqueda de cuadrícula en //C// e //γ//, si se usa el kernel RBF, para ubicar el modelo con mejor desempeño. \\ | 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, mapeados 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// y para que el modelo se ajuste mejor a los datos de entrenamiento. | 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. \\ | 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. \\ | 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). | 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). |