Durum Sınırlı bilgi işlem gücüne sahip bir senaryoda hedef tespiti hakkında kısa bir konuşma

Bugünün paylaşımı şehirdeki geliştiriciler içindir.Paylaşım göreceli olarak fiili savaşa doğru önyargılı olacak ve daha çok parametrelerin nasıl ayarlanacağına dair bir deneyim ve metodoloji paylaşımı gibi. Birçok içerik sistematik matematiksel ve teorik temellerden yoksun olduğu için bunlara sığ konuşmalar denmesi gerektiği vurgulanmalıdır.Örneğin, marjinal fayda azaltan eğriler ve özellik alanı karmaşıklığı gibi kendi kendini çıkaran kavramların daha da rafine edilmesi ve geliştirilmesi gerekir. Sizinle derinlemesine bir tartışma yapmak için bu fırsatı değerlendirin.

Hesaplama gücü sınırlama senaryosu, esas olarak, nispeten zayıf bilgi işlem gücüne sahip yongalar olan gömülü cihazlarda gerçek zamanlı veya yarı gerçek zamanlı hedef tespitiyle ilgilidir. Bu sorun, akademik ve endüstriyel çevrelerde her zaman büyük ilgi görmüştür ve derin öğrenmenin uygulanmasına verilen önemin artması bağlamında giderek daha fazla öne çıkmaktadır.

sorun

Paylaşmadan önce birkaç soru soralım ve tüm paylaşım boyunca bu soruları alacağız.

Uygulamada ilk problem grubu, popüler bir araç algılama problemi gibi belirli bir görevle karşılaştığımızda, katı gövde tespitine aittir (tespit edilen nesnenin içinde herhangi bir deformasyon yoktur). Öyleyse, mümkün olduğunca az yanlış alarm olmasını sağlarken, genel senaryolarda tespit edilen hedeflerin çoğunu karşılamak için genellikle ne kadar sinir ağı hesaplaması gerekir? Bu görevi yerleşik, düşük bilgi işlem gücü olan bir donanım platformunda tamamlamamız gerektiğinde, bu görevi nasıl tamamlamalıyız?

İkinci problem grubu, şu anda karşı karşıya olduğumuz yeni görev jest algılama ise, yani yumuşak vücut algılama (algılanan nesnenin deforme olacağı durum) ise, katı vücut algılama görevinde karşılaşılan sorunlar açıkça aynıdır. Öyleyse, katı gövde muayenesi problemini yaptığımız için, deneyim doğrudan referans için kullanılabilir, uygulanabilir mi?

Ruha dokunan üçüncü soru grubu burada ... Şimdi katı beden ve yumuşak beden tekrar yapıldığına göre, yeni bir görev rastgele atanabilir ve aynı şekilde tamamlanabilir mi? Bu, herkesin en çok ilgilendiği, evrensel olarak uygulanabilir standart "simya" yöntemidir. Dahası, akademik olarak popüler AutoML ve Ağ Mimarisi Aramasının bu sözde aynı yöntem setiyle ne ilgisi var?

Sınırlı hesaplama gücüne sahip senaryolarda hedef tespitinin özellikleri

Öncelikle sınırlı hesaplama gücü senaryosunda hedef tespit yönteminin temel özelliklerine bakalım. Kasım 2016 tarihli modern evrişimli nesne dedektörleri için Hız / doğruluk ödünleşimlerinde, Google, sorunları tespit ederken coco'nun elde edebileceği bir harita sonuçları grafiğine sahiptir. Resim, o sırada en popüler sinir ağı omurga ağını ve algılama yöntemlerini göstermektedir.Farklı ağ boyutları altında, bazı yöntemlerin güçlü yetenekleri vardır ve bazı yöntemler kısa zaman alır. Tüm yöntemlerin grafikte yazarın sol alt ve sağ üst kısmında yükseltilmiş noktalı çizgiyi aşmadığı, yani burada hız ve doğruluk "ikisine birden sahip olamaz" olduğu görülebilir. Benzer şekilde, Google tarafından Temmuz 2018'de yayınlanan MNasNet makalesinde, MNasNet ile MobileNet-V2 arasındaki karşılaştırma da benzer bir eğri gösterdi, fark, yatay eksenin GPU süresinden cep telefonunda öngörülen süreye değiştirilmiş olmasıdır.

Burada, ekonomide çok yaygın olarak kullanılan bir kavramı, yani bu makalede sıklıkla görülen eğriyi tanımlamak için azalan marjinal fayda eğrisini ödünç alıyoruz. Chen Peisi'nin Zhu Shimao tarafından erişte yemeye kandırılmasına ilişkin tanıdık bir örneği ele alalım. Chen Peisi ilk kase erişteyi yediğinde, mutluluğu sıfırdan% 70'e yükselebilir. İkinci kaseyi yedikten sonra mutlu olabilir. Bu duygu çok kuvvetli ama üçüncü ve dördüncü kaseleri bitirdiğimde, kustuğum tahmin ediliyor, böylece mutluluktan bahsedebilirim. Diğer bir deyişle, aynı kase erişte her artışta Chen Peisi'nin gerçek geliri gittikçe küçülüyor ve hatta negatif oluyor.

Sorumuza geri dönecek olursak, bilgi işlem gücü Chen Peisinin yüzüdür. Hedef tespit yöntemine aynı miktarda bilgi işlem gücü eklediğimizde, elde edilebilecek doğruluk iyileştirmesi gittikçe azalacak ve sonunda minimum olacak ve daha fazlası, Aşırı oturma meydana gelirse, eğri düşebilir, bu da Chen Peisi'nin yukarı itildiği anlamına gelir.

