2019 Kaggle Freesound Audio Annotation Challenge'ın sonuçları açıklandı, bu en iyi% 2'lik bir çözümdür

Leifeng.com AI teknolojisi inceleme basını: Birkaç gün önce, 2019 Kaggle Freesound Audio Annotation Challenge sona erdi ve yarışmanın sonuçları nihayet açıklandı. Yarışmacılardan Eric BOUTEILLON, global sorunsuz ödeme çözümü sağlayıcısı Ingenico Group'un ürün liderlerinden biri olan Eric BOUTEILLON, sunduğu çözüm bu yarışmada ilk% 2'ye girerek birinciliği kazandı. Birkaç gün önce sonuçların 8'ini Github'da paylaştı ve çözümü yeniden üretme adımlarını detaylandırdı.

  • Yarışmanın sıralama sonuçlarını kontrol edin: https://www.kaggle.com/c/freesound-audio-tagging-2019/leaderboard

Bu açık kaynak kitaplığın başlangıç noktası

Bu açık kaynak kitaplık, verimli bir sesli açıklama sistemi oluşturmak için yarı denetimli bir ön ısıtma hattı ve yazar tarafından SpecMix adlı çok etiketli ses ek açıklaması için yeni bir veri geliştirme teknolojisi sağlar.

Bu yeni teknolojileri, 2019 Kaggle ücretsiz ses etiketleme yarışmasına sunulan ses etiketleme sisteminde uyguladık. Bu zorluk, Akustik Sahne ve Olay Algılama ve Sınıflandırma Zorluğunun (DCASE 2019) ikinci görev zorluğudur.Amaç, az miktarda güvenilir, manuel olarak etiketlenmiş verilerde büyük miktarda gürültünün kullanılmasını ve büyük ölçekli kelime ayarlarıyla çok etiketli ses etiketleme görevlerini içerir. Makine öğrenimi teknolojisi, her test çerçevesi için ses etiketini tahmin etmek için ağ ses verileri üzerinde eğitildi.

TL; DR-bana kodu ver!

Mücadelenin kamuya açık sıralamasında, Jupyter dizüstü bilgisayarlarda çalışan çözüm 0,738 lwlrap değerine sahip, bu da bu yarışmada 8. sırada olduğu anlamına geliyor.

  • CNN modeli 1 eğitimi (https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/training-cnn-model1.ipynb)

  • VGG16 modelini eğitin (https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/training-vgg16.ipynb)

  • Çıkarım çekirdeği (https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/inference-kernel.ipynb)

CNN-model-1 ve VGG-16 eğitiminin ağırlık sonuçlarını herkese açık Kaggle veri setinde de bulabilirsiniz. Yazarın kota nedeniyle bu ağırlık sonuçlarını saklamak için git-lfs kullanmadığı unutulmamalıdır.

Kurulum

Zorluk, katılımcıların yapılandırmalarını değiştirmeden Kaggle çekirdeğinde çıkarım yapmalarını gerektirir. Bu nedenle, katılımcıların yarışma sırasında yerel olarak oluşturulan CNN ağırlıklarını yüklemek için Kaggle çekirdek yapılandırmasıyla aynı pytorch ve fastai sürümünü kullanmaları çok önemlidir. Bu nedenle yarışmacıların pytorch 1.0.1 ve fastai 1.0.51'i tercih etmeleri çok önemlidir.

Yükleme yöntemi 1: Orijinal yazarın yöntemini kullanın

Yerel sistemimle aynı yapılandırmayı elde etmek için aşağıdaki adımları GNU Linux Ubuntu 18.04.2 LTS'de test etmem gerekiyor:

1. Bu açık kaynak kitaplığı kopyalayın:

git klon https://github.com/ebouteillon/freesound-audio-tagging-2019.git

2. anaconda3'ü kurun: https://docs.anaconda.com/anaconda/install/

3. Linux terminalini girin:

conda create --name freesound --file spec-file.txt

Artık hazırsınız!

Not: Yapılandırmam CUDA 10'u zaten yükledi, bu nedenle pytorch ve cudatoolkit sürümünü spec-file.txt dosyasındaki yapılandırmanıza göre ayarlamanız gerekebilir.

Kurulum yöntemi 2: conda tarafından önerilen paketi kullanın

Conda yükleme paketini güncelleyebileceğinden, bu yöntem yazarla aynı yapılandırmayı garanti etmez.

1. Bu açık kaynak kitaplığı kopyalayın:

