Kuru ürünler: İmaj yarışmaları için genel rutinler nelerdir? Kaggle yarışması altın takımı sizin için cevap verecek

Leifeng.com AI Research Press: Kaggle, dünyanın önde gelen veri bilimi ve makine öğrenimi geliştirici topluluğu ve rekabet platformudur.Kaggle Amazon Yağmur Ormanı Yarışması'nın altın madalya ekibinin deneyim paylaşımına bir göz atın.

Birkaç gün önce, Leifeng.com AI Araştırma Enstitüsü tarafından düzenlenen akademik gençlik paylaşım oturumunda, Sun Yat-sen Üniversitesi BDT Laboratuvarı'nın ikinci sınıf yüksek lisans öğrencisi Liu Sicong bize harika bir paylaşım getirdi. Kaggle'daki Amazon yarışmasında takımı altın madalya kazanan bu paylaşımda, oyun sırasında kazanılan tecrübeleri ve resim yarışmasında bazı yaygın rutinleri detaylandırdı.

Aşağıdaki paylaştığı içeriktir ve Leifeng.com AI Araştırma Enstitüsü orijinal amacı değiştirmeden düzenledi:

Herkese merhaba, benim adım Liu Sicong ve Sun Yat-sen Üniversitesi'nin BDT laboratuvarından geliyorum. Bir süre önce Kaggle'da Amazon yağmur ormanlarının uydu görüntüsü yarışmasına katıldık ve güzel sonuçlar elde ettik ve biraz da tecrübe kazandık Bugün sizlerle özetlediğimiz ve sık sık görüntü yarışmalarında kullandığımız bazı rutinleri paylaşacağız.

Oyuna kısa bir giriş yapacağım ve model yapımı, analiz, iyileştirme ve oyundaki bazı veri geliştirme vakalarımız gibi bazı genel yöntemler hakkında konuşacağım. Ek olarak, K-kat çapraz doğrulama, Kaggle yarışmalarında, ister görüntü rekabeti ister metin yarışması olsun, yaygın olarak kullanılan bir yöntemdir.Neden K katlamalı çapraz doğrulama yaptığımızdan ve K-katını bölerken nelere dikkat etmemiz gerektiğinden bahsedeceğim. Nokta. Daha sonra Kaggle yarışmasında model entegrasyonuna dahil olan becerilerden bahsedeceğim ve son olarak ekibimizin temel durumunu tanıtacağım.

Genel olarak bu yarışma hakkında konuşalım.Birçok kişi ismini görünce yanlışlıkla bunun Amazon tarafından düzenlenen bir yarışma olduğunu düşünecek, hatta ikisinin birbiriyle hiçbir ilgisi yok. Amazon olarak adlandırılıyor çünkü uydu görüntüleri Amazon yağmur ormanlarından geliyor.Yapmamız gereken görev verilen uydu görüntülerinden bazılarını etiketlemek ve toplamda 17 farklı etiket var.

Başarılarımız PPT'de gösterilmektedir.

Ek olarak, sonuçlarımızın bir analiz tablosu var.

Ardından, tek bir modelin nasıl oluşturulacağı hakkında konuşun.

Bu, paylaşımın en önemli kısmıdır.Çerçeve tarafından sağlanan eğitim öncesi modelin kullanılıp kullanılmayacağını veya bir model oluşturmak için modelin rastgele başlatılıp başlatılmayacağı ve ayrıca hangilerinin kullanılabileceği eğitim öncesi modeli kullanmak isteyip istemediğinizi de içerir. Bunu anladıktan sonra, sonuçları analiz etmek ve iyileştirmek için bir Temel modelin nasıl eğitileceğini kısaca tanıtacağım.

Önce bunun hakkında konuşmama izin ver Önceden eğitilmiş bir model veya rastgele bir başlatma parametre modeli kullanılıp kullanılmayacağı , Bu seçim farklı oyunlar için farklıdır. Ön eğitim modelinin avantajı, ImageNet üzerinde önceden eğitilmiş parametreleri kullanabilmemizdir .. ImageNet, modeli geliştirmek için üzerinde eğitilebilen çok büyük bir veri kümesidir. Ancak bir eğitim öncesi model kullanırsak, bu genel model çerçevesinin eğitim öncesi ile aynı kaldığı, dolayısıyla yapılabilecek daha az ayarlama olduğu anlamına gelir. Rastgele başlatma parametreleri kullanırsak, model için avantaj, onu neredeyse istediğimiz gibi oluşturabilmemizdir Dezavantajı, önceden eğitilmiş parametreleri ImageNet üzerinde kullanamamaktır.

