Transfer learning y fine-tuning forman parte de las alternativas con las que podrás contar dentro de un análisis del Deep Learning para el manejo del Big Data. De manera que contar con este tipo de conocimiento es de suma importancia para un buen data scientist, puesto que debe conocer las alternativas para elegir la mejor solución de su procesamiento de los macrodatos.
Por este motivo, en el desarrollo de este post, te explicamos qué son transfer learning y fine-tuning.
¿Qué son transfer learning y fine-tuning?
En muchas de las aplicaciones en las que queremos proponer una solución basada en aprendizaje profundo, los datos disponibles no son suficientes para obtener un buen modelo de predicción entrenando una CNN desde cero. Las técnicas de transfer learning y fine-tuning nos permiten entrenar modelos precisos con conjuntos de datos limitados (unas 500-1000 muestras por clase) evitando tener que:
- Definir la estructura de la red neuronal.
- Tener que entrenarla desde cero.
Dichas técnicas, transfer learning vs fine tuning, se basan en emplear arquitecturas CNN predefinidas y que han sido entrenadas en el conjunto de datos ImageNet ofreciendo notables resultados: ResNet, AlexNet, VGG, Inception, DenseNet, etc.
Como ya sabes, las redes se inicializan con unos pesos aleatorios (normalmente) que tras una serie de épocas consiguen tener unos valores que permiten clasificar adecuadamente nuestras imágenes de entrada con transfer learning y fine tuning.
¿Qué pasaría si pudiésemos inicializar esos pesos a unos valores que sabemos que ya son buenos para clasificar un determinado dataset? ¿Sabes cómo actúa transfer learning y fine tuning en esto?
De esta forma, no necesitaríamos ni un dataset tan grande como el necesario si queremos entrenar una red de cero (de cientos de miles o incluso millones de imágenes podríamos pasar a unas pocas miles) ni necesitaríamos esperar un buen número de épocas a que los pesos cogiesen valores buenos para la clasificación, lo tendrían mucho más fácil debido a su inicialización; para ello, existen transfer learning y fine-tuning.
A continuación, vamos a hacer un pequeño repaso por las arquitecturas más conocidas para entender las diferencias entre las técnicas más conocidas dentro del manejo del Deep Learning con las redes convolucionales: transfer learning y fine-tuning.
Existen grupos de investigación que dedican su vida a desarrollar arquitecturas que funcionen y entrenarlas en datasets enormes, así que parece lógico aprovecharnos de esto en vez de intentar crear cada vez que tengamos un problema una arquitectura propia, ¿verdad? Esto no solo nos va a ahorrar tiempo y dolores de cabeza, sino que nos va a aportar precisión y estabilidad.
Las arquitecturas más comunes hoy en día para las técnicas de transfer learning y fine-tuning son:
- VGG16 y VGG19: esta arquitectura, que fue una de las primeras en aparecer, fue introducida por Simonyan y Zisserman en 2014 con su artículo titulado Very Deep Convolutional Networks for Large Scale Image Recognition.
- ResNet: la arquitectura de ResNet la desarrolló He en 2015 para el transfer learning y fine tuning. El artículo se llama Deep Residual Learning for Image Recognition.
- Inception V3: este tipo de arquitectura lo introdujo en 2014 Szegedy en su artículo llamado Going Deeper with Convolutions.
- Xception: esta arquitectura la propuso François Chollet (el creador de Keras) y lo único que aporta respecto a Inception es que realiza las convoluciones de una forma óptima para que tarden menos tiempo.
- SqueezeNet: esta red es extremadamente ligera (sus pesos ocupan 5MB, en comparación de los 500MB de la VGG o los 100 de la Inception, por ejemplo) para transfer learning y fine tuning y consigue un accuracy de ~57% rank-1 o ~80% rank-5 con el ImageNet.
Debes saber que hay infinitas arquitecturas, pero estas son con diferencia las más usadas para transfer learning vs fine tuning. Normalmente, ante un problema, no vamos a ponernos a definir nuestra arquitectura, sino que usaremos una de estas arquitecturas para las técnicas de transfer learning y fine-tuning.
En este post, te has acercado a las técnicas de transfer learning y fine-tuning, de manera que ahora comprendes su importancia y podrás contar con ellas dentro del manejo de redes neuronales convolucionales en el manejo del Deep Learning. Sin embargo, aún falta mucho para instruirse sobre la manipulación del Big Data y su debido procesamiento.
Por este motivo, te invitamos a conocer nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning. Gracias a esta formación, conocerás más herramientas, como puede ser Tableau Desktop, mediante ejercicios prácticos para aprender a usar las diferentes conexiones, filtrados, tipos de datos, análisis estadísticos, formulación, creación de dashboards, historias, etc. ¡Empieza ahora y conviértete en un experto del sector IT en pocos meses!