Compartir a través de


Referencia técnica del algoritmo de red neuronal de Microsoft

La red neuronal de Microsoft usa una red Perceptron multicapa , también denominada red de reglas delta deBack-Propagated, compuesta de hasta tres capas de neuronas o perceptrones. Estas capas son una capa de entrada, una capa oculta opcional y una capa de salida.

Una explicación detallada de las redes neuronales Perceptron multicapa está fuera del ámbito de esta documentación. En este tema se explica la implementación básica del algoritmo, incluido el método usado para normalizar los valores de entrada y salida, y los métodos de selección de características usados para reducir la cardinalidad de los atributos. En este tema se describen los parámetros y otras opciones de configuración que se pueden usar para personalizar el comportamiento del algoritmo y se proporcionan vínculos a información adicional sobre cómo consultar el modelo.

Implementación del algoritmo de red neuronal de Microsoft

En una red neuronal Perceptron multicapa, cada neurona recibe una o varias entradas y genera una o varias salidas idénticas. Cada salida es una función simple no lineal de la suma de las entradas a la neurona. Las entradas pasan de los nodos de la capa de entrada a los nodos de la capa oculta y, a continuación, pasan de la capa oculta a la capa de salida; no hay conexiones entre neuronas dentro de una capa. Si no se incluye ninguna capa oculta, como en un modelo de regresión logística, las entradas pasan directamente de los nodos de la capa de entrada a los nodos de la capa de salida.

Hay tres tipos de neuronas en una red neuronal que se crea con el algoritmo de red neuronal de Microsoft:

  • Input neurons

Las neuronas de entrada proporcionan valores de atributo de entrada para el modelo de minería de datos. En el caso de los atributos de entrada discretos, una neurona de entrada normalmente representa un único estado del atributo de entrada. Esto incluye valores que faltan, si los datos de entrenamiento contienen valores NULL para ese atributo. Un atributo de entrada discreto que tiene más de dos estados genera una neurona de entrada para cada estado y una neurona de entrada para un estado que falta, si hay valores NULL en los datos de entrenamiento. Un atributo de entrada continuo genera dos neuronas de entrada: una neurona para un estado que falta y una neurona para el valor del propio atributo continuo. Las neuronas de entrada proporcionan entradas a una o varias neuronas ocultas.

  • Hidden neurons

Las neuronas ocultas reciben entradas de las neuronas de entrada y proporcionan salidas a las neuronas de salida.

  • Output neurons

Las neuronas de salida representan valores de atributo predecibles para el modelo de minería de datos. En el caso de los atributos de entrada discretos, una neurona de salida normalmente representa un estado único predicho para un atributo que se puede predecir, incluidos los valores ausentes. Por ejemplo, un atributo de predicción binario genera un nodo de salida que describe un estado que falta o existente, para indicar si existe un valor para ese atributo. Una columna booleana que se usa como atributo de predicción genera tres neuronas de salida: una neurona para un valor verdadero, una neurona para un valor falso y una neurona para un estado que falta o existente. Un atributo discreto y predecible que posee más de dos estados genera una neurona de salida para cada estado y una neurona de salida para un estado existente o que falta. Las columnas de predicción continua generan dos neuronas de salida: una neurona para un estado que falta o existente y una neurona para el valor de la propia columna continua. Si se generan más de 500 neuronas de salida revisando el conjunto de columnas predecibles, Analysis Services genera una nueva red en el modelo de minería de datos para representar las neuronas de salida adicionales.

Una neurona recibe la entrada de otras neuronas o de otros datos, dependiendo de la capa de la red en la que se encuentra. Una neurona de entrada recibe entradas de los datos originales. Las neuronas ocultas y las neuronas de salida reciben entradas de la salida de otras neuronas de la red neuronal. Las entradas establecen relaciones entre neuronas y las relaciones sirven como una ruta de análisis para un conjunto específico de casos.

Cada entrada tiene un valor asignado, denominado peso, que describe la relevancia o importancia de esa entrada concreta a la neurona oculta o a la neurona de salida. Cuanto mayor sea el peso asignado a una entrada, más relevante o importante será el valor de esa entrada. Los pesos pueden ser negativos, lo que implica que la entrada puede impedir, en lugar de activar, una neurona específica. El valor de cada entrada se multiplica por el peso para resaltar la importancia de una entrada para una neurona específica. Para ponderaciones negativas, el efecto de multiplicar el valor por el peso es desemfasizar la importancia.

