CNN genético: algoritmo NAS clásico, aplicación estándar del algoritmo genético | ICCV 2017

La tesis aplica el algoritmo genético estándar a la búsqueda de la estructura de la red neuronal, primero codifica la red y luego realiza operaciones genéticas. El método general es muy conciso y el diseño del espacio de búsqueda es muy simple, que es básicamente equivalente a buscar solo la conexión entre nodos, pero El efecto es bastante bueno, muy digno de aprender

Fuente: número público de la nota de ingeniería del algoritmo de Xiaofei

Papel: CNN Genético

Introducción


  Para buscar la arquitectura de la red neuronal, el documento limita la red a una profundidad limitada, y cada capa es una operación preestablecida, pero todavía hay muchas redes candidatas. Con el fin de buscar efectivamente en el gran espacio de búsqueda, el documento propone un algoritmo genético para acelerar. Primero construya la población inicial, y luego realice operaciones genéticas en los individuos dentro de la población, es decir, selección, cruce y mutación, para juzgar su adaptabilidad a través de la precisión del reconocimiento, y finalmente obtener una población poderosa

Nuestro enfoque


Representación de red binaria

  La red SOTA actual se compone principalmente de múltiples etapas, las capas en cada etapa tienen la misma dimensión y las etapas adyacentes están conectadas por agrupación. Partiendo de esta idea, la red de definición consta de $ S $ etapas, y la $ s $ -th etapa ($ s = 1,2, ..., S $) contiene $ K_s $ nodos, que están etiquetados como $ v_ {s, k} $, $ k_s = 1,2, ..., K_s $, los nodos están organizados en orden, y solo los nodos de secuencia baja pueden conectarse a nodos de secuencia alta, y la suma de elementos se realiza en todas las entradas de los nodos, cada nodo representa un volumen Operación del producto, BN + ReLU se conecta después de una convolución, la red no se une a la capa completamente conectada,
  cada etapa usa $ 1 + 2 + ... + (K_s-1) = \ frac {1} {2} K_s (K_s-1) $ Se usa para indicar una conexión interna, la primera es conectar $ (v_ {s, 1}, v_ {s, 2}) $, la segunda y la tercera son para conectar $ (v_ {s, 1}, v_ {s, 3}) $ y $ (v_ {s, 2}, v_ {s, 3}) $, y así sucesivamente, y finalmente los $ K_s-1 $ bits representan $ v_ {s, K_s} $ y otros nodos Conexión. Para $ 1 \ le i \ le j \ le K_s $, si $ (v_ {s_i}, v_ {s, j}) = 1 $, entonces $ v_ {s_i} $ y $ v_ {s, j} $ tienen bordes , $ V_ {s, j} $ toma la salida de $ v_ {s, i} $ como parte de la suma de elementos. La codificación se muestra en la Figura 1, pero la codificación de la Etapa 2 parece ser un pequeño problema, de acuerdo con la imagen debe ser 0-10-000-0011

  • Detalles técnicos

  Cada etapa tiene dos nodos por defecto, a saber, el nodo de entrada $ v_ {s, 0} $ y el nodo de salida $ v_ {s, K_s + 1} $. El nodo de entrada usa convolución para extraer aún más las características de la etapa anterior, y luego Pasado al nodo sin entrada, el nodo de salida es un elemento de suma de la salida de todos los nodos no utilizados, y luego realiza una convolución y luego se conecta a la capa de agrupación. Hay dos casos especiales:

  • Si el nodo $ v_ {s, i} $ está aislado y no hay entrada y salida no predeterminadas, se ignora directamente, como se muestra en la Figura 1 nodo B2

  • Si no hay conexión en la etapa actual, todos son 0, entonces solo se realizará una convolución (los nodos de entrada y salida originales se realizarán al menos una vez)

  • Ejemplos y limitaciones

  Este tipo de codificación puede codificar la estructura de clasificación principal actual, pero también tiene muchas limitaciones:

  • El método de conexión actual es solo convolución y agrupación, no puede usar otros módulos complicados, como Maxout
  • El núcleo de convolución en cada etapa es fijo, evitando la fusión de características de múltiples escalas.