Oyunun başında bazı deneyler yaptık ve bazı rastgele başlatma parametre modelleri ve eğitim öncesi modeller geliştirdik. Görevimizdeki rastgele başlatma parametre modelinin yakınsama hızının eğitim öncesi modelden çok daha düşük olduğunu bulduk, bu yüzden daha sonra Önceden eğitilmiş modeller, en azından tek model aşamasında, oyun için neredeyse her zaman kullanılmıştır.

Kullanılacak ön eğitim modeli belirlendikten sonra hangisini seçeceğini düşünecektir. Aslında hemen hemen tüm farklı çerçeveler kendi eğitim öncesi modellerini sağlar.Bazı yaygın olanlara ek olarak, bazı farklılıklar vardır.Bazı eğitim öncesi modellerin sadece belirli bir çerçevesi vardır ve bazı eğitim öncesi modeller karşılaştırılabilir. Analiz, sonunda bir PyTorch çerçevesi seçtik. PyTorch'u seçmemizin nedeni, her şeyden önce kodunun nispeten hafif olması ve daha sonra daha fazla eğitim öncesi model sağlamasıdır.Ayrıca onunla yazmak bizim için çok uygundur.Modeller yakında oluşturulabilir ve temelde herkes bunu öğrenecek. Çoğu modeli kapsar.

Araçları ve mevcut modelleri seçtikten sonra bir model eğitmeye başlayabilirsiniz. Genel olarak konuşursak, başlangıçta bir temel yaptık.Bu çok normal bir rutin.Genel olarak, sadece bir modeli eğiterek model hakkında genel bir fikir edinebiliriz. Örneğin, ResNet18 eğitilebilir ve bu nispeten basittir. Ardından% 80 eğitim,% 20 doğrulama gibi eğitim setini biraz bölüyoruz ve ardından optimizasyon için Adam'ı kullanıp öğrenme oranını ayarlıyoruz. Bunlardan birkaçını denedikten sonra muhtemelen daha iyi bir modeli ayarlayabilir ve eğitebiliriz.

Başlangıçta, hangi öğrenme oranı aralığının daha uygun olduğunu bilmiyoruz. İyi bir değer olan 0.0001 kullanıyoruz. Model daha hızlı yakınsıyor ve nispeten istikrarlı. Genel olarak, öğrenme oranı çok büyükse eğitim titreyecek ve sonra öğrenme oranı çok küçükse yakınsama karşılaştırılacaktır. Yavaş, bu süreçte takım üyeleri tarafından geliştirilen, eğitim süreci sırasında eğitim eğrisindeki değişiklikleri gerçek zamanlı olarak kaydedebilen Hyperboard adlı bir araç kullanıyoruz ve arayüz görece basittir.Böyle bir eğitimden sonra, genellikle geri bildirim alabiliriz. Sonuçları analiz ettikten sonra bir sonraki adımda eğitimi veya verileri nasıl iyileştireceğimizi düşünebiliriz.

Sonucu görece küçük bir modelde o dönemde gözlemledik.Model başlangıçta çok hızlı bir şekilde yakınsadı ve sonra aşırı yüklenmeye başladı Eğitim setindeki kayıp azaldı ve doğrulama setindeki kayıp arttı. O zaman analiz ettik ve resmi eğitim veri setinin sadece 40.000 örneğe sahip olduğunu hissettik, bu da bu görev için görece küçüktü ve aşırı uyuma daha yatkındı ve bunun üzerine bir veri oluşturmak için insan öncellerini kullandık. Geliştirme, böylece orijinal örnekleri daha fazla değiştirmek için bazı yöntemler kullanabilirsiniz ve daha sonra bu veri ile zenginleştirilmiş örneklerle, daha fazla veri varsa, modele uyması daha zor olacaktır. Veri geliştirme ile aşırı uyum sorununu çözdükten sonra modeli ayarlamaya başlayabiliriz.

