Playground - Tensorflow

Clase 12 de 29Curso de Fundamentos de Redes Neuronales con Python y Keras

Contenido del curso

Fundamentos en la arquitectura de redes neuronales

Manejo de redes neuronales con Keras

Resumen

Después de estudiar funciones de activación, funciones de pérdida, derivadas parciales y descenso de gradiente, llega el momento de poner todo en práctica de forma visual e interactiva. El Playground de TensorFlow es una herramienta gratuita que permite experimentar con redes neuronales directamente en el navegador, sin riesgo de romper nada, y observar en tiempo real cómo cada ajuste impacta el aprendizaje del modelo.

¿Qué puedes configurar en el Playground de TensorFlow?

Esta herramienta permite resolver problemas de clasificación o de regresión manipulando distintos parámetros. Puedes definir cuántas capas ocultas tendrá tu red y cuántas neuronas tendrá cada una de esas capas. También eliges las entradas: valores como X1 (eje vertical) y X2 (eje horizontal), e incluso transformaciones de esas variables para mejorar la separación de clases.

Entre los controles disponibles se encuentran:

  • Learning rate [0:55]: la distancia de los pasos en el descenso de gradiente, que determina qué tan rápido o lento se ajustan los pesos.
  • Funciones de activación [1:03]: opciones como ReLU, tangente hiperbólica, sigmoide y lineal para deformar las salidas de cada neurona.
  • Regularización [1:10]: un concepto que ayuda a reducir el overfitting y que se profundiza en temas posteriores.
  • Ruido en los datos: se puede aumentar o disminuir para simular datasets más o menos complejos.

¿Cómo se resuelve un problema de clasificación paso a paso?

El primer ejemplo que se aborda es un problema sencillo donde dos clases están separadas de forma diagonal: un grupo se ubica en el lado superior derecho y el otro en el inferior izquierdo. Con solo dos entradas y una capa oculta de dos neuronas, la red genera dos diagonales que combinan la información [1:40].

Al presionar play, comienzan las épocas, que representan la cantidad de iteraciones del entrenamiento [2:00]. El error parte de un valor alto y, a medida que el modelo itera con el learning rate configurado, la función de pérdida disminuye progresivamente. El resultado: la red logra separar ambas clases correctamente.

¿Qué ocurre con problemas más difíciles?

Con un dataset más complejo, donde las clases forman un patrón circular, se necesitan ajustes adicionales. Agregar más neuronas —por ejemplo, tres— y cambiar la función de activación a sigmoide permite que la red entrene y reduzca el error [2:25]. El resultado es aceptable, pero se puede mejorar.

Un hallazgo interesante es que transformar las entradas marca una gran diferencia. Si se hace un reshape o se cambia la forma del tensor de entrada de manera que separe mejor las clases, el modelo obtiene resultados superiores [2:55]. Con la función tangente hiperbólica y una sola entrada transformada, sin capas ocultas adicionales, el rendimiento mejora notablemente [3:12].

¿Por qué las redes neuronales tienden al overfitting?

Al agregar muchas capas ocultas y construir una arquitectura más densa, el modelo empieza a sobreajustarse mucho más rápido [3:30]. Esto significa que memoriza los datos de entrenamiento en lugar de aprender patrones generalizables. Aunque el overfitting haga que funcione bien con los datos vistos, su capacidad de generalización se reduce.

Dentro del playground se puede visualizar qué información obtiene cada neurona en las capas intermedias, lo cual ayuda a comprender cómo fluyen los datos y cómo cada capa transforma la representación.

¿Qué retos puedes intentar resolver?

El playground incluye problemas más desafiantes como el patrón de espiral y otros datasets con sesgos pronunciados [3:55]. Estos requieren experimentar con más capas, distintas funciones de activación y diferentes combinaciones de entradas. Comparte tus soluciones y configuraciones en los comentarios.