사전 빌드된 검색 공간

신경망 아키텍처 검색 공간은 우수한 성능을 달성하기 위한 핵심 요소입니다. 탐색 및 검색을 위한 모든 잠재적인 아키텍처나 매개변수를 정의합니다. 신경망 아키텍처 검색은 search_spaces.py 파일에서 기본 검색 공간 집합을 제공합니다.

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

또한 다음 검색 공간 예시도 제공합니다.

Lidar 노트북이 노트북에 인증 결과를 게시합니다. 나머지 PyTorch 검색 공간 코드는 벤치마킹이 아닌 예시로만 사용됩니다.

이러한 각 검색 공간에는 특정 사용 사례가 포함됩니다.

  • MNasNet 검색 공간은 이미지 분류 및 객체 감지 태스크에 사용되며 MobileNetV2 아키텍처를 기반으로 합니다.
  • 객체 감지 태스크에는 EfficientNetV2 검색 공간이 사용됩니다. EfficientNetV2는 Fused-MBConv와 같은 새로운 작업을 추가합니다. 자세한 내용은 EfficientNetV2 자료를 참조하세요.
  • NAS-FPN 검색 공간은 일반적으로 객체 검색용으로 사용됩니다. 자세한 설명은 이 섹션에서 찾을 수 있습니다.
  • SpineNet 검색 공간 계열에는 spinenet, spinenet_v2, spinenet_mbconv, spinenet_scaling이 포함됩니다. 일반적으로 객체 검색에도 사용됩니다. SpineNet에 대한 자세한 내용은 이 섹션에서 찾을 수 있습니다.

    • spinenet은 이 계열의 기본 검색 공간으로, 검색 중에 residualbottleneck 블록 후보를 모두 제공합니다.
    • spinenet_v2는 더 빠르게 수렴하는 데 도움이 될 수 있는 spinenet의 더 작은 버전을 제공하며 검색 중에 bottleneck 블록 후보만 제공합니다.
    • spinenet_mbconv는 모바일 플랫폼을 위한 spinenet 버전을 제공하며, 검색 중 mbconv 블록 후보를 사용합니다.
    • spinenet_scaling은 일반적으로 spinenet 검색 공간을 사용하여 지연 시간 요구사항이 충족되도록 확장하거나 축소하여 우수한 아키텍처를 찾은 후에 사용됩니다. 이 검색은 이미지 크기, 필터 수, 필터 크기, 블록 반복 횟수 등에 수행됩니다.
  • RandAugmentAutoAugment 검색 공간을 사용하면 각각 감지 및 세분화에 최적의 데이터 증강 작업을 검색할 수 있습니다. 참고: 데이터 증강은 일반적으로 적합한 모델이 이미 검색된 후에 사용됩니다. 이 섹션에서 DataAugmentation에 대한 자세한 내용을 찾을 수 있습니다.

  • 3D 포인트 클라우드용 Lidar 검색 공간에서는 피처라이저, 백본, 디코더, 감지 헤드의 엔드 투 엔드 검색을 보여줍니다.

  • PyTorch 3D 의료 이미지 분할 검색 공간 예시에서는 UNet 인코더 및 UNet 디코더에 대한 검색을 보여줍니다.

대부분의 경우에는 기본 검색 공간으로 충분합니다. 하지만 필요한 경우 이러한 기존 항목을 맞춤설정하거나 필요에 따라 PyGlove 라이브러리를 사용하여 새 항목을 추가할 수 있습니다. NAS-FPN 검색 공간을 지정하려면 예시 코드를 참조하세요.

MNasnet 및 EfficientNetV2 검색 공간

MNasNet 및 EfficientV2 검색 공간은 ConvOps, KernelSize, ChannelSize와 같은 서로 다른 backbone 빌드 옵션을 정의합니다. backbone은 분류 및 감지와 같은 서로 다른 태스크에 사용될 수 있습니다.

EfficientNet 구조

NAS-FPN 검색 공간

NAS-FPN 검색 공간은 다음 그림과 같이 객체 감지에 서로 다른 기능 수준을 연결하는 검색 공간을 FPN 레이어에서 정의합니다.

NAS-FPN 구조

SpineNet 검색 공간

SpineNet 검색 공간을 사용하면 확장 조합 중급 기능과 교차 확장 연결을 사용하여 백본을 검색할 수 있으므로 COCO에서 60% 낮은 계산으로 stage-1 객체 검색의 최신 성능을 달성하고 ResNet-FPN보다 AP가 6% 더 뛰어납니다. 다음은 검색된 SpineNet-49 아키텍처의 백본 레이어 연결입니다.

SpineNet 구조

데이터 증강 검색 공간

최상의 아키텍처를 이미 검색했으면 최상의 데이터 증강 정책도 검색할 수 있습니다. 데이터 증강은 이전에 검색된 아키텍처의 정확도를 추가로 향상시킬 수 있습니다.

신경망 아키텍처 검색 플랫폼에서는 (a) 객체 감지를 위한 randaugment_detection 및 (b) 세분화를 위한 randaugment_segmentation과 같은 태스크 두 개에 사용되는 RandAugment 및 AutoAugment 증강 검색 공간을 제공합니다. 내부적으로 대비 자동조절, 전단 또는 회전과 같은 증강 작업 목록 중에서 학습 데이터에 적용할 작업을 선택합니다.

RandAugment 검색 공간

RandAugment 검색 공간은 (a) 이미지에 적용할 연속 증강 작업 수를 나타내는 N과 (b) 이러한 모든 작업의 크기를 나타내는 M의 두 매개변수로 구성됩니다. 예를 들어 다음 이미지는 이미지에 서로 다른 M=magnitude가 적용된 N=2 작업(전단 및 대비)을 보여줍니다.

이미지에 적용된 RandAugment

지정된 N 값의 경우 작업 목록이 작업 뱅크에서 무작위로 선택됩니다. 증강 검색은 현재 학습 작업에 최상의 NM 값을 찾습니다. 검색은 프록시 태스크를 사용하지 않으므로 마지막에 학습 작업을 실행합니다.

AutoAugment 검색 공간

AutoAugment 검색 공간을 사용하면 작업의 choice, magnitude, probability를 검색하여 모델 학습을 최적화할 수 있습니다. AutoAugment 검색 공간을 사용하면 RandAugment에서 지원하지 않는 정책의 선택사항을 검색할 수 있습니다.