1 Kolom Xinzhiyuan
Ide desain ShuffleNet
Jaringan saraf konvolusional adalah komponen inti dari sistem kecerdasan buatan visual modern. Dalam beberapa tahun terakhir, penelitian model konvolusi telah muncul satu demi satu, menghasilkan struktur jaringan dengan kinerja yang sangat baik seperti VGG, ResNet, Xception, dan ResNeXt, yang melampaui level manusia dalam banyak tugas visual. Namun, model yang berhasil ini sering kali disertai dengan kompleksitas komputasi yang sangat besar (miliaran operasi floating point, atau bahkan lebih). Ini membatasi jenis model ini ke kluster server berkinerja tinggi, dan tidak berdaya untuk banyak aplikasi seluler (biasanya memungkinkan jutaan hingga puluhan juta operasi floating-point paling banyak).
Salah satu cara untuk mengatasi masalah ini adalah dengan merancang struktur model yang lebih ringan. Sebagian besar kalkulasi jaringan neural konvolusional modern terkonsentrasi pada operasi konvolusi, sehingga desain lapisan konvolusional yang efisien adalah kunci untuk mengurangi kompleksitas jaringan. Diantaranya, koneksi jarang adalah cara yang efektif untuk meningkatkan efisiensi operasi konvolusi Banyak model konvolusi yang sangat baik saat ini mengikuti ide ini. Misalnya, jaringan "Xception" Google memperkenalkan konsep "depth separable convolution", yang membagi operasi konvolusi biasa menjadi dua bagian: konvolusi kedalaman dan konvolusi pointwise. Secara efektif mengurangi jumlah kalkulasi dan parameter; jaringan "ResNeXt" Facebook terlebih dahulu menggunakan konvolusi titik demi titik untuk mengurangi jumlah saluran fitur masukan, dan kemudian menggunakan struktur konvolusi grup volume kalkulasi yang lebih kecil (konvolusi grup) untuk menggantikan aslinya Operasi konvolusi juga dapat mengurangi kompleksitas komputasi secara keseluruhan.
Struktur jaringan ShuffleNet juga diikuti Koneksi jarang Konsep desain. Penulis menganalisis model Xception dan ResNeXt dan menemukan bahwa meskipun kompleksitas komputasi kedua struktur ini dikurangi oleh pemisahan kernel konvolusi dibandingkan dengan operasi konvolusi asli, jumlah perhitungan konvolusi titik demi titik yang dihasilkan oleh pemisahan cukup besar, menjadi Kemacetan baru. Misalnya, konvolusi titik-demi-titik dari model ResNeXt menempati 93,4% dari kompleksitas komputasi. Dapat dilihat bahwa untuk lebih meningkatkan kecepatan model, perlu dicari struktur yang lebih efisien untuk menggantikan konvolusi titik-demi-titik.
Terinspirasi oleh ResNeXt, penulis mengusulkan untuk digunakan Kelompok konvolusi pointwise (kelompok konvolusi pointwise) Untuk mengganti struktur aslinya. Dengan membatasi input operasi konvolusi ke setiap grup, kompleksitas komputasi model telah dikurangi secara signifikan. Namun, ini juga membawa masalah yang jelas: ketika konvolusi titik-demi-titik multi-lapisan ditumpuk, aliran informasi model dibagi menjadi beberapa kelompok, dan tidak ada pertukaran informasi antar kelompok (seperti yang ditunjukkan pada Gambar 1 (a)) . Hal ini dapat mempengaruhi kemampuan representasi dan akurasi pengenalan model.
Gambar 1 Konvolusi titik demi titik dan operasi penataan ulang saluran
Oleh karena itu, saat menggunakan konvolusi kelompok demi titik, perlu untuk memperkenalkan mekanisme pertukaran informasi antar kelompok. Dengan kata lain, untuk lapisan kedua konvolusi, setiap kernel konvolusi perlu menerima fitur dari setiap grup sebagai input pada saat yang sama, seperti yang ditunjukkan pada Gambar 1 (b). Penulis menunjukkan itu dengan memperkenalkan "Pengaturan Ulang Channel" (Pengocokan saluran, lihat Gambar 1 (c)) Mekanisme ini dapat dengan mudah diimplementasikan; dan karena operasi pengaturan ulang saluran dapat dipandu, maka dapat disematkan dalam struktur jaringan untuk mencapai pembelajaran ujung ke ujung.
Struktur jaringan ShuffleNet
Berdasarkan pengelompokan konvolusi titik demi titik dan operasi penataan ulang saluran, penulis mengusulkan unit struktural ShuffleNet baru, seperti yang ditunjukkan pada Gambar 2. Struktur ini mewarisi ide desain "ResNet" (ResNet), dan atas dasar ini, serangkaian perbaikan telah dilakukan untuk meningkatkan efisiensi model: Pertama, gunakan Konvolusi saluran demi saluran Ganti konvolusi 3x3 asli untuk mengurangi kompleksitas penggalian fitur spasial operasi konvolusi, seperti yang ditunjukkan pada Gambar 2 (a); kemudian, dua konvolusi titik-demi-titik 1x1 dalam struktur asli dikelompokkan dan ditempatkan di antara dua lapisan. Tambahkan di antara Pengaturan ulang saluran Operasi untuk mengurangi jumlah perhitungan lintas saluran operasi konvolusi. Unit struktural akhir ditunjukkan pada Gambar 2 (b). Demikian pula, unit struktural lain diusulkan dalam artikel (Gambar 2 (c)), Didedikasikan untuk downsampling peta fitur .
Dengan bantuan unit struktural ShuffleNet, penulis membangun model jaringan ShuffeNet lengkap. Ini terutama terdiri dari 16 unit struktural ShuffleNet yang ditumpuk, yang termasuk dalam tiga tahap jaringan. Setelah setiap tahap, ukuran spasial peta fitur dibelah dua, dan jumlah saluran digandakan. Jumlah total perhitungan untuk seluruh model adalah sekitar 140 MFLOP. Dengan hanya menskalakan jumlah saluran di setiap lapisan, model kompleksitas sewenang-wenang lainnya dapat diperoleh.
Selain itu, dapat ditemukan itu Ketika jumlah kelompok dalam operasi konvolusi lebih banyak, jumlah perhitungan model lebih rendah ; Ini berarti bahwa ketika jumlah total perhitungan konstan, lebih banyak kelompok dapat memungkinkan lebih banyak saluran. Penulis percaya bahwa ini akan Jaringan akan membantu untuk menyandikan lebih banyak informasi dan meningkatkan kemampuan pengenalan model .
Gambar 2 Unit struktural ShuffleNet
Hasil percobaan
Melalui serangkaian eksperimen kontrol pada kumpulan data klasifikasi ImageNet 2016, penulis menggambarkan kebutuhan setiap komponen unit struktural ShuffleNet dan keunggulannya terhadap unit struktur jaringan lainnya. Kemudian penulis menggambarkan kemampuan generalisasi model melalui hasil deteksi target MS COCO. Terakhir, penulis memberikan efek akselerasi ShuffleNet dalam operasi aktual pada platform komputasi ARM.
-
Konvolusi pointwise yang dikelompokkan
Untuk model ShuffleNet dengan kompleksitas komputasi 140MFLOP, 40MFLOP, dan 13MFLOP, penulis mengontrol kompleksitas model sambil membandingkan pengaruh jumlah grup konvolusi poin demi poin yang dikelompokkan pada kinerja ketika jumlah grup adalah 1-8. Seperti dapat dilihat dari Tabel 1, yang dikelompokkan (g > 1) Tingkat kesalahan jaringan selalu lebih rendah daripada jaringan tanpa paket (g = 1). Penulis mengamati bahwa untuk jaringan yang lebih kecil (seperti ShuffleNet 0.25x), paket yang lebih besar akan memberikan hasil yang lebih baik, dan percaya bahwa saluran yang lebih luas sangat penting untuk jaringan kecil. Terinspirasi oleh ini, penulis menghapus dua unit struktural jaringan tahap ketiga, dan menggunakan perhitungan yang disimpan untuk menambah lebar jaringan, dan kinerja jaringan lebih ditingkatkan.
Tabel 1 Pengaruh jumlah kelompok pada tingkat kesalahan klasifikasi
-
Pengaturan ulang saluran
Tujuan penataan ulang saluran adalah untuk memungkinkan pertukaran informasi antar kelompok. Dalam percobaan, jaringan dengan penataan ulang saluran selalu lebih baik daripada jaringan tanpa penataan ulang saluran, dan tingkat kesalahan berkurang 0,9% menjadi 4,0%. Terutama jika jumlah kelompoknya banyak (seperti g = 8), kelompok pertama jauh lebih unggul daripada kelompok kedua.
-
Bandingkan dengan unit struktural lainnya
Penulis menggunakan tata letak jaringan keseluruhan yang sama dan mengganti unit struktural ShuffleNet dengan unit struktural di VGG-like, ResNet, Xception-like dan ResNeXt sambil mempertahankan kompleksitas komputasi, dan menggunakan metode pelatihan yang persis sama. Hasil pada Tabel 2 menunjukkan bahwa di bawah kompleksitas komputasi yang berbeda, ShuffleNet selalu jauh lebih baik daripada jaringan lain.
Tabel 2 Perbandingan tingkat kesalahan klasifikasi dengan struktur jaringan lainnya (sistem persentil)
-
Bandingkan MobileNets dan struktur jaringan lainnya
Baru-baru ini, Howard dkk mengusulkan MobileNets, yang menggunakan konvolusi saluran demi saluran untuk merancang struktur jaringan yang efisien pada perangkat seluler. Meskipun ShuffleNet dirancang untuk model yang lebih kecil dari 150 MFLOP, ia masih lebih baik daripada MobileNet ketika ditingkatkan ke urutan 500 ~ 600 MFLOP MobileNet. Pada urutan 40MFLOPs, ShuffleNet memiliki tingkat kesalahan 6,7% lebih rendah daripada MobileNet. Hasil rinci dapat diperoleh dari Tabel 3.
Tabel 3 Perbandingan ShuffleNet dan MobileNet
Dibandingkan dengan struktur jaringan lainnya, ShuffleNet juga menunjukkan keuntungan yang besar. Dapat dilihat dari Tabel 4 bahwa ShuffleNet 0.5x mencapai kinerja AlexNet hanya dengan 40 MFLOP, sedangkan kompleksitas komputasi AlexNet mencapai 720 MFLOP, yaitu 18 kali lipat dari ShuffleNet.
Tabel 4 Perbandingan kompleksitas komputasi antara ShuffleNet dan struktur jaringan lainnya
-
Deteksi objek MS COCO
Di bawah kerangka Faster-RCNN, ShuffleNet 2x, yang memiliki kompleksitas jaringan yang sebanding dengan 1.0 MobileNet-224, memiliki peta 24,5% pada grafik resolusi 600, sementara MobileNet adalah 19,8%, yang menunjukkan bahwa jaringan memiliki kemampuan generalisasi yang baik pada tugas deteksi
-
Kecepatan lari sebenarnya
Terakhir, penulis menguji kecepatan operasi jaringan yang sebenarnya pada platform ARM. Dalam implementasi penulis, ShuffleNet dari 40MFLOP berjalan kira-kira 13x kali lebih cepat daripada AlexNet dengan akurasi serupa. Hanya perlu 15,2 milidetik untuk menyelesaikan inferensi dengan masukan 224x224, dan hanya 260,1 milidetik di bawah masukan 1280x720.
Prospek aplikasi
Banyak tugas computer vision penting yang membutuhkan informasi semantik, seperti deteksi target dan pengenalan objek, memerlukan "model dasar" yang baik sebagai ekstraktor fitur. Karena perangkat seluler menjadi semakin penting saat ini, akan ada lebih banyak model algoritme vision yang dijalankan, dan persyaratan keakuratan akan semakin tinggi. Tidak peduli deteksi dan pengenalan target, deteksi dan pengenalan wajah, atau pengeditan gambar, kecantikan, atau analisis perilaku pengguna secara langsung, mereka tidak dapat melakukannya tanpa dukungan model dasar. Model dasar yang baik dapat memungkinkan model yang tidak dapat dijalankan secara efisien pada ponsel karena kebutuhan daya komputasi mentah yang berlebihan, sehingga banyak kemungkinan yang tidak mungkin menjadi mungkin.
Selain itu, teknologi kompresi model lain yang umum digunakan, seperti ketersebaran, kuantisasi jaringan, dan teknologi lainnya juga dapat diterapkan di ShuffleNet untuk meningkatkan efisiensi penyimpanan dan kecepatan pengoperasian, dan selanjutnya mengurangi ambang batas pendaratan algoritma dan aplikasi vision.
referensi
François Chollet. Xception: Pembelajaran mendalam dengan konvolusi yang dapat dipisahkan secara mendalam. ArXiv: 1610.02357, 2016.
Saining Xie, Ross Girshick, Piotr Dollár, Zhuowen Tu, dan Kaiming He. Transformasi residu gabungan untuk jaringan neural dalam. ArXiv: 1611.05431, 2016.
Kaiming He, Xiangyu Zhang, Shaoqing Ren, dan Jian Sun. Pembelajaran sisa mendalam untuk pengenalan gambar. Dalam Prosiding Konferensi IEEE tentang Visi Komputer dan Pengenalan Pola, halaman 770778, 2016.
Howard, Andrew G., dkk. "Mobilenets: Jaringan saraf konvolusional yang efisien untuk aplikasi visi seluler." ArXiv pracetak arXiv: 1704.04861 (2017).
Ren, Shaoqing, dkk. "R-CNN Lebih Cepat: Menuju deteksi objek waktu nyata dengan jaringan proposal wilayah." Kemajuan dalam sistem pemrosesan informasi saraf. 2015.
Klik untuk membaca teks asli untuk melihat informasi perekrutan Xinzhiyuan
- Sumber air panas laut bambu dengan kepiting! Kota sederhana dalam 0,5 jam ini adalah pilihan liburan yang bagus sebelum musim dingin
- Bintang baru di pasar SUV kecil! Seberapa kuat produksi Refine S4 di lini yang sama dengan Volkswagen?
- Tidak perlu pergi ke Afrika Selatan dan Hawaii, ada kelompok paus di pulau-pulau yang terbang langsung 2 jam, manfaatkan relaksasi visa untuk bermain
- National Football U23 paruh waktu kekerasan 5: 0 Mahasiswa Filipina tim semi-profesional! Inilah sepak bola nasional!