quebin31 / stack-tia

Stack TIA (Preguntas y respuestas)
2 stars 0 forks source link

¿Por qué los anchors usados en Faster RCNN son invariantes a la traslación? #11

Open limonadev opened 4 years ago

limonadev commented 4 years ago

Nombres y apellidos

Ademir Villena Zevallos

Contexto adicional sobre la pregunta

En el artículo de Faster RCNN se menciona la invarianza a la traslación de los anchors usados en la RPN de la Faster RCNN, mencionando que es una ventaja con respecto al método MultiBox. Sin embargo, no explica claramente la razón de esta invarianza.

Mi posible respuesta

Si crees tener una respuesta pero no estás seguro, colócala aquí.

quebin31 commented 4 years ago

Justo mencioné eso en otra respuesta, y me pareció interesante también, no digo que tenga la verdad absoluta pero parece que es invariante dado que la "mini-red" recibe como entradas pequeñas ventanas deslizantes de la imagen original (osea el mapa de características), y aprende en base a eso, entonces realmente no va a importar donde este una característica, la red ya aprendió a detectarlas. Creo yo que eso es lo que la hace invariante.

EDIT: Terminando de aclarar la idea, los anchors son de escalas y tamaños fijos y creo que eran 9, lo que me parece que lo hace invariante es realmente como aprende la red,

limonadev commented 4 years ago

En realidad, los anchors no son en si mismos los que mantienen las escalas y tamaños fijo, sino que son zonas que se adaptan a los hiperparámetros de escalas y ratios. Es decir, definimos las escalas y los ratios, los anchors se crean posteriormente en cada "ventana" ajustándose a esos hiperparámetros.

limonadev commented 4 years ago

Respecto a lo de la invarianza, podríamos argumentar que es por el mismo hecho de pasar a través de una convolución luego de disminuir su dimensionalidad, pero no me convence que sea únicamente ese factor (combinado con la capa FC que lo aplana para generar las 4k salidas). Quizá sea más por el hecho de trabajar sobre un mapa de características generado por la capa compartida, la red podría haber aprendido allí como manejar objetos en distintos lugares.

quebin31 commented 4 years ago

Respecto a lo de la invarianza, podríamos argumentar que es por el mismo hecho de pasar a través de una convolución luego de disminuir su dimensionalidad, pero no me convence que sea únicamente ese factor (combinado con la capa FC que lo aplana para generar las 4k salidas). Quizá sea más por el hecho de trabajar sobre un mapa de características generado por la capa compartida, la red podría haber aprendido allí como manejar objetos en distintos lugares.

También, pero la mini-red también actúa como una convolución, básicamente aprende por cada ventana pequeñita

limonadev commented 4 years ago

Respecto a lo de la invarianza, podríamos argumentar que es por el mismo hecho de pasar a través de una convolución luego de disminuir su dimensionalidad, pero no me convence que sea únicamente ese factor (combinado con la capa FC que lo aplana para generar las 4k salidas). Quizá sea más por el hecho de trabajar sobre un mapa de características generado por la capa compartida, la red podría haber aprendido allí como manejar objetos en distintos lugares.

También, pero la mini-red también actúa como una convolución, básicamente aprende por cada ventana pequeñita

Pero si mal no recuerdo, era el pooling quien generaba la invarianza a la traslación en las CNN, no la convolución. Se supone que era una de las mayores ventajas del pooling

quebin31 commented 4 years ago

Sí, realmente no es que actué como una convolución, pero se va moviendo a través de la imagen, aprende a detectar sin importar en que parte este.