Path: blob/master/site/es-419/addons/tutorials/optimizers_conditionalgradient.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Optimizadores de complementos de TensorFlow: ConditionalGradient
Descripción general
En este bloc de notas se explica cómo usar el optimizador ConditionalGradient del paquete de complementos.
ConditionalGradient
Se ha demostrado que restringir los parámetros de una red neuronal es positivo para el entrenamiento gracias a los efectos de regularización subyacentes. A menudo, los parámetros se restringen mediante una sanción suave (que nunca garantiza el cumplimiento de la restricción) o mediante una operación de proyección (que es costosa desde el punto de vista computacional). En cambio, el optimizador de gradiente condicional (CG) impone las restricciones de forma estricta sin necesidad de recurrir a un costoso paso de proyección. Para ello, minimiza una aproximación lineal del objetivo dentro del conjunto de restricciones. En este bloc de notas, se demuestra la aplicación de la restricción de la norma de Frobenius mediante el optimizador CG en el conjunto de datos MNIST. CG ya está disponible como API de tensorflow. Si desea obtener más información sobre los optimizadores disponibles, consulte https://arxiv.org/pdf/1803.06453.pdf
Preparación
Generación del modelo
Preparación de los datos
Definición de una función de retrollamada personalizada
Entrenamiento y evaluación: con CG como optimizador
Sencillamente reemplace los optimizadores típicos de keras por el nuevo optimizador de tfa
Entrenamiento y evaluación: con SDG como optimizador
Norma de Frobenius de los pesos: comparación entre CG y SGD
La implementación actual del optimizador CG está basada en la Norma de Frobenius, y considera la Norma de Frobenius como regularizador en la función objetivo. Por lo tanto, se compara el efecto regularizado de CG con el optimizador SGD, que no ha impuesto el regularizador de la Norma de Frobenius.