Red neuronal multiclase

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 multiclase usando un algoritmo de red neuronal

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

Nota:

Solo se aplica a: 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 Red neuronal multiclase en Machine Learning Studio (clásico) para crear un modelo de red neuronal que se pueda usar para predecir un destino que tenga varios valores.

Por ejemplo, las redes neurales de este tipo podrían usarse en tareas complejas de visión informática, como el reconocimiento de números o letras, la clasificación de documentos y el reconocimiento de patrones.

La clasificación mediante redes neuronales es un método de aprendizaje supervisado y, por lo tanto, requiere un conjunto de datos etiquetado que incluya una columna de etiquetas.

Puede entrenar el modelo proporcionando el modelo y el conjunto de datos etiquetado como entrada para Entrenar modelo o para optimizar los hiperparámetros del modelo. Después, el modelo entrenado puede utilizarse para predecir valores para los nuevos ejemplos de entrada.

Más información sobre redes neuronales

Una red neuronal es un conjunto de capas interconectadas. Las entradas son la primera capa y se conectan a una capa de salida mediante un grafo acíclico que consta de nodos y aristas ponderadas.

Entre las capas de entrada y salida puede insertar varias capas ocultas. La mayoría de tareas predictivas pueden realizarse fácilmente con solo una o varias capas ocultas. Sin embargo, una investigación reciente ha demostrado que las redes neuronales profundas (DNN) con muchas capas pueden ser muy eficaces en tareas complejas como el reconocimiento de imágenes o voz. Las capas sucesivas se usan para modelar los crecientes niveles de profundidad semántica.

La relación entre entradas y salidas se aprende mediante el entrenamiento de la red neuronal con los datos de entrada. La dirección del grafo procede desde las entradas a través de la capa oculta y hacia la capa de salida. Todos los nodos de una capa se conectan mediante las aristas ponderadas a los nodos de la capa siguiente.

Para calcular la salida de la red para una entrada determinada, se calcula un valor en cada nodo en las capas ocultas y en la capa de salida. El valor se establece calculando la suma ponderada de los valores de los nodos de la capa anterior. A continuación, se aplica una función de activación a esa suma ponderada.

