Main Content

Ajustar datos con la app Neural Net Fitting

En este ejemplo se muestra cómo entrenar una red neuronal superficial para que ajuste datos con la app Neural Net Fitting.

Abra la app Neural Net Fitting usando nftool.

nftool

Seleccionar los datos

La app Neural Net Fitting cuenta con datos de ejemplo para ayudarle a empezar a entrenar una red neuronal.

Para importar datos de grasa corporal de ejemplo, seleccione Import > Import Body Fat Data Set. Puede usar este conjunto de datos para entrenar una red neuronal para que estime el porcentaje de grasa corporal de alguien a partir de varias medidas. Si importa sus propios datos desde un archivo o desde el espacio de trabajo, debe especificar los predictores y las respuestas, y si las observaciones están en filas o columnas.

En el resumen del modelo encontrará información sobre los datos importados. Este conjunto de datos incluye 252 observaciones, cada una con 13 características. Las respuestas contienen el porcentaje de grasa corporal de cada observación.

Divida los datos en conjuntos de entrenamiento, validación y prueba. Conserve la configuración predeterminada. Los datos se dividen en:

  • 70% para entrenamiento.

  • 15% para validar que la red está generalizando y para detener el entrenamiento antes de que se dé un sobreajuste.

  • 15% para probar de forma independiente la generalización de la red.

Para obtener más información sobre la división de los datos, consulte Dividir datos para realizar un entrenamiento de red neuronal óptimo.

Crear una red

La red es una red prealimentada de dos capas con una función de transferencia sigmoide en la capa oculta y una función de transferencia lineal en la capa de salida. El valor del tamaño de la capa define el número de neuronas ocultas. Conserve el tamaño de capa predeterminado, 10. Puede ver la arquitectura de la red en el panel Network. La gráfica de la red se actualiza para reflejar los datos de entrada. En este ejemplo, los datos tienen 13 entradas (características) y una salida.

Entrenar la red

Para entrenar la red, seleccione Train > Train with Levenberg-Marquardt. Este es el algoritmo de entrenamiento predeterminado, y es el mismo que si se hace clic en Train.

Para la mayoría de los problemas, recomendamos Train with Levenberg-Marquardt (trainlm). Para problemas pequeños o con ruido, la regularización bayesiana (trainbr) puede ofrecer una solución mejor, pero tardará más tiempo. Para problemas grandes, se recomienda el gradiente conjugado escalado (trainscg), ya que utiliza cálculos de gradientes que son más eficientes que los cálculos jacobianos que utilizan los otros dos algoritmos.

En el panel Training puede ver el progreso del entrenamiento. El entrenamiento continúa hasta que se cumple uno de los criterios. En este ejemplo, el entrenamiento continúa hasta que el error de validación es mayor o igual que el error de validación previamente más pequeño durante seis iteraciones de validación consecutivas ("Met validation criterion").

Analizar los resultados

En el resumen del modelo se incluye información sobre el algoritmo de entrenamiento y los resultados de entrenamiento de cada conjunto de datos.

Puede continuar analizando los resultados generando gráficas. Para representar la regresión lineal, en la sección Plots, haga clic en Regression. La gráfica de regresión muestra las predicciones de la red (salida) con respecto a las respuestas (objetivo) para los conjuntos de entrenamiento, validación y prueba.

Para obtener un ajuste perfecto, los datos deberían aparecer dispuestos a lo largo de una línea de 45 grados, donde las salidas de la red son iguales a las respuestas. Para resolver este problema, el ajuste es razonablemente bueno para todos los conjuntos de datos. Si necesita resultados más precisos, vuelva a entrenar la red haciendo clic en Train. Cada entrenamiento tendrá diferentes pesos y sesgos iniciales de la red y puede producir una red mejorada después del nuevo entrenamiento.

Consulte el histograma de errores para obtener una verificación adicional del rendimiento de la red. En la sección Plots, haga clic en Error Histogram.

Las barras azules representan los datos de entrenamiento, las verdes representan los datos de validación y las rojas representan los datos de prueba. El histograma proporciona una indicación de valores atípicos, que son los puntos de datos en los que el ajuste es significativamente peor que la mayoría de los datos. Es recomendable revisar los valores atípicos para determinar si los datos son deficientes o si esos puntos de datos son diferentes al resto de los datos. Si los valores atípicos son puntos de datos válidos, pero son diferentes al resto de los datos, entonces la red está extrapolando estos puntos. Debería recopilar más datos que se parezcan a los puntos atípicos y volver a entrenar la red.

Si no le satisface el rendimiento de la red, puede llevar a cabo una de las operaciones siguientes:

  • Entrenar la red de nuevo.

  • Aumentar el número de neuronas ocultas.

  • Usar un conjunto de datos de entrenamiento más extenso.

Si el rendimiento en el conjunto de entrenamiento es bueno, pero el rendimiento en el conjunto de pruebas es deficiente, esto puede indicar que el modelo está sobreajustando. Reducir el número de neuronas puede reducir el sobreajuste.

También puede evaluar el rendimiento de la red en un conjunto de pruebas adicional. Para cargar datos de pruebas adicionales con los que evaluar la red, en la sección Test, haga clic en Test. En el resumen del modelo se muestran los resultados de la prueba adicional. También se pueden generar gráficas para analizar los resultados de los datos de las pruebas adicionales.

Generar código

Seleccione Generate Code > Generate Simple Training Script para crear código de MATLAB con el fin de reproducir los pasos anteriores de la línea de comandos. Crear código de MATLAB puede ser útil si desea aprender a utilizar la funcionalidad de la línea de comandos de la toolbox para personalizar el proceso de entrenamiento. En Ajustar datos usando funciones de línea de comandos puede investigar los scripts generados con más detalle.

Exportar la red

Puede exportar la red entrenada al espacio de trabajo o a Simulink®. También puede desplegar la red con las herramientas de MATLAB Compiler™ y otras herramientas de generación de código de MATLAB. Para exportar la red entrenada y los resultados, seleccione Export Model > Export to Workspace.

Consulte también

| | | | |

Temas relacionados