Veri eksikliğini çözdükten sonra, Daha büyük bir model kullanmayı düşünün Yukarı. Modeli iyileştirmenin en kolay yolu, daha büyük bir parametre ölçeğine sahip önceden eğitilmiş bir model kullanmak, diğeri ise modelde bazı değişiklikler yapmaktır.Önceden eğitilmiş modelle evrişim katmanında bazı değişiklikler yapmak zordur.

Değişikliklerimizin çoğu, evrişimli katmandan sonraki tam bağlantılı katmanda yapılır.Evrişim katmanının son Global Pooling katmanının çıktı boyutunu da değiştirebiliriz ve ayrıca iki küçük modelin çıktı özelliklerini bir araya getirebiliriz. , Ve sonra bunları büyük bir model oluşturacak şekilde dağıtın. Daha sonra Batchnorm, dropout, L2 vb. Ekleyebilirsiniz, ancak bu parametrelerin oyunda çok büyük bir etkisi olduğu gözlemlenmedi, bu yüzden bunlara daha sonra dikkatli ayarlamalar yapmadık.

Genel çerçeveyi ve kullanılan modeli belirleyin, sonraki adım daha sıkıcıdır Tuning aşaması Buradaki çok önemli bir parametre, başlangıç öğrenme oranıdır Daha önce de belirtildiği gibi, sadece belirli bir aralık olan yaklaşık 0.0001'lik bir kıyaslama öğrenme oranı seçiyoruz ve bazı dikkatli ayarlamalar yapabiliriz. Bu başlangıç öğrenme oranının ayarlanması, nihai yakınsama üzerinde de bir etkiye sahiptir.

Ayrıca Toplu iş boyutu seçeneği de var, GPU'yu olabildiğince doldurmaya çalışın, genellikle 32-128 ve bazen biraz ince ayar yapın. Genel olarak konuşursak, eğitim sürecinde, belirli bir seviyeye düştükten sonra tamamen birleşebilir veya aşırı uyum oluşmaya başlayabilir. Şu anda, genellikle yapılan bir işlem genel öğrenme oranını düşürmektir, böylece eğitim artma eğilimindedir. Bitirmenin etkisi. Parametreleri ayarlama sürecinde, ayrıca parametrelerin sonuçlarını kaydetmeye devam etmeli ve hangi parametrelerin daha iyi olduğunu görmek için analiz ve doğrulama yapmalısınız.

Neredeyse bir düzine model çalıştırdık ve bazıları birkaç kez çalıştırdık ResNet'in en iyi etkiye sahip olduğunu ve DenseNet'in en iyi etkiye sahip olduğunu gördük. VGG, Inception v3 neredeyse çalışıyor. En kötüsü AlexNet ve SqueezeNet'tir, çünkü ilki gerçekten eski ve etkisi iyi değil, ikincisi biraz sıkıştırma işi yapıyor, genel parametreler çok değil, bu yüzden etki görece zayıf. Inception v4 ve Inception Res v2 çok kötü çalıştı, daha sonra kullanmadık. Ek olarak, bazı modeller genel olarak daha düşük olsa da çeşitlidir ve Ensemble birlikte performansı artırabilir.

Şimdi, veri geliştirme hakkında konuşalım.

Sana neyi tanıtacağım Veri geliştirme yöntemi Biri parlaklığı, doygunluğu ve kontrastı ayarlamaktır. Bu ayarlamalardan sonra yeni bir örnek olarak değerlendirebiliriz. Sonra, ek olarak, önceden insanı geçmek zorundayız Bir nehrin resmini aydınlatırsanız, onun hala bir nehir olduğunu görebiliriz, ancak orijinalinden farklı bir parlaklığa sahip bir örnek alabiliriz.

Ayrıca, bir resmi rastgele kırpmak için de yaygın olarak kullanılır ve kırpılan resim girdi olarak kullanılabilir, ancak bu tekniği bu yarışmada bazı resimler olduğunu düşündüğümüz için kullanmadık.Rastgele kırpma yaparsak, Resimdeki bazı özellikler kesilebilir.

