Upgrade to Pro — share decks privately, control downloads, hide ads and more …

反省_kaggle_時系列データ_202305_手話コンペ

 反省_kaggle_時系列データ_202305_手話コンペ

コンペリンク:https://www.kaggle.com/competitions/asl-signs
解法リンク:https://www.kaggle.com/competitions/asl-signs/discussion/406356

おそらく、チームマージ直前のチームメンバへの情報共有による剥奪。
解法は独自性のあるものなので公開します。

次回以降気を付けます。。。
#ルールに明記はされてないがダメなことと指摘。

sugupoko

May 06, 2023
Tweet

More Decks by sugupoko

Other Decks in Technology

Transcript

  1. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    1/xx サマリ(概要に解法リンクあり) • 参加コンペ: – Google - Isolated Sign Language Recognition | Kaggle • 概要: – Media Pipeにより、取得されたキーポイント情報から250種類の手話を分類する。 – データについて • データの撮影者は、データ収集のスマホアプリで動画を自撮りで撮影している。 • 21人のコントリビューターによってデータセットが構築されている。 – データの特徴 • 時間の長さが不均一、認識が失敗しNaNになっていることがある、 • 手話の前後に余計な動きが入っていることがある、個性が強い • 同じ手話でも、左手のみ、右手のみの場合がある – ルール・制約: • 提出はTFLite形式のモデルのみ、モデルサイズは40MB以下(ここが結構ムズイ) • 順位: – 53位/1179チーム(シルバー)(チームマージ直前にコード共有したことが原因で剥奪と推測) • 反省して次はすぐにマージして始めます。。。(マージ予定の人でもNGとはルールに明記されてなかった、、、、 ) • アプローチ概要: – Transformerブロックx2のシンプルなモデル – 入力データ: • 体、口、手の座標 • 上記を変換した情報 – 座標、相対位置、角度、座標移動速度、座標移動加速度 – 角度速度、座標ベクトル、形情報 • メンバ構成 – 会社の勉強会メンバ(全員で実装、仮説検討、ディスカッションを実施。) • 所感: – 全体: • 画像コンペかと思って始めたら時系列データのコンペだった。。。 • Transfomerの基礎勉強にもなりやってよかった。 • 中盤での動き、仮説の立て方がシルバーに入れる分かれ道になったと思う。 • 特徴量の設計は、手話の特性から検討。 – 手話は、手形状、手の向き、動作、手の位置、表情、の5要素で構築 – コンペでムズイと感じたところ: • 何をしたら性能が上がるかが全く分からなかったトコロ。 • Discussionを見て複数の実験をしたところ、結果的に「特徴量の追加」がキモっぽさがありそこを深く実験。 – メンバのhatakeeが、死ぬほどモデル部分改造の実験をして性能改善したいことを確認。Thank you – 今後の課題: • 金メダルを取るには、①根本的なMLに対する知識、②サーベイの方法、③突飛な発想、が必要なんだろう。と実感。 • 経験を積み重ねて、過去の知見をうまく組み合わせられるようにしていきたい。 コンペ 概要 顔、体、手の543点の関節情報から250種類の手話を判定 結果(メダルはく奪。チームマージ直前にコード共有したことが原因と推測) x N frames APPLE!
  2. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    2/xx コンペのポイント、コンペ主課題の推測(仮説) • データノイズに関して – 内容:シーケンスの途中でロスト(全身、手だけがある。)、関節位置の推定ズレ、誤検出、他の動作の混入(頭をかくなど)がある。 • 2単語の場合、動画が2単語分かれている可能性があるので注意 – 対応:Augmentationで一定数対応。完全には処理できず。。。 • フレーム量のバラツキ – 内容:手話ごとに長さが異なる。 – 対応:切り捨てて対応。フレームが長い場合は諦める。 • 左右の動作がある – 内容:基本的に片手手話。だが、左右どちらで動作するかは分からない。 – 対応:手がNaNになっている量で左右手判定。右手の場合はフリップして左手にする。 • モデルサイズが小さい、実行速度制約がある – 内容:40MB、100msec/1seq – 対応:小さいモデル&特徴量を事前に設計 • 個人間の手話の違い – 内容:個人でも手の動かし方が違うことがある。 – 対応:Augmentaitonで水増し(やりたかったこと:他動画で水増し。) 画角に映っていない手は 認識失敗することが多い ※画像は提供されないため詳細は不明
  3. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    3/xx 今回のモデルについて:Transformerをベースにした手法 ②ネットワーク ・特徴量をDenseレイヤーで次元圧縮 ・Transformerブロックは2段のみ。(LayerNorm レイヤーは削除) ・最後にクラス数に合わせてDense&softmax ①特徴量生成 ・お手製の特徴量を設計し、ネットワークに入力 入力データ: ・体、口、手の座標 ・上記を変換した情報 座標、相対位置、角度、座標移動速度、座標移動加速度 角度速度、座標ベクトル、形情報 RAW 543 (x,y,z) Position Normalization Downsampling Max length =32 Feature Embedding (Dense x 2) Transformer Encoder x 2 (w/o LayerNorm) Dense & SoftMax dim=317 1. Preprocessing 2. Network Feature Stack & Dense Dim = 512 Dim = 384 x 20 feature Feature Generation (x, y)
  4. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    4/xx 上位アプローチとの違い • EmbeddingがCNN(2位、9位) – 僕らのアプローチは、dense layerを使ったDNNによる特徴量化 – 上位は、depthwiseconvや、1dconvなどを利用 – “MLP=>Transformer” vs “CNN => Transformer” • MLP:キーポイント間の互換作用抽出のみ • CNN:CNNで時間方向とキーポイント間の交互作用を同時に抽出 • 備考:今回のコンペではリソース制約が強い。そのため、Transformer前にも役割を持たせた方が効率 が良いため、CNNの方が優れていた。(BilzardさんのTwitter情報より転載) • Arcfaceの利用(14位) – 今回のtestデータは、学習・テスト共に同じ人のみの可能性が高い – そのため、arcfaceによって距離を確かめる方が個性を吸収しやすいっぽい。
  5. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    5/xx 特徴量の検討 • 手の形状 – 使う情報:手のポーズ – やりざま:指間の距離、絶対位置、相対位置 – 難しいポイント:手はNanが多いのでその対処。 • 手の向き – 使う情報:手 – やりざま:手のひらの法線の算出(TFlite化で失敗したので最終的には未導入。。) • 動き – 使う情報:体のポーズ(安定してるので) – やりざま:速度、加速度を算出 • 手の位置 – 使う情報:体のポーズ – やりざま:関節間の相対位置を算出 • 表情: – 使う情報:顔 – やりざま:座標、相対位置、距離を算出 手話は、「手形状、手の向き、動作、手の位置、表情」の5要素で構築 それぞれを基に有用そうな特徴量を検討
  6. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    6/xx 座標正規化処理 • 黄色の点が0となるように引き算。
  7. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    7/xx Shape特徴量の計算方法 • 下記の距離を算出
  8. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    8/xx 解法リンク • 1位 – Google - Isolated Sign Language Recognition | Kaggle • 2位 – Google - Isolated Sign Language Recognition | Kaggle • 3位 – https://www.kaggle.com/competitions/asl-signs/discussion/406568 • 5位 – https://www.kaggle.com/competitions/asl-signs/discussion/406491 • 6位 – https://www.kaggle.com/competitions/asl-signs/discussion/406537 • 9位 – https://www.kaggle.com/competitions/asl-signs/discussion/406343 • 10位 – https://www.kaggle.com/competitions/asl-signs/discussion/406434 • 12位 – Google - Isolated Sign Language Recognition | Kaggle • 13位 – https://www.kaggle.com/competitions/asl-signs/discussion/406469 • 14位 – Google - Isolated Sign Language Recognition | Kaggle • 44位 – Google - Isolated Sign Language Recognition | Kaggle
  9. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    12/xx データに関して(公式) • 撮影方法に関して – サインのビデオは、ボタンを押す 0.5 秒前とボタンを離した 0.5 秒後にバッファで抽出されます。このビ デオ収集方法は、プレーヤーが画面にタッチしてバブルを狙い、署名が終わったらタッチを離すゲーム インターフェイスと一致します。 • データのノイズに関して – ごくまれに、署名者が記号を指で綴ったり、完全に見落としたり、間違った記号を作成したりすること があります。かゆみを掻いたり、前の兆候からの最後の動きや次の兆候の開始などの無関係な動き が含まれることがあります。逆に、一部の署名者はボタンを遅く押したり、ボタンを早く離したりしたた め、一部の署名の例ではクロッピングが発生しました。
  10. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    13/xx データについて • ポーズ、ハンド、フェイスのZのスケールが異なるので、一括で扱うとZがつぶれる • 個別に扱った方が良い気がする。 – ※mediapipeのアルゴリズム的にZはそこそこちゃんと出るはずだが、、、 潰れてる ここだけアップすると 潰れてない XZ平面で表示
  11. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    14/xx Mediapipe 体験しよう • MediaPipe - Holistic (codepen.io)
  12. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    15/xx Transfomer の勉強で、参考にしたもの • 言語理解のためのTransformerモデル | TensorFlow Core • [Transformer入門]TensorFlowチュートリアル: Transformer – Qiita • (33) 【深層学習】Transformer - Multi-Head Attentionを理解してやろうじゃないの 【ディープラーニングの世界vol.28】#106 #VRアカデミア #DeepLearning - YouTube • Kaggleで学んだBERTをfine-tuningする際のTips①〜学習効率化編〜 | 株式会 社AI Shift (ai-shift.co.jp) • Kaggleで学んだBERTをfine-tuningする際のTips②〜精度改善編〜 | 株式会社 AI Shift (ai-shift.co.jp)
  13. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    16/xx Transfomer の勉強で、参考にしたもの • bilzardさんはTwitterを使っています: 「Transformerのnormの位置に関する論文。最 初に提案されたアーキテクチャ(post-norm)ではwarmupステップが必要で、パラメータ に敏感だが、提案されたアーキテクチャ(pre-norm)ではwarmup不要、パラメータに敏 感でなくなり、かつ収束も早くなるというもの。 https://t.co/1sLtp0xSAP」 / Twitter • Transformerを多層にする際の勾配消失問題と解決法について (slideshare.net) • 深層学習 Day 4 - BatchNorm、LayerNorm のまとめ - Qiita
  14. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    17/xx ドメイン知識を得よう • ASL – (18) How to sign QUARANTINE, SELF-ISOLATE, and STAY HOME in American Sign Language for Beginners – YouTube – American Sign Language ASL Dictionary (signasl.org) – Signing Savvy | ASL Sign Language Video Dictionary – Dictionary (babysignlanguage.com) – Learn how to sign Awake in ASL - SigningTime Dictionary • Mediapipe – https://qiita.com/h-ueno2/items/b8dd54b396add5c3b12a
  15. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    18/xx 参考code • Interactive 3D Animated Visualization of ASL! – 🤙Interactive 3D Animated Visualization of ASL! | Kaggle • GISLR Background Knowledge&Landmarks Visualization | Kaggle
  16. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    19/xx 注目ディスカッション • EDA: Handedness by participant ID – Here is my hand-generated (pun definitely intended) categorization of each signer by which hand they tend to use: – Google - Isolated Sign Language Recognition | Kaggle • Classwise Performance – Google - Isolated Sign Language Recognition | Kaggle
  17. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    20/xx Validation傾向(DropZ=False, seed=7, random ) top5 top1 accuracy: 0.7536 - top-5-accuracy: 0.8804 - top-10-accuracy: 0.9054 # out_root = "/home/jovyan/pvc-nfs- skobayashi/competition/kaggle/2023_kaggle_gislr/workspace/skobayashi/exp01_base line/experiment/models/20230325_2116_groupk/"
  18. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation DATE

    21/xx Validation傾向(DropZ=True, seed=7, random) accuracy: 0.7177 - top-5-accuracy: 0.8919 - top-10-accuracy: 0.9271 out_root = "/home/jovyan/pvc-nfs- skobayashi/competition/kaggle/2023_kaggle_gislr/workspace/skobayashi/exp01_baseline/ experiment/models/20230326_0037_randomsplit/" top5 top1