Configuración de redes neuronales multiclase

  1. Agregue el módulo Red neuronal multiclase al experimento en Studio (clásico). Puede encontrar este módulo en Machine Learning, Inicializar, en la categoría Clasificación.

  2. Create trainer mode (Crear modo entrenador): Use esta opción para especificar cómo quiere que se entrene al modelo:

    • Single Parameter (Parámetro único): Elija esta opción si ya sabe cómo desea configurar el modelo.

    • Intervalo de parámetros: elija esta opción si no está seguro de los mejores parámetros y desea usar un barrido de parámetros. A continuación, especifique un intervalo de valores y use el módulo Optimizar hiperparámetros del modelo para recorrer en iteración las combinaciones y encontrar la configuración óptima.

  3. Hidden layer specification (Especificación de capa oculta): Seleccione el tipo de arquitectura de red que se va a crear.

    • Caso totalmente conectado: seleccione esta opción para crear un modelo mediante la arquitectura de red neuronal predeterminada. Para los modelos de red neuronal multiclase, los valores predeterminados son los siguientes:

      • Una capa oculta.
      • La capa de salida está conectada por completo a la capa oculta.
      • La capa oculta está conectada por completo a la capa de entrada.
      • El número de nodos de la capa de entrada está determinado por el número de características de los datos de entrenamiento.
      • El usuario puede establecer el número de nodos de la capa oculta. El valor predeterminado es 100.
      • El número de nodos de la capa de salida depende del número de clases.
    • Script de definición personalizado. Elija esta opción para crear una arquitectura de red neuronal personalizada con el lenguaje Net#. Puede definir el número de capas ocultas, sus conexiones y opciones avanzadas, como especificar las asignaciones entre capas. Para obtener una introducción a Net#, vea Más información sobre Net# más adelante en este tema.

  4. Definición de red neuronal: si seleccionó la opción de arquitectura personalizada, use el cuadro de texto para escribir o pegar instrucciones escritas en el lenguaje Net#. Para obtener ejemplos de script adicionales, vea Guía del lenguaje de especificación de redes neuronales net#.

  5. Number of hidden nodes (Número de nodos ocultos): Esta opción le permite personalizar el número de nodos ocultos en la arquitectura predeterminada. Escriba el número de nodos ocultos. El valor predeterminado es una capa oculta con 100 nodos.

  6. Velocidad de aprendizaje: Defina el tamaño del paso llevado a cabo en cada iteración, antes de la corrección. Un valor mayor para la velocidad de aprendizaje puede hacer que el modelo converja con mayor rapidez, pero puede superar los mínimos locales.

  7. Número de iteraciones de aprendizaje: especifique el número máximo de veces que el algoritmo debe procesar los casos de entrenamiento.

  8. The initial learning weights diameter (El diámetro de pesos de aprendizaje inicial): Escriba un valor que determine los pesos de nodo en el inicio del proceso de aprendizaje.

  9. The momentum (El momento): Especifique una ponderación que se debe aplicar durante el aprendizaje a los nodos de iteraciones anteriores.

  10. El tipo de normalizador: seleccione el método que se usará para la normalización de características. Se admiten los siguientes métodos de normalización:

    • Normalizador de binning: el normalizador de binning crea cubos del mismo tamaño y, a continuación, normaliza cada valor de cada cubo, dividiendo por el número total de cubos.

    • Normalizador gaussiano: el normalizador gaussiano vuelve a escalar los valores de cada característica para que tengan la media 0 y la varianza 1. Para ello, se calcula la media y la varianza de cada característica. Para cada instancia, se resta el valor medio y el resultado se divide por la raíz cuadrada de la varianza (la desviación estándar).

    • Normalizador mínimo-máximo: el normalizador mínimo-máximo vuelve a escalar linealmente todas las características 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.

  11. Shuffle examples (Ordenar ejemplos aleatoriamente): Seleccione esta opción para ordenar de forma aleatoria los casos entre iteraciones.

    Si anuló la selección de esta opción, los casos se procesan en el mismo orden exactamente cada vez que ejecuta el experimento.

  12. Valor de ed. de número aleatorio: escriba un valor para usarlo como valor de ed. Si desea garantizar la repetibilidad en las ejecuciones del mismo experimento.

  13. Permitir niveles de categorías desconocidos: seleccione esta opción para crear una agrupación de valores desconocidos en los conjuntos de entrenamiento y validación. El modelo puede ser menos preciso en los valores conocidos, pero proporcionar mejores predicciones para los nuevos valores (desconocidos).

    Si anula la selección de esta opción, el modelo solo puede aceptar los valores contenidos en los datos de entrenamiento.

  14. Conecte un conjunto de datos de entrenamiento y uno de los módulos de entrenamiento:

    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.

Results

