María José Medina
En una clase del curso de Introducción a Machine Learning se explica como usar el Neural Network Playground. --> Link a la clase
¿Cómo preparar datos para un modelo de aprendizaje con TensorFlow JS?
El primer paso crucial para entrenar un modelo de aprendizaje de máquina es preparar los datos de manera adecuada. La calidad y cantidad de datos son esenciales para el aprendizaje exitoso, y en este sentido, seguirás varios pasos:
Recolecta de datos: Este proceso puede involucrar reunir datos de diversas fuentes como clientes, imágenes o entradas de dispositivos, según lo que desees analizar.
Visualización y limpieza: Identifica y corrige datos inválidos o vacíos, asegurándote de que el conjunto de datos esté en las mejores condiciones para el entrenamiento.
Separación de datos: Divide tus datos en conjuntos de entrenamiento y evaluación. Esto evita que la red neuronal aprenda únicamente de los datos disponibles sin saber generalizar ante datos desconocidos.
La preparación meticulosa de los datos garantizará que el modelo no solo aprenda adecuadamente sino que también sea capaz de predecir resultados con precisión.
¿Cómo entrenar y ajustar un modelo con TensorFlow JS?
Entrenar un modelo implica el uso eficiente de los datos y herramientas proporcionadas por TensorFlow JS, siguiendo varias etapas importantes:
Obtener un batch de datos: El entrenamiento no se realiza con todos los datos simultáneamente, sino en pequeños subconjuntos conocidos como batches, optimizando así los recursos y tiempo.
Decidir el optimizador, la función de pérdida y las métricas de evaluación:
categorical cross entropy y mean squared error.Ejecutar el entrenamiento usando fit o fit dataset: Dependiendo del tamaño de tu modelo e información, escoge entre model.fit() para casos manejables en memoria o model.fitDataset() para datos más extensos o en stream.
Configurar correctamente el entrenamiento es clave, siendo casi un arte, donde se ajustan hiperparámetros como el número de capas y neuronas para optimizar el aprendizaje.
¿Cómo validar y utilizar un modelo entrenado?
Una vez entrenado, es esencial validar que tu modelo funciona correctamente y se ajusta a nuevas situaciones:
Validación del modelo: Usa los datos de evaluación para verificar si el entrenamiento no sobrefitó el modelo, es decir, que no se ajustó solo a los datos de entrenamiento.
Predicción con el modelo: Utiliza model.predict() para hacer predicciones, asegurándote que los nuevos datos cumplan con la misma regularización y normalización que en el entrenamiento.
Hiperparámetros y ajustes adicionales: Explora alteraciones en hiperparámetros como el tamaño de batch o número de epochs para mejorar los resultados del modelo.
Con un enfoque metódico y cuidadoso en estas fases, maximizarás la eficacia y usabilidad de cualquier modelo de aprendizaje de máquina que desarrolles con TensorFlow JS. A medida que continúes en este camino, tu habilidad para experimentar y ajustar crecerá, haciendo posible el aprovechar totalmente las potencialidades que ofrecen las redes neuronales.
María José Medina
En una clase del curso de Introducción a Machine Learning se explica como usar el Neural Network Playground. --> Link a la clase
José Alberto Ortiz Vargas
Antes de entrenar el modelo debemos decidir 3 cosas:
Julio J Yépez
La regularización y normalización de los datos favorece los cálculos de los valores de parámetros (pesos) y el acercamiento acelerado al menor costo (pérdida) en el entrenamiento. Al llevar todos los features (valores de entrada) a un rango controlado entre 0 y 1 ó, -1 y 1 la cantidad de iteraciones necesarias para llegar al mínimo de la función de pérdida (o costo) es generalmente menor por lo que el tiempo necesario para el entrenamiento del modelo se podría reducir considerablemente.
Segundo Juan
Cuando los datos de entrada están en un rango controlado, los parámetros del modelo (como los pesos en una red neuronal) pueden ajustarse más rápidamente hacia sus valores óptimos. Esto se debe a que el gradiente de la función de pérdida es más estable y consistente, lo que permite que el algoritmo de optimización (como el gradiente descendiente) haga actualizaciones más efectivas a los parámetros. Como resultado, el modelo puede converger al mínimo de la función de pérdida en menos iteraciones, lo que reduce el tiempo necesario para el entrenamiento.
María José Medina
Funciones de pérdida Es el objetivo que el modelo intentará minimizar. Su meta es devolver un número que indique “que tan mal” está la predicción del modelo. Este cálculo se realiza para cada “lote” de datos de entrenamiento. Existen algunas funciones predefinidas como “categoricalCrossentropy” o “meanSquaredError”.
🔹 categoricalCrossentropy
Medida de entropía que permite clasificar claramente entre dos categorías
🔹 meanSquaredError
Distancia mínima cuadrada entre los puntos que el modelo está aprendiendo y el punto que se esta prediciendo.
Marlon Cáceres
¿Se puede utilizar las mismas imágenes de entrenamiento para la evaluación? Es decir ingresamos 10 imágenes para entrenarle alguna de esas imágenes se puede utilizar para evaluar.
Israel Yance
No es lo adecuado. El modelo se crea para predecir datos nuevos. Por eso al entrenar se parte en una de entrenamiento y otro de test, este último para evaluar qué tan bien predice.
Sergio Rubiano
Lo recomendado es 70% para datos de entrenamiento, 20 % datos de prueba y 10 % evaluación, no puedes evaluar tu modelo con los mismos datos de entrenamiento, por que tu predicción estará muy cercana al 100% puede caer en un problema de sobre Ajuste (Overfiting)
Pedro Quiñonez Verdugo
Cabe aclarar que este modelo no funciona cuando el digito dibujado no es encuentra en el centro, para esto existen las redes neuronales convolucionadas
John Mauricio Barrero Junco
hola, Si nuestro modelo se descarga en el pc usuario, hay alguna forma de proteger el modelo para que este únicamente funcione en nuestra pagina?
Alejandro Santamaria
Buena pregunta, desafortunadamente en entornos donde enviamos nuestro código y/o modelos al cliente, los mecanismos de protección suelen ser de ofuscación, es decir, intentan presentar y manipular los resultados de una forma difícil de descifrar incluso teniendo el código fuente, sin embargo, un atacante con suficiente tiempo/recursos tiene buenas probabilidades de encontrar una forma de des-ofuscar la información. Algunos mecanismos separan partes críticas del procesamiento dejando una fase final en la nube, sin embargo esto elimina algunas de las ventajas de tener un entorno en el cliente, pero estas estrategias deberán atenderse durante la planeación ya que en algunos casos si es importante proteger la propiedad intelectual (ej. entrenar GPT-3 costó mucho dinero, el impacto de que alguien accese y use ese modelo fuera de el entorno de sus propietarios sería importante, aunque en ese caso el modelo es tan grande que sería impráctico tenerlo en el cliente).