Burada basit bir gösterim için kolayca bir eğri çizebilirsiniz. Gerçek verilerin ve eğrilerin yalnızca genel eğilimi izleyeceği ve kesinlikle uyuşmayacağı unutulmamalıdır. Aynı zamanda, bu eğri ne bir karşılıklı ne de polinom veya logaritmik bir eğridir.Ne tür bir matematiksel formül olduğu, derin öğrenmenin mevcut araştırma durumuna göre çıkarılamaz ve çözülemez.

basitçe söyle Bu sadece bir yardımcı hat, peki ne işe yarar ?

Her şeyden önce, araştırdığımız sorunların sınırlarını genel olarak anlamamıza yardımcı olabilir.

İkincisi, tasarladığımızda Tuning deneyi O anda, zihninizde farklı değişken koşullar altında eğriler çizebilir veya çiziyormuş gibi yapabilirsiniz.Bu yardımcı çizgi, değişkenlerin artılarını ve eksilerini karşılaştırmamıza yardımcı olabilir. Örneğin, bir değişkenin hesaplama gücünü sabit olduğunda ayarlayabiliriz. Birkaç deneyden sonra böyle bir eğilim eğrisi çizebiliriz. Benzer şekilde, değişkeni ayarladıktan sonra bir, iki tane daha çizebiliriz Eğrilerin karşılaştırılması, değişkenin artılarını ve eksilerini değerlendirmemize yardımcı olabilir.

en önemli, Görevimizin bu eğrinin neresinde olduğunu netleştirmemize yardımcı olabilir . Her şeyden önce, farklı aralıklarda problem çözme yöntemleri aynı değildir ve belirlenen aralıktaki farklı değişkenlerin karşılaştırma ilişkileri de farklıdır; aynı zamanda, Mevcut problemin aralığının belirli bir değişkenin eğrisinin yükselen alanında olduğunu bulduğunuzda, bu değişken kesinlikle araştırmaya değer bir değişkendir. .

Basit bir örnek için, mobilenet-v1 ve mobilenet-v2'de gösterildiği gibi, kağıda veya kendi deneylerimize göre, iki eğri çizmek için sadece birkaç nokta çizmemiz gerekiyor. Burada açıklamalıyım, gösterim kolaylığı açısından, grafikteki veri ilişkisi sadece eğilimi gösterir.

