Compartir a través de


Máquina de vectores de soporte de dos clases localmente profunda

Importante

El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.

A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.

La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

Crea un modelo de clasificación binaria mediante el algoritmo de máquina de vectores de soporte localmente profunda

Categoría: Machine Learning/Inicializar modelo/Clasificación

Nota

Se aplica a: solo Machine Learning Studio (clásico)

Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo Máquina de vectores de compatibilidad local de dos clases en Machine Learning Studio (clásico) para crear un clasificador de vectores de soporte no lineal (SVM) de dos clases que está optimizado para una predicción eficaz.

Las máquinas de vectores de soporte (SVM) son una clase muy popular y contrastada de modelos de aprendizaje supervisados, que se puede usar en tareas de clasificación lineal y no lineal. Las investigaciones recientes se han centrado en maneras de optimizar estos modelos para escalar de forma eficaz a conjuntos de entrenamiento más grandes. En esta implementación de Microsoft Research, la función de kernel que se utiliza para asignar puntos de datos al espacio de características se ha diseñado específicamente para reducir el tiempo necesario para el entrenamiento, manteniendo al mismo tiempo la mayor parte de la exactitud de la clasificación.

Este modelo es un método de aprendizaje supervisado y, por tanto, requiere un conjunto de datos etiquetado, que incluye una columna de etiqueta.

Después de definir los parámetros del modelo, entrenelo proporcionando el modelo y un conjunto de datos etiquetado como entrada para entrenar modelo o optimizar hiperparámetros del modelo. Después, el modelo entrenado puede utilizarse para predecir valores para las nuevas entradas.