Sonra rastgele ölçekleme, yatay / dikey çevirme, döndürme, resmi bulanıklaştırma, Gauss gürültüsü ekleme vb. Vardır. Bunların hepsi yaygın yöntemlerdir, ancak her biri uygun değildir.

Herhangi bir görev için, fiili duruma bağlı olarak iyi bir veri geliştirme seçmeliyiz. İyi veri geliştirme şu şekilde olmalıdır: geliştirilmiş resim mümkün olduğu kadar orijinal dağıtıma yakın olmalıdır. Bu oyun için, sola ve sağa çevirmek gibi esas olarak iki çevirme ve döndürme yöntemini kullanıyoruz. Döndürme için, resmi 90 derece, 180 derece ve 270 derece döndürürüz. Çevirme ve döndürme kombinasyonu ile sekiz açılı bir resim elde edebiliriz ve görüntünün etiketi değişmez.

Bu durumda, bu veri setini sekiz kat genişletmeye eşdeğer olan daha fazla eğitim örneğimiz var.Bu yöntem, bu oyun için veri geliştirme için uygundur, ancak tüm yarışmalar için uygun değildir. Gerçek duruma göre anlaşılması gerekir Genel olarak, orijinal dağıtımdan çok fazla sapmamaktır ve o zaman veri geliştirmeden sonra orijinal seviyeyi korumak en iyisidir.

Daha sonra sıklıkla kullanılan bir veri geliştirme var. Bu geliştirme, eğitim sırasında aşırı uydurmayı önlemek için değildir, test sırasında veri geliştirmeyi gerçekten kullanabiliriz. Test ederken, bir resmin sekiz yönündeki numuneleri de tahmin edeceğiz. Sekiz sonuç elde edebilir ve ardından bu sonucu elde etmek için ağırlıklı ortalama veya doğrudan ortalamayı oylamak için bu sekiz sonucu kullanabiliriz. Genellikle orijinal tek yönden çok daha kararlıdır ve bu da önemli bir gelişme sağlayabilir.

Bir sonraki konuşulacak şey, K-katlamalı çapraz doğrulama.

Önce bizden bahsedeyim Neden K katlamalı çapraz doğrulama . En sezgisel amaç, tüm eğitim verilerini olabildiğince çok kullanmaktır, çünkü eğitim alırken, mevcut modelin genelleme performansını sağlamak için genellikle verilerin% 80'ini eğitim seti için ve% 20'sini test seti için böleriz. Sorun yok. Ancak bu durumda, eğitim için doğrulama kümesindeki verilerin bu bölümünü kullanamayız.

K-kat çapraz doğrulamada, ilk önce orijinal verileri K-kıvrımlarına dönüştürebiliriz.İşte 5 kopyaya bölünmüş bir örnek daha sonra bunların dördünü eğitim seti ve kalanını doğrulama seti olarak kullanıyoruz. Bunu beş kez ayrı ayrı yaparak, tüm orijinal veriler üzerinde birlikte çalışabilir ve ardından beş model elde edebilir ve ardından sonuçlarının ortalamasını alabiliriz Ortalama sonuç aslında tüm eğitim seti üzerinde eğitilir. sonuç. Eğitim sonuçlarını bir araya getiriyoruz ve daha sonra entegrasyon için kat dışı veriler de sağlayabiliriz.

O zaman bir diğer önemli nokta K-katlamayı bölerken nelere dikkat etmeliyim? Başlıca noktalar şu şekildedir: Birincisi, ekip içinde aynı bölüm paylaşılır; ikincisi, tek model aşamasında ve model entegrasyon aşamasında mümkün olduğunca aynı bölüm kullanılmalıdır; üçüncüsü, eğitim seti ve doğrulama setinin bölünmesi, eğitim seti ve test seti bölümü ile uyumlu olmalıdır. Dördüncüsü, kat sayısı ne kadar çok bölünürse, hesaplama gücü tüketimi o kadar büyük olur ve hesaplama kaynaklarının yeterli olup olmadığını görmesi gerekir; beşincisi, veri miktarı yeterince büyük olduğunda, K-katlama bölümü kullanılamaz.

Son vurgu, model entegrasyonudur.

