02-Experimento de imagen inversa

Característica de imagen inversa

github: https://github.com/Gary11111/02-Inversion

Antecedentes de la investigación

ONNX

Muchos modelos visuales excelentes se escriben en caffe, muchos documentos de investigación nuevos se escriben en Pytorch y se escriben más modelos en TF, por lo que si queremos probarlos, necesitamos el entorno marco correspondiente. Cuando el formato de intercambio ONNX, podemos Prueba diferentes modelos en el mismo entorno.

Implementación py estructura VGGNET

13 capas convolucionales + 3 capas completamente conectadas

Capa convolucional
  • conv2d + sesgo
  • regularización de batchnorm
  • activación relu
def conv_layer(self, bottom, name, stride = 1):
    with tf.variable_scope(name):
        filt = self.get_conv_filter(name)
        conv = tf.nn.conv2d(bottom, filt, [1, stride, stride, 1], padding='SAME')
        conv_biases = self.get_bias(name)
        bias = tf.nn.bias_add(conv, conv_biases)
        mean = self.get_mean(name)
        variance = self.get_variance(name)
        offset = self.get_beta(name)
        scale = self.get_gamma(name)
        norm = tf.nn.batch_normalization(bias, mean, variance, offset, scale, 1e-20 )
        relu = tf.nn.relu(norm)
        return relu

HOG histograma de gradiente de dirección

HOG + SVM es el método principal de detección de peatones

  1. Idea principal: en una imagen, la apariencia y la forma del objetivo local se pueden describir bien por el gradiente o la distribución de densidad en la dirección del borde (la información estadística del gradiente se concentra principalmente en la parte del borde)
  2. Método de implementación específico: divida la imagen en pequeñas áreas conectadas, llamadas unidades de celda, y luego recopile el histograma del gradiente o la dirección del borde de cada píxel en la unidad de celda, y luego combine los histogramas para formar un descriptor de características.
  3. Ventajas:
    1. HOG opera en las unidades locales de la imagen, por lo que puede mantener una buena invariancia a las deformaciones geométricas y ópticas de la imagen, y estas dos deformaciones solo aparecerán en el campo espacial más grande.
    2. En condiciones de abstracción de espacio grueso, muestreo de dirección fina y fuerte normalización óptica local, siempre que el problema de los peatones pueda mantener una postura erguida, se puede ignorar el impacto de algunos movimientos sutiles.

Transformación de características invariantes de escala SIFT

Se utiliza para detectar y describir características locales en la imagen, busca puntos extremos en la escala espacial y extrae sus invariantes de posición, escala y rotación.

Aplicaciones: reconocimiento de objetos, percepción y navegación de mapas de robots, seguimiento de imágenes, reconocimiento de gestos, etc.

Las características de imagen local ayudan a identificar objetos:

  1. La función SIFT se basa en algunas características de apariencia local de interés en el objeto y no tiene nada que ver con el tamaño y la rotación de la imagen. La página de tolerancia para la luz, el ruido y los ligeros cambios en el ángulo de visión es bastante alta. Basado en esta característica, es muy llamativo y fácil de capturar. En la gran base de datos de características, es fácil identificar objetos y rara vez los reconoce mal.
  2. La tasa de detección de usar SIFT para describir características para la oclusión parcial de objetos es bastante alta, y solo necesita más de tres características de objetos SIFT para calcular la posición y la orientación. La velocidad de reconocimiento puede estar cerca del cálculo en tiempo real.

Ideas de tarea

VGGNET16 está listo (los parámetros han sido entrenados).

  1. Use la imagen original para construir un gráfico de cálculo VGG16 - abajo
  2. Use el ruido para construir un gráfico de cálculo VGG16
  3. Especifique una determinada capa del gráfico de cálculo, como conv3_1, el objetivo es ver lo que se ha aprendido en esta capa de red neuronal.
  4. La parte inferior solo se inicializa una vez durante la construcción y no se actualizará, como objetivo del aprendizaje de ruido; utilice la distancia euclidiana para calcular el error [función de pérdida]
  5. Use ADAM como optimizador para optimizar la función de pérdida.

Método incorporado del optimizador de grabación TF

  • compute_gradients (loss, val_list)

Se usa para calcular la derivada parcial de pérdida para cada artículo en val_list

  • apply_gradients (graduados)

Actualice la variable con el valor devuelto por compute_gradients como parámetro de entrada.

Estas dos funciones son equivalentes al método minimizar (), con corrección de gradiente para el desmontaje

Método de regularización: modelo variacional completo de TV

El uso es similar al método de regularización L1, L2, agregando un término regular al final de la función objetivo.

img

tf.image.total_variation

Calcule y devuelva el cambio total de una o más imágenes. El cambio total es la síntesis de la diferencia absoluta de píxeles adyacentes en la imagen de entrada y es un factor importante para medir cuánto ruido hay en la imagen.

E-learning residual

¿Por qué introducir red residual?

El aumento en el número de capas de red en el aprendizaje profundo generalmente va acompañado de los siguientes problemas:

  1. Consumo de recursos informáticos: puede resolverse mediante un clúster de GPU
  2. El sobreajuste se puede resolver mediante la recopilación de datos masivos y la cooperación con la deserción
  3. El gradiente desaparece, el gradiente explota: se puede resolver con BN