Operaciones genéticas

  El proceso del algoritmo genético se muestra en la Figura 1. Se heredan un total de $ T $ generaciones. Cada generación contiene 3 operaciones, selección, mutación y cruce. El valor de aptitud se obtiene en el conjunto de validación a través del modelo entrenado.

  • Inicialización

  Inicialice un conjunto de modelos aleatorios $ {\ mathbb {M} {0, n}} {n = 1} N $, cada modelo es una cadena binaria de longitud $ L $, y cada bit de la cadena está sujeto a la distribución de Bernoulli $ b_ {0, n} l \ sim \ mathcal {B} (0.5) $, $ l = 1,2, ..., L $, luego entrena y prueba la precisión de cada modelo, la estrategia de inicialización aquí tiene poco efecto

  • Selección

  La operación de selección se realiza antes de cada generación de la población. Antes de la generación $ t $, la adaptabilidad del individuo $ \ mathbb {M} {t-1, n} $ es $ r {t-1, n} $, Afecta directamente la probabilidad de que $ \ mathbb {M} {t-1, n} $ sobreviva a la fase de selección. La elección específica utiliza el método de selección de la ruleta rusa (ruleta rusa), la probabilidad de cada selección individual es proporcional a $ r {t-1, n} -r_ {t-1,0} $, $ r_ {t-1,0 } $ Es la adaptabilidad mínima de la generación anterior. Después de la selección, mantenga constante la población total, para que un individuo pueda ser seleccionado varias veces

  • Mutación y Crossover

  La operación de mutación implica invertir cada bit de la cadena binaria con una probabilidad de $ q_M $, mientras que la operación de cruce cambia a dos individuos al mismo tiempo e intercambia la etapa entre individuos con una probabilidad de $ q_C $. La probabilidad de mutación individual es $ p_M $, y la probabilidad de que cada grupo de individuos se cruce es $ p_C $. Para operaciones específicas, vea el Algoritmo 1. Aunque este método es muy simple, es muy efectivo.

  • Evaluación

  Después de las operaciones anteriores, entrene y pruebe a cada individuo $ \ mathbb {M} _ {t, n} $ para obtener el valor de aptitud física. Si el individuo ha sido evaluado anteriormente, vuelva a realizar la prueba directamente y luego promedie. Puede eliminar la incertidumbre en el entrenamiento.

Los experimentos


Experimentos MNIST

  Configuración experimental, $ S = 2 $, $ (K_1, K_2) = (3,5) $, $ L = 13 $, población inicial $ N = 20 $, un total de $ T = 50 $, $ p_M = 0.8 $ , $ q_M = 0.1 $, $ p_C = 0.2 $, $ q_C = 0.3 $, solo se genera un total de $ 20 \ times (50 + 1) = 1020 \ le 8192 $ redes, lo que toma 2 GPU-día

Experimentos CIFAR10

  Configuración experimental, $ S = 3 $, $ (K_1, K_2, K_3) = (3,4,5) $, $ L = 19 $, población inicial $ N = 20 $, un total de $ T = 50 $, $ p_M = 0.8 $, $ q_M = 0.05 $, $ p_C = 0.2 $, $ q_C = 0.2 $, solo se generan un total de $ 20 \ times (50 + 1) = 1020 \ le 524288 $ redes, lo que lleva 17 GPU-día

Experimentos CIFAR y SVHN

  Pruebe la red aprendida en CIFAR-10 directamente en otros conjuntos de datos

Experimentos ILSVRC2012

  Entrene a las dos redes en la Figura 5 en ILSVRC2012, primero use el vástago de VFFNet para reducir el muestreo, luego vaya a través de la red en la Figura 5 y finalmente conéctese a la conexión completa para la clasificación

CONCLUSIÓN


  La tesis aplica el algoritmo genético estándar a la búsqueda de la estructura de la red neuronal, primero codifica la red y luego realiza operaciones genéticas. El método general es muy conciso y el diseño del espacio de búsqueda es muy simple, que es básicamente equivalente a buscar solo la conexión entre nodos, pero El efecto es bastante bueno, vale la pena aprenderlo.



Si este artículo es útil para usted, deme un visto bueno o léalo ~ Para obtener
más contenido, preste atención a la cuenta pública de WeChat [notas de ingeniería del algoritmo de Xiaofei]

equilibrio trabajo-vida.

Supongo que te gusta

Origin www.cnblogs.com/VincentLee/p/12700415.html
Recomendado
Clasificación