Espaços de pesquisa predefinidos

Um espaço de pesquisa de arquitetura neural é a chave para um bom desempenho. Ele define todas as possíveis arquiteturas ou parâmetros a serem explorados e pesquisados. A pesquisa de arquitetura neural fornece um conjunto de espaços de pesquisa padrão no arquivo search_spaces.py:

  • Mnasnet
  • Efficientnet_v2
  • Nasfpn
  • Spinenet
  • Spinenet_v2
  • Spinenet_mbconv
  • Spinenet_scaling
  • Randaugment_detection
  • Randaugment_segmentation
  • AutoAugmentation_detection
  • AutoAugmentation_segmentation

Além disso, também fornecemos os seguintes exemplos de espaço de pesquisa:

O notebook Lidar publica os resultados da verificação no notebook. O restante dos códigos dos espaços de pesquisa do PyTorch são usados apenas como exemplo e não para comparativo de mercado.

Cada um desses espaços de pesquisa tem um caso de uso específico:

  • O espaço de pesquisa MNaSNet é usado para tarefas de classificação de imagens e detecção de objetos com base na arquitetura do MobileNetV2.
  • O espaço de pesquisa EffectiveNetV2 é usado para tarefas de detecção de objetos. EffectiveNetV2 adiciona novas operações, como Fused-MBConv. Consulte o documento do NetNetV2 para mais detalhes.
  • O espaço de pesquisa NAS-FPN normalmente é usado para detecção de objetos. Veja uma descrição detalhada nesta seção.
  • A família de espaços de pesquisa spinenetSpineNetspinenet_v2 inclui spinenet_mbconv, spinenet_scaling, e . Elas também são usadas normalmente para detecção de objetos. Veja uma descrição detalhada do SpineNet nesta seção.

    • spinenet é o espaço de pesquisa básico nessa família, que oferece candidatos a blocos residuais e gargalos durante a pesquisa.
    • spinenet_v2 oferece uma versão menor de spinenet, que ajuda na convergência mais rápida oferecendo apenas gargalos candidatos a blocos durante a pesquisa.
    • O spinenet_mbconv oferece uma versão de spinenet para plataformas de dispositivos móveis e usa candidatos de bloco mbconv durante a pesquisa.
    • Normalmente, spinenet_scaling é usado após encontrar uma boa arquitetura usando o espaço de pesquisa spinenet, para escalonar verticalmente ou reduzir escala vertical para atender aos requisitos de latência. Essa pesquisa é feita sobre itens como tamanho da imagem, número de filtros, tamanho do filtro e número de repetições de blocos.
  • Os espaços de pesquisa RandAugment e AutoAugment permitem pesquisar as operações ideais de aumento de dados para detecção e segmentação, respectivamente. Observação: o aumento de dados normalmente é usado após um bom modelo ter sido pesquisado. Veja uma descrição detalhada de DataAugmentation nesta seção.

  • O espaço de pesquisa de lidar para nuvens de pontos em 3D mostra a pesquisa de ponta a ponta no featurizer, backbone, decodificador e cabeça de detecção.

  • O exemplo de espaço de pesquisa de segmentação de imagens médicas PyTorch 3D mostra a pesquisa no codificador e no decodificador UNet.

Na maioria das vezes, esses espaços de pesquisa padrão são suficientes. No entanto, se necessário, é possível personalizar os existentes ou adicionar um novo, conforme necessário, usando a biblioteca PyGlove. Veja o código de exemplo para especificar o espaço de pesquisa do NAS-FPN.

Espaço de pesquisa MNasnet e EffectiveNetV2

Os espaços de pesquisa MNasNet e EfficientV2 definem opções de compilação backbone diferentes, como ConvOps, KernelSize e ChannelSize. O backbone pode ser usado para diferentes tarefas, como classificação e detecção.

A estrutura de EffectiveNet.

Espaço de pesquisa NAS-FPN

O espaço de pesquisa NAS-FPN define o espaço de pesquisa nas camadas de FPN que conectam diferentes níveis de recursos para detecção e segmentação de objetos, como na figura abaixo.

A estrutura de NAS-FPN.

Espaço de pesquisa da SpineNet

O espaço de pesquisa SpineNet permite a pesquisa de um backbone com recursos intermediários permutados de escala e conexões dentre escala, alcançando um desempenho de última geração no detector de objetos de um estágio em COCO com 60% menos computação e supera os equivalentes de ResNet-FPN em 6% do AP. Veja a seguir as conexões das camadas de backbone na arquitetura do SpineNet-49 pesquisada.

A estrutura de SpineNet.

Espaço de pesquisa de ampliação de dados

Depois que a melhor arquitetura já tiver sido pesquisada, também é possível pesquisar a melhor política de aumento de dados. O aumento dos dados pode melhorar ainda mais a precisão da arquitetura pesquisada anteriormente.

A plataforma de pesquisa de arquitetura neural fornece espaços de pesquisa de aumento RandAugment e AutoAugment para duas tarefas: (a) randaugment_detection para detecção de objetos e (b) randaugment_segmentation para segmentação. Ela escolhe internamente uma lista de operações de aumento, como contraste automático, shear ou rotação, que serão aplicadas aos dados de treinamento.

Espaço de pesquisa RandAugment

O espaço de pesquisa RandAugment é configurado por dois parâmetros: (a) N, que é o número de operações de ampliação sucessivas a serem aplicadas a uma imagem, e (b) M, que é a magnitude de TODAS essas operações. A imagem a seguir mostra um exemplo em que as operações N=2 (Shear e Contrast) com diferente M=magnitude são aplicadas a uma imagem.

RandAugment aplicado a uma imagem.

Para um determinado valor de N, a lista de operações é selecionada aleatoriamente do banco de operações. A pesquisa de aumento encontra o melhor valor de N e M para o job de treinamento em questão. A pesquisa não usa uma tarefa de proxy e, portanto, executa os jobs de treinamento no final.

Espaço de pesquisa de AutoAugment

Com o espaço de pesquisa do AutoAugment, é possível pesquisar choice, magnitude e probability de operações para otimizar o treinamento dos modelos. O espaço de pesquisa do AutoAugment permite pesquisar as opções da política que não são compatíveis com o RandAugment.