EfficientNet — CNN yang Elegan dan Kuat. – Menuju AI

EfficientNet — CNN yang Elegan dan Kuat.  – Menuju AI

Pengarang: Leo Wang

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

EfficientNet — CNN yang Elegan dan Kuat.

Tidak ada Teknik Mewah tetapi bekerja dengan sangat baik.

Mengungguli ResNet, ResNeXt, DenseNet, InceptionNet, SENet, AmoebaNet, dan LEBIH EFISIEN.

Daftar Isi

· ️Pengantar
· Intuisi
· Metode Penskalaan Majemuk
Blok MBConv
· Pertunjukan
· Penerapan
· Referensi

Foto oleh Erol Ahmed di Unsplash

️Pengantar

Menjadi efisien adalah, dalam istilah awam, kemampuan untuk mencapai hasil yang baik tanpa biaya tinggi.

Sementara model pembelajaran mendalam yang canggih (SOTA) berusaha keras untuk kinerja yang lebih tinggi, mereka pada saat yang sama juga menjadi lebih mahal untuk dilatih.

Namun, terkadang kami bahkan tidak memerlukan 2100 juta+ parameter untuk mencapai hasil yang sama. Kami hanya perlu mencari cara agar lebih efisien.

Gambar 1: Seri Net yang efisien tidak hanya mengungguli banyak CNN “bernama besar”, tetapi juga menggunakan perhitungan yang jauh lebih sedikit.

Intuisi

Dalam jaringan saraf, ada beberapa properti:

Kedalaman (d): Jumlah lapisan (termasuk output tetapi tidak termasuk input. Misalnya, 101). Semakin dalam jaringan, semakin besar kemungkinannya akan mengalami gradien yang meledak atau menghilang, tetapi akan lebih kompleks dan mungkin lebih berkinerja. Lebar (w): Jumlah kernel konvolusi (saluran) tertinggi. Seperti yang ditunjukkan oleh Zagoruyko dan Komodakis, “jaringan yang lebih luas cenderung dapat menangkap fitur yang lebih halus dan lebih mudah untuk dilatih.” Namun, model yang terlalu lebar dan terlalu dangkal akan mengalami kesulitan dalam menangkap fitur tingkat yang lebih tinggi (misalnya, 1024). Resolusi (r): Masukkan dimensi gambar (tinggi gambar * lebar gambar. misalnya 256 x 256). Semakin tinggi resolusinya, semakin besar kemungkinan CNN untuk menangkap pola berbutir halus, tetapi perolehan akurasi berkurang untuk resolusi yang sangat tinggi (misalnya, 560 x 560)).

Pada tahun 2020, Tan dkk. menemukan bahwa sebagian besar arsitektur jaringan yang ada, seperti ResNet, biasanya mengembangkan garis dasar mereka terlebih dahulu dan kemudian ditingkatkan hanya dengan meningkatkan kedalaman (jumlah lapisan), seperti dari ResNet-18 ke ResNet-200. Jaringan lain dapat meningkatkan properti lain secara acak.

Namun, penulis EfficientNet menunjukkan bahwa itu salah. Secara khusus, penskalaan arbitrer semacam itu membutuhkan penyetelan manual yang membosankan dan sering kali menghasilkan efisiensi yang kurang optimal.

️Juga, meningkatkan properti apa pun (lebar, kedalaman, resolusi) meningkatkan akurasi, tetapi peningkatan akurasi berkurang untuk model yang lebih besar.

Penulis menemukan bahwa ada hubungan tetap antara properti jaringan tersebut (yang akan dijelaskan lebih lanjut), dan ada cara yang jauh lebih efisien untuk meningkatkan skala jaringan, sehingga orang tidak akan terlalu khawatir tentang penggunaan model besar tetapi kinerja buruk. .

Metode yang digunakan adalah Metode Compound Scaling.

Gambar 2: Metode penskalaan majemuk (e) perbandingan dengan metode lain

Metode Penskalaan Senyawa

Sifat jaringan yang berbeda saling bergantung satu sama lain. Misalnya, ketika meningkatkan resolusi model (dimensi input), kedalaman dan lebar juga harus ditingkatkan untuk memanfaatkan lebih banyak informasi dari gambar (bidang reseptif yang lebih besar) dan menangkap pola yang lebih halus dengan lebih banyak piksel.

Namun, bagaimana seharusnya properti lain berubah sebagai respons terhadap perubahan satu properti?

Tidak ada yang lebih langsung daripada melihat beberapa matematika. Jangan khawatir. Saya akan memastikan Anda membaca bahasa Inggris yang sederhana.

Mari kita asumsikan:

Kedalaman = d^ϕ Lebar = w^ϕ Resolusi = r^ϕ

d, w, r adalah konstanta, dan mereka dioptimalkan dengan melakukan pencarian grid acak sambil memperbaiki =1, dan dibatasi sedemikian rupa sehingga

