SlideShare a Scribd company logo
1 of 18
Download to read offline
2019.07.13 Kaggle Tokyo Meetup
Team: [kaggler-ja/AIMS]OUmed
Member: OsciiArt, Jsato
Freesound Audio Tagging 2019
4th Place Solution
1/17
Team: OUmed
大阪大学医学部6年, プログラミング歴2年
Kaggle歴2年
Porto seguroからスタート
Homecredit default risk
Santandar customer transaction
Freesound audio tagging 2019
Signate
Corevo NTTチャレンジ 3位
大阪大学医学部6年
京大理学部→生命科学科→派遣社員→阪大医学部編入
ディープラーニングを用いた脳科学, BMI, 疫学研究
Kaggle
Signate
メディカルコーディング 2位, 糖尿病コンペ2位
x1 x6 x2
OsciiArt
Jsato
synapse_r
2/17
Freesound Audio Tagging 2019
• 音声に80種類の環境音のタグ付けをするマルチラベル分類
• 少量のclean dataと大量のnoisy dataという限られたリソースで高性能な
モデルを作成するタスク
• Clean dataとnoisy dataはソースが異なるのでドメイン適応も必要
• 外部データ使用不可
• 2ステージ制カーネルコンペ (モデルの学習はローカルでOK)
評価指標
label-weighted label-ranking average precision (lwlrap, ロルラップ)
ランクを用いた評価指標
大きいほど良く最大値は1
例) 2番目に可能性が高いと予測したラベルが正解→ 1/2 = 0.5
コンペ概要
3/17
[Fonsece+ 2019]
データ
Dataset Noisy Dataset Clean Dataset
ソース Flickrの動画 Freesound Dataset
ラベル メタデータ等から自動生成 人力ラベル
クラスごとのサンプル数 約300 約75
合計サンプル数 19,815 4,970
平均ラベル数 1.2 1.2
合計時間 80時間 10.5時間
2
3361
train test
noisy
19815
clean
4970
1
1120
4/17
クラス
エンジンの加速音
アコーディオン
アコースティックギター
拍手
犬の鳴き声
バスドラム
ベースギター
バスタブ (水を張る/洗う)
自転車ベル
げっぷ
バス
蜂の羽音
通り過ぎる車
応援・歓声
租借音
子供の話声
チャリンと鳴る音
鳥のさえずり
教会の鐘
拍手
コンピューターキーボード
ひび割れ
コオロギ
群集
食器棚の開閉
食器の音
皿・ポット・フライパン
引き出しの開閉
水の滴る音
エレキギター
おなら
女性の歌
女性の話声
水を注ぐ音
指パッチン
食べ物を揚げる音
ハッと息をのむ音
鉄琴
ゴング
水がブクブクする音
ハーモニカ
ハイハット
シューッという音
鍵がジャラジャラなる音
ノック
男の歌声
男の話声
マリンバと木琴
ファンの回転音
猫の鳴き声
電子レンジ (開閉・チン)
オートバイ
プリンターの印刷音
エンジンなどの低い音
レーシングカー
雨滴
走る音
はさみ
叫ぶ
ガラスなどが割れる音
ため息
シンク (水を張る音/洗う音)
スケートボード
ドアを閉める音
くしゃみ
きしみ、チューチューなく声
川の流れ
ギターをかき鳴らす、つまびく
何かをコツコツたたく音
チクタク音
トイレを流す音
道路の騒音
液体が滴る音
足音
蛇口から水の出る音
波とサーフィン
ささやき
筆音
怒鳴り声
ジッパー
80種類の環境音
人 (21), 家(20), 楽器(12), 動物 (7), 車(8), 自然(5), 素材(5), 機械(2)
5/17
音・聴覚
音 空気を媒介とした波, 気圧差の時系列情報
音の3要素
音程: 波の周波数
音量: 波の振幅
音色:波の組み合わせ
聴覚 耳の奥の蝸牛がセンサー
蝸牛はらせん状の管型の器官。管の中に存在す
る基底膜は管の奥に行くほどが柔らかくなり、
このため奥に行くほど低い音に反応して振動。
振動は基底膜上の有毛細胞によって検出。
音程: どの位置の有毛細胞が興奮したか
音量: 興奮した有毛細胞の数
反応する周波数が倍になる物理的な距離が等し
いため周波数分解能はほぼログスケール
振幅の分解能もほぼログスケール
時間
圧力
×2
×2
https://www.britannica.com/science/inner-ear/images-videos/media/1/288499/18100
6/17
Log Mel Spectrogram
Log mel spectrogram:
1. 波形を短時間FFTにより縦軸周波数, 横軸時間の2次元データに変換
2. 周波数のスケールをHzからmel尺度 (≒ログスケール) に変換
3. 振幅のスケールをpowerからデシベル (≒ログスケール) に変換
人間の聴覚に近い特徴量
波形 waveform と logmelのどちらがディープラーニングによる音声分類に適
するかは決着していない
• Waveform: 生データのため情報がすべて保存されている。End2End。
• Logmel: 2DCNNが使える。本コンペでは主流
7/17
音声分類コンペの特色
• スペクトル画像に変換したら後はほぼ画像分類
• ただし前処理のパラメータが多く条件検討が必要
• サンプルごとにバラバラな時間長に対応が必要
8/17
Our solution 1/7
モデル
waveformとlogmel両方用いた
Logmel: ResNet34 [He+ 2016]
あまり深さは必要ない
Waveform: EnvNet-v2 [Tokozume+ 2018]
1D-Convをした後、時間×チャネルの画像とみなして2D-Convをする
周波数分解を自動で学習する
Fig. EnvNet-v1 (v2はこれを深くしたもの)
9/17
Our solution 2/7
Waveform 前処理/Augmentations
前処理
なし
Augmentation
• Crop: 3秒 or 4.5秒でcrop
• Gain: 音量を変化
• Scaling: 再生速度を変化
• MixUp/BC learning: 2つの画像とラベルのペアをランダムな比率で混ぜ
る。音声であれば複数の音が混ざるのは自然[Zhang+ 2017, Tokozume+ 2018]
10/17
Our solution 3/7
Logmel 前処理/Augmentations
前処理
Frequency:128, 時間解像度: 128Hz, powerからdBに変換。個々のサンプル
の平均と分散で正規化。
Augmentation
• Gain
• MixUp
• Frequency masking (時間方向cutout) [Park+ 2019]
11/17
Our solution 4/7
学習/推定
学習
Cyclic cosine annealingで学習し推定時はSnapshot ensemble [Huang+ 2017]
全長推定
全長を用いて推定が色んな位置でcropしたTTAよりスコアがよい
音源の冒頭にクラス分類に重要な部分が集中しているためと考えられる。
実際に音源の冒頭をcropしたときのスコアは冒頭より後ろをcropした場
合より良かった。
12/17
Our solution 5/7
Noisy dataの使い道1:マルチタスク学習
noisyラベルをclean ラベルと混ぜて学習させると性能が低下する。
そのためnoisy ラベルをpretrainにのみ用いる, cleanで学習させたモデル
の予測と一致したnoisyラベルのみ用いる, などの手法が用いられた。
OUmedではcleanラベルとnoisy ラベルを別のタスクとして扱うマルチタ
スク学習を行った。これにより、noisy ラベルで性能を低下することを避
け、2つのタスクに共通する特徴量学習が行える。
スコアの伸び自体はpretrainとあまり変わらないが学習のスケジューリン
グが必要ないので手法の実験速度を高く保てた。
Clean input
Noisy input
Clean label
Noisy label
BCE
BCE
Encoder
GMP
sig
FC
FC
FC
sig
FC
FC
FC
13/17
Our solution 6/7
Noisy dataの使い道2: Soft Pseudo-Label
Noisyデータのラベルを使わずに入力のみを使った半教師あり学習を検討
このコンペにPseudo labelingを適用する場合の問題点
• マルチラベルに対応できない
• Cleanと Noisyの間の分布差により信頼性の高いラベルが得られない
提案手法: Soft Pseudo Labeling
疑似ラベルを0,1のone-hot labelにせず推定結果をシャープ化することで
得る (ハードラベルとソフトラベルの中間)
マルチラベルに対応可能かつ、
ラベルノイズに対してロバスト
Clean input
Noisy input
Clean label
Soft pseudo label
BCE
MSE
Encoder
GMP
FC
sigmoid
FC
FC
[Berthelot+ 2019]
14/17
Our solution 7/7
アンサンブル
学習条件の異なるモデルを複数用意しAveraging。
特に学習に用いる入力のcropping長が異なるモデルをAveragingすること
が効果的 (4秒で学習 + 8秒で学習)。
これは短い長さの情報からクラスを特定できるように学習することと長
い時間幅の情報から特徴を抽出するように学ぶことにそれぞれのメリッ
トがあり、相補的であるためと考えられる。(cropping ensemble)
Model CV lwlrap Private LB Ranking
ResNet34 baseline 0.724 -
+ MixUp, Freq mask, gain 0.829 -
+ Snapshot Ensemble 0.847 -
+マルチタスク 0.868 0.737 19th
+ Soft Pseudo Label 0.886 0.746 10th
+ cropping ensemble 0.890 0.750 9th
+ EnvNet-v2 0.896 0.758 4th
EnvNet-v2のみ 0.836 - -
15/17
他のチームの解法
1st solution
予測精度の低かったデータに対してハンドリラベリング
外部データ禁止のコンペにも関わらず、ルールでtrainに対するハンドリ
ラベリングが認められてしまっていた (通常のコンペではハンドラベリン
グは外部データとみなされる)
2nd solution
Logmelの変換もNNの中で行いパラメータ探索
全長から得た統計量を入力に追加
時間軸はglobal max-pooling, 周波数軸はglobal average-pooling
16/17
余談: Pseudo labeling最強説
CIFER-10
半教師あり学習 (Semi-supervised learning, SSL)
を体系的に比較した論文(Oliver+ 2018) では
pseudo labelはSSLのbaselineのように扱われて
いる。にもかかわらずkaggleではpseudo
labeling以外用いられていないのはなぜか。実
は論文におけるpseudo label (Lee 2013) は
kaggleのpseudo labelingとかなり異なる。
[Berthlot+ 2019]
Academic: 学習中のモデルから疑似ラベルを作る
Kaggle: 学習済みモデルのアンサンブルから疑似ラベルを作る
そもそもFigのSSLはいずれも学習中モデル自身のみを教師モデル (self-teaching)。これだと
結局過学習したら過学習をさらに進めるように学習してしまう(気がする)。実際ラベルなし
データがラベルありデータと分布が違うとSSLはかえって性能を低下させる。対してpseudo
labelingは複数のモデルのアンサンブルの性能をシングルモデルに転移させるのが目的。こ
のコンセプトは蒸留 (Hinton+ 15) に近い。
Pseudo label: ハードラベルを学習に使用
Distillation: ソフトラベルを学習に使用
17/17
引用文献
1. E. Fonseca, M. Plakal, F. Font, D. P. W. Ellis, and X. Serra, “Audio tagging with noisy labels and
minimal supervision,” arXiv preprint arXiv:1906.02975, 2019.
2. Y. Tokozume, Y. Ushiku, and T Harada, “Learning from Between-class Examples for Deep
Sound Recognition,” arXiv preprint arXiv:1711.10282, 2017.
3. K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learn-ing for image recognition,” in
Proceedings of the IEEE conference on computer vision and pattern recognition, 2016, pp.
770-778.
4. H. Zhang, M. Cisse, Y. N. Dauphin, and D. Lopez-Paz, “mixup: Beyond empirical risk
minimization,” arXiv pre-print arXiv:1710.09412, 2017.
5. D. S. Park, W. Chan, Y. Zhang, C.-C. Chiu, B. Zoph, E. D. Cubuk, and Q. V. Le, “SpecAugment: A
Simple Data Aug-mentation Method for Automatic Speech Recognition,” arXiv preprint
arXiv:1904.08779, 2019.
6. G. Huang, Y. Li, G. Pleiss, Z. Liu, J. E. Hopcroft, and K. Q. Weinberger, “Snapshot Ensembles:
Train 1, get M for free,” arXiv preprint arXiv:1704.00109, 2017.
7. D. Berthelot, N. Carlini, I. Goodfellow, N. Papernot, A. Oliver, and C. Raffel, “MixMatch: A
Holistic Approach to Semi-Supervised Learning,” arXiv preprint arXiv:1905.02249, 2019.
8. A. Oliver, A. Odena, C. Raffel, E. D. Cubuk, and I.J. Good-fellow, “Realistic Evaluation of Deep
Semi-Supervised Learning Algorithms,” arXiv preprint arXiv: 1804.09170, 2018.
9. D.-H. Lee, “Pseudo-label: The simple and efficient semi-supervised learning method for
deep neural networks,” in ICML Workshop on Challenges in Representation Learning, 2013.
10. G. Hinton, O. Vinyals, and J. Dean, “Distilling the Knowledge in a Neural Network,” arXiv
preprint arXiv: 1503.02531, 2015.