Cada neurona tiene asignada una función simple no lineal, denominada función de activación, que describe la relevancia o importancia de una neurona determinada a esa capa de una red neuronal. Las neuronas ocultas usan una función tangente hiperbólica (tanh) para su función de activación, mientras que las neuronas de salida usan una función sigmoide para la activación. Ambas funciones son funciones no lineales y continuas que permiten a la red neuronal modelar relaciones no lineales entre las neuronas de entrada y salida.

Entrenamiento de redes neuronales

Hay varios pasos implicados en el entrenamiento de un modelo de minería de datos que usa el algoritmo de red neuronal de Microsoft. Estos pasos están muy influenciados por los valores que se especifican para los parámetros del algoritmo.

El algoritmo evalúa y extrae primero los datos de entrenamiento del origen de datos. Se reserva un porcentaje de los datos de entrenamiento, denominados datos de espera, para su uso en la evaluación de la precisión de la red. A lo largo del proceso de entrenamiento, la red se evalúa inmediatamente después de cada iteración a través de los datos de entrenamiento. Cuando la precisión ya no aumenta, se detiene el proceso de entrenamiento.

Los valores de los parámetros SAMPLE_SIZE y HOLDOUT_PERCENTAGE se usan para determinar el número de casos que se van a muestrear de los datos de entrenamiento y el número de casos que se van a dejar de lado para los datos de retención. El valor del parámetro HOLDOUT_SEED se usa para determinar aleatoriamente los casos individuales que se van a dejar de lado para los datos de espera.

Nota:

Estos parámetros de algoritmo son diferentes de las propiedades HOLDOUT_SIZE y HOLDOUT_SEED, que se aplican a una estructura de minería de datos para definir un conjunto de datos de prueba.

El algoritmo siguiente determina el número y la complejidad de las redes que admite el modelo de minería de datos. Si el modelo de minería de datos contiene uno o varios atributos que se usan solo para la predicción, el algoritmo crea una única red que representa todos estos atributos. Si el modelo de minería de datos contiene uno o varios atributos que se usan para la entrada y la predicción, el proveedor de algoritmos construye una red para cada atributo.

Para los atributos de entrada y predicción que tienen valores discretos, cada neurona de entrada o salida representa respectivamente un único estado. Para los atributos de entrada y predicción que tienen valores continuos, cada neurona de entrada o salida representa respectivamente el intervalo y la distribución de valores para el atributo. El número máximo de estados admitidos en cualquier caso depende del valor del parámetro de algoritmo de MAXIMUM_STATES . Si el número de estados de un atributo específico supera el valor del parámetro de algoritmo de MAXIMUM_STATES , los estados más populares o relevantes para ese atributo se eligen, hasta el número máximo de estados permitidos y los estados restantes se agrupan como valores que faltan para los fines del análisis.

A continuación, el algoritmo usa el valor del parámetro HIDDEN_NODE_RATIO al determinar el número inicial de neuronas que se van a crear para la capa oculta. Puede establecer HIDDEN_NODE_RATIO en 0 para evitar la creación de una capa oculta en las redes que genera el algoritmo para el modelo de minería de datos, para tratar la red neuronal como una regresión logística.

El proveedor de algoritmos evalúa de forma iterativa el peso de todas las entradas de la red al mismo tiempo, tomando el conjunto de datos de entrenamiento reservados anteriormente y comparando el valor conocido real de cada caso en los datos de espera con la predicción de la red, en un proceso conocido como aprendizaje por lotes. Una vez que el algoritmo haya evaluado todo el conjunto de datos de entrenamiento, el algoritmo revisa el valor previsto y real de cada neurona. El algoritmo calcula el grado de error, si existe, y ajusta los pesos asociados a las entradas de esa neurona, trabajando hacia atrás desde las neuronas de salida hasta las neuronas de entrada en un proceso conocido como backpropagation. A continuación, el algoritmo repite el proceso en todo el conjunto de datos de entrenamiento. Dado que el algoritmo puede admitir muchos pesos y neuronas de salida, el algoritmo de gradiente conjugado se usa para guiar el proceso de entrenamiento para asignar y evaluar los pesos de las entradas. Una explicación del algoritmo de degradado conjugado está fuera del ámbito de esta documentación.

Selección de características

Si el número de atributos de entrada es mayor que el valor del parámetro MAXIMUM_INPUT_ATTRIBUTES , o si el número de atributos de predicción es mayor que el valor del parámetro MAXIMUM_OUTPUT_ATTRIBUTES , se usa un algoritmo de selección de características para reducir la complejidad de las redes que se incluyen en el modelo de minería de datos. La selección de características reduce el número de atributos de entrada o predicción a los que son más relevantes estadísticamente para el modelo.