d * w²* r² 2 d 1, w 1, r 1

Jadi sekarang, untuk memperbesar, Anda hanya perlu mengubah nilai saja. Anda tidak perlu lagi menyetel properti seperti kedalaman, lebar, dan resolusi secara bersamaan.

Mereka merancang persamaan sehingga untuk setiap nilai , total FLOPS (operasi floating point per detik, di sini mengukur kecepatan latihan) kira-kira akan meningkat sebesar 2^ϕ.

Gambar 3 menunjukkan perhatian model berubah secara drastis dengan memvariasikan properti model yang berbeda, tetapi hanya penskalaan gabungan yang menunjukkan bahwa model memiliki perhatian “paling benar”.

Gambar 3: Visualisasi perhatian model menggunakan GradCAM pada perubahan properti yang berbeda. Kolom 1: masukan asli. Kolom 3-5: mengubah tiga properti yang berbeda. Kolom 6: Perhatian terhadap metode yang digunakan oleh penulis. Seperti yang ditunjukkan, jaringan baru lebih efektif karena perhatiannya lebih “benar” daripada perhatian metode lain.

Mengetahui d, w, dan r, EfficientNet-B0 diusulkan.

Gambar 4: Ringkasan arsitektur EfficientNet-B0. MBConv[N] berarti MBConv dengan faktor ekspansi n (yaitu konvolusi awal 1 X 1 menerima saluran c dan mengembalikan saluran n*c) [4]

MBConv adalah blok bottleneck residual terbalik dengan konvolusi yang dapat dipisahkan secara mendalam. Biarkan saya menjelaskan ini secara rinci terlebih dahulu.

Blok MBConv

Secara konvensional, operasi konvolusi 3×3 hanya menjalankan kernel dengan ukuran (3,3) pada input dengan kedalaman D1 dan menghasilkan output dengan kedalaman D2.

Namun, untuk blok bottleneck residual normal, kedalaman input dikurangi terlebih dahulu melalui konvolusi 1×1. Kemudian, konvolusi 3 × 3 diterapkan pada input kedalaman yang dikurangi. Akhirnya, kedalaman diperluas kembali melalui konvolusi 1×1. Ilustrasi grafis ditunjukkan pada Gambar. 4.

Operasi mewah ini disebut konvolusi yang dapat dipisahkan secara mendalam. Memang, ini memisahkan konvolusi 3×3 sederhana menjadi kompresi 1×1, 3×3 pada proses ekspansi 1×1 terkompresi.

Kemudian, peta fitur awal dan akhir yang ditambahkan ke jaringan dapat mempelajari fitur yang lebih beragam.

Operasi mewah ini menggunakan parameter yang jauh lebih sedikit dan lebih efisien dalam komputasi.

Gambar 5: Blok kemacetan sisa dari kertas MobileNet.

Untuk blok residual terbalik, skema perubahan kedalaman adalah “terbalik,” seperti yang ditunjukkan pada Gambar. 6. Jadi, dari Lebar → Sempit → Lebar ke Sempit → Lebar → Sempit.

Gambar 6: Blok sisa terbalik dari kertas MobileNetV2.

Versi terbalik terbukti bekerja lebih baik dan lebih hemat memori karena sekarang dapat menghapus non-linearitas di lapisan sempit untuk memiliki kekuatan representasi yang lebih baik (saya tahu kedengarannya sulit untuk memahami alasannya, jadi jika tidak, jangan tidak khawatir tentang itu).

Pertunjukan

EfficientNet B0 hingga B7 mencapai kinerja yang unggul.

Gambar 7 menunjukkan detail data kinerja EfficientNet-B0 hingga EfficientNet-B7 dibandingkan dengan model lainnya. Seperti yang Anda lihat, EfficientNet telah mencapai kecepatan dan kinerja. Itu sebabnya ini “efisien.”

Gambar 8

Namun, EfficientNet diambil lebih jauh. Selanjutnya, kita akan berbicara tentang EfficientNetV2, yang bahkan lebih kuat.

Terima kasih! ❤️
Semoga kami memohon Anda untuk mempertimbangkan memberi kami beberapa tepuk tangan! ❤️

Penerapan

Implementasi EfficientNet resmi di TensorFlow

Referensi

[1] EfficientNet: Memikirkan Kembali Penskalaan Model untuk Jaringan Saraf Konvolusional
[2] MobileNetV2: Residual Terbalik dan Kemacetan Linier
[3] MobileNets: Jaringan Saraf Konvolusi yang Efisien untuk Aplikasi Visi Seluler
[4] https://python.plainenglish.io/implementing-efficientnet-in-pytorch-part-3-mbconv-squeeze-and-excitation-and-more-4ca9fd62d302

Saran Pengajuan Mlearning.ai

EfficientNet — CNN yang Elegan dan Kuat. awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Jeffrey Hayes