More Related Content

What's hot

backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門Takuji Tahara
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised LearningまとめDeep Learning JP
 
CatBoost on GPU のひみつ
CatBoost on GPU のひみつCatBoost on GPU のひみつ
CatBoost on GPU のひみつTakuji Tahara
 
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs 【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs Deep Learning JP
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision TransformerYusuke Uchida
 
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State SpacesDeep Learning JP
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリングmlm_kansai
 
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
[DLHacks]StyleGANとBigGANのStyle mixing, morphing[DLHacks]StyleGANとBigGANのStyle mixing, morphing
[DLHacks]StyleGANとBigGANのStyle mixing, morphingDeep Learning JP
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイcvpaper. challenge
 
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​SSII
 
[DL輪読会]Pay Attention to MLPs (gMLP)
[DL輪読会]Pay Attention to MLPs	(gMLP)[DL輪読会]Pay Attention to MLPs	(gMLP)
[DL輪読会]Pay Attention to MLPs (gMLP)Deep Learning JP
 
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks? 【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks? Deep Learning JP
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめsleepy_yoshi
 
これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由Yoshitaka Ushiku
 
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?Deep Learning JP
 
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?Masanao Ochi
 
[DL輪読会]Glow: Generative Flow with Invertible 1×1 Convolutions
[DL輪読会]Glow: Generative Flow with Invertible 1×1 Convolutions[DL輪読会]Glow: Generative Flow with Invertible 1×1 Convolutions
[DL輪読会]Glow: Generative Flow with Invertible 1×1 ConvolutionsDeep Learning JP
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Preferred Networks
 