Configuración de Two-Class máquina de vectores de soporte profundo localmente

  1. Agregue el módulo Two-Class Locally-Deep Support Vector Machine al experimento en Studio (clásico).

  2. Especifique cómo quiere que se entrene el modelo, estableciendo la opción Create trainer mode (Crear modo entrenador).

    • Single Parameter (Parámetro único): Si sabe cómo quiere configurar el modelo, proporcione un conjunto específico de valores como argumentos.

    • Intervalo de parámetros: si no está seguro de los mejores parámetros, puede encontrar los parámetros óptimos especificando varios valores y usando el módulo Optimizar hiperparámetros del modelo para encontrar la configuración óptima. El entrenador recorre en iteración varias combinaciones de la configuración proporcionada y determina la combinación de valores que genera el mejor modelo.

  3. En Profundidad del árbol, especifique la profundidad máxima del árbol que puede crear el modelo de aprendizaje profundo local de SVM (LD-SVM).

    El costo de aprendizaje aumenta linealmente con la profundidad del árbol; por lo tanto, elija una profundidad adecuada dependiendo de cuánto tiempo puede permitirse dedicar a la creación del modelo.

    El tiempo de entrenamiento debe doblarse (aproximadamente) cuando la profundidad se incrementa en uno.

    La exactitud de la predicción debe aumentar, alcanzar un pico y, luego, disminuir con mayor profundidad.

  4. En Lambda W, especifique el peso que se debe asignar al término de regularización.

    La regularización restringe los componentes de valores grandes en el clasificador entrenado. Cuando el número de muestras es insuficiente con el número de características dado, puede usar regularización L2 para evitar el sobreajuste. Los valores más grandes de Lambda W significan que se pone más énfasis en regularizar los pesos del clasificador y menos en el error de clasificación del conjunto de entrenamiento.

    Si el valor predeterminado (0,1) no funciona bien, pruebe {0,0001, 0,001 y 0,01}.

  5. En Lambda Theta, especifique cuánto espacio debe dejarse entre un límite de región y el punto de datos más cercano.

    Este modelo funciona dividiendo el espacio de datos y el espacio de características en regiones. Cuando Lambda Theta se minimiza de tal manera que los límites de la región del modelo entrenado estén demasiado cerca de los puntos de datos de entrenamiento, el modelo podría producir un error de entrenamiento bajo, pero un error de prueba alto, debido al sobreajuste.

    Para reducir el número de parámetros que se deben validar, una buena regla general es establecer Lambda Theta en una décima parte del valor que se usa para Lambda W. Los valores más grandes significan que se pone más énfasis en evitar el sobreajuste que en minimizar los errores de clasificación en el conjunto de entrenamiento.

    Si el valor predeterminado (0,01) no funciona bien, también debe probar {0.0001, 0.001 y 0.1}.

  6. En Lambda Theta Prime, escriba un valor para controlar la cantidad de curvatura que se permite en los límites de decisión del modelo.

    Los valores más grandes proporcionan al modelo la flexibilidad de aprender límites de decisión curvados, mientras que los valores más pequeños pueden restringir los límites de decisión a más de un patrón lineal paso a paso.

    Este parámetro funciona junto con el parámetro Sigma . Para reducir el número de parámetros que se necesitan validar, es una buena regla general establecer Lambda Zeta Primo a una décima del valor de Lambda W.

    Si el valor predeterminado (0,01) no funciona bien, también debe probar {0,0001, 0,001 y 0,1}.

  7. Para la nitidez sigmoidea, escriba un valor que se usará para el parámetro de escalado σ.

    Los valores más grandes significan que el tanh en el kernel local Θ (theta) está saturado, mientras que un valor más pequeño implica un intervalo de funcionamiento más lineal para theta. Puede encontrar la fórmula de optimización completa en la sección Notas técnicas .

    Si el valor predeterminado (1) no funciona bien, también puede probar {0,1, 0,01, 0,001}.

  8. En Número de iteraciones, indique cuántas veces el algoritmo debe actualizar los parámetros del clasificador con un subconjunto aleatorio de ejemplos.

  9. Para El normalizador de características, elija un método que se usará para normalizar los valores de las características. Se admiten los métodos siguientes:

    • Normalizador de discretización: el normalizador de discretización crea contenedores de igual tamaño y, a continuación, normaliza todos los valores de cada contenedor que se dividirán por el número total de contenedores.

    • Normalizador gaussiano: el normalizador gaussiano vuelve a escalar los valores de cada característica para tener una media de 0 y una varianza de 1. Esto se hace calculando la media y la varianza de cada característica. A continuación, para cada instancia, se resta el valor medio y el resultado dividido por la raíz cuadrada de la varianza (la desviación estándar).

    • Normalizador Min-Max: el normalizador min-max escala linealmente cada característica al intervalo [0,1].

      Para cambiar la escala del intervalo [0,1] se cambian los valores de cada característica para que el valor mínimo sea 0, y, luego, se divide por el nuevo valor máximo (que es la diferencia entre los valores máximos y mínimos originales).

    • No normalizar: no se realiza ninguna normalización.

  10. En Valor de inicialización de número aleatorio, escriba un valor que se usará como valor de inicialización si desea garantizar la reproducibilidad entre ejecuciones.

  11. Seleccione la opción Permitir niveles de categorías desconocidos para crear un grupo para valores desconocidos en los conjuntos de pruebas o validación.

    Si la desactiva, el modelo podrá aceptar únicamente los valores incluidos en los datos de entrenamiento. En el primer caso, es posible que el modelo sea menos preciso con los valores conocidos, pero proporcione mejores predicciones para los valores nuevos (desconocidos).

  12. Conectar un conjunto de datos etiquetado y uno de los módulos de entrenamiento:

    • Si establece Create trainer mode (Crear modo entrenador) en Single Parameter (Parámetro único), use el módulo Entrenar modelo.

    • Si establece Create trainer mode (Crear modo entrenador) para Parameter Range (Intervalo de parámetros), use el módulo Optimizar los hiperparámetros del modelo.

    Nota

    Si pasa un intervalo de parámetros a Entrenar modelo, solo utiliza el primer valor en la lista del intervalo de parámetros.

    Si pasa un único conjunto de valores de parámetro al módulo Optimizar los hiperparámetros del modelo, cuando espera un intervalo de valores para cada parámetro, omite los valores y usa los valores predeterminados para el aprendiz.

    Si selecciona la opción Parameter Range (Intervalo de parámetros) y especifica un valor único para algún parámetro, ese valor único que haya especificado se utilizará en todo el barrido, incluso si otros parámetros cambian en un intervalo de valores.

  13. Ejecute el experimento.

Results

Una vez completado el entrenamiento:

  • Para ver un resumen de los parámetros del modelo, haga clic con el botón derecho en la salida del módulo Entrenar modelo o Optimizar hiperparámetros del modelo y seleccione Visualizar.

  • Para guardar un snapshpt del modelo entrenado, haga clic con el botón derecho en la salida del modelo entrenado y seleccione Guardar como modelo entrenado. El modelo no se actualiza en las ejecuciones sucesivas del mismo experimento.

  • Para realizar la validación cruzada en un conjunto de datos etiquetado, conecte el modelo no entrenado a Modelo de validación cruzada.

Notas técnicas

Esta sección contiene detalles de implementación, sugerencias y respuestas a las preguntas más frecuentes.

Consejos de uso

Este clasificador LD-SVM es más útil en las siguientes condiciones:

  • Tiene un problema de clasificación binaria o puede reducir el problema a una tarea de clasificación binaria.

  • Probó un clasificador lineal, pero no funcionó correctamente.

  • Probó una SVM no lineal u otro clasificador y obtuvo una buena exactitud de la clasificación, pero tardó demasiado tiempo en entrenar el modelo.

  • Puede permitirse sacrificar la exactitud de la predicción para reducir el tiempo de entrenamiento.