Una vez completado el entrenamiento:

  • Para ver un resumen de los parámetros del modelo, junto con los pesos de características aprendidos en el entrenamiento y otros parámetros de la red neuronal, haga clic con el botón derecho en la salida de Entrenar modelo o Optimizar hiperparámetros del modelo y seleccione Visualizar.

  • Para guardar una instantánea del modelo entrenado, haga clic con el botón derecho en el resultado de Trained model (Modelo entrenado) y seleccione Save As Trained Model (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 Validar modelo de forma cruzada.

Ejemplos

Para obtener ejemplos de cómo se usa este algoritmo de aprendizaje, consulte estos experimentos de ejemplo en el Azure AI Gallery. Los experimentos están relacionados y se describen en un mismo documento, en el que se progresa de las configuraciones básicas a las avanzadas:

Notas técnicas

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

Personalización de la red neuronal mediante script

En Machine Learning Studio (clásico), puede personalizar la arquitectura de un modelo de red neuronal mediante el lenguaje Net#. Las personalizaciones admitidas por el lenguaje Net# incluyen:

  • Especificar el número de capas ocultas y el número de nodos de cada capa
  • Especificación de asignaciones entre capas
  • Definición de convoluciones y agrupaciones de uso compartido de peso
  • Elección de la función de activación

Un modelo de red neuronal se define por la estructura de su grafo, que incluye estos atributos:

  • Número de capas ocultas
  • Número de nodos de cada capa oculta
  • Cómo se conectan las capas
  • Qué función de activación se usa
  • Pesos en las aristas del grafo

Importante

El usuario puede especificar la estructura general del gráfico, así como la función de activación. Sin embargo, no se pueden especificar las ponderaciones en los bordes y deben aprenderse al entrenar la red neuronal en los datos de entrada.

En general, la red tiene estos valores predeterminados:

  • El primer nivel es siempre el nivel de entrada.
  • El último nivel es siempre el nivel de salida.
  • El número de nodos del nivel de salida debe ser igual al número de clases.

Puede definir cualquier número de capas intermedias: a veces se denominan capas ocultas, porque están contenidas en el modelo y no se exponen directamente como puntos de conexión.

La guía de referencia de Net# explica la sintaxis y proporciona definiciones de redes de ejemplo. En ella se explica cómo se puede usar Net # para agregar niveles ocultos y definir la forma en que diferentes niveles interactúan entre sí.

Por ejemplo, el siguiente script auto usa la palabra clave , que establece automáticamente el número de características para las capas de entrada y salida, y usa los valores predeterminados para la capa oculta.

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

Para obtener ejemplos de script adicionales, vea Guía del lenguaje de especificación de redes neuronales de Net#.

Sugerencia

Las redes neuronales pueden ser costosas computacionalmente, debido a una serie de hiperparámetros y a la introducción de topologías de red personalizadas. Aunque, en muchos casos, las redes neuronales producen mejores resultados que otros algoritmos, obtenerlos puede requerir una cantidad considerable de barrido (iteraciones) de los hiperparámetros.

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Especificación de niveles ocultos Lista Topología de red neuronal Caso completamente conectado Especificar la arquitectura de los niveles ocultos
El diámetro de los pesos de aprendizaje inicial >=double.Epsilon Float 0,1 Especificar los pesos de nodo al principio del proceso de aprendizaje
La velocidad de aprendizaje [double.Epsilon;1.0] Float 0,1 Especificar el tamaño de cada paso en el proceso de aprendizaje
El momento [0.0;1.0] Float 0,0 Especificar un peso para aplicar durante el aprendizaje a los nodos de iteraciones anteriores
Definición de red neuronal Any StreamReader Cuando elija Script de definición personalizada, escriba una expresión de script válida en cada línea para definir los niveles, los nodos y el comportamiento de una red neuronal personalizada.
El tipo de normalizador Lista Método de normalización Normalizador mínimo-máximo Seleccione el tipo de normalización para aplicar a los ejemplos de aprendizaje.
Número de iteraciones de aprendizaje >=1 Entero 100 Especificar el número de iteraciones durante el aprendizaje
Ordenar ejemplos aleatoriamente Any Boolean True Seleccionar esta opción para cambiar el orden de las instancias entre iteraciones de aprendizaje
Valor de inicialización de números aleatorios Any Entero Especificar un valor de inicialización numérico que se utilizará para la generación de números aleatorios. Dejarlo en blanco para utilizar el valor de inicialización predeterminado.
Permitir niveles de categorías desconocidos Any Boolean True Indicar si se debe crear un nivel adicional de categorías para categorías desconocidas. Si el conjunto de datos de prueba contiene categorías que no están en el conjunto de datos de entrenamiento, se asignarán a este nivel desconocido.

Output

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

Consulte también

Clasificación
Red neuronal de dos clases
Regresión de red neuronal
Lista de módulos A-Z