Burada özel açıklamaya ihtiyaç duyan şey, tüm yöntem karşılaştırma diyagramlarının ideal olmamasıdır. Üst ve alt en iyilerdir.Örneğin, grubumuz tarafından 18 yılda yayınlanan hızlı aşağı örnekleme mobilenet MobileNet, basit ve ince ayarlı bir performans iyileştirme yöntemidir (https : //www.jianshu.com/p/681960b4173d), 100MFlops'un altındaki aralıkta, mAP, mobilenet-v1'den daha yüksek olacaktır, ancak 100MFlops'tan fazla olduğunda, mobilenet-v1'den daha zayıf olacaktır.

Bu nedenle, eğri üzerindeki görev aralığını sınırlandırmalıyız.

Hesaplama gücü: donanım sınırlamaları

Hesaplama gücü sınırlandırma senaryosunun kendisi, eğri üzerindeki görev aralığını sınırlayan en yaygın faktörlerden biridir.

Hepimizin bildiği gibi, donanımın kendisi esas olarak çipin bilgi işlem gücüdür ve çip araştırma ve geliştirmenin mevcut durumu, çipin fiyatı ve diğer birçok faktör tarafından belirlenir. Üstelik sahne gereksinimleri farklı olduğunda aynı donanım koşullarındaki durum da farklıdır. Görev gerçek zamanlı ise yaklaşık 30 ms içinde hesaplanmalıdır.Elbette gerçek zamanlı değilse daha yavaş olup olmaması önemli değildir. Aynı zamanda bazı senaryolarda güç tüketiminin tam olarak yüklenememesi gerekir, bu nedenle hesaplamayı tamamlamak için 10ms vb. Gibi daha hızlı bir zamana ihtiyacımız var.

Burada, hesaplama miktarı Floplar (kayan nokta işlemlerinin sayısı) veya MAC (çarpan ekleme) ile gerçek çalışma süresi arasındaki ilişkiyi açıklamak gerekir:

Öncelikle, ağ yapısı farklı hesaplama ve bellek erişim oranları özelliklerine sahip olduğu için, donanım hesaplama gücü ile ağ başarısızlıkları arasında doğrusal bir karşılaştırma oluşturulamaz. Burada başvurabilirsiniz: Momenta Wang Jinwei: Derin öğrenmeyi daha verimli hale getirmek için iki bakış açısı. Örneğin, hafif ağlarda çok yaygın olan derinlemesine evrişimde, birim tarafından elde edilen verinin desteklediği hesaplama miktarı, sıradan evrişime göre daha azdır, yani hesaplama ve bellek oranı küçüktür, bu nedenle yonganın önbellek ve bellek erişimine olan talep daha fazladır.

Aynı zamanda hedef tespit probleminde omurga sinir ağının harcadığı zamana ek olarak tespit kafası ve nms de biraz zaman harcadı. Örneğin, nms sayısı sabit değildir ve bu parçanın zaman ek yükü ve hesaplama miktarı doğru bir şekilde hesaplanamaz.

Bu nedenle, testteki modelin hızını doğrudan ölçmek için zamanı kullanırsanız, gerçek ölçüm için cihaza gitmelisiniz.Bu aynı zamanda cihaz tarafında çok karmaşık olan ARM / NOEN, sabit nokta aritmetiği ve kayan nokta, niceleme vb. Gibi optimizasyonları da içerir, dolayısıyla genel durum Sonra, hesaplama gücünü tahmin etmek için Flopları kullanacağız.

Bu nedenle, şu andan itibaren sorunu Eğrinin yardımıyla en uygun modeli ve parametreleri bulun ve etkin aralıktaki maksimum değeri alın .

En kritik soru, bu eğri nasıl bulunur? Bu eğriyi bulmak aslında imkansızdır. Daha sonra açıklamak için bazı ayar parametreleri örneklerini vereceğiz ve sonra azalan marjinal fayda eğrimiz üzerinde biraz zaman harcayacağız.

Her şeyden önce, eğri yaygındır.

Hesaplama gücü hariç tutulduğunda, yatay eksen veri miktarı olduğunda, genellikle benzer marjinal fayda özelliklerini yansıtabilir, yani yetersiz veriye sahip olduğumuzda, aynı dağıtım verilerinin birim sayısını her artırdığımızda , Aynı parametrelere sahip aynı model, geliştirilmiş doğruluk da marjinal fayda düşüş eğrisi ile uyumludur.

Bu nedenle, testte, verilerdeki artışın veya azalmanın sonuçlar üzerinde çok büyük bir etkisi olduğunu fark ederseniz, o zaman sorununuz büyük olasılıkla şu anda veri miktarının yetersiz olduğu bir aşamadadır ve verileri artırmanın bir yolunu bulmanız gerekir. Bu, daha önce bahsedilen eğri, sorunun bulunduğu aralığı netleştirmemize yardımcı olabilir.

Ek olarak, doğrulama seti ve değerlendirme kriterleri statik değildir Diğer faktörlerin aynı kalması koşuluyla, aynı metot basit doğrulama setinin değeri açısından karmaşık doğrulama setinden açıkça daha iyidir.

Eğitim seti ve doğrulama seti ile ilgili olarak, bunu daha sonra açıklayacağız. Farklı görevler için azalan marjinal fayda eğrileri arasındaki zıtlığa bir göz atalım.

Uygulama yoluyla, aynı algoritma altında, görevin zorluğunun eğrinin yönünü belirlediğini öğrendik.

Öyleyse, yukarıda bahsedilen iki araç ve jest görevinde, şekilde gösterildiği gibi görevleri ve eğrileri karşılaştırabilir miyiz?

Önce araçları ve hareketleri bir kenara koyun ve önce bakın: Farklı görevler arasındaki farkı ne belirler? Doğrudan küçük bir sezgisel his verin: Yani, özellik uzayının karmaşıklığı, görevler arasındaki farkı belirler . Şimdilik, sonuca değil, sadece hisler diyebiliyorum, burada sonuç çıkarmaya gerçekten cesaret edemiyorum. Bir his olsa da, böyle bir his oluşturmak sonraki ayarlamalarımız için yardımcı olabilir.

Öyleyse ne Özellik alanının karmaşıklığı Ne? Şimdilik bu, nicel olarak tanımlanamayan ve hatta doğru bir şekilde tanımlanamayan bir kavramdır. Ne tür bir alanın karmaşık ve ne tür bir alanın basit olduğuna bakabiliriz:

Hepimiz derin öğrenmenin temel yeteneğinin veri özelliklerinin açıklaması ve genelleştirilmesi olduğunu biliyoruz, bu yüzden bu anlayışı derinleştirmek için veri özelliklerinin neye benzediğine bir göz atalım. Stanford cs231n kursunda, cifar10 veri setinde bahsedilmiştir. Her bir grafik türünü örnekleyip ortalamasını alırsanız, şekilde gösterildiği gibi ortalama bir grafik elde edebilirsiniz. Bu ortalama grafiği sezgisel olarak gözlemler ve tanımlaması en kolay olanı buluruz İkinci tip arabadır.

Peki araç tespiti basit bir alan mı? Bir sonraki örneğe bakmaya devam ediyoruz.

İşte 100 şehir veri setinin araç kuyruk verilerinden ortalama bir görüntüyü örneklemek ve elde etmek. Bütün bir arabanın ana hatlarının ortaya çıktığı görülebilir. Niteliksel analize geçersek, aracın ilk olarak katı gövde verileri vardır ve ikinci olarak, çizgiler basit ve nettir.Farklı modellerin bileşenleri temelde aynıdır, örneğin arka camlar, arka lambalar, plakalar, tekerlekler ve tekerleklerin altındaki gölge alanları. Buradaki resim rastgele seçilmiş, beyaz arabaların biraz Doha olduğunu hissediyorum.Belki beyaz arabaları kirletmenin kolay olmadığı içindir, zaten çok sayıda insan satın alıyor?

Burada dikkat edilmesi gereken şey, görev gerekliliğidir.Bu gerekliliğin aracın altını tespit etmek mi, yoksa renk ve araba modeli gibi belirli bilgilerden ve hatta araç plaka bilgilerinden ayırt edilmesi mi gerektiği. Çünkü görev gereksinimleri değiştiğinde, sinir ağının tanımlaması gereken özelliklerin miktarı da değişecektir.

Kamyona tekrar bak. Kabaca bir arabanınkiyle aynı.

Tamam, hadi yüz veri setinin ortalama görüntüsüne bakalım. Bir aracın ortalama görüntüsüne benziyor ve yüzün ortalama görüntüsü burnu ve ağzı olan neredeyse bir insan, sadece net göremiyor. Ancak verilerde çoğunlukla Batılı erkekler olduğu için, muhtemelen Batılı bir adam olma hissini görebiliriz. Aynı şekilde, görevin insan yüzünün duygularını, yani gözlerin köşelerindeki ve ağız şeklindeki ince değişiklikleri ayırt etmesi gerekiyorsa, bu yeni gereksinim, sinir ağının tanımlaması gereken özellik miktarına çok büyük bir gereksinim duyar ve bu basit değildir. .

Örneğe bakmaya devam edersek, jestler belirsiz bir şekilde zafer V'nin bir jestini görebiliyor gibi görünüyor, ancak bu veri setinin bu jestlerin temel anlamını tanıması gerektiği açık. Sezgisel olarak, ihtiyaç duyulan birçok temel özellik şekli vardır.

Özellik alanının karmaşıklığı

Şimdi bu klasik özellik görselleştirme haritasını tekrar sunmalıyız Basitçe söylemek gerekirse, sığ özellikler temelde düz çizgiler ve noktalardır ve sonraki her katman, önceki özelliklerin olasılıklı bir kombinasyonudur.

Özellik uzayının karmaşıklığı sorununa geri dönecek olursak, başka bir uç örneği ele alalım: Mnist el yazısıyla yazılmış veri setinde ihtiyaç duyulan özellikler sezgisel olarak düz çizgiler ve dairelerdir, imagenet ise neredeyse tüm doğal görüntülerle uğraşmak zorundadır. Her yönüyle dahil edilebilecek özelliklerin ve özelliklerin birleşimini hayal etmek neredeyse imkansızdır. Pratikte herkes bilir ki, bu ikisini çalıştırabilen iyi bir sinir ağının kapasite açısından çok büyük bir farkı vardır.

Pekala, şimdi sezgisel olarak biliyoruz ki, belirli bir problem için, aslında, belirli bir dereceye kadar, gerekli özellik miktarının genellikle kesin olduğu söylenebilir. Tabii ki, belirli bir değeri tam olarak alamıyoruz Sinir ağının, mümkün olduğunca doğru olabilmesi için, temelde bu miktarı eşleştirebilmesi gerekir. Ağ parametrelerini düşürdüğünüzde, kaçınılmaz olarak ağın belirli durumları değerlendirme yeteneğini azaltacak ve böylece doğruluğu azaltacaktır.

Burada sekizinci iki yasadan bahsetmek zorundayım, yani normal olasılıklı bir dünyada, vakaların% 80'ini ele almak için genellikle enerjinin% 20'sine ihtiyacımız olabilir ve tam tersine, inatçı hastalıkların geri kalan% 20'siyle başa çıkmak için enerjinin% 80'ine ihtiyacımız var. Deneyimler sayesinde, sinir ağının, inatçı hastalıkların% 20'si ile başa çıkmak için özellik kombinasyonunun muhtemelen% 80'ini kullandığına inanıyoruz, bu nedenle, inatçı hastalıkların bir kısmı veya tamamı atılırsa,% 20 özellik kombinasyonu ilişkisi yeterli olabilir. Azalan marjinal fayda eğrisinin sol üste doğru çıkıntı yapan bir eğri olarak çizilmesinin nedeni de budur.

Gerçek savaşta deneysel tasarım

Tamam, ben bittim. Ne yazık ki, yukarıda bahsedilen tüm sanal şeyler matematiksel formüllerle çıkarılamaz.

Bu nasıl?

Uzun bir süre göründükten sonra, aslında özellikle akıllıca bir yol yok, sadece dene. Ancak bir deney nasıl tasarlanır, yani nasıl denenir, her seferinde ne denenir ve testten sonra neyin değiştirilir, hala yapılacak çok sayıda makale var. Yani, deneysel tasarım yoluyla optimal değer kademeli olarak elde edilir. Bu aynı zamanda bu raporda paylaşılacak temel noktadır.

Aslında, son zamanlarda araştırma alanında popüler olan otomasyon veya ağ mimarisi arama yöntemi, insan ayarlama sürecinin bu kısmının yerini almayı amaçlamaktadır.

Ancak bu raporda, ayar sürecini tamamen manuel yöntemlerle geri yüklemeyi umuyorum.Bu ayarlama sürecini geri yükleyerek, size ayarlama sürecindeki bazı küçük püf noktaları ve mekanizmaları göstereceğim. Bu mesele gelecekte işsiz kalsa da, automl ve nas hala akademik araştırma aşamasındayken hala çok önemlidir ve aynı zamanda otomasyonu anlamamıza ve çalışmamıza yardımcı olabilir.

Önce sanal bir çerçeve koyalım ve sonra bunları birer birer genişletelim.

Önce veri setinden bahsedelim, veri seti gözden kaçan bir faktör olabilir. Bunu neden söylüyorsunuz, çünkü akademik makalelere hala çok yüksek derecede bağımlıyız ve makale yazma fikri genellikle herkese açık veri setlerini ve genel değerlendirme standartlarını kullanıyor, çünkü bunları kullanmadan akranlarınızla nasıl karşılaştırırsınız? Aynı şekilde yarışmalarda da bu tür sorunlar var, yarışma asıl göreve daha yakın olsa da adil bir değerlendirme standardı olmalı, aksi halde sıralama neden yüksek olsun?

Ancak fiili görevler yapılırken, veri seti sorunun kendi ihtiyaçlarına göre uyarlanmalıdır, ilki doğrulama setidir. Herkes makine öğreniminin ilkokul öğrencilerini final sınavlarıyla başa çıkmaları için eğitmeye benzediğini bilir. Doğrulama seti final sınavıdır ve çocuklar için günlük egzersizler zaten final sınavına benzer olmalıdır, aksi takdirde garip olmalıdır. Doğrulama seti basittir ve veri dağıtımı gerçek durumların çoğunu kapsamayabilir veya yapılması zor olabilir ve görünmeyen bazı durumlar için çok fazla enerji harcanır. Diğer bir durum, doğrulama seti ile eğitim seti arasındaki tekrarlanan ilişkidir.Onaylama seti standarda ulaştığında, sadece eğitim setinin üzerine çıkabilir. Yani şu anda hiç kimse doğrulama setini yapmayacak ve sadece kendinize güvenebilirsiniz.

Eğitim seti verileri, yukarıda bahsedilen veriler ve mAP arasındaki marjinal fayda ilişkisine göre, kesinlikle mümkün olduğunca çok veri elde etmenin en önemli yolu burada. Veri miktarı yeterli olmadığında, bunu telafi etmek için bazı aktarım öğrenme yöntemlerine ihtiyaç duyulabilir, çünkü zaman ilişkisi burada başlamayacaktır. Bu makalenin sonunda imagenet gibi veri setleri ile hafif model altında transfer öğrenmeye bazı ekler yapılacaktır.

Değerlendirme standardının önemi de burada ortaya çıkar.Normal şartlar altında, hedef tespit yöntemimizi tanımlamak için evrensel hedef tespit değerlendirme standardını (mAP) kullanacağız. MAP'nin bir modelin temel ve ortalama yeteneklerini kapsamlı bir şekilde tanımladığı kabul edilmelidir, ancak aynı anda hem kaçırılan tespit oranını hem de yanlış toplama oranını hesaba katamaz. MAP, güven azaldıkça aynı zamanda toplam alanı hesaplamak için tp ve fp ekleyen bir eğri olduğundan, yanlışlıkla alınan örnek olan fp, net bir şekilde yansıtılmayacaktır.Yanlış toplama oranına daha fazla dikkat edilmesi sorunu için, en iyisi budur. Yine de mAP kullanmayın.

Tamam, koşmaya başladık.

Genel olarak, temeli oluşturmak için biraz zaman harcayacağım, bu bir sonraki sayfada ayrıntılı olarak açıklanmaktadır.

Sonra yinelemeye başlayın. Temel fikir, yalnızca bir değişkeni değiştirmek ve diğer tüm değişkenleri düzeltmek için bir kontrol deneyi kullanmaktır.

Her seferinde yalnızca bir parametre ve değişken ayarlanabildiğinden, performansı iyileştirme olasılığı en yüksek olan yönde ayarlama yapmak en iyisidir. Öyleyse en büyük değişken hangisidir? Bu, sinir ağlarının ilkelerine ve mevcut araştırma durumuna aşina olmayı gerektirir ve açıklamak için özel örnekler vereceğiz.

Şu anda, daha önce bahsettiğimiz yardımcı hat mevcut olabilir.Birkaç deneyden sonra, muhtemelen zihninizde bir veya daha fazla azalan marjinal fayda eğrisi oluşturabilirsiniz.Belirli bir değişkenin konumunu tahmin edebilirsiniz. Açıkça yükselen eğilimleri olan değişkenler dikkate alınmaya değer.

Tüm boyutları denedikten sonra, tek tek tekrar deneyin, çünkü her seferinde yalnızca bir parametrenin ayarlanması, parametreler ve parametreler arasındaki etkileşimi dikkate almaz.

Ne zaman duracak? Ayarlamada genellikle küçük ustaların sonu yoktur, evet. Ancak genellikle bu, doğrulama setinin standardı karşıladığı anlamına gelir, ancak daha önce belirtildiği gibi, eldeki doğrulama seti gerçek durumu karşılıyor mu? Modelinizi çalıştırmak için gerçek duruma gidin.

Örneğin

Bu sadece ilkeli bir rutindi, şimdi bir örnek verelim.

İhtiyaçlar şekilde gösterilmiştir.Görev özelliği uzayına ilişkin önceki açıklamamıza göre bu problemi bu büyüklük altında tamamlamak mümkün olmalı, deneyelim.

Öncelikle bir dayanağa ihtiyacım var. 10M ağ kullanmama rağmen, 10M'de çok fazla makale olmayabilir, ancak önce mobilenet-v1, mobilenet-v2, shufflenet-v1 / v2 ve çeşitli Kamusal geri bildirimde hala nispeten mükemmel olan her türlü hafif ağ yapısı.

Bunu neden önce yapmak istiyorsunuz? Karşılaştırma için bir referans sistemi olmanın yanı sıra, en büyük amaç, yöntemin kendisinin, kullandığınız çerçevenin vb. Olabildiğince iyi olmasını sağlamaktır. Şu anda çözemezseniz, gelecek Çukurda kalmak, belli ki görevi tamamlayamamak. Aynı zamanda, bu, makalenin ayrıntılarını kolayca bulmanıza yardımcı olacaktır.Çok sayıda makale yazmış olan öğrenciler, makalenin yenilikçi olamayacağını bilirler, bu nedenle, bir makaledeki çekirdek algoritma noktasının gerçek testte olmaması çok muhtemeldir. Performans iyileştirmenin en iyi noktası için, tam tersine, kağıtta bazı pratik ama çok yenilikçi olmayan şeyler olabilir ve gerçekten koşuya çıkıp çıkmadığınızı gerçekten bilmiyorsunuz.

Ek olarak, bir makale bir veya iki yıl önceyse, son iki yıldaki diğer bazı makaleler bazı ilginç numaralar ve küçük parametreler veya küçük ayarlamalar önerecektir.Bazen bunlar klasik kağıtları yeniden üretmek için de kullanılabilir ve Yöntemi kullanırken bir araya getirelim.Örneğin Kaiming'in önerdiği fan-in ve fan-out parametre ilklendirme yöntemi daha önce yayınlanan yazılara veya projelere uygulanabilir.

Kısacası bu, bıçağı bileme ve yanlışlıkla odun kesmeme işidir ve aynı zamanda temel deneyim biriktirme işlemidir.

Birçok kağıt sınıflandırılmış ağ kağıtları veya daha hızlı rcnn iki aşamalı yöntem gibi farklı algılama kafaları tarafından yapılan algılama modelleri olduğundan, Yolo gibi kullandığımız algılama kafalarını değiştirmemiz gerekir. Şu anda, başka bir temel oluşturmam ve test sonuçlarını kendi eğitim veri setim altında elde etmem gerekiyor.

Öncelikle, öncelikle omurga ağ parametrelerini düzelteceğim ve ayarlama için bazı parametreleri doğrudan tespit edeceğim. Örneğin, Yolo ve SSD'deki şekilde gösterilen parametreler, ilke yinelemeli denemek ve bir seferde bunlardan yalnızca birini ayarlamaktır.

Yolo veya ssd, bunların bağlantı veya öncelik kutusu mekanizması olup olmadığından daha fazla bahsedeyim, bunların sayısı aynı zamanda azalan marjinal fayda eğrisine de uyuyor, örneğin yolo v2 kağıdındaki bu resim gibi. Görüyorsunuz, bu eğri her yerde, değil mi? Dolayısıyla, sayı uygun şekilde artırıldığında, doğruluğu iyileştirmek çok yararlıdır, ancak sınırlı hesaplama gücü senaryosunda çok fazla eklenemez, çünkü toplam teklif çok fazla olacak ve nms de çok değişecektir.

Ek olarak, buradaki çapa kümelemesinin belirli uzunluğu ve genişliği, kabaca veri dağıtımına uygun olduğu sürece, çok kesin olmasına gerek yoktur ve aynı dağıtım verileri her eklendiğinde kümelemeyi tekrarlamaya gerek yoktur, çünkü regresör regresyon sürecini otomatik olarak tamamlayacaktır. Evet, çok uzaklaşmayın. Burada genişlemiyor.

Algılama parametrelerini ayarladıktan sonra, veri artış parametrelerinin yeniden ayarlanması gerekir. Veri artışı da çok önemlidir.Aslında, aynı nedenle, veri artışı da azalan marjinal fayda eğrisi ile aynı doğrultudadır.Çok fazla yapmak faydasızdır, veriyi artırmak daha iyidir.

Aslında burada böyle bir soru sormak mümkün, parametrelerin bu kısmı neden bu aşamada yapılıyor? Neden önce 10M omurga ağını kesip sonra bir algılama kafası eklemiyorsunuz? Ben şahsen, sonraki ayarlama sürecinde test sürecinde daha end2end olmayı tercih ediyorum, çünkü amacınız hedef tespiti. Aynı zamanda, şu andaki parametrelerin optimal parametreler olmadığı, sadece bir başlangıç temeli olduğu ve gelecekte omurga ağı belirlendikten sonra tekrar yinelendiği unutulmamalıdır.

Şimdi ağ yapısını uyarlamaya başlamak üzereyiz, ancak en son araştırma çalışmasının bu kısmı, NAS tarafından yapılabileceğini gösteriyor. Örneğin, Google'ın 2017'deki NasNet'i ve 2018'de MNasNet'i, ancak genel olarak insanların ağ yapılarını hızlı bir şekilde arayabilen dağıtılmış bir arama çerçevesi dağıtamayabileceğini düşünüyorum. Sağdaki resim, tasarlandığı gibi görünmeyen NasNet tarafından aranan ağ yapısıdır.

Başlangıca göre kademeli olarak manuel ayarlamalar yapalım.Arama ile karşılaştırıldığında optimalden daha az olabilir, ancak izlenecek izler olduğu için, deneyiminiz olduğunda, nas üzerinde pekiştirmeli öğrenmeyi kullanma sürecinden daha hızlı olabilir. . Ancak, bu alanda büyük sözler söylemeye cesaret edemiyorum.

Mobilenet-v1 kağıdına göre ayarlanabilen birkaç yön vardır: genişlik, derinlik ve çözünürlük.

Önce genişlikten bahsedeyim Bu bölümde, aynı grup tarafından hazırlanan, esas olarak ADC ve AMC olmak üzere, nispeten ilişkili iki makale var. Bu iki kağıt, katman katman en uygun katman genişliğini seçebilir ve etki kötü değildir. Burada hala mobilenet-v1 ile aynı orantılı genişlik sıkıştırmasını yapıyoruz, ancak bazen karşılık gelen katmanlarda bazı farklı ayarlamalar da yapabiliriz.

Derinlik, toplama ve çıkarma katmanıdır. Buradaki soru, sıkıştırma olduğu için neden katman ekleyeceğidir, çünkü genişlik azaltılabilir ve hesaplama miktarı büyük ölçüde azaltılmıştır.Derinliği artırmak, hesaplama miktarı ve çalışma süresi açısından yine de standardı karşılayabilir.

Derinlik Burada birkaç aşama seçmenin çok önemli başka bir konusu var: Genel sınıflandırma ağı 32x alt örnekleme ve 5 aşamadır. Megvii 2018'de DetNet'in 16x alt örnekleme ve 4 standart aşama kullandığını önerdi. Bunun avantajı, 224x224 girişinin altındaki algılama başlığının özellik haritasının 14x14 olması, ayrıntıları ve anlambilimini hesaba katması ve hızın yavaş olmamasıdır.

FPN, anlamsal bilgileri ve ayrıntılı bilgileri korumak için daha iyi bir algılama yöntemi için iyi bir seçimdir, ancak FPN, hesaplama gücü kısıtlamaları koşulları altında biraz hantaldır ve gerçek zamanlı çalışma basıncı biraz ağırdır.

Çözünürlükle ilgili olarak, cesurca bunun geçici olarak göz ardı edilebilecek bir boyut olduğunu varsayıyoruz, çünkü yüksek çözünürlük yalnızca küçük hedefler ve çerçeve doğruluğunda bir gelişme getirebilir. Genel olarak, diğer hiperparametrelerin uygun bir çözünürlükte ayarlanmasına odaklanabilirsiniz.

Ayrıca, alıcı alanı iyileştirmek için diğer şekil veya boyutlardaki evrişim çekirdeklerinin kullanılması gibi bazı başka ince ayarlar da olacaktır. Örneğin, delik evrişimi ve 5x5 evrişim. Bununla birlikte, mobil cihazlarda delikli evrişimin performansı ortalamadır.

Bir sonraki adım, çeşitli ayarlamalar arasında en iyi takas noktasını bulmaktır.Resim, mobilenet-v2'nin ağ yapısı üzerindeki denememin sonucudur. Farklı genişliklerde, derinliklerde ve ince ayar yapılarında bazı ayarlamalar denedim. Sol yarıdaki noktalar temelde genişliğin 3 / 8'i ve sağ yarıdaki noktalar genişliğin 3 / 4'üdür. Ok, derinliği aşama aşama kestikten sonra taban çizgisine işaret eder.

Küçük bir örnek için, burada mobilenet-v2 için ayarlamaya odaklandığım küçük bir nokta var, yani 1/4 boyutunun altında, ilk darboğaz sadece 4, bu değerin çok küçük olması özelliğin açıklamasına yol açacak Çok zayıfsa ve artırmanın ağın genel hesaplamasında çok az etkisi varsa, deneyebilirsiniz.

İşte bir özet: Basitçe söylemek gerekirse, mevcut durumda en çok ayarlanması gereken ve boyutları deneyime ve diğer dağlara bağlı olan bir boyut bulmaktır. Ek olarak, normal şartlar altında, eğer bir değişken önemli ölçüde artacaksa, onu optimize etmeye odaklanın, yani yukarıda bahsedilen azalan marjinal fayda eğrisi üzerinde daha belirgin bir yükseliş eğilimi olan değişken dikkate alınmaya değerdir.

Ve hangisi en çok ayarlamaya ihtiyaç duyuyorsa, bunu deneyimle çözemezseniz, birini seçin, çünkü gerçekten mucizevi bir etkisi olabilir. Aslında, benim hislerim, bu insan eti arama sürecinin aslında bir stokastik gradyan iniş süreci olarak kabul edilebileceğidir.En iyi boyutu bulmak için kendi değerlendirme işlevimi her kullandığımda ve ardından en iyiye yinelediğimde. Ve bazen denediğiniz ayarlama, beklenen değeri belirli bir aralıkta aşabilir.Örneğin, ağ daraltıldığında ve derinleştiğinde, eğilimi görmek için daha fazla katman ekleyebilirsiniz. Bu, büyük bir öğrenme hızı veya benzetilmiş bir tavlama algoritması kullanmak gibi olabilir.

İnsan eti ayarlamasının avantajı, her seferinde aynı öğrenme hızında ayarlama yapmam gerekmemesidir.Bazen büyük bir adım atabilir ve birçok yinelemeden tasarruf edebilirim.

Eh, birkaç model bulmak zor ama mesele henüz bitmedi, şimdi geri dönüp önceki parametreleri mevcut yapıda tekrar ayarlamamız gerekiyor. Ve bu parametreler belirlendikten sonra geri dönüp seçilen ağ yapısını tekrar doğrulamamız gerekiyor. Çünkü çok değişkenli eklem etkilerinin sonuçları etkilediği durumlar olduğu gibi, değerlendirme standartlarındaki kusurlardan veya eğitim sürecindeki rastgele faktörlerden kaynaklanan tesadüfi faktörler de vardır. Bununla birlikte, buradaki iş yükü öncekine kıyasla büyük değil, çünkü açıkça başarısız olan bazı seçenekler ortadan kaldırıldı.

Son olarak, doğrulama setini ölçülen probleme göre ayarlamak için görevin gerçek testi gereklidir. Bir sorun varsa, önceki noktaya geri dönün ve yeniden ayarlayın.

Örnek şimdi bir an için sona erdi ve şimdi ikinci soruyu soracağım Sonuçta, önizlemede söylenecek bir şey var.Aslında, cevap zaten herkesin zihninde.

Önceki arka plana göre, bu iki problemdeki veri özelliği uzay farkı çok büyüktür, bu nedenle öğrenmeyi iki problem için doğrudan aktarmak aslında imkansızdır, ancak buradaki metodoloji uygulanabilir. Yeniden adapte ettim, inanıyorum ki ilk görevin deneyimiyle bu görevi yapmak zor değil ve yineleme sayısının da önemli ölçüde azalacağına inanıyorum.

Ve açıklama yoluyla açılış sorularının da bir dereceye kadar cevaplanabileceğine inanıyorum.

sonuç olarak

Her şeyden önce, temel bilgi çok önemlidir ve birçok temel ayarlama deneyiminde ustalaşmanız gerekir. Wei Xiushen'i hor görme bloguna göz atmanız şiddetle tavsiye edilir.

İkinci olarak, bu ayarlamanın getirdiği performans iyileştirmesini doğru bir şekilde elde etmenize yardımcı olmak için karşılaştırmalı deney yöntemini kesinlikle izlemeniz ve bu ayarlamanın getirdiği değişikliklerin nedenlerini düşünmeniz gerekir. Çünkü çok boyutlu bir parametre değiştiğinde, sorunun hangi boyut olduğunu belirlemek zordur ve nedeni tam olarak belirlenemez. Ek olarak, çok boyutlu parametrelerin çapraz etkisi burada hariç tutulsa da spiral yineleme yöntemi ile telafi edilebilir.

Özellikle hatırlatılması gereken şey, dikkatli deneysel tasarımın sabır gerektiren uzun bir yola ve çok sayıda denemeye yol açacağıdır. Şu anda, birden fazla faktörden kaçınmak ve nereden başlayacağınızı bilmemek için öncelikle boyutsallığı cesurca azaltmak gerekir; ve bir darboğazla karşılaştığınızda, sorunu cesurca tahmin edebilir ve varsayabilir, deneyi doğrulama için dikkatlice tasarlayabilirsiniz ve sürprizlerin çıkma olasılığı yüksektir.

Son olarak, yardımcı işler / aletler gereklidir ve hızlı yinelemenin temelini oluşturur. Bu nedenle, başlatılması kolay bir çerçeve seçmek çok önemlidir ve çerçevenin ayrıntılarını korumak da çok önemlidir. Burada, çoklu kart hızlandırmayı kullanabiliyorsanız, çoklu kart hızlandırmayı kullanabiliyorsanız ve daha sonra sabit disk okuma ve yazma darboğazına dikkat etmeniz gerekiyorsa, SSD katı hal sürücüsünü değiştirmeniz önerilir. Neyse ki, küçük modelin tek model eğitim hızı çok hızlıdır ve yineleme hızı, birden çok faktör denendiğinde kabul edilebilir.

Son olarak, iyi bir not alma yazılımı ve kullanım alışkanlıkları, deneme sürecinin mantığını ve ayrıntılarını çözmenize yardımcı olabilir. Aksi takdirde, birkaç saatlik eğitim tamamlandıktan sonra, korkarım en son ne ayarladığınızı unutmuşsunuzdur.

soru cevap

Cevap bölümünde birçok soru var ve cevaplama süresi görece kısa. Buradan üç tane seçin ve bunun hakkında kısaca konuşun.

ilk olarak Hiperparametreler ile ilgili olarak, yani öğrenme hızı parti boyutu, iterasyon vb. Gibi hiperparametrelerin konfigürasyonu. Burada ayrıca denenecek sıkı karşılaştırmalı deneysel tasarıma ihtiyaç vardır. Aynı zamanda, hiperparametreler genellikle çok fazla değişmez ve toplam deneme sayısı (toplu boyut * yineleme) temel olarak veri kümesinin toplam miktarını izler. Bu nedenle, genel olarak belirlenen hiperparametreler, veri miktarı çok fazla değişmediğinde değişmeden kalabilir.

İkincisi Algılama oranı ve geri çağırma oranı nasıl dengelenir? Olay yerinde bu soruyu yanlış anladım ve iyi bir değerlendirme standardını nasıl seçeceğimi daha çok konuştum. Aslında, bu makalede bahsedilen azalan marjinal fayda eğrisine en uzun süre geri dönersek, tespit oranını ve geri çağırma oranını dikkate alarak en gelişmiş modeli ve hiperparametreyi bulmaktır. Bu modeli özellikle bulmak için, makalede açıklanan metodolojidir.

Üçüncüsü Hafif modelde, imagenet ile önceden antrenman yapmak anlamlı mı? Özellik alanının arka planına geri dönersek, hafif modelin ağ yapısı kapasitesi küçük olduğundan, barındırılabilecek özelliklerin miktarı büyük değildir. Bununla birlikte, imagenet'in veri seti özellik alanı çok büyüktür ve hafif modellerin yeteneklerini çok aşar. Eğitim öncesi modeldeki özelliklerin tanımlanmasının hedef problem alanından çok uzak olmasına neden olacak ve ön eğitimden öğrenilen özellikler yeni problem eğitim süreci kapsamında ele alınacaktır. Bu nedenle, veriler yeterli olmadığında makul çözüm, eğitim öncesi için nispeten benzer özelliklere sahip veri setlerini kullanmaktır.Örneğin, araç algılama probleminde veri miktarı yetersizdir ve bazı migrasyon çalışmaları için kitti ve bdd100k gibi veri setleri kullanılabilir.

Kaynak: Jishi Platformu

Batı Sichuan'da bir başka mutlak sır! Jiuzhaigou'dan 10 kat daha dolgun, ancak daha az dikkat!
önceki
Lonely Planet, 2018'de Asya'daki en iyi seyahat noktası seçildi ve Sichuan listede! Diğer 9'u da güzel
Sonraki
Askeri endüstri: China Aviation Development, iki yeni uçak motoru piyasaya sürüyor
Çin'deki en havalı 25 yazlık tatil yeri, Temmuz ve Ağustos aylarında gidilecek yer burası! Başlamak için birini seçin
Bu hafta yeni bir terim öğrendik: doymuş kavun grevi
"Kapatın ve yeniden başlatın" işe yaradı, NASA Hubble ana kamerasını bu şekilde onardı ...
INS'yi en üst düzeye çıkaran ünlü İnternet kafesinin artık sadece küçük mavi şişeleri yok
48 yaşındaki kadın öğretmen ve kız arkadaşı yemek yiyorlardı ve aniden yere düştü! Bu hastalık kışın çok yaygın ve tehlikelidir ...
Dünya Masa Tenisi Şampiyonasında Malone, boa yılanını ele geçirdi ve Fan Zhendong'u yendikten sonra şöyle dedi: Gelecek tombullara ait, takıma katıldım.
Chengdu'ya yaptığım bir yolculuktan sonra, geri "döndüm"!
Çifte yenilik ve çifte onarım devam ederken | "Şehirde çifte onarım" Jingdezhen'in dönüşümü ve gelişiminin yeni bir resmini çiziyor
Dünyada o kadar çok tuhaf şey var ki haber yayınlanmıyor
Görmek gerekir! Avrupa'daki satış noktaları için alışveriş rehberi
Bu 1.74 metrelik bayan üniversite öğrencisi yanıyor! Yağmurlu günlerdeki en sevimli boy farkı güzellikten çok daha fazlasıdır!
To Top