三次元点群を取り扱うニューラルネットワークのサーベイ
三次元点群を取り扱うニューラルネットワークのサーベイ三次元点群を取り扱うニューラルネットワークのサーベイ
三次元点群を取り扱うニューラルネットワークのサーベイNaoya Chiba
 

What's hot (20)

backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
 
CatBoost on GPU のひみつ
CatBoost on GPU のひみつCatBoost on GPU のひみつ
CatBoost on GPU のひみつ
 
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs 【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
 
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
 
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
[DLHacks]StyleGANとBigGANのStyle mixing, morphing[DLHacks]StyleGANとBigGANのStyle mixing, morphing
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイ
 
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
 
[DL輪読会]Pay Attention to MLPs (gMLP)
[DL輪読会]Pay Attention to MLPs	(gMLP)[DL輪読会]Pay Attention to MLPs	(gMLP)
[DL輪読会]Pay Attention to MLPs (gMLP)
 
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks? 【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由
 
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?
 
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?
 
[DL輪読会]Glow: Generative Flow with Invertible 1×1 Convolutions
[DL輪読会]Glow: Generative Flow with Invertible 1×1 Convolutions[DL輪読会]Glow: Generative Flow with Invertible 1×1 Convolutions
[DL輪読会]Glow: Generative Flow with Invertible 1×1 Convolutions
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
 
三次元点群を取り扱うニューラルネットワークのサーベイ
三次元点群を取り扱うニューラルネットワークのサーベイ三次元点群を取り扱うニューラルネットワークのサーベイ
三次元点群を取り扱うニューラルネットワークのサーベイ
 

kaggle Freesound Audio Tagging 2019 4th place solution