[Red neuronal convolucional] ResNet y MobileNet de la red troncal

1. ResNet

        ① Características

La profundidad de ResNet es mucho mayor                 que la del algoritmo anterior y no habrá problemas de degradación de la red .

                        Sal. Degradación de la red: el aumento en la profundidad de la red no es tan bueno como la red original. (degradación de la red != gradiente de sobreajuste/desaparición)

        ② bloque residual

                El bloque residual adopta Conexión de acceso directoconexión de omisión , y el objetivo de ajuste cambia del resultado final directo al cambio basado en el mapeo de identidad de entrada original (es decir, residual)

                        Ps. Residual : La desviación entre el valor predicho y el valor real

                 En la red ResNet, se apilan múltiples bloques residuales para formar una estructura de red completa, lo que resuelve el problema de degradación.

Si el número de canales del bloque residual es inconsistente con el número de dimensiones del lado corto                 debido a la reducción de muestreo durante el proceso de cálculo (no se puede agregar directamente):

1. Realice el relleno 0 en los                         canales adicionales en el lado corto

                        2. Realice una convolución 1x1 en el lado corto para ajustar el número de canales para que sea consistente con F(x)

        ③ Mecanismo para solucionar la degradación de la red

                1. El retorno de gradiente profundo es suave : el retorno de gradiente se puede transmitir directamente a lo largo del lado corto para evitar que desaparezca el gradiente.

                2. Es difícil que la red de estructura lineal tradicional se ajuste al "mapeo de identidad" : compensa la pérdida de información irreversible causada por la alta no linealidad (puede dejar que el modelo elija si actualizarlo)

2. MobileNet V1

