Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Equipment >> Robot industrial

Conjuntos de datos de entrenamiento para redes neuronales:cómo entrenar y validar una red neuronal Python

En este artículo, usaremos muestras generadas por Excel para entrenar un perceptrón multicapa, y luego veremos cómo funciona la red con muestras de validación .

Si está buscando desarrollar una red neuronal Python, está en el lugar correcto. Antes de profundizar en la discusión de este artículo sobre cómo usar Excel para desarrollar datos de entrenamiento para su red, considere revisar el resto de la serie a continuación para obtener información general:

  1. Cómo realizar la clasificación mediante una red neuronal:¿Qué es el perceptrón?
  2. Cómo utilizar un ejemplo de red neuronal de Perceptron simple para clasificar datos
  3. Cómo entrenar una red neuronal de perceptrón básica
  4. Comprensión del entrenamiento de redes neuronales simples
  5. Introducción a la teoría del entrenamiento para redes neuronales
  6. Comprensión de la tasa de aprendizaje en redes neuronales
  7. Aprendizaje automático avanzado con el perceptrón multicapa
  8. La función de activación sigmoidea:activación en redes neuronales de perceptrones multicapa
  9. Cómo entrenar una red neuronal de perceptrón multicapa
  10. Comprender las fórmulas de entrenamiento y la retropropagación para perceptrones multicapa
  11. Arquitectura de red neuronal para una implementación de Python
  12. Cómo crear una red neuronal de perceptrón multicapa en Python
  13. Procesamiento de señales mediante redes neuronales:validación en el diseño de redes neuronales
  14. Conjuntos de datos de entrenamiento para redes neuronales:cómo entrenar y validar una red neuronal Python

¿Qué son los datos de entrenamiento?

En un escenario de la vida real, las muestras de entrenamiento consisten en datos medidos de algún tipo combinados con las "soluciones" que ayudarán a la red neuronal a generalizar toda esta información en una relación de entrada-salida consistente.

Por ejemplo, supongamos que desea que su red neuronal prediga la calidad de alimentación de un tomate en función del color, la forma y la densidad. No tiene idea de cómo se correlacionan exactamente el color, la forma y la densidad con la delicia general, pero puede mide el color, la forma y la densidad, y tienen papilas gustativas. Por lo tanto, todo lo que necesita hacer es reunir miles y miles de tomates, registrar sus características físicas relevantes, probar cada uno (la mejor parte) y luego poner toda esta información en una tabla.

Cada fila es lo que yo llamo una muestra de entrenamiento, y hay cuatro columnas:tres de ellas (color, forma y densidad) son columnas de entrada y la cuarta es la salida de destino.


Durante el entrenamiento, la red neuronal encontrará la relación (si existe una relación coherente) entre los tres valores de entrada y el valor de salida.

Cuantificación de datos de entrenamiento

Tenga en cuenta que todo debe procesarse en forma numérica. No puede utilizar la cadena "en forma de ciruela" como entrada a su red neuronal, y "delicioso" no funcionará como valor de salida. Necesita cuantificar sus medidas y sus clasificaciones.

Para la forma, puede asignar a cada tomate un valor de –1 a +1, donde –1 representa perfectamente esférico y +1 representa extremadamente alargado. En cuanto a la calidad alimentaria, puede calificar cada tomate en una escala de cinco puntos que va de "no comestible" a "delicioso" y luego usar la codificación one-hot para asignar las calificaciones a un vector de salida de cinco elementos.

El siguiente diagrama muestra cómo se emplea este tipo de codificación para la clasificación de salida de la red neuronal.


El esquema de salida one-hot nos permite cuantificar clasificaciones no binarias de una manera que sea compatible con la activación logístico-sigmoidea. La salida de la función logística es esencialmente binaria porque la región de transición de la curva es estrecha en comparación con el rango infinito de valores de entrada para los cuales el valor de salida está muy cerca del mínimo o máximo:

Por lo tanto, no queremos configurar esta red con un solo nodo de salida y luego suministrar muestras de entrenamiento que tengan valores de salida de 0, 1, 2, 3 o 4 (que serían 0, 0.2, 0.4, 0.6 o 0.8 si desea permanecer en el rango de 0 a 1); La función de activación logística del nodo de salida favorecería fuertemente las calificaciones mínima y máxima.

La red neuronal simplemente no comprende lo absurdo que sería concluir que todos los tomates son incomibles o deliciosos.

Creación de un conjunto de datos de entrenamiento