Model entegrasyonu genel yarışmalarda kullanılır ve çok önemli bir bağlantıdır. Görüntü yarışmasındaki konum, metin yarışmasındakiler kadar önemli değildir, çünkü görüntü yarışmasında, esas olarak evrişimli sinir ağları ve benzerlerini kullanıyoruz ve bu modeller arasında özellikle büyük farklar olmayacak.

Ensemble'ın iyileştirilmesi, nihai entegrasyonu daha iyi hale getirmek için temelde bazı daha iyi tekli modelleri eğitmektir ve daha sonra bazı metin benzeri yarışmalarda bazıları derin öğrenme yöntemlerini kullanabilir ve bazıları geleneksel öğrenme yöntemlerini kullanabilir. Bazı özelliklerin manuel olarak eklenmesi gerekir.Bu özellikler çok çeşitlidir ve genellikle oyunun model entegrasyonu aşamasında büyük iyileştirmeler sağlayabilir.

Ortalama Torbalama, Torbalama Grubu Seçimi, Dikkat İstifleme gibi yarışmanın farklı aşamalarında farklı model entegrasyon yöntemleri kullandık.Aktik İstifleme kendi eklediğimiz bir şey ve etkisi fena değil.

Hakkında konuşmama izin ver Model entegrasyon aşamasında tek örnek giriş PPT'de gösterildiği gibi, belirli bir örneklem için her model 17 sınıfın sonuçlarını tahmin edebilir. Beş modelimiz varsa, bu tür beş sonuç elde edebiliriz. Bunları bir araya getirebiliriz. Bir olasılık eğrisi alın. O zaman en basit ve kaba yol, sonuçların doğrudan ortalamasını almak ve bunları nihai sonuç olarak ele almaktır. Bu bizim ilk yöntemimizdir, tüm modeller aynı ağırlığa sahiptir ve olasılık matrisinin ortalaması modelin sayı boyutu boyunca alınır.

Orta vadede, biraz daha iyi Torbalama Topluluk Seçimi yöntem. Avantajı, her modelin farklı ağırlıklara sahip olmasıdır.Seçim sürecinde, bazı modeller birden çok kez seçilebilir ve bazı modeller bir kez seçilemez.Ağırlık, seçilen zaman sayısına bağlıdır ve olasılık matrisi modeli takip eder. Boyutlar ağırlıklı ortalamadır. Örneğin, başlangıçta en iyi üç modeli seçiyoruz ve ardından hangisinin en iyi çalıştığını görmek için 12345'in tümünü ekliyoruz. Bu yöntem aynı zamanda nispeten basit ve kaba olup çapraz doğrulama bu sürece dahil değildir.

Daha sonraki aşamada benimsedik İstifleme , Performansı daha güçlüdür. Her modelin her kategorisinin kendi ağırlığı vardır. Bu aslında anlaşılması daha kolaydır. Örneğin, belirli bir model meteorolojik kategoride daha iyi performans gösterir, ancak diğer kategorilerde kötü performans gösterir. Bu durumda, o Hava durumu kategorisi daha yüksek bir ağırlığa sahip olmalıdır ve diğer kategorilerdeki ağırlık daha düşüktür. Bir entegrasyon yapmak için modelin farklı performansını farklı sınıflarda kullanıyoruz.

Genel olarak, yığınlama aşamasında, ortak bir yöntem, her sınıf için ayrı ayrı bir sınıflandırıcı eğitmek ve daha sonra önceki tüm modellerin girdisini girdi olarak kullanmak ve ardından bir sonucu tahmin etmektir. 17 sınıfımız var, bu yüzden 17 tek sınıflandırıcıyı eğitiyoruz ve sonra 17 sonucu tahmin ediyoruz. Buradaki en basit yöntem, doğrudan doğrusal bir regresyon gerçekleştirmektir, ancak o sırada doğrulama kümesini aşmanın kolay olduğunu gördük.

Sonra kendimize görece basit bir mekanizma kurarız: Dikkat İstifleme . Her sınıf için, tekli modellerin sayısı kadar çok parametre öğreniyor ve ardından üzerinde Softmax yapıyoruz, böylece bu parametreler 1'e, ağırlık 1 ise doğal bir ağırlık ve orijinal beş sınıf olacak şekilde Bu ağırlığa göre doğrudan ağırlıklı ortalama.