Parece que puede beneficiarse al aumentar la profundidad del modelo, pero a medida que aumenta la profundidad de la red, el modelo parece degradarse: a medida que aumenta el número de capas de red, la pérdida del conjunto de entrenamiento disminuye gradualmente y la región se satura; si aumenta la profundidad, el conjunto del entrenamiento En cambio, la pérdida aumentará. Esto no es un sobreajuste, porque el sobreajuste reducirá continuamente el error de entrenamiento.

Cuando la red se degrada, la red superficial puede lograr mejores resultados que la red profunda. En este momento, si pasamos las características de bajo nivel a la capa alta, el efecto no será peor que la red superficial o una red vgg-100 La capa 98 usa las mismas características que el vgg-16 en la capa 14, por lo que el efecto de vgg100 será el mismo que vgg16. Por lo tanto, puede agregar una asignación directa entre 98 capas de vgg100 y 14 capas de vgg16 para lograr este efecto.

Teoría de la información: debido a la existencia de DPI (desigualdad de procesamiento de datos), en el proceso de transmisión hacia adelante, a medida que aumenta el número de capas, la información de la imagen contenida en el mapa de características disminuirá capa por capa, y se agrega el mapeo directo de la red para asegurar la capa l + 1 La red debe contener más información de imagen que la capa 1.

Red residual

Bloque residual

img

La red residual se compone de una serie de bloques residuales y, en general, la parte residual del lado derecho de la curva se compone de dos o tres operaciones de convolución.

En una red de convolución, x_ly x_l+1un número diferente de mapa de características, se requiere un 1*1litro red de convolución dimensionalmente o reducción de dimensionalidad.

Principio de red residual

[Oficial]

[Oficial]

Para la capa más profunda L, su relación con la capa l se puede expresar como:

[Oficial]

Se reflejan dos atributos de la red residual:

  1. La capa L se puede representar por cualquier capa menos profunda que
  2. L es la suma acumulativa de la unidad de cada bloque residual, y MLP es la acumulación de la matriz de características.

De acuerdo con la regla de derivación de BP, el gradiente de la pérdida de la función de pérdida con respecto a x_l se puede expresar como:

[Oficial]

  1. A lo largo del entrenamiento, el segundo término no siempre puede ser -1, y la red residual no desaparecerá.
  2. El primer término indica que el gradiente de la capa L se puede transmitir a cualquier capa menos profunda que esta.

El mapeo directo es la mejor opción

Puede agregar un coeficiente al primer término de (6) λ \ lambda , después de la derivación, encontramos λ > 1 \ lambda> 1 gradiente explotará, si λ < 1 \ lambda <1 gradiente desaparecerá

El registro experimental es el siguiente

Efecto de la tasa de aprendizaje sobre el efecto del entrenamiento.

lr.PNG

Se puede ver que la tasa de aprendizaje cambia de 0.001 a 0.01, la velocidad de convergencia del modelo es más rápida y el efecto final es diferente: cuanto mayor es la tasa de aprendizaje, más se acerca la imagen al resultado real.

Efecto de imagen de muestreo experimental de 1000 iteraciones a diferentes velocidades de aprendizaje:

Cuadro comparativo PNG

El impacto de la regularización de variación total

  • Únete a la regularización de TV

    Del manual oficial TF 2.0

    tv_regular = tf.reduce_sum(tf.image.total_variation(noise_layer))
    

    tv_02.PNG

  • Aumentar la proporción de regularización de TV.

    tv_01.PNG

  • fea/repRatio aumentado

Comparación de red profunda y red superficial

vgg16 usa conv3_1 para obtener la imagen

conv3_1.PNG

La imagen obtenida por vgg16 usando conv1_1

conv1_1.PNG

vgg16 usa conv3_1 + fc6 para obtener la imagen

[Falló la transferencia de la imagen de la cadena externa, el sitio de origen puede tener un mecanismo de cadena antirrobo, se recomienda guardar la imagen y cargarla directamente (img-CtwUye4B-1586339197527) (E: \ Junior Year \ junior year \ deep learning \ Assignment \ MyWorkPlace \ 02- inversión \ proyecto \ Documentos del proyecto \ img \ fc6conv3.PNG)]

Extracción de características bajo diferentes modelos

resnet-18 usando res2 para obtener la imagen

res2.PNG

imagen resnet-18 obtenida usando middle1

middle0.PNG

Modificación del código: carga del modelo y selección de capa objetivo ==> ver detallesq4.diff

Otros: imágenes obtenidas con sus propias imágenes

Los resultados obtenidos con resNet-18 res2 son los siguientes.

self.png

Lectura de papel

Aspectos de interpretabilidad de las redes neuronales.

Transferencia de imagen externa ... (img-NwO8OTyp-1586339197528)]

Modificación del código: carga del modelo y selección de capa objetivo ==> ver detallesq4.diff

Otros: imágenes obtenidas con sus propias imágenes

Los resultados obtenidos con resNet-18 res2 son los siguientes.

[La imagen del enlace externo se está transfiriendo ... (img-8aBWMyGn-1586339197528)]

Lectura de papel

Aspectos de interpretabilidad de las redes neuronales.

paper.png

Publicado 6 artículos originales · recibido 1 · vistas 390

Supongo que te gusta

Origin blog.csdn.net/gky_1111/article/details/105393203
Recomendado
Clasificación