Recorte: luego elimine un área rectangular y rellénela con 0
Borrado aleatorio: luego elimine un área rectangular y rellénela con la media
Mezcla: los píxeles en cada posición de las dos imágenes se superponen de acuerdo con una cierta proporción, y la etiqueta se asigna de acuerdo con la proporción de superposición de píxeles.
Cutmix: elimine aleatoriamente un área rectangular y rellénela con el valor de píxel de la misma posición en otra imagen, y la etiqueta se asigna de acuerdo con la proporción de píxeles
Resumen de una oración: elimine aleatoriamente un área rectangular en la imagen, puede obtener mejores resultados de entrenamiento
1.1. Qué problema resolver
El entrenamiento de aprendizaje profundo es muy fácil de provocar un ajuste excesivo, lo que requiere una gran cantidad de datos y varios métodos de regularización.
La mejora de datos puede verse como un método de regularización.
1.2. ¿Qué método se utilizó?
El recorte en sí es muy fácil, es decir, elimina aleatoriamente varias áreas rectangulares (cambia el valor de píxel a 0)
classCutout(object):"""Randomly mask out one or more patches from an image.
Args:
n_holes (int): Number of patches to cut out of each image.
length (int): The length (in pixels) of each square patch.
"""def__init__(self, n_holes, length):
self.n_holes = n_holes
self.length = length
def__call__(self, img):"""
Args:
img (Tensor): Tensor image of size (C, H, W).
Returns:
Tensor: Image with n_holes of dimension length x length cut out of it.
"""
h = img.size(1)
w = img.size(2)
mask = np.ones((h, w), np.float32)for n inrange(self.n_holes):
y = np.random.randint(h)
x = np.random.randint(w)
y1 = np.clip(y - self.length //2,0, h)
y2 = np.clip(y + self.length //2,0, h)
x1 = np.clip(x - self.length //2,0, w)
x2 = np.clip(x + self.length //2,0, w)
mask[y1: y2, x1: x2]=0.
mask = torch.from_numpy(mask)
mask = mask.expand_as(img)
img = img * mask
return img
Antes de leer este artículo, tenía mucha curiosidad sobre lo que puede decir.
Realmente puedo contar una historia ...
Comparando el recorte y el abandono, piense que el recorte es una forma especial de abandono.
Es solo que el objeto del abandono se convierte en la imagen de entrada, no en el mapa de características.
Lo que se ignora es un área continua, no una selección aleatoria.
No hay cambio de escala.
La motivación de Cutout es la "oclusión", es decir, el área rectangular eliminada puede considerarse como una ubicación que está ocluida.
Cuando se diseñó originalmente Cutout, en realidad era muy complicado:
El área eliminada no es un área rectangular aleatoria, sino que se elimina una característica importante en la imagen de entrada.
El método es similar a maxdrop, el objetivo elimina áreas importantes, para obtener resultados de clasificación a través de otra información y lograr una mejor capacidad de generalización del modelo.
El método de implementación es registrar el mapa de características activado al máximo de cada imagen en cada ronda y luego eliminar el área especificada de acuerdo con el umbral en la siguiente ronda.
Pero más tarde descubrió que el efecto de eliminar áreas al azar es similar a este método complejo.
Por ejemplo, como se muestra a continuación
1.3. ¿Qué tan efectivo es?
Resulta que el área del área eliminada es mucho más importante que la forma del área eliminada.
Después de usar Cutout, generalmente se menciona
Después de usar Cutout, ¿qué tipo de efecto causó?
El área roja es el resultado cuando no hay corte y el azul es el resultado después de agregar cotout.
La fuerza de activación (tamaño del valor del mapa de características) del mapa de características de poca profundidad (como se muestra en la Figura a) ha aumentado
El mapa de características profundas (Figura c) tiene un rango de distribución más amplio (vea más activaciones al final de la distribución)
1.4. Cuáles son los problemas y qué se puede aprender
Primera reacción: ¿Se puede utilizar también como papel?
Se siente más como un informe de experimento y un resumen de proyecto.
Unidad de autor: Universidad de Xiamen y Universidad de Tecnología de Sydney
Hora de publicación: 2017
Resumen de una oración: luego elimine un área rectangular y rellénela con la media
2.1. Qué problema resolver
Las redes neuronales convolucionales tienden a sobreajustarse y requieren una gran cantidad de datos para mejorar la capacidad de generalización del modelo.
El problema de la oclusión es muy importante para mejorar la capacidad de generalización del modelo.
Se dice que la implementación es sencilla y logra mejores resultados
Todos dicen que han pedido prestado a los que abandonaron la escuela, pero hay una pequeña diferencia
2.3. ¿Qué tan efectivo es?
Además de la comparación de tareas de clasificación de imágenes, se comparan la detección y ReID.
Este artículo también compara los resultados de diferentes valores de llenado (el efecto de llenado de números aleatorios es el mejor), la comparación con el abandono y la comparación con otros métodos de mejora.
2.4. Cuáles son los problemas y qué se puede aprender
Es lo mismo que Cutout, el tiempo de publicación de los dos trabajos está muy cerca
Siempre siento que está un poco mal para las tareas de detección y ReID, y el pequeño objetivo se perderá si no es un archivo.
Los ejemplos exitosos de redes neuronales tienen dos características en común
El modelo se entrena utilizando el principio ERM (Experienced Risk Minimization).
Cuantos más datos, mejor será el efecto.
Hay una contradicción en ERM
Por un lado, ERM permite que las grandes redes neuronales recuerden los datos de entrenamiento.
Por otro lado, ERM tiene un problema de muestra contradictorio (una pequeña diferencia puede llevar a una gran desviación de los resultados), y si los datos no están en la distribución de entrenamiento, es probable que ocurran problemas.
¿Hay alguna forma de reemplazar ERM?
3.2. ¿Qué método se utilizó?
La definición de Mixup es muy simple
Cada píxel de la imagen de entrada se fusiona proporcionalmente y el resultado de salida se fusiona proporcionalmente (formato one-hot)
El código oficial de Mixup es el siguiente, que consiste en mezclar y acumular en un lote.
defmixup_data(x, y, alpha=1.0, use_cuda=True):'''Returns mixed inputs, pairs of targets, and lambda'''if alpha >0:
lam = np.random.beta(alpha, alpha)else:
lam =1
batch_size = x.size()[0]if use_cuda:
index = torch.randperm(batch_size).cuda()else:
index = torch.randperm(batch_size)
mixed_x = lam * x +(1- lam)* x[index,:]
y_a, y_b = y, y[index]return mixed_x, y_a, y_b, lam
Análisis matemático de Mixup
El documento presenta cómo comprender desde una perspectiva de datos y evolucionar de ERM a Mixup
大概 就是 从 riesgo esperado -> distribución empírica -> aproximación del riesgo esperado por el riesgo empírico -> VRM -> distribución vecina genérica
Realmente no lo entiendo, así que no publicaré la fórmula, solo la leeré en el periódico.
Alguna comprensión de Mixup
A \ Alpha Cuando A tiende a 0, Mixup degenera en ERM
El experimento encontró que el efecto de Mixup para> 2 muestras no mejoró.
La implementación de Mixup usa shuffle en el mismo mini-lote
Fomentar que el modelo se comporte linealmente entre muestras de entrenamiento. No sé cómo traducirlo. Cuando se transforma linealmente entre diferentes muestras, ¿la etiqueta también se transforma linealmente?
El artículo cree que los comportamientos lineales reducen la oscilación (perturbación, vacilación, ¿cómo traducir?) Al predecir otras muestras.
La linealidad también es una manifestación de la navaja de Occam.
Como se muestra en la Figura b a continuación, la combinación transforma linealmente los límites de decisión entre diferentes categorías.
3.3. ¿Qué tan efectivo es?
El efecto de clasificación de la imagen es mejor y el efecto para los datos de voz (¿voz?) También es mejor (no se muestra)
El efecto de las etiquetas correctas (etiquetas de error) y las muestras adversas ha mejorado
También se han realizado muchos experimentos de ablación, lo que me preocupa es que el efecto de confusión entre muestras del mismo tipo no es bueno.
3.4. Cuáles son los problemas y qué se puede aprender
Creo que el principal problema de Mixup es que no se ajusta a nuestros hábitos visuales humanos.
La sensación que siempre me ha dado CV es la de imitar la visión humana, si puedes hacer lo que los humanos pueden hacer, será genial.
Pero Mixup se siente diferente de lo que hice antes. Los datos de entrenamiento después de Mixup son aún más difíciles para nosotros, las personas.
También se puede utilizar en el reconocimiento de comportamientos, planear reproducir uno.
Unidad de autor: NAVER Crop (motor de búsqueda coreano) y LINE Plus Crop (¿versión coreana de WeChat? No estoy seguro) y Yonsei University, Corea
Hora de publicación: ICCV 2019
Resumen de una oración: elimine aleatoriamente un área rectangular y llene el área eliminada con el valor de píxel de la misma posición en otra imagen, y la etiqueta se asigna de acuerdo con la proporción de píxeles
4.1. Qué problema resolver
Las estrategias regionales de abandono son más efectivas (hacen que el modelo no solo se enfoque en un área pequeña), como el recorte y el borrado aleatorio mencionados anteriormente, sino que también hay problemas
Parte de la información se perderá y será ineficaz durante el entrenamiento (no sé cómo entender)
¿Cómo hacer un mejor uso del área eliminada en el recorte?
4.2. ¿Qué método se utilizó?
¿Qué es CutMix? La imagen de abajo es muy clara.
La fórmula de Cutmix se define de la siguiente manera
La clave del problema es λ \ lambdaλCómo obtener, cómo obtener el área eliminada
4.3. ¿Qué tan efectivo es?
Mejor para tareas de clasificación
Buenos resultados para tareas de posicionamiento de aprendizaje poco supervisadas
También funciona mejor cuando se usa para el aprendizaje por transferencia
4.4. Cuáles son los problemas y qué se puede aprender
Hay un problema con estos métodos de mejora. Áreas eliminadas aleatoriamente. Si no hay información importante pero sí información de fondo, debería afectar los resultados, ¿verdad?
En otras palabras, estos métodos deberían tener mayores requisitos para los datos de entrada. .