Entender el concepto de Red Neuronal y Aprendizaje Profundo

1

Redes Neuronales: Construcción en TensorFlow JS

2

Redes Neuronales: Fundamentos y Aplicaciones Básicas

3

Algoritmos de Aprendizaje Profundo: Redes Neuronales Avanzadas

Conocer qué es TensorFlow y TensorFlow.js

4

TensorFlow para Principiantes: De Tensor a Modelos Predictivos

5

TensorFlow JS: Aprendizaje Automático en el Navegador

6

Creación de Modelos TensorFlow JS en Navegadores

Entender cuáles son los componentes básicos de una Red Neuronal y cómo entrenarla

7

Creación de modelos con TensorFlow JS usando API de Layers

8

Entrenamiento de Modelos con TensorFlow JS y Layers API

9

Funcionamiento de una puerta XOR con redes neuronales en JavaScript

10

Almacenamiento de Modelos en TensorFlow JS

Entender cual es la forma común de utilizar un modelo de Red Neuronal

11

Optimización de Modelos TensorFlow JS para Navegadores

12

Uso de Modelos Preentrenados en Machine Learning

13

Transferencia de Aprendizaje: Modelos Preentrenados en Visualización

Diseñar un modelo de Regresión Lineal

14

Regresión Lineal con TensorFlow JS: Predicción y Modelado

15

Entrenamiento de modelos de regresión lineal con TensorFlow JS

16

Normalización de Datos para Redes Neuronales en TensorFlow

17

Programación de un botón para guardar modelos de regresión en HTML

Crear una aplicación en JavaScript que utilice un modelo de clasificación de Imágenes

18

Clasificación de Imágenes con Redes Neuronales y Transferencia de Conocimiento

19

Clasificación de Imágenes con Transferencia de Conocimiento

20

Transferencia de Conocimiento en Modelos TensorFlow

Conclusión

21

Entrenamiento de Modelos con TensorFlow JS en el Navegador

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de TensorFlow.js

Curso de TensorFlow.js

Alejandro Santamaria

Alejandro Santamaria

Creación de modelos con TensorFlow JS usando API de Layers

7/21
Recursos

¿Cuáles son los componentes fundamentales de un modelo en TensorFlow JS?

TensorFlow JS es una poderosa herramienta que permite el aprendizaje de máquina y redes neuronales directamente en el navegador. Si estás interesado en incursionar en este fascinante mundo, es vital comprender los componentes fundamentales que constituyen un modelo en TensorFlow JS. Estos son las entradas, las capas y las salidas.

¿Qué papel juegan las entradas en el modelo?

Las entradas son los datos que se proporcionan a la red neuronal para iniciar el proceso de aprendizaje. Pueden ser datos numéricos, imágenes, sonido o cualquier información que el modelo pueda utilizar para aprender a realizar predicciones o clasificaciones.

¿Cómo funcionan las capas en un modelo?

Las capas son el núcleo del modelo de aprendizaje profundo. Contienen las neuronas que transforman las entradas en salidas mediante un aprendizaje progresivo de patrones. Las capas incluyen las capas ocultas, donde se ajustan los parámetros para minimizar errores, y son fundamentales para el proceso de entrenamiento eficaz.

¿Cuál es la función de las salidas?

Las salidas son el resultado final del modelo después del procesamiento de las entradas a través de las capas. La exactitud y precisión de estas salidas determinan el éxito del modelo. Este diseño permite que el modelo tenga "inteligencia" al interpretar los datos nuevos de manera correcta.

¿Cómo crear un modelo con TensorFlow JS?

Para crear un modelo en TensorFlow JS, se disponen de dos principales APIs: la API de layers y la Core API. Ambas ofrecen distintas ventajas y desafíos a los desarrolladores e investigadores en IA.

¿Qué es la API de layers?

La API de layers es una abstracción ideal para principiantes, ya que simplifica el proceso de creación del modelo. Permite construir modelos secuenciales, añadiendo capas de forma sencilla.

Por ejemplo, un modelo con layers comienza con la instancia de sequential:

const modelo = tf.sequential();
modelo.add(tf.layers.dense({units: 32, activation: 'relu', inputShape: [784]}));
modelo.add(tf.layers.dense({units: 10, activation: 'softmax'}));

Aquí, la primera capa utiliza una activación relu y la capa de salida utiliza softmax, crucial para las tareas de clasificación.

¿Qué ventajas ofrece la API de layers?

La API de layers no solo facilita la creación de modelos, sino que también automatiza la creación y la conexión de capas, la inicialización de pesos y la monitorización del entrenamiento. Además, permite la exportación sencilla del modelo para su implementación en otras plataformas.

¿Qué opciones brinda la Core API?

La Core API, más compleja y flexible, permite un acceso detallado y personalizado. Ideal para usuarios avanzados, ofrece la creación manual de métodos de inicialización, serialización y validación.

¿Cómo se valida un modelo en TensorFlow JS?