Los modelos LD-SVM son una buena elección cuando los datos son tan complejos que los modelos lineales (por ejemplo, la regresión logística) se ejecutan de forma muy deficiente. Los modelos LD-SVM también son lo suficientemente pequeños como para usarse en dispositivos móviles u otros escenarios donde modelos complejos (por ejemplo, redes neurales) son demasiado grandes para un consumo eficiente.

Por el contrario, este modelo no debe utilizarse si no le importa el tamaño del modelo o si se necesita un modelo lineal por su simplicidad y velocidad de predicción. Tampoco hay ningún punto para cambiar a LD-SVM si los clasificadores lineales ya dan buenos resultados, o si puede obtener una alta precisión de clasificación agregando pequeñas cantidades de no linealidad.

Detalles de la implementación

El modelo LD-SVM fue desarrollado por Microsoft Research como parte de los continuos esfuerzos para acelerar la predicción SVM no lineal. En concreto, el trabajo de Gonen y Alpaydin (2008) sobre el método de aprendizaje de kernel múltiple localizado fue muy valioso. El uso de una función de kernel local permite al modelo aprender incrustaciones de características locales arbitrarias, incluidas las características altamente dimensionales, dispersas y de cálculo profundo que no introducen linealidades en el modelo.

LD-SVM es más rápido que la mayoría de los demás clasificadores por varias razones:

  • El modelo aprende los límites de decisión que son lineales localmente. Por lo tanto, un punto de prueba se puede clasificar eficazmente probándolo respecto a su límite de decisión local, en lugar de poner a prueba todo el conjunto de límites de decisión en todo el espacio de características.

  • El modelo usa rutinas eficientes fundamentales para optimizar el espacio de incrustaciones de características locales con estructura de árbol que escalan a grandes conjuntos de entrenamiento con más de medio millón de puntos de entrenamiento.

  • El costo de probar un punto en su límite de decisión local es logarítmico en el número de puntos de entrenamiento.

Como consecuencia de estas optimizaciones, el entrenamiento del modelo LD-SVM es exponencialmente más rápido que el entrenamiento de modelos SVM tradicionales.

Fórmula de optimización

optimization formula

Investigación

Para obtener más información sobre el algoritmo y la investigación subyacente, vea Local Deep Kernel Learning for Efficient Non-linear SVM Prediction.

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Crear el modo de entrenador List Opción de parámetro de aprendiz Parámetro único Opciones de aprendiz avanzadas:

1. Creación de un aprendiz mediante un único parámetro
2. Creación de un aprendiz mediante un intervalo de parámetros
Profundidad del árbol >=1 Entero 3 La profundidad del árbol SVM localmente profunda.
Lambda W >=1.401298E-45 Float 0,1 Peso de regularización para el parámetro de clasificador Lambda W.
Lambda Zeta >=1.401298E-45 Float 0,01 Peso de regularización para el parámetro de clasificador Lambda Zeta.
Lambda Zeta Primo >=1.401298E-45 Float 0,01 Peso de regularización del parámetro del clasificador Lambda Zeta primo.
Agudeza sigmoidea >=1.401298E-45 Float 1,0 La agudeza sigmoidea.
Profundidad del árbol [1;int.MaxValue] ParameterRangeSettings 1; 3; 5; 7 El rango de la profundidad del árbol de SVM localmente profundo.
Lambda W [1,401298E-45;3,40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Rango para el peso de regularización para el parámetro de clasificador Lambda W.
Lambda Zeta [1,401298E-45;3,40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Rango para el peso de regularización para el parámetro de clasificador Lambda Zeta.
Lambda Zeta Primo [1,401298E-45;3,40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Intervalo para el peso de regularización del parámetro del clasificador Lambda Zeta primo.
Agudeza sigmoidea [1,401298E-45;3,40282347E+38] ParameterRangeSettings 1.0; 0.1; 0.01 El rango de la agudeza sigmoidea.
Normalizador de características List Tipo del normalizador Normalizador mínimo-máximo. El tipo de normalización para aplicar a los ejemplos de aprendizaje.
Número de iteraciones >=1 Entero 15000 Número de iteraciones de aprendizaje.
Número de iteraciones [1;int.MaxValue] ParameterRangeSettings 10000; 15000; 20000 El intervalo para el número de iteraciones de aprendizaje.
Inicialización de números aleatorios Any Entero Valor de inicialización para el generador de números aleatorios utilizado por el modelo. Déjelo en blanco para usar el valor predeterminado.
Permitir niveles de categorías desconocidos Any Boolean True Si es True, crea un nivel adicional para cada columna de categoría. Los niveles del conjunto de datos de prueba que no están disponibles en el conjunto de datos de entrenamiento se asignan a este nivel adicional.

Output

Nombre Tipo Descripción
Modelo no entrenado Interfaz ILearner Un modelo de clasificación binaria no entrenado.

Consulte también

Clasificación
Lista de módulos A-Z