git klon https://github.com/ebouteillon/freesound-audio-tagging-2019.git

2. anaconda3'ü kurun

3. Linux terminalini girin:

conda güncelleme conda

conda create -n freesound python = 3.7 anaconda

conda serbest sesi etkinleştir

conda kurnuş pandalar scipy scikit-learn matplotlib tqdm seaborn pytorch == 1.0.1 torchvision cudatoolkit = 10.0 fastai == 1.0.51 -c pytorch -c fastai

conda kaldırma --force jpeg libtiff -y

conda install -c conda-forge libjpeg-turbo

CC = "cc -mavx2" pip install --no-cache-dir -U --force-restart --no-binary: all: --compile pillow-simd

conda install -c conda-forge librosa

Not:

  • Yapılandırmam CUDA 10'u zaten yükledi, bu nedenle yapılandırmanıza göre pytorch ve cudatoolkit sürümünü ayarlamanız gerekebilir

  • Libjpeg-turbo kullandığımız için aldığınız hatırlatıcılar tutarsız olabilir

Donanım yazılım

Meydan okuma sırasında aşağıdaki donanım / yazılım yapılandırmalarını kullandım:

  • Intel Core i74790k

  • NVIDIA RTX 2080 ti

  • 24 GB RAM

  • Ubuntu 18.04.2 LTS

  • Yüklü python paketlerinin ayrıntılı bir listesi ve conda (çok gerekli), requirements.txt ve spec-file.txt dosyasında elde edilebilir.

  • NVIDIA sürücüsü 418.67, CUDA 10.1, CuDNN 7.3.1

Sonuçları yeniden üretin

1. Veri setini Kaggle'den indirin (https://www.kaggle.com/c/freesound-audio-tagging-2019/data)

2. (İsteğe bağlı) Ağırlık veri setimi Kaggle'dan indirin (https://www.kaggle.com/ebouteillon/freesoundaudiotagging2019ebouteillonsolution)

3. Giriş klasörünü açın ve aşağıdaki gibi ortamınızı oluşturmak için veri kümesini açın:

kod

çıkarım-kernel.ipynb

eğitim-cnn-model1.ipynb

eğitim-vgg16.ipynb

resimler

all_augmentations.png

model-açıkladı.png

giriş

test ...

tren_curated

...

tren gürültüsü

...

sample_submission.csv

train_curated.csv

train_noisy.csv

keep.txt

LİSANS

README.md

requirements.txt

spec-file.txt

ağırlıklar

cnn-model-1

modeller

keep.txt

aşama-10_fold-0.pkl

...

aşama-2_fold-9.pkl

vgg16

modeller

keep.txt

aşama-10_fold-0.pkl

...

aşama-2_fold-9.pkl

3. Komut satırını girin:

conda serbest sesi etkinleştir

jupyter defter

Web tarayıcısını açın ve yürütülecek içeriği seçin. Önerilen sıra aşağıdaki gibidir:

  • training-cnn-model1.ipynb (https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/training-cnn-model1.ipynb)

  • training-vgg16.ipynb (https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/training-vgg16.ipynb)

  • inference-kernel.ipynb (https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/inference-kernel.ipynb)

mutluluklar dilerim!

Not:

  • Modellerden birini eğitmek için ilk çalıştırma eğitimi - *. İpynb. ?

  • CNN model eğitiminde, bir çalışma klasörü ve bir ÖNCEDEN İŞLENMİŞ klasör oluşturulur ve konumlarını değiştirmek isteyebilirsiniz: bu, işi ve ÖNCEDEN İŞLENMİŞ değişkenleri güncellemek kadar basittir.

  • Verilen (veya kendi) ağırlığı yerel ayarlarda çıkarım notlarıyla kullanmak istiyorsanız, models_list ile gösterilen klasör yolunu güncellemeniz yeterlidir. Bu meydan okumada Kaggle çekirdeği tarafından kullanılan yolu korudum.

  • Kaggle veri kümesini ve ağırlık veri kümemi kullanan çıkarım çekirdeği doğrudan Kaggle'da elde edilebilir:

    https://www.kaggle.com/ebouteillon/12th-public-lb-inference-kernel-using-fastai

Çözüme genel bakış

Ses verisi ön işleme