La validación del modelo es crucial para garantizar su eficacia y exactitud. En TensorFlow JS, la API de layers ayuda a validar automáticamente las conexiones y los parámetros intermedios. Sin embargo, si usas la Core API, la validación podría requerir un esfuerzo manual adicional.

¿Qué son las funciones de activación y por qué son importantes?

Las funciones de activación transforman la suma ponderada de inputs hacia una neurona en una activación (o salida). En TensorFlow JS se utilizan comúnmente dos funciones de activación:

  • ReLU (rectified linear unit): Facilita la optimización al simplificar las operaciones matemáticas.

  • Softmax: Genera una distribución de probabilidades, crucial en modelos de clasificación.

Para aplicar estas funciones durante la creación de un modelo:

modelo.add(tf.layers.dense({units: 32, activation: 'relu'}));
modelo.add(tf.layers.dense({units: 10, activation: 'softmax'}));

La elección de la función de activación afecta directamente el rendimiento del modelo y la precisión de sus predicciones.

¿Qué pasos seguir para avanzar en el uso de TensorFlow JS?

Una vez te familiarices con la API de layers, podrás ir explorando el uso de la Core API cuando necesites mayor flexibilidad. Además, identificar qué funciones de activación encajan mejor con tus proyectos es crucial.

TensorFlow JS ofrece una plataforma robusta para el desarrollo de modelos, animándote a seguir explorando y aprendiendo. Con perseverancia y curiosidad, podrás desarrollar aplicaciones de aprendizaje automático innovadoras y efectivas.

Aportes 12

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

La implementación de capas mediante el API de layers de tensorflow.JS, es equivalente a la implementación de la API de Keras en tensorflow para python o c++. De hecho “layers” está basada en “Keras”.

Ref: https://www.tensorflow.org/js/guide/layers_for_keras_users

Acá dejo una comparativa:

  • Python:
  • JS:

Entradas, capas y salidas

  • Las capas se encargan de transformar los datos de entrada para:
    • Aprender el patrón de los datos de entrenamiento
    • Inferir o predecir un resultado
  • Para crear modelos se puede usar:
    • Layers API (Usuario básico)
    • API Core (Usuario avanzado)
  • Funciones de activación
    • ReLU
    • Softmax: crea una distribución de probabilidades (útil para modelos de clasificación)
  • El modelo expone los componentes:
    • layers
    • inputLayers
    • outputLayers
  • Validación del modelo (Tensorflow.js hace una validación automática de los valores de las capas si se utiliza Layers API)
  • Ventajas de Layers:
    • Inicialización automática de pesos
    • Serialización de los modelos
    • Monitoreo del entrenamiento
    • Portabilidad (a otras plataformas)
    • Revisión de seguridad
  • API Core:
    • Brinda mayor control
    • Se deben crear manualmente los métodos para serializar, inicializar y validar los parámetros

Como se ve en el slide del minuto 06:30, “Softmax” es una generalización de lo que se conoce como Función Sigmoide o Función de Regresión Logística, que se usa para comprimir valores arbitrarios (convertirlos por equivalencia directa) en un rango controlado de entre 0 y 1. De manera similar la función tanh (tangente hiperbólica) comprime los valores en un rango de -1 a 1 … así hay otras funciones que dependiendo del caso se pueden usar con mejor resultado.

para iniciar con api Layers
para hacer cosas complejas Core API

La API Core

Si utilizas esta API tendras mas control, pero es mas dificil ya que deberas crear metodos para serializar, inicializar y validar sus parametros.

Componentes Principales del Modelo para una Red Neuronal

  • Dos entradas (i1, i2)
  • Una capa escondida (h1.1, h1.2, h1.3)
  • La capa de salida (o)

Las ventajas de Layers

Ademas de la validacion, Layers proporciona:

  • Inicializacion de pesos

  • Serializacion (para guardar los modelos)

  • Monitoreo del entrenamiento

  • Portabilidad

  • Revision de seguridad

Validacion del Modelo

Ambos modelos son instancias LayersModels y requieren la especificacion de la forma que recibira la entrada (input), TensorFlow.js hace un calculo automatico de las formas que tendran los tensores intermedios y de crear los parametros.

Si existiera alguna incompatibilidad entre dos capas consecutivas, la libreria se encargara de notificartelo.

La base de una red neuronal:

  • 2 entradas
  • Capas ocultas
  • Una salida
* La en cantidad en el `inputShape` en la primera capa corresponde a la cantidad de pixeles en la imagen de entrada, en este caso las imágenes de entrada son de 28 x 28 = 784. * La cantidad de `units` en la capa de salida corresponden a a la cantidad de posibilidades que esperamos tener de la red, en este caso, se requiere detectar números del 0 al 9 por lo que la cantidad de neuronas de salida son 10.

Recomiendo este video expilca muy bien el tema y hace un ejemplo con codigo para los que les gusta programar:
https://www.youtube.com/watch?v=_TInU2fI__I&t=1234s

Importante determinar cual sera la capa de entrada , la capa oculta y la capa de salia, previo a ello hacer un pre procesamiento de datos,antes de empezar con el entrenamiento.