Daha sonra, istifleme için Lojistik Regresyon ve Ridge Regresyonunu da kullandık Dikkat İstiflemenin doğrulama seti üzerinde daha iyi bir etkiye sahip olduğunu bulduk, ancak sınırlı zaman nedeniyle yeterince karşılaştırmalı deney yapmadık. Son olarak, bu modeller nasıl entegre edilirse edilsin, bu tür görüntü yarışmasında daha iyi bir tek model olması ve Ensemble'ın anlamlı olması için çeşitli olması gerektiği belirtilmelidir.

Oyunun rutini neredeyse bitti ve sonunda ekibimizin temel kompozisyonunu tanıtacağım. Ekibimizde, Sun Yat-sen Üniversitesi Bay Pan Rong'un BDT laboratuvarında yüksek lisans öğrencisi olan 6 kişi var. Bu yarışma üç ay sürüyor çünkü daha önce başka projelerle meşguldüm ve nihayet tam olarak katılmamıza yaklaşık 20 gün kaldı.Sonra 5-6 Titan Xs ile on günden fazla koştuk ve sonunda koştuk 64 model. Oyunun detaylarını görebiliyorsunuz, sütunu biliyorum.

Son olarak, bir soru cevap oturumu var.

S: Veri kaydı aracınız nedir?

C: Kullandığımız veri kayıt aracı, örneğin, Hyperboard eğriyi kaydetmek için kullanılır ve ardından diğer bazı istatistikler, excel tabloları ile kaydedilir.

S: Veri geliştirme aşaması neden rastgele bir açı değil, dört sabit açıdır?

C: Bu bir karşılaştırma Daha önce bazı rastgele açılar yaptık, ancak dört sabit açı kullanmaya kıyasla iyileşmenin yüksek olmadığını ve daha fazla bilgi işlem kaynağı tüketeceğini gördük.

S: Topluluk Seçiminde kaç model kullanılıyor?

C: Ensemble Selection uzun süredir kullanılıyor.Bir düzineden fazla modelden 60'tan fazla modele kadar kullanmayı denedik, ancak daha sonra bu yöntemin doğrulama setini bölmediğini gördük. Doğrulama setini almak istiyorsak, sadece Stacking'i kullanabiliriz.

Verilere "yalan söylemeyin": kurumsal finansal raporlardaki bu "çukurları" ayrıntılı olarak açıklayın
önceki
"Sektördeki etkin nokta" 5G cep telefonu patent telif hakları, 2025'te 20 milyar ABD doları gelir getirecek
Sonraki
Tencentin yeni binasının yanındaki umumi tuvalette yangın çıktı: Komşu Sina yangını çabucak söndürdü, Baidu haberi yardım etmeden itti
Huawei Kirin 980 teknik özellik analizi: 7nm + A76 + G76 eksiklikleri telafi etmek için üç ilk
Baidu haritası, fahişeleri işe almak için yeni bir platform olarak ortaya çıktı; AIDS aşısı geliyor mu? Klinik deneylerin% 100'ü antikor üretir; e-sporun 2024 Paris Olimpiyat Oyunlarında bir rekabet
"Monster Hunter World" x "Final Fantasy 14" etkinliği bugün yayında
"Blog Gönderisi" PCIe Okuryazarlığı-Sıfırlama Mekanizmasına (FLR) Giriş
Intel'in Mobileye'yi satın alması aynı zamanda çip devi için son şans mı?
Bağlantı mekanizması raya göre hareket ettiğinde sistemin kararlılığı üzerine araştırma
"Moving Maze 3" rol kartı ortaya çıktı Hollywood "koşan çocuk grubu" yere geri döndü
Geliştirilmiş üç fazlı PWM redresörü ve kontrol stratejisi üzerine araştırma
"Paddington Bear 2" Alternatif Paskalya Yumurtaları, İngiliz Cai Guoqing · Hugh Grant bir hapishane şarkısı ve dans gösterisi düzenledi
"NBA 2K19" PS4'e gelecek ve ilk kez Çince yorum ekleyecek
Haftanın yapay zeka etkinlikleri: IBM ticari kuantum bilgisayarları piyasaya sürüyor, Baidu uç bilgi işlem ürünlerini piyasaya sürüyor
To Top