La red neuronal de Python que discutimos en la Parte 12 importa ejemplos de entrenamiento de un archivo de Excel. Los datos de entrenamiento que usaré para este ejemplo están organizados de la siguiente manera:

Nuestro código de Perceptron actual está limitado a un nodo de salida, por lo que todo lo que podemos hacer es realizar un tipo de clasificación de verdadero / falso. Los valores de entrada son números aleatorios entre –5 y +5, generados con esta fórmula de Excel:

 =RANDBETWEEN (-10, 10) / 2 

Como se muestra en la captura de pantalla, la salida se calcula de la siguiente manera:

 =SI (Y (A2> 0, B2> 0, C2 <0), 1, 0) 

Por lo tanto, la salida es verdadera solo si input_0 es mayor que cero, input_1 es mayor que cero y input_2 es ​​menor que cero. De lo contrario, es falso.

Ésta es la relación matemática de entrada-salida que el perceptrón necesita extraer de los datos de entrenamiento. Puede generar tantas muestras como desee. Para un problema simple como este, puede lograr una precisión de clasificación muy alta con 5000 muestras y una época.

Capacitación de la red

Deberá establecer la dimensionalidad de su entrada en tres ( I_dim =3, si está utilizando mis nombres de variable). Configuré la red para tener cuatro nodos ocultos ( H_dim =4), y elegí una tasa de aprendizaje de 0.1 ( LR =0,1).

Busque el training_data =pandas.read_excel (...) declaración e inserte el nombre de su hoja de cálculo. (Si no tiene acceso a Excel, la biblioteca de Pandas también puede leer archivos ODS). Luego, haga clic en el botón Ejecutar. El entrenamiento con 5000 muestras toma solo unos segundos en mi computadora portátil con Windows de 2.5 GHz.

Si está utilizando el programa completo "MLP_v1.py" que incluí en la Parte 12, la validación (consulte la siguiente sección) comienza inmediatamente después de que se completa la capacitación, por lo que deberá tener sus datos de validación listos antes de capacitar a la red. .

Validación de la red

Para validar el rendimiento de la red, creo una segunda hoja de cálculo y genero valores de entrada y salida usando exactamente las mismas fórmulas, y luego importo estos datos de validación de la misma manera que importo datos de entrenamiento:

El siguiente extracto de código le muestra cómo puede realizar la validación básica:


Utilizo el procedimiento de retroalimentación estándar para calcular la señal de postactivación del nodo de salida, y luego uso una declaración if / else para aplicar un umbral que convierte el valor de postactivación en un valor de clasificación verdadero / falso.

La precisión de la clasificación se calcula comparando el valor de clasificación con el valor objetivo para la muestra de validación actual, contando el número de clasificaciones correctas y dividiendo por el número de muestras de validación.

Recuerde que si tiene np.random.seed (1) instrucción comentada, los pesos se inicializarán a diferentes valores aleatorios cada vez que ejecute el programa y, en consecuencia, la precisión de clasificación cambiará de una ejecución a la siguiente. Realicé 15 ejecuciones separadas con los parámetros especificados anteriormente, 5000 muestras de entrenamiento y 1000 muestras de validación.

La precisión de clasificación más baja fue del 88,5%, la más alta fue del 98,1% y el promedio fue del 94,4%.

Conclusión

Cubrimos información teórica importante relacionada con los datos de entrenamiento de redes neuronales e hicimos un experimento inicial de entrenamiento y validación con nuestro Perceptron multicapa en lenguaje Python. Espero que esté disfrutando de la serie de AAC sobre redes neuronales; hemos progresado mucho desde el primer artículo y todavía hay mucho más sobre lo que debemos analizar.


Robot industrial

  1. ¿Cómo obtener la fecha y hora actuales en Python?
  2. Debut de chips de inteligencia artificial neuromórfica para aumentar las redes neuronales
  3. Cómo instalar un simulador y editor VHDL gratis
  4. Comprender los mínimos locales en el entrenamiento de redes neuronales
  5. Cómo aumentar la precisión de una red neuronal de capa oculta
  6. ¿Cuántas capas y nodos ocultos necesita una red neuronal?
  7. Procesamiento de señales mediante redes neuronales:validación en el diseño de redes neuronales
  8. Los cinco problemas y desafíos principales para 5G
  9. Cómo alimentar y cuidar sus redes de sensores inalámbricos
  10. Capacitación en bombas de vacío de BECKER para usted y para mí
  11. Cómo reducir el tiempo de capacitación para la soldadura robótica