預先建立的搜尋空間

Agent Platform Neural Architecture Search 搜尋空間是取得良好成效的關鍵。定義所有要探索及搜尋的潛在架構或參數。Agent Platform Neural Architecture Search 在 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 是這個系列中的基本搜尋空間,在搜尋期間提供殘差和瓶頸區塊候選項目。
    • spinenet_v2 提供較小版本的 spinenet,可協助加快收斂速度,在搜尋期間僅提供瓶頸區塊候選項目。
    • spinenet_mbconv 提供適用於行動平台的 spinenet 版本,並在搜尋期間使用 mbconv 區塊候選項目。
    • spinenet_scaling 通常用於使用 spinenet 搜尋空間找到合適的架構後,向上或向下擴充,以符合延遲時間需求。這項搜尋會考量圖片大小、篩選器數量、篩選器大小和區塊重複次數等因素。
  • RandAugment 和 AutoAugment 搜尋空間可讓您分別搜尋偵測和區隔的最佳資料擴增作業。注意:資料擴增通常是在找到合適的模型後使用。如需 DataAugmentation 的詳細說明,請參閱這個部分。

  • 3D 點雲的光達搜尋空間顯示特徵化工具、骨幹、解碼器和偵測頭的端對端搜尋。

  • PyTorch 3D 醫療影像分割搜尋空間範例顯示 UNet 編碼器和 UNet 解碼器的搜尋。

在多數情況下,這些預設搜尋空間已足夠。不過,如有需要,您可以使用 PyGlove 程式庫自訂現有提示,或視需要新增提示。請參閱程式碼範例,瞭解如何指定 NAS-FPN 搜尋空間。

MNasnet 和 EfficientNetV2 搜尋空間

MNasNet 和 EfficientV2 搜尋空間定義了不同的 backbone 建構選項,例如 ConvOps、KernelSize 和 ChannelSize。backbone 可用於分類和偵測等不同工作。

EfficientNet 的結構。

NAS-FPN 搜尋空間

NAS-FPN 搜尋空間定義了 FPN 層中的搜尋空間,用於連結不同層級的物件偵測特徵,如下圖所示。

NAS-FPN 的結構。

SpineNet 搜尋空間

SpineNet 搜尋空間可搜尋具有尺度排列中間特徵和跨尺度連結的主幹,在 COCO 上實現最先進的一階段物件偵測效能,運算量減少 60%,且 AP 效能比 ResNet-FPN 同類模型高出 6%。以下是搜尋到的 SpineNet-49 架構中骨幹層的連線。

SpineNet 的結構。

資料擴增搜尋空間

找到最佳架構後,您也可以搜尋最佳資料擴增政策。資料擴增可進一步提升先前搜尋架構的準確度。

Agent Platform Neural Architecture Search 提供 RandAugment 和 AutoAugment 擴增搜尋空間,可用於兩項工作:(a) randaugment_detection (用於物件偵測) 和 (b) randaugment_segmentation (用於區隔)。它會在內部選擇要套用至訓練資料的增強作業清單,例如自動對比、剪切或旋轉。

RandAugment 搜尋空間

RandAugment 搜尋空間由兩個參數設定:(a) N,這是要套用至圖片的連續擴增作業數量;(b) M,這是所有這些作業的量級。舉例來說,下圖顯示 N=2 作業 (剪切和對比度) 搭配不同 M=強度套用至圖片的範例。

對圖片套用 RandAugment。

系統會根據指定的 N 值,從運算庫中隨機挑選運算清單。增強搜尋會找出目前訓練工作的 N 和 M 最佳值。這項搜尋不會使用 Proxy 任務,因此會執行訓練工作直到結束。

AutoAugment 搜尋空間

AutoAugment 搜尋空間可讓您搜尋作業的 choice、magnitude 和 probability,以最佳化模型訓練。AutoAugment 搜尋空間可讓您搜尋政策選項,RandAugment 則不支援這項功能。