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!

    View full-size slide

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

    View full-size slide

  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)

    View full-size slide

  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によって距離を確かめる方が個性を吸収しやすいっぽい。

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  9. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    9/xx
    Twitterより

    View full-size slide

  10. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    10/xx
    Twitterより

    View full-size slide

  11. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    11/xx
    • 以下実験時のメモ

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  15. 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)

    View full-size slide

  16. 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

    View full-size slide

  17. 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

    View full-size slide

  18. 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

    View full-size slide

  19. 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

    View full-size slide

  20. 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/"

    View full-size slide

  21. 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

    View full-size slide