Ruang penelusuran bawaan

Ruang penelusuran Neural Architecture Search adalah kunci untuk mencapai performa yang baik. Ruang penelusuran ini menentukan semua arsitektur atau parameter potensial yang akan dijelajahi dan ditelusuri. Neural Architecture Search menyediakan serangkaian ruang penelusuran default dalam file search_spaces.py:

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

Selain itu, kami juga menyediakan contoh ruang penelusuran berikut:

Notebook Lidar memublikasikan hasil verifikasi di notebook tersebut. Kode ruang penelusuran PyTorch lainnya hanya boleh digunakan sebagai contoh saja, bukan sebagai tolok ukur.

Setiap ruang penelusuran ini memiliki kasus penggunaan tertentu:

  • Ruang penelusuran MNasNet digunakan untuk tugas klasifikasi gambar dan deteksi objek serta didasarkan pada arsitektur MobileNetV2.
  • Ruang pencarian EffectiveNetV2 digunakan untuk tugas deteksi objek. EfficiencyNetV2 menambahkan operasi baru, seperti Fused-MBConv. Lihat makalah EfficientNetV2 untuk mengetahui detail selengkapnya.
  • Ruang penelusuran NAS-FPN biasanya digunakan untuk deteksi objek. Anda dapat menemukan deskripsi mendetail di bagian ini.
  • Kelompok ruang penelusuran SpineNet mencakup spinenet, spinenet_v2, spinenet_mbconv, dan spinenet_scaling. Ruang penelusuran tersebut biasanya juga digunakan untuk mendeteksi objek. Anda dapat menemukan deskripsi mendetail untuk SpineNet di bagian ini.

    • spinenet adalah ruang penelusuran dasar dalam kelompok ini, yang menawarkan kandidat blok residual dan bottleneck selama penelusuran.
    • spinenet_v2 menawarkan versi spinenet yang lebih kecil, yang dapat membantu konvergensi yang lebih cepat, dan hanya menawarkan kandidat blok bottleneck selama penelusuran.
    • spinenet_mbconv menawarkan versi spinenet untuk platform seluler dan menggunakan kandidat blok mbconv selama penelusuran.
    • spinenet_scaling biasanya digunakan setelah menemukan arsitektur yang baik dengan menggunakan ruang penelusuran spinenet untuk meningkatkan atau menurunkan skalanya guna memenuhi persyaratan latensi. Penelusuran ini dilakukan pada hal-hal seperti ukuran gambar, jumlah filter, ukuran filter, dan jumlah pengulangan blok.
  • Ruang penelusuran RandAugment dan AutoAugment memungkinkan Anda menelusuri operasi pengayaan data yang optimal untuk deteksi dan segmentasi, secara berurutan. Catatan: Pengayaan data biasanya digunakan setelah model yang baik ditelusuri. Anda dapat menemukan deskripsi mendetail untuk DataAugmentation di bagian ini.

  • Ruang penelusuran Lidar untuk point cloud 3D menampilkan penelusuran menyeluruh pada featurizer, backbone, decoder, dan head deteksi.

  • Contoh ruang penelusuran segmentasi gambar medis 3D PyTorch menampilkan penelusuran pada encoder UNet dan decoder UNet.

Biasanya, ruang penelusuran default ini sudah mencukupi. Namun, jika diperlukan, Anda dapat menyesuaikan ruang penelusuran yang sudah ada, atau menambahkan yang baru sesuai kebutuhan menggunakan library PyGlove. Lihat kode contoh untuk menentukan ruang penelusuran NAS-FPN.

Ruang penelusuran MNasnet dan EfficientNetV2

Ruang penelusuran MNasNet dan EfficientV2 menentukan berbagai opsi build backbone, seperti ConvOps, KernelSize, dan ChannelSize. backbone dapat digunakan untuk berbagai tugas seperti klasifikasi dan deteksi.

Struktur EfficientNet.

Ruang penelusuran NAS-FPN

Ruang penelusuran NAS-FPN menentukan ruang penelusuran di lapisan FPN yang menghubungkan berbagai tingkat fitur untuk deteksi objek seperti yang ditunjukkan pada gambar berikut.

Struktur NAS-FPN.

Ruang penelusuran SpineNet

Ruang penelusuran SpineNet memungkinkan penelusuran backbone dengan fitur menengah yang dipermutasikan skala dan koneksi lintas skala, sehingga mencapai performa deteksi objek satu tahap yang canggih di COCO dengan komputasi yang berkurang sebanyak 60%, dan mengungguli pesaing ResNet-FPN sebesar 6% AP. Berikut adalah koneksi lapisan backbone dalam arsitektur SpineNet-49 yang ditelusuri.

Struktur SpineNet.

Ruang penelusuran pengayaan data

Setelah arsitektur terbaik ditelusuri, Anda juga dapat menelusuri kebijakan pengayaan data terbaik. Pengayaan data dapat lebih meningkatkan akurasi arsitektur yang ditelusuri sebelumnya.

Platform Neural Architecture Search menyediakan ruang penelusuran augmentasi RandAugment dan AutoAugment untuk dua tugas: (a) randaugment_detection untuk deteksi objek dan (b) randaugment_segmentation untuk segmentasi. Library ini secara internal memilih antara daftar operasi augmentasi seperti auto contrast, shear, atau rotasi yang akan diterapkan ke data pelatihan.

Ruang penelusuran RandAugment

Ruang penelusuran RandAugment dikonfigurasi oleh dua parameter: (a) N yang merupakan jumlah operasi augmentasi berturut-turut yang akan diterapkan pada gambar dan (b) M yang merupakan besarnya SEMUA operasi tersebut. Misalnya, gambar berikut menunjukkan contoh ketika operasi N=2 (Shear dan Kontras) dengan M=besar yang berbeda diterapkan pada gambar.

RandAugment diterapkan pada gambar.

Untuk nilai N tertentu, daftar operasi diambil secara acak dari bank operasi. Penelusuran augmentasi menemukan nilai terbaik N dan M untuk tugas pelatihan yang sedang dikerjakan. Penelusuran tidak menggunakan tugas proxy, sehingga menjalankan tugas pelatihan hingga akhir.

Ruang penelusuran AutoAugment

Ruang penelusuran AutoAugment memungkinkan Anda menelusuri operasi choice, magnitude, dan probability, untuk mengoptimalkan pelatihan model Anda. Ruang penelusuran AutoAugment memungkinkan Anda menelusuri pilihan kebijakan, yang tidak didukung RandAugment.