Path: blob/master/site/es-419/addons/tutorials/layers_normalizations.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Descripción general
En estas anotaciones se proporciona una breve introducción a las capas de normalización de TensorFlow. Las capas compatibles actualmente son las siguientes:
Normalización por grupos (complementos de TensorFlow)
Normalización por instancias (complementos de TensorFlow)
Normalización por capas (esencial de TensorFlow)
La idea de base detrás de estas capas es la de normalizar la salida de una capa de activación para mejorar la convergencia durante el entrenamiento. En contraste con la normalización por lotes, estas normalizaciones no funcionan en lotes, sino que normalizan las activaciones de a una sola muestra; por lo tanto, resultan adecuadas también para redes neuronales recurrentes.
Por lo general, la normalización se lleva a cabo mediante el cálculo de la media y la desviación estándar de un subgrupo en el tensor de entrada. También es posible aplicar un factor escalar y uno de compensación en este caso.
: salida
: entrada
: factor escalar
: media
: desviación estándar
: factor de desplazamiento (offset)
Con la siguiente imagen se demuestra la diferencia entre estas técnicas. Cada subgráfico muestra un tensor de entrada donde N es el eje del lote; C, como eje del canal; y H (alto) y W (ancho), como los ejes espaciales (por ejemplo, el alto y el ancho de una foto). Los pixeles en azul están normalizados por la misma media y varianza, calculada por el agregado de los valores de estos pixeles.
Fuente: (https://arxiv.org/pdf/1803.08494.pdf)
Los pesos gamma y beta se pueden entrenar en cualquiera de las capas de normalización para compensar por la posible pérdida de la capacidad de representación. Estos factores se pueden activar estableciendo el código center
o la marca scale
como True
. Por supuesto, se pueden usar initializers
, constraints
y regularizer
para beta
y gamma
a fin de ajustar estos valores durante el proceso de entrenamiento.
Preparación
Instalación de los componentes de Tensorflow 2.0 y Tensorflow
Preparación del conjunto de datos
Tutorial para la normalización por grupos
Introducción
En la normalización por grupos (GN), los canales de las entradas se dividen en subgrupos más pequeños y se normalizan estos valores, según su media y varianza. Dado que la normalización por grupos funciona con ejemplos únicos, podemos decir que esta técnica es independiente del tamaño del lote.
La normalización por grupos a nivel experimental obtuvo una calificación cercana a la de la normalización por lotes en cuanto a tareas de clasificación de imágenes. Por lo tanto, puede ser beneficioso usar la normalización por grupos, en vez de la normalización por lotes, en aquellos casos en que el tamaño del lote en general es pequeño (low), algo que podría derivar en un mal funcionamiento de la normalización por lotes.
Ejemplo en el que se dividen 10 canales de una capa Conv2D en 5 subgrupos en un escenario estándar "channels last" (los canales al final):
Tutorial de normalización por instancias
Introducción
La normalización por instancias es un caso especial de normalización por grupos en el que el tamaño del grupo es igual al tamaño del canal (o del tamaño del eje).
Los resultados experimentales muestran que la normalización por instancias funciona bien en la transferencia de estilos cuando se usa en lugar de la normalización por lotes. Recientemente, la normalización por instancias también se ha usado como reemplazo de la normalización por lotes en redes GAN.
Ejemplo
Aplicación de InstanceNormalization después de una capa Conv2D y uso de un factor escalar y de compensación inicializado uniforme.
Tutorial de normalización por capas
Introducción
La normalización por capas es un caso especial de normalización por grupos en la que el tamaño del grupo es 1. La media y la desviación estándar se calcula a partir de todas las activaciones de una muestra individual.
Los resultados experimentales muestran que la normalización por capas es adecuada para las redes neuronales recurrentes, ya que funcionan con independencia del tamaño del lote.
Ejemplo
Aplicación de la normalización por capas después de una capa Conv2D y uso de un factor escalar y de compensación.
Bibliografía
Layer norm (Normalización por capas)
Instance norm (Normalización por instancias)
Group Norm (Normalización por grupos)