Slide 1

Slide 1 text

Lyft Motion Prediction for Autonomous Vehicles https://www.kaggle.com/c/lyft-motion-prediction-autonomous-vehicles いのうえ

Slide 2

Slide 2 text

概要 Motion prediction用の大きいデータ セットを作ったのでそれでコンペしよう ぜ! https://arxiv.org/abs/2006.14480

Slide 3

Slide 3 text

概要 Public & Private Train

Slide 4

Slide 4 text

概要 l5kitという専用のLibraryを使用してデー タをGenerateする。 データの作り方はいくつかある。 Satellite Semantic

Slide 5

Slide 5 text

概要

Slide 6

Slide 6 text

概要 Ego: 自動運転車 Agent: 自動運転車が認識した周囲の移動物体 予測したいのはこの Agentの5秒後(50 frames)の軌跡 TestのSceneの10秒目の画像が評 価対象だった。

Slide 7

Slide 7 text

評価指標 混合ガウスの負の対数尤度
 
 
 
 
 ● 1つのAgent(AVの周囲の物体)につき50 frame先までの位置の予測をK=3種類出力 
 ● 確信度cを含めて出力:混合ガウス 
 
 
 
 
 
 ● 50 frame先までの平均L2誤差が1m以内でもスコアは100以上になる 


Slide 8

Slide 8 text

Baseline... ResNet18をベースにしたシンプルなモデル

Slide 9

Slide 9 text

14th place approach ・・・ 同じシーンで1フレームずらしただけの画像はほとんど同じ! 10フレーム毎にサンプリング  1/10のデータ量になりLossの減少も高速に!

Slide 10

Slide 10 text

14th place approach ● 予測軌跡の移動距離が6m以下のものが約65%とかなり偏りがある ● 基本的に、軌跡の移動距離が小さいものほどeasy taskで大きいものほどhard taskになると考えられる

Slide 11

Slide 11 text

14th place approach ● 予測軌跡の移動距離が小さいほど大きく削るように調節 ■ 6m以下を50%削る ■ 3m以下を更に50%削る ■ 1.5m以下を更に50%削る ■ 0.75m以下を更に50%削る ● データ数は削る前の約53% ● 全体として6m以下・以上の割合が1:2になる これでおおよそデータ数が 5,760,000くらいになる。   1エポック 12時間くらい!

Slide 12

Slide 12 text

LSTM Decoder: Repeat feature vector

Slide 13

Slide 13 text

14th place approach

Slide 14

Slide 14 text

11th place solution ● ResNet18 ● Rastesr size (150, 150) ● Batch size: 512 ● 408000 iterations

Slide 15

Slide 15 text

11th place solution ● ResNet18 ● Rastesr size (150, 150) ● Batch size: 512 ● 408000 iterations 僕らのチーム 結局、学習が全然足りてなかった のが敗因だった。。。

Slide 16

Slide 16 text

1st place solution ● Rasterizerを改善、4倍の高速化に成功 ○ CPU律速 GPU律速(V100 x 8 DDP) ● Custom rasterizer ● Low resolutionでPretrain ● EfficientNet x 4 のEnsemble

Slide 17

Slide 17 text

1st place solution ● Rasterizerを改善、4倍の高速化に成功 ○ CPU律速 GPU律速(V100 x 8 DDP) ● Custom rasterizer ● Low resolutionでPretrain ● EfficientNet x 4 のEnsemble ● Bootstrapped validation 1. 幾何学的変換をベクトル化して可能な限りバッチ処理できるようにした。 2. 大きなndarrayを小さなListに分割 3. ConcatenateをGPUで行う。(Numpy concatenateは遅いらしい) 0.124 sec / sample 0.032 sec / sample

Slide 18

Slide 18 text

1st place solution - SatelliteとSemanticを融合 - サイズを横長に。 - いくつかのRaster sizeをEnsemble ● Rasterizerを改善、4倍の高速化に成功 ○ CPU律速 GPU律速(V100 x 8 DDP) ● Custom rasterizer ● Low resolutionでPretrain ● EfficientNet x 4 のEnsemble ● Bootstrapped validation

Slide 19

Slide 19 text

1st place solution - Raster size(64, 112)で4エポック pretrain - 5エポック目を(224, 448)で学習 - カスタマイズしたScheduler ● Rasterizerを改善、4倍の高速化に成功 ○ CPU律速 GPU律速(V100 x 8 DDP) ● Custom rasterizer ● Low resolutionでPretrain ● EfficientNet x 4 のEnsemble ● Bootstrapped validation

Slide 20

Slide 20 text

1st place solution - Raster sizeが異なった4つのEfficientNetを Ensembleした。 ● Rasterizerを改善、4倍の高速化に成功 ○ CPU律速 GPU律速(V100 x 8 DDP) ● Custom rasterizer ● Low resolutionでPretrain ● EfficientNet x 4 のEnsemble ● Bootstrapped validation

Slide 21

Slide 21 text

1st place solution - Bootstrapped validationをすることで スコアだけじゃなくてSDも考慮 - SDが大きかったEffnetB7, 8は除いた。 ● Rasterizerを改善、4倍の高速化に成功 ○ CPU律速 GPU律速(V100 x 8 DDP) ● Custom rasterizer ● Low resolutionでPretrain ● EfficientNet x 4 のEnsemble ● Bootstrapped validation