Önce ses klibini ön ve uç sessiz (60 dB eşik ile) kesin ve ardından 44,1 kHz örnekleme hızı, ardışık kareler arasında 347 örneklik atlama uzunluğu, 2560 FFT bileşenleri ve 20 Hz-22050 Hz aralığı kullanın Frekans, ses klibini 128 bantlı mel-spektrograma dönüştürür. Son adım, elde edilen görüntünün düzenlenmesi (ortalama = 0, varyans = 1) ve 3 kanala kopyalanması dahil olmak üzere ön işlemedir.

Modele genel bakış

Bu bölümde, kullanılan sinir ağı mimarisini şu şekilde açıklıyoruz:

  • Sürüm 1, Tablo 1'deki özel CNN "CNN-model-1" ve toplu olarak normalleştirilmiş VGG-16'dan oluşur. Her ikisi de aynı şekilde eğitilir.

  • Sürüm 2 yalnızca özel CNN "CNN-model-1" i içerir, tanım için Tablo 1'e bakın.

  • Versiyon 3, değerlendirme ödüllerini değerlendirmek için kullanılır ve bu versiyonun modeli, versiyon 2 ile aynıdır.

Tablo 1: CNN-model-1. BN, Toplu Normalleştirme anlamına gelir ve ReLU, Doğrultulmuş Doğrusal Birimi ifade eder

Veri geliştirme

Küçük bir eğitim seti kullanmak için önemli bir teknik, eğitim setini genişletmek için veri artırmayı kullanmaktır. Bu amaçla SpecMix adında yeni bir veri geliştirme yöntemi geliştirdik. SpecAugment'in bir uzantısıdır (bkz. Referans 1), karıştırmadan esinlenilmiştir (bkz. Kaynak 2).

SpecAugment, eğitim örneklerini geliştirmek için 3 dönüşüm uygular: zaman atlama, frekans maskeleme ve zaman maskeleme.

mixup, iki örnek girdinin ve hedefin ağırlıklı ortalamasını hesaplayarak sanal bir eğitim örneği oluşturur.

SpecMix

SpecMix, SpecAugment'ın en etkili iki dönüşümünden ilham alır ve bunları sanal çok etiketli eğitim örnekleri oluşturmak için genişletir:

1. f'yi sürekli bir Mel frekans kanalı yapmak için frekans değiştirmeyi kullanın

Video | Huiyang'da binlerce kişi "Guitar Town" a daldı ve fırıncının ünlü gitar melodileri seyirciyi şaşırttı
önceki
Kamusal kültür hizmetleri artık mali kaynaklara aşırı derecede bağımlı değil mi? Foshan Gaoming'in harika numaraları var
Sonraki
Doktor nefes borusundan bir karides çıkardı.
Yenilikçi Qizhi, AI görüş algoritmalarının gücünü göstererek en büyük uluslararası görsel yarışması PASCAL VOC'yi kazandı
Chongqing'deki yenilenmiş Leijiapo Antik Yol alanı ilk kez görücüye çıktı ve kaybolan Nanji Kapısı ile karıştırıldı.
Eyalet idaresi yetkisi verin! İl Parti Komitesi ve Hükümet, Eyalet Alt-Merkez Şehrinin İnşaatını Hızlandırmak İçin Shantou'yu Destekliyor
Güney Çin Deniz Aslanı ile tanışmak için "Kralın Glory" ye gelin, Luban No. 7 "Aslan Dansı Dongfang" cildi yakında piyasaya sürülecek.
Tsinghua, 2 doktora öğrencisinin geri çekilmesiyle ilgilenmeyi planladığını duyurdu! Nedeni şu ki
Bir kase çorba 6 kişilik tüm aileyi terk etti, yaşam ve ölüm belirsizdi! Acı bir şekilde ağladı: Gerçekten pişmanım
Shantou, uyuşturucu karşıtı propaganda uzmanı Zheng Hongxin: "Yürüyüş propagandası" ilginç ve tahmin edilebilir
Günaydın Lingnan | Yıl Ortası Kesilmiş Eller Festivali x Lise Giriş Sınavı Sıcak Ürünler =?
Soruşturma | Rolex 188 yuan, Cartier 33 yuan ... İkinci el işlem yönetildi mi?
İstihdam çok aranıyor, doğrudan lisansa gidebilirsiniz! Guangdong'daki 400 ortaokul meslek okulu bu yıl 300.000 öğrenciyi kaydetmeyi planlıyor
Avustralyalı erkek model, uyuşturucu aldıktan sonra aklını yitirdi ve postacının dişlerini kırdı ve polisi öldürmekle tehdit etti: Babam bir papaz
To Top