Regresión de red neuronal

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 regresión usando un algoritmo de red neuronal

Categoría: Machine Learning/ Inicializar modelo/Regresió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 Regresión de red neuronal en Machine Learning Studio (clásico) para crear un modelo de regresión mediante un algoritmo de red neuronal personalizable.

Aunque las redes neuronales son ampliamente conocidas por su uso en problemas complejos de aprendizaje profundo y modelado, como el reconocimiento de imágenes, se adaptan fácilmente a los problemas de regresión. Cualquier clase de modelo estadístico puede denominarse red neuronal si utiliza pesos adaptables y puede aproximar funciones no lineales de sus entradas. Por lo tanto, la regresión de red neuronal es adecuada en los problemas para los que un modelo de regresión más tradicional no puede encontrar una solución.

La regresión de red neuronal es un método de aprendizaje supervisado y, por lo tanto, requiere un conjunto de datos etiquetado, que incluya una columna de etiqueta. Dado que un modelo de regresión predice un valor numérico, la columna de etiqueta debe ser de un tipo de datos numérico.

Puede entrenar el modelo proporcionando el modelo y el 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 los nuevos ejemplos de entrada.

Configuración de la regresión de red neuronal

Las redes neuronales se pueden personalizar ampliamente. En esta sección se describe cómo crear un modelo mediante dos métodos:

  • Crear un modelo de red neuronal con la arquitectura predeterminada

    Si acepta la arquitectura predeterminada de red neuronal, use el panel Propiedades para establecer los parámetros que controlan el comportamiento de la red neuronal, como el número de nodos de la capa oculta, la velocidad de aprendizaje y la normalización.

    Empiece aquí si no está familiarizado con las redes neuronales. El módulo admite muchas personalizaciones, así como el ajuste de modelos, sin un conocimiento profundo de las redes neuronales.

  • Definir una arquitectura personalizada para una red neuronal

    Use esta opción si desea agregar capas ocultas adicionales o personalizar completamente la arquitectura de red, sus conexiones y las funciones de activación.

    Esta opción es mejor si ya está un poco familiarizado con las redes neuronales. Use el lenguaje Net# para definir la arquitectura de red.

Crear un modelo de red neuronal con la arquitectura predeterminada

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

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

    • 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. 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. En Especificación de capa oculta, seleccione Caso totalmente conectado. Esta opción crea un modelo mediante la arquitectura predeterminada de red neuronal, lo que, para un modelo de regresión de red neuronal, tiene estos atributos:

    • La red tiene una sola capa oculta.
    • La capa de salida está completamente conectada a la capa oculta, y esta a la capa de entrada.
    • El usuario puede establecer el número de nodos de la capa oculta (el valor predeterminado es 100).

    Dado que el número de nodos de la capa de entrada viene determinado por el número de características de los datos de entrenamiento, en un modelo de regresión solo puede haber un nodo en la capa de salida.

  4. Para Número de nodos ocultos, escriba el número de nodos ocultos. El valor predeterminado es una capa oculta con 100 nodos. (Esta opción no está disponible si se define una arquitectura personalizada con Net#).

  5. Para Velocidad de aprendizaje, escriba un valor que defina el 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.

  6. Para Number of learning iterations (Número de iteraciones de aprendizaje), especifique el número máximo de veces que el algoritmo procesa los casos de entrenamiento.

  7. En El diámetro de pesos de aprendizaje inicial , escriba un valor que determine los pesos del nodo al principio del proceso de aprendizaje.

  8. Para The momentum (El momentum), escriba el valor que se debe aplicar durante el aprendizaje como peso en los nodos de iteraciones anteriores.

  9. Para El tipo de normalizador, elija uno de los métodos siguientes que se usarán para la normalización de características:

    • Normalizador de la binning: la binning crea grupos del mismo tamaño y, a continuación, normaliza cada valor de cada grupo para que se divida por el número total de grupos.

    • Normalizador gaussiano: la normalización gaussiana vuelve a escalar los valores de cada característica para que tengan la media 0 y la varianza 1. Esto se hace calculando la media y la varianza de cada característica y, a continuación, para cada instancia, restando el valor medio y dividiendo por la raíz cuadrada de la varianza (la desviación estándar).

    • Normalizador mínimo-máximo: la normalización mínima máxima 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.

  10. Seleccione la opción Shuffle examples (Ejemplos de orden aleatorio), para cambiar el orden de 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.

  11. Para Random number seed (Inicialización de número aleatorio), puede escribir opcionalmente un valor que se usará como inicialización. Especificar un valor de inicialización es útil cuando desea asegurar la repetibilidad entre ejecuciones del mismo experimento.

  12. Seleccione la opción Permitir niveles de categorías desconocidos para crear una agrupación para valores desconocidos. 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.

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

    Advertencia

    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.

  14. Ejecute el experimento.

Definición de una arquitectura personalizada

  1. Agregue el módulo Regresión de red neuronal al experimento.

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

    • 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. 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. En Especificación de capa oculta, seleccione Script de definición personalizado. Debe elegir esta opción si desea definir una arquitectura de red neuronal personalizada mediante el lenguaje Net #.

  4. Después de seleccionar la opción Script de definición personalizada , se muestra el cuadro de texto Definición de red neuronal. Puede pegar en el script de Net# para definir una arquitectura personalizada para la red neuronal, incluido el número de capas ocultas, sus conexiones y opciones avanzadas, como especificar las asignaciones entre capas.

  5. Para Velocidad de aprendizaje, escriba un valor que defina el 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.

  6. Para Number of learning iterations (Número de iteraciones de aprendizaje), especifique el número máximo de veces que el algoritmo procesa los casos de entrenamiento.

  7. En El diámetro de pesos de aprendizaje inicial , escriba un valor que determine los pesos del nodo al principio del proceso de aprendizaje.

  8. Para The momentum (El momentum), escriba el valor que se debe aplicar durante el aprendizaje como peso en los nodos de iteraciones anteriores.

  9. Para El tipo de normalizador, elija uno de los métodos siguientes que se usarán para la normalización de características:

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

    • Normalizador gaussiano: la normalización gaussiana vuelve a escalar los valores de cada característica para que tengan la media 0 y la varianza 1. Esto se hace calculando la media y la varianza de cada característica y, a continuación, para cada instancia, restando el valor medio y dividiendo por la raíz cuadrada de la varianza (la desviación estándar).

    • Mínimo-máximo: la normalización mínima-máxima 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.

  10. Seleccione la opción Shuffle examples (Ejemplos de orden aleatorio), para cambiar el orden de 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.

  11. Para Random number seed (Inicialización de número aleatorio), puede escribir opcionalmente un valor que se usará como inicialización. Especificar un valor de inicialización es útil cuando desea asegurar la repetibilidad entre ejecuciones del mismo experimento.

  12. Seleccione la opción Permitir que los niveles de categorías desconocidos creen una agrupación para valores desconocidos. Los valores desconocidos del conjunto de datos de prueba se asignan a esta categoría desconocida. El uso de esta opción podría hacer que el modelo sea ligeramente 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 puede realizar predicciones solo para los valores contenidos en los datos de entrenamiento.

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

    Advertencia

    Si pasa un intervalo de parámetros a Entrenar modelo, solo usará el primer valor de la lista de intervalos de parámetros.

    Si pasa un único conjunto de valores de parámetro al módulo Optimizar 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 Intervalo de parámetros y escribe un valor único para cualquier parámetro, ese valor único especificado se usará a lo largo del barrido, incluso si otros parámetros cambian en un intervalo de valores.

  14. Ejecute el experimento.

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 en experimentos, consulte estos ejemplos en el Azure AI Gallery:

Los experimentos proporcionan más ayuda en Net#. Los experimentos están relacionados y progresan de configuraciones básicas a avanzadas:

Notas técnicas

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

Más información sobre Net #

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 los pesos 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 tantos niveles intermedios como quiera (a veces se denominan “niveles ocultos”, ya que están dentro del modelo y no están expuestos directamente como extremos).

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 net#.

Sugerencia

Las redes neuronales pueden ser costosas desde el punto de vista computacional, 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
Velocidad de aprendizaje [double.Epsilon;0.01] Float 0,005 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 Si selecciona "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 nodos ocultos Any Cadena 100 Escribir el número de nodos del nivel oculto. Para varios niveles ocultos, escriba una lista separada por comas.
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.

Este parámetro es opcional
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 presentes en el conjunto de datos de entrenamiento, se asignan a este nivel desconocido.

Salidas

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

Consulte también

Regresión
Lista de módulos A-Z