Entrenamiento de Modelos con TensorFlow JS y API de Layers
Clase 8 de 21 • Curso de TensorFlow.js
Contenido del curso
Clase 8 de 21 • Curso de TensorFlow.js
Contenido del curso
Javier Fuentes Mora
Juan David Blanco Vergara
Bryan
María José Medina
José Alberto Ortiz Vargas
Julio J Yépez
Segundo Juan
María José Medina
Marlon Cáceres
Israel Yance
Sergio Rubiano
Pedro Quiñonez Verdugo
John Mauricio Barrero Junco
Alejandro Santamaria
en que momento vamos a instalar todo para empezar a programar?
pues bro, lo más importante es entender las teorias, estrategias y metodos para hacer un buen trabajo, programar sería algo secundario en donde tomamos todo eso para aplicarlo xd
Además de que puedes repasar este curso para aplicar los conceptos que estamos viendo
En una clase del curso de Introducción a Machine Learning se explica como usar el Neural Network Playground. --> Link a la clase
Antes de entrenar el modelo debemos decidir 3 cosas:
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.
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.
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.
¿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.
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.
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)
Cabe aclarar que este modelo no funciona cuando el digito dibujado no es encuentra en el centro, para esto existen las redes neuronales convolucionadas
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?
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).