Todos los algoritmos de minería de datos de Analysis Services usan automáticamente la selección de características para mejorar el análisis y reducir la carga de procesamiento. El método utilizado para la selección de características en los modelos de red neuronal depende del tipo de datos del atributo. Como referencia, en la tabla siguiente se muestran los métodos de selección de características que se usan para los modelos de red neuronal y también se muestran los métodos de selección de características usados para el algoritmo de regresión logística, que se basa en el algoritmo de red neuronal.

Algoritmo Método de análisis Comentarios
Red neuronal Puntuación de interés

Entropía de Shannon

Bayesiano con K2 Prior

Bayesian Dirichlet con un prior uniforme (valor predeterminado)
El algoritmo de redes neuronales puede usar métodos de puntuación bayesianos y basados en entropía, siempre y cuando los datos contengan columnas continuas.

Predeterminado.
Regresión logística Puntuación de interés

Entropía de Shannon

Bayesiano con Prior K2

Bayesian Dirichlet con una priori uniforme (valor predeterminado)
Dado que no se puede pasar un parámetro a este algoritmo para controlar el comportamiento de las elecciones de características, se usan los valores predeterminados. Por lo tanto, si todos los atributos son discretos o discretizados, el valor predeterminado es BDEU.

Los parámetros de algoritmo que controlan la selección de características de un modelo de red neuronal se MAXIMUM_INPUT_ATTRIBUTES, MAXIMUM_OUTPUT_ATTRIBUTES y MAXIMUM_STATES. También puede controlar el número de capas ocultas estableciendo el parámetro HIDDEN_NODE_RATIO.

Métodos de puntuación

La puntuación es un tipo de normalización, que en el contexto del entrenamiento de un modelo de red neuronal significa el proceso de convertir un valor, como una etiqueta de texto discreta, en un valor que se puede comparar con otros tipos de entradas y ponderados en la red. Por ejemplo, si un atributo de entrada es Gender y los valores posibles son Hombres y Mujeres, y otro atributo de entrada es Income, con un intervalo variable de valores, los valores de cada atributo no son comparables directamente y, por tanto, deben codificarse en una escala común para que se puedan calcular los pesos. La puntuación es el proceso de normalizar estas entradas en valores numéricos: en concreto, en un intervalo de probabilidad. Las funciones usadas para la normalización también ayudan a distribuir el valor de entrada de forma más uniforme en una escala uniforme para que los valores extremos no distorsionan los resultados del análisis.

Las salidas de la red neuronal también se codifican. Cuando hay un único destino para la salida (es decir, predicción) o varios destinos que se usan solo para la predicción y no para la entrada, el modelo crea una sola red y es posible que no parezca necesario normalizar los valores. Sin embargo, si se usan varios atributos para la entrada y la predicción, el modelo debe crear varias redes; Por lo tanto, todos los valores deben normalizarse y las salidas también deben codificarse a medida que salen de la red.

La codificación de las entradas se basa en la suma de cada valor discreto en los casos de entrenamiento y multiplicando ese valor por su peso. Esto se denomina suma ponderada, que se pasa a la función de activación en la capa oculta. Se usa una puntuación z para la codificación, como se indica a continuación:

Valores discretos

μ = p: la probabilidad anterior de un estado

StdDev = sqrt(p(1-p))

Valores continuos

Valor presente= 1: μ/σ

No hay ningún valor existente= -μ/σ

Una vez codificados los valores, las entradas pasan por suma ponderada, con bordes de red como pesos.

La codificación para las salidas usa la función sigmoid, que tiene propiedades que lo hacen muy útil para la predicción. Una de estas propiedades es que, independientemente de cómo se escalan los valores originales y, independientemente de si los valores son negativos o positivos, la salida de esta función siempre es un valor entre 0 y 1, que es adecuado para calcular las probabilidades. Otra propiedad útil es que la función sigmoid tiene un efecto suavizado, de modo que, a medida que los valores se alejan más lejos del punto de inflexión, la probabilidad del valor se mueve hacia 0 o 1, pero lentamente.

Personalización del algoritmo de red neuronal

El algoritmo de red neuronal de Microsoft admite varios parámetros que afectan al comportamiento, el rendimiento y la precisión del modelo de minería de datos resultante. También puede modificar la forma en que el modelo procesa los datos estableciendo marcas de modelado en columnas o estableciendo marcas de distribución para especificar cómo se controlan los valores de la columna.

Establecer parámetros de algoritmo

En la tabla siguiente se describen los parámetros que se pueden usar con el algoritmo de red neuronal de Microsoft.