Se utiliza principalmente para la computación perimetral         en dispositivos integrados (menores requisitos de recursos)

        Lectura complementaria: Formas de aligerar la red

                1. Comprimir el modelo entrenado : destilación de conocimiento, cuantificación de peso, poda, transferencia de atención

                2. Entrenamiento directo de red ligera

                3. Operación de convolución acelerada : im2col+GEMM, Winograd, descomposición de rango

                4. Implementación de hardware : Tensorflow-slim / Tensorflow-Lite

        ① Convolución separable en profundidad

                MobileNet está apilado por convolución separable en profundidad ; en comparación con la convolución tradicional, la convolución separable en profundidad se puede considerar como canales de división, y cada kernel de convolución solo es responsable de un canal (en lugar de que un kernel de convolución sea responsable de todos los canales); mientras que cross -La información del canal se puede complementar con canales 1x1.

                Se puede resumir de la siguiente manera: las convoluciones 3x3 y superiores solo son responsables de la información de este canal ; las convoluciones 1x1 solo son responsables de la información entre canales

                Convolución separable en profundidad = convolución en profundidad (conv. en profundidad) + convolución en punto (conv. en punto)

 Convolución en profundidad (conv. en profundidad)

 Convolución puntual (conv. puntual)

                La combinación de la convolución de profundidad y la convolución de punto de MobileNet se muestra en la siguiente figura (primera profundidad en PointWise)

                La convolución separable en profundidad es un caso especial de convolución agrupada . Convolución de grupo : un kernel de convolución solo es responsable de la convolución de una parte del mapa de características

                Las circunvoluciones separables en profundidad también se pueden usar en otras redes troncales para mejorar la eficiencia de los parámetros computacionales (como ResNet).

        ② Convolución separable en el espacio

                A diferencia de las circunvoluciones separables en profundidad, una convolución se descompone en dos convoluciones asimétricas. Por ejemplo, una convolución de 3x3 se descompone en una convolución de 1x3 y una convolución de 3x1.

                 Pero en términos de eficiencia, las circunvoluciones espacialmente separables no son mucho mejores que las circunvoluciones separables en profundidad.

        ③El impacto de la convolución separable en profundidad en la cantidad de parámetros y cálculo

               Para convolución estándar : ( D_Kla longitud del lado del kernel de convolución)

                 Cantidad de cálculo de multiplicación :(D_K\cdot Dk\cdot M)\cdot(N\cdot D_F\cdot D_F)

                            (D_K\cdot Dk\cdot M)Es el número de multiplicaciones de una convolución ; (N\cdot D_F\cdot D_F)es el número de elementos del mapa de características

                 Cantidad de parámetros :D_K\cdot D_K \cdot M \cdot N

               Y para circunvoluciones separables en profundidad:

                 Cantidad de cálculo de multiplicación :(D_K \cdot D_K)\cdot (M\cdot D_F\cdot D_F)+M\cdot (N\cdot D_F\cdot D_F)

                           D_K\cdot D_Kes el número de multiplicaciones de una convolución ,N\cdot D_F \cdot D_F y es el número de elementosN\cdot D_F \cdot D_F del mapa de características , y M es el número de canales

                 La cantidad de parámetros es :D_K \cdot D_K \cdot M+1\cdot1\cdot M\cdot N

                        En comparación con la convolución estándar, la cantidad de cómputo y los parámetros de MobileNet son los mismos que los de la red original.\frac{1}{N}+\frac{1}{D^2_K} 

                 En segundo lugar, MobileNet también proporciona dos hiperparámetros: ancho de red α (que controla el número de núcleos de convolución); \rho-Resolución de imagen de entrada, todos los M, N deben multiplicarse por α, todos D_Fdeben multiplicarse por\rho

         ③ Módulo de convolución separable en profundidad

                                                 

                        En comparación con la convolución estándar de la izquierda, la convolución separable en profundidad divide una convolución de 3x3 en una convolución de 1x1 y agrega una capa BN y una capa ReLu en el medio.

 3. MobileNet V2

        MobileNet V1 tiene los siguientes defectos: ①No hay conexión residual; ②Muchos kernels de convolución de DepthWise están entrenados para ser 0 (la cantidad de pesos de kernel de convolución y la cantidad de canales son demasiado pequeños; ReLu; baja precisión)

        En comparación con MobileNet V1, V2 utiliza una estructura residual inversa y una estructura de cuello de botella lineal .

        El orden de operación de MobileNet V2 es el siguiente: primero use la convolución 1x1 para aumentar la dimensión ( 6 veces ); luego use la convolución separable en profundidad en la dimensión alta ; finalmente use la convolución 1x1 para reducir la dimensión (use la función de activación lineal en lugar de MobileNet V1 después de la dimensión reducción) función de activación ReLu6). Al mismo tiempo, se agrega la estructura residual (el módulo de downsampling ( el primer paso de convolución es 2 ) no tiene conexión residual)

        Aunque tanto MobileNet V2 como ResNet tienen una estructura residual, existen diferencias significativas en la estructura:

                ①ResNet primero reduce la dimensión y luego aumenta la dimensión, MobileNet V2 primero aumenta la dimensión y luego reduce la dimensión

                                                                                        ↑ La llamada estructura residual inversa

                ②ResNet usa convolución estándar, MobileNet V2 usa convolución separable en profundidad

                ③ResNet usa la función de activación ReLu, MobileNet V2 usa la función de activación ReLu6

                ④ ResNet es una activación no lineal (ReLu) y MobileNet V2 utiliza una función de activación lineal para la reducción de la dimensionalidad

                ⑤El residuo de ResNet conecta dos vectores de alta dimensión y MobileNet V2 conecta dos vectores de baja dimensión

        Función de activación ReLu6

                 En comparación con la función ReLu original (1 es el valor máximo), ReLu6 establece el límite superior en 6 para mejorar la capacidad de representación con baja precisión .

                MobileNet V2 está apilado por 16 módulos residuales inversos .

Supongo que te gusta

Origin blog.csdn.net/weixin_37878740/article/details/128164909
Recomendado
Clasificación