Comenzaría por entrenar un modelo en el conjunto de datos grande y optimizarlo hasta que esté satisfecho. Guarde el modelo para su uso posterior. Después de haber entrenado su modelo en el conjunto de datos grande, tiene 2 opciones para ajustar un conjunto de datos más pequeño:
Congelar capas:
Cargue su modelo guardado, congele todas las capas pero la capa de salida, agregue un par de capas completamente conectadas antes de alimentar su capa de salida. La idea es que el ajuste fino en el conjunto de datos más pequeño ocurre en las capas superiores completamente conectadas, y las capas congeladas se utilizan para alimentar las características.
- ¿Qué hace una capa convolucional 1 × 1?
- ¿Los métodos de aprendizaje profundo conducen a avances en el procesamiento del lenguaje natural?
- ¿Qué es la ganancia de información en el aprendizaje automático?
- ¿Cuál es una explicación intuitiva para el equilibrio de sesgo-varianza?
- ¿Qué opinas de la exageración actual sobre Deep Learning?
En Keras hay una propiedad entrenable en la clase Layer que, de forma predeterminada, es True; si se establece en False, se bloquearán los pesos. Piense en ello como hacer que la capa sea de solo lectura.
layer.trainable = False
Esta será tu opción más rápida.
Entrena con una tasa de aprendizaje pequeña:
La otra opción es entrenar su modelo completamente en el conjunto de datos más pequeño PERO con una tasa de aprendizaje pequeña (+ – 0.001), asegurándose de que el modelo no desaprenda lo que ha aprendido mientras entrena en el conjunto de datos grande.
Este método será lento, pero probablemente le dará el mejor resultado. Usar SGD es una buena opción, ya que le da control sobre la tasa de aprendizaje y la descomposición .
Juegue y vea lo que funciona para usted.