HIDDEN_NODE_RATIO
Especifica la relación entre las neuronas ocultas y las neuronas de entrada y salida. La fórmula siguiente determina el número inicial de neuronas en la capa oculta:

HIDDEN_NODE_RATIO * SQRT(Neuronas de entrada totales * Neuronas de salida totales)

El valor predeterminado es 4.0.

Porcentaje de reserva
Especifica el porcentaje de casos dentro de los datos de entrenamiento utilizados para calcular el error de validación, que se usa como parte de los criterios de parada al entrenar el modelo de minería.

El valor predeterminado es 30.

HOLDOUT_SEED
Especifica un número que se usa para inicializar el generador pseudoaleatorio cuando el algoritmo determina aleatoriamente los datos de espera. Si este parámetro se establece en 0, el algoritmo genera la inicialización basada en el nombre del modelo de minería de datos, para garantizar que el contenido del modelo siga siendo el mismo durante el reprocesamiento.

El valor predeterminado es 0.

ATRIBUTOS_DE_ENTRADA_MÁXIMOS
Determina el número máximo de atributos de entrada que se pueden proporcionar al algoritmo antes de emplear la selección de características. Al establecer este valor en 0 se deshabilita la selección de características para los atributos de entrada.

El valor predeterminado es 255.

ATRIBUTOS_DE_SALIDA_MÁXIMA
Determina el número máximo de atributos de salida que se pueden proporcionar al algoritmo antes de emplear la selección de características. Al establecer este valor en 0, se deshabilita la selección de características para los atributos de salida.

El valor predeterminado es 255.

ESTADOS_MÁXIMOS
Especifica el número máximo de estados discretos por atributo admitido por el algoritmo. Si el número de estados de un atributo específico es mayor que el número especificado para este parámetro, el algoritmo usa los estados más populares para ese atributo y trata los estados restantes como ausentes.

El valor predeterminado es 100.

TAMAÑO_DE_MUESTRA
Especifica el número de casos que se usarán para entrenar el modelo. El algoritmo usa este número o el porcentaje del total de casos no incluidos en los datos de espera especificados por el parámetro HOLDOUT_PERCENTAGE, el valor que sea menor.

Es decir, si HOLDOUT_PERCENTAGE se establece en 30, el algoritmo usará el valor de este parámetro o un valor igual al 70 por ciento del número total de casos, lo que sea menor.

El valor predeterminado es 10000.

Banderas de modelado

Se admiten las siguientes marcas de modelado para su uso con el algoritmo de red neuronal de Microsoft.

NO NULO
Indica que la columna no puede contener un valor NULL. Se producirá un error si Analysis Services encuentra un valor NULL durante el entrenamiento del modelo.

Se aplica a las columnas de la estructura minera.

MODEL_EXISTENCE_ONLY
Indica que el modelo solo debe tener en cuenta si existe un valor para el atributo o si falta un valor. El valor exacto no importa.

Se aplica a las columnas del modelo de minería de datos.

Marcas de distribución

Se admiten las siguientes marcas de distribución para su uso con el algoritmo de red neuronal de Microsoft. Las marcas se usan como sugerencias solo para el modelo; si el algoritmo detecta una distribución diferente, usará la distribución encontrada, no la distribución proporcionada en la sugerencia.

Normal
Indica que los valores de la columna deben tratarse como si representaran la distribución normal o gaussiana.

Uniforme
Indica que los valores de la columna deben tratarse como si se distribuyes uniformemente; es decir, la probabilidad de cualquier valor es aproximadamente igual y es una función del número total de valores.

Registro normal
Indica que los valores de la columna se deben tratar como si se distribuyeran según la curva log-normal, lo que significa que el logaritmo de los valores se distribuye normalmente.

Requisitos

Un modelo de red neuronal debe contener al menos una columna de entrada y una columna de salida.

Columnas de entrada y predicción

El algoritmo de red neuronal de Microsoft admite las columnas de entrada específicas y las columnas de predicción que se enumeran en la tabla siguiente.

Columna Tipos de contenido
Atributo de entrada Continuo, cíclico, discreto, discretizado, clave, tabla y ordenado
Atributo de predicción Continuo, cíclico, discreto, discreto y ordenado

Nota:

Se admiten tipos de contenido cíclicos y ordenados, pero el algoritmo los trata como valores discretos y no realiza un procesamiento especial.

Véase también

Algoritmo de red neuronal de Microsoft
Contenido del modelo de minería de datos para modelos de red neuronal (Analysis Services - Minería de datos)
Ejemplos de consultas del modelo de red neuronal