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

機械学習の基礎から理解する DeepLabCutの原理

eqs
August 24, 2022

機械学習の基礎から理解する DeepLabCutの原理

2022/8/20にオンラインで開催されたワークショップ『動心実験技術WS カットアンドトライ DeepLabCut』の発表で使った資料の公開版です

eqs

August 24, 2022
Tweet

More Decks by eqs

Other Decks in Technology

Transcript

  1. 発表者紹介 • 現所属:藤田医科大学 医学部 医用データ科学講座 • 専門:情報科学 > コンピュータビジョン (CV)

    > 特定物体認識 ➢ 最近は画像に限らないデータなんでも屋という感じ • 動心の大会の発表後に松井さんに捕まったのが縁で呼ばれました 2 ぼく
  2. [上田+, 動物心理学研究, 2020] の Figure 3 の動画 DeepLabCut:深層学習を用いて 動物の姿勢追跡を行うツールボックス 3

    [上田+, 動物心理学研究, 2020] [A. Mathis+, Nat. Neurosci., 2018] http://www.mackenziemathislab.org/deeplabcut/
  3. DeepLabCutは多くの研究者が 深層学習に関心を持つきっかけとなった • DeepLabCutにより行動データの空間的・時間的な 分解能がめちゃめちゃ上がった • 深層学習への期待の声と過剰宣伝が錯綜 ➢ 仮説によらない生命科学の実現!? ➢

    深層学習をよく知らなくてもなんとなく使えるツール!? ➢ 「映像いっぱいあるんだけどこれで何かできませんか!?」 • 画像解析や深層学習が 何ができて何ができないのかを正しく見積もるには 手法の位置づけや原理を知ることが重要 4
  4. 今日のおはなし • 話すこと: ➢ コンピュータビジョン屋から見たDeepLabCutの位置づけ ➢ DeepLabCutの原理の理解に必要な機械学習の基礎知識 • 想定してる聴衆: ➢

    DeepLabCutや統計を触ってて関連する用語が頭にある人々 ➢ ある意味,CV未経験者向けにもなってるかも…? • 注意: ➢ Limitationの話が多め (人工知能に対する夢が壊れる,耳障りの良い話は公式から供給過多だしよくね?) ➢ DeepLabCutの最初の論文について主に解説します ([A. Mathis+, Nat. Neurosci., 2018], multi-animalは無し) ➢ 本資料はあとで公開します (一部動画を除く) 5
  5. • 首振りドラゴンは ひとつの映り方に対して 実際の形状は一意でない ことを示している • 映像から情報を抽出する際, 常になんらかの曖昧さが存在 8 首振りドラゴンの顔は実は凹んでいた

    不良設定問題 「難しい」のではなく「解けない」問題 (この例では2次元→3次元復元の曖昧さ) 撮像や解析方法を総合的に考えて 解ける問題に変えていくのがCV屋の立場 (この例では多視点で撮ると解ける) https://ja.wikipedia.org/wiki/ホロウマスク錯視
  6. (深層学習に限らない) 画像処理による 実験動画解析の3ステップ • ①, ②, ③はかなり有機的に絡み合っている ➢ どの部分から設計するかはニワトリ-タマゴ問題(同時に面倒見る必要) ➢

    手戻りが起こらない方が珍しい(完全な分業は無理・試行錯誤が前提) • 「映像いっぱいあるんだけどこれで何かできませんか!?」は ②画像解析的には既に不良設定問題になってることが多い ➢ 「撮り直してください」以上のことが言えない ➢ CV屋への相談は実験の前にして頂けると非常に助かるのでお願いします 9 ① 実験・撮像 ② 画像解析 ③ 統計解析
  7. 「映像を撮る」だけでも コンピュータビジョンの専門領域 • 映像を撮る前に考えることの例: ➢ どんな②画像解析手法を使う?③統計解析に必要な情報は? ➢ カメラの姿勢・レンズ歪み校正の準備はしているか? ➢ 光源の配置

    (明るさのムラや輝度の飽和は無いか) は適切か? ➢ 撮影する光の波長(紫外線/可視光線/赤外線)は適切か? • 撮影にはなるべく産業用カメラ (例:Basler, FLIR) を使う ➢ 画像処理用途に特化したカメラ ➢ 工場の製品検査とかで使われる ➢ 家庭用より感度が高くて高速 (イメージセンサが大きい) ➢ 特殊な波長を扱えるものも多い 10 ① 実験・撮像 村重が遊びで使ってる産業用カメラ (ELP-USBFHD02M-BFV)
  8. [上田+, 動物心理学研究, 2020] の Figure 3 の動画 撮像次第で問題設定が大きく 変わる •

    ①撮像で不良設定性を排除しておかないとここで詰む • ②画像解析の仕事が増えすぎるようなら①撮像の設計を見直す ➢ ②映像が暗くてノイズもひどい映像で物体検出したい → ①カメラをセンサの大きいものに変えてノイズを抑える ➢ ②マウスの頭を追跡したい!! → ①頭に検出が容易なマーカーをつけられるか考える • DLCが強いのは①撮像の不備がどうしても避けられない場面 ➢ 野外での撮影 (背景や光源の統制をとるのが困難) ➢ マーカー無しで解像度の高い情報が要るとき (中心位置でなく姿勢) 11 ② 画像解析 野外実験かつ 足の動きが必要な例
  9. レビュー論文 書籍 13 画像解析に関連するおすすめの読み物 [A. Dell+, Trends Ecol. Evol., 2014]

    [A. Robie and K. Seagraves+, JEB, 2017] 深層学習が絡むレビュー論文は CVの基礎を解説してないので 少し古めの文献がよい 細胞の画像解析に関する書籍は豊富 (一番右の本はDeepLabCutにも言及してる) 一般的な画像処理を知りたいときの鉄板
  10. 深層学習登場後のヒトの姿勢推定研究と DeepLabCutの関係 • DeepPose (2014) ➢ ヒトの姿勢推定に初めて深層学習つかった (画面に一人しかヒトが映っていない制約下) • DeepCut,

    DeeperCut (2016) ➢ 画面に複数人 (人数不定) が映ってる場合の姿勢推定問題を 深層学習と整数計画問題として定式化した • Realtime Multi-Person (aka. OpenPose) (2017) ➢ DeeperCutと同じ問題を異なる定式化で超高速化した • PifPaf (2019) ➢ より小さなターゲットの姿勢推定 14 動物用に派生 DeepLabCut (2018)
  11. DeepLabCutの貢献は何か • 実は新しいコンピュータビジョンの方法論を作った わけではない ➢ 派生元のDeeperCutには単数個体版と複数個体版があり, DeepLabCutは単数個体版と等価 • DeepLabCutの貢献: 1.

    ヒトの姿勢推定手法が動物の画像に対しても 適用可能なことを科学的に検証した 2. シチュエーションごとに専用の教師データを用意すれば 少数データの学習で十分な姿勢推定ができることを示した 3. アノテーションの過程も含めてツールボックス化したこと 15 DeepLabCutの動作原理を知る ≒ DeeperCutの動作原理を知る
  12. 16 DeepLabCut (DeeperCut) のモデル構成: すべて畳込みニューラルネットで構成される 畳込みニューラルネット (Convolutional Neural Network) の

    特性を知っておくとDeepLabCutの挙動を理解する上で有益そう!! 入力画像 部位がありそうな位置マップ (score map) 部位がありそうな方向マップ (location refinement) ResNet (巨大なCNN) 転置 CNN 転置 CNN
  13. まず機械学習モデルの関係を俯瞰したい 20 (久保拓弥, データ解析のための統計モデリング入門, 岩波書店, 2012. にいっぱい出てくる図のオマージュ) 線型回帰モデル 線型基底関数モデル 一般化線型モデル

    ニューラルネットワーク 基底関数の導入 (関数の和で関数を表現) 活性化関数の導入 (モデルの出力を制限する) 階層化 (モデルを基底関数にする) 𝑦 𝑥 = 𝑓 𝐰T𝝓 𝑥 𝑦 𝑥 = 𝐰T𝝓 𝑥 𝑦 𝑥 = 𝑎𝑥 + 𝑏 𝑦 𝑥 = 𝑓 𝐰2 Tℎ 𝐰1 T𝝓 𝑥 ロジスティック回帰 多項ロジスティック回帰 特定の形 畳込みニューラルネット 画像データに特化 𝑦 𝑥 = 𝐰T𝐱 Poisson回帰 単純 複雑
  14. 基本的な教師あり機械学習:線型回帰 • ある実験で得られた2変量を プロットすると右図が得られた ➢ (身長, 体重),(年齢, 血圧), (薬投与後の経過時間, 血中濃度)

    • データに対する仮説: 「𝑥 と 𝑦 の間には “まっすぐ” な関係がありそう!」 ➢ 直線っぽい構造を仮定する(線型回帰モデル) 22 𝑦 𝑥 = 𝑎𝑥 + 𝑏 (𝑎 と 𝑏 はモデルのパラメタ) 𝑥 𝑦
  15. 直線のパラメタ 𝑎, 𝑏 はどう決定するか? • パラメタ 𝑎, 𝑏 を変えることで 色んな直線を引ける

    • データと直線の乖離がなるべく少なくなるように 線を引く (つまり,𝑎, 𝑏 を決定する) と良さそう ➢ “乖離の度合い” の尺度を用意する(二乗誤差損失) 23 𝑥 𝑦 𝑦 𝑥 = 𝑎𝑥 + 𝑏 データとモデルの誤差 全てのデータについて足す 𝐸 𝑎, 𝑏 = ෍ 𝑛=1 𝑁 𝑦𝑛 − 𝑎𝑥𝑛 + 𝑏 2
  16. 学習: 損失関数を小さくするパラメタを探す • 関数の勾配 (傾き) は微分によって計算できる • 勾配がゼロになるまで 関数の谷を下っていけば 最適なパラメタが見つかる

    ➢ 勾配降下法とよぶ 誤差 𝐸 𝑎, 𝑏 パラメタ 𝑎 24 丸の位置: 学習中のパラメタの値 矢印の長さ: 関数の微分(パラメタの更新幅) 𝐸 𝑎, 𝑏 = ෍ 𝑛=1 𝑁 𝑦𝑛 − 𝑎𝑥𝑛 + 𝑏 2
  17. 認識しておいてほしいこと: 線型回帰も深層学習も学習の流れは同じ 1. データを得る 2. データの構造に関してなんらかの仮定をおく ➢ 線型回帰:入力と出力の間は線型な関係だ!! ➢ 深層学習:入力と出力の間はクソ複雑な関係だ!!

    3. モデルのパラメタをデータに適合させる (学習する) ➢ 線型回帰:損失関数の形状が単純なので簡単 ➢ 深層学習:損失関数の形状が複雑なので難しい 4. 推定したパラメタに基づいて予測 26
  18. “曲がった” データでも回帰をしたい: 線型回帰の概念を拡張する 27 𝑦 𝑥 = 𝑤0 + 𝑤1

    𝑥 + 𝑤2 𝑥2 + 𝑤3 𝑥3 𝑦 𝑥 = 𝑎𝑥 + 𝑏 𝑥 𝑦 まっすぐな関係 (線型) 𝑥 𝑦 曲がった関係 (非線型) 線型基底関数モデル 線型回帰モデル 曲がった関数の 足し算を導入 𝑦 𝑥 = 𝐰T𝝓 𝑥 𝜙𝑖 𝑥 = 𝑥𝑖 普通はベクトルを使って略記する: ( 𝜙 の取り方はもっと色々ある)
  19. カテゴリデータでも回帰したい • ここまでは実数から実数を予測する 問題だった ➢ 𝑦: 身長 → 体重 ➢

    𝑦: 薬投与後の経過時間 → 薬の血中濃度 • “Yes/No”タイプのデータ (カテゴリ) はどう扱う? ➢ 𝑦: 薬剤の量 → 症状が治癒した/治癒しなかった • Yes/Noにそれぞれ1/0を割り当てて解析したいけど, モデルの出力が1と0以外をとると意味が変になる 28 𝑥 𝑦
  20. 一方の事象をとる確率を回帰する: ロジスティック回帰 • アイデア:回帰モデルの出力に別の関数を被せて 無理矢理 (0, 1) の範囲に丸めることで確率とみなす 29 𝑦

    𝑥 = 𝐰T𝝓 𝑥 𝑦 𝑥 = 𝜎 𝐰T𝝓 𝑥 𝜎 𝑎 = 1 1 + exp −𝑎 シグモイド関数 線型回帰 ロジスティック回帰 𝑥 𝑦 𝑥 𝑦 1 0
  21. ロジスティック回帰の損失関数: 2値交差エントロピー誤差 • 確率を回帰するので二乗誤差は使えない • 0→1, 1→0 の変化のような「情報」の誤りを計る尺度 ➢ 情報理論の言葉(更に元を辿ると熱力学の言葉)

    ➢ データ 𝑦𝑛 と予測 𝑦 𝑥𝑛 が食い違っていると大きくなる損失 • 多クラス用に拡張したものがDLCの中でも使われる ➢ 多クラスロジスティック回帰という (ソフトマックス関数と多クラス交差エントロピー誤差を使う) 30 データとモデルの誤差 全てのデータについて足す 𝐸 𝐰 = ෍ 𝑛=1 𝑁 − 𝑦𝑛 log 𝑦 𝑥𝑛 + 1 − 𝑦𝑛 log 1 − 𝑦 𝑥𝑛
  22. 問題に合わせて活性化関数と誤差関数を 取り替える:一般化線型モデル (GLM) • ここまで考えてきたモデル: ➢ 何も被せない (恒等関数) と二乗誤差 ➢

    シグモイド関数と2値交差エントロピー誤差 ➢ ソフトマックス関数と多クラス交差エントロピー誤差 • 一般化すると: 31 「一般化線型モデルを使って解析しました」 = 「データの形式に合せた活性化関数と損失関数を使いました」 𝑦 𝑥 = 𝑓 𝐰T𝝓 𝑥 𝐸 𝐰 = 活性化関数 f と “いい感じ” に対応する誤差関数 (R言語等のパッケージではいい感じの組み合わせをオプションで選択する) ※ “いい感じ” の詳細は「指数分布族」や「正準連結関数」で調べるとよい
  23. 深いニューラルネットの学習が難しい理由 1. 損失関数の形が複雑になって最適化が難しい ➢ 例:回帰問題を解くときの損失関数 2. パラメタが増えすぎることによる問題 ➢ 大量のパラメタには大量の訓練データが必要 (次元の呪い)

    ➢ “ばらつき” も構造とみなして過剰な当てはめをする (過学習) 33 ここがすごく複雑な形なので ⇒ 損失 𝐸(𝐰) 全体も複雑 𝐸 𝐰 = ෍ 𝑛=1 𝑁 𝑦𝑛 − 𝑓 𝐖2 Tℎ 𝐖1 T𝐱 2
  24. ニューラルネットの学習が難しい問題の対策 1. 損失関数の形が複雑になって最適化が難しい ➢ 学習の過程にランダム性を入れる (確率的勾配降下法) ➢ 他のタスクで良い結果を示したパラメタを 学習の初期値として使う (転移学習)

    2. パラメタが増えすぎることによる問題 ➢ 問題に対する事前知識を取り込む (正則化) 34 画像データを扱う問題における正則化の方法として 畳込みニューラルネットを紹介 付録で 補足します
  25. [追記] 勾配降下法と確率的勾配降下法 • 勾配降下法は一度局所解に入ると抜け出すのは難しい • 訓練データをランダムに分割してちょっとずつ 勾配降下法をかけるのが確率的勾配降下法 (SGD) ➢ 訓練データを全て同時に使う学習をバッチ学習と呼ぶのに

    対し,分割する方はミニバッチ学習と呼ばれる ➢ すべてのミニバッチ(すべての学習データ)で パラメタを更新した回数をエポック (epoch) と呼ぶ • ミニバッチ学習ではバッチ学習とは少しずれた 損失を最小化するので局所解から抜け出せる可能性 35
  26. [追記] DeepLabCutのSGDに関係する 設定項目について • Max iterations (SGDの繰り返し回数) ➢ ミニバッチの適用回数に相当 (DeeperCutやDeepLabCutには

    エポックの概念が無いっぽい) ➢ 論文に書かれてた値は500,000回 ➢ 訓練損失を監視して変動の大きさが 十分小さくなったら止めるのが良いと思う (ログの出力フォルダでTensorBoard実行すると監視しやすい) • ミニバッチのサイズ (batch_size) ➢ 系統的な決め方は無い ➢ 一般的な大規模データの学習では並列計算しやすいように 適度に大きくとるけどDLCの規模感なら 1 のままでいいかも… (DeeperCut にあった設定がそのまま残ってるだけっぽい) 36
  27. 1. 遠い画素よりも近くの画素 同士の方が相関は強いはず 2. 画像上のある位置で 有用な特徴は別の位置でも 有用なはず 3. 対象に多少のずれや歪みが あっても無視していいはず

    37 画像データに関する事前知識を利用して NNのパラメタ数を削りたい (正則化) 以上の知識をニューラルネットの構造に うまく組み込んだのが畳込みニューラルネット 局所的受容野 重み共有 プーリング
  28. 1. 遠い画素よりも近くの画素 同士の方が相関は強いはず 2. 画像上のある位置で 有用な特徴は別の位置でも 有用なはず 3. 対象に多少のずれや歪みが あっても無視していいはず

    38 畳込みニューラルネットは 主に2種類の層で構成される 畳込み層 プーリング層 局所的受容野 重み共有 プーリング 以上の知識をニューラルネットの構造に うまく組み込んだのが畳込みニューラルネット
  29. 畳込み層の計算過程:画像間の畳込みを計算 • 小さいニューラルネット画像全体に走査させる • 画像のサイズは小さくなる(次元削減してる) 39 入力画像 ニューラルネットの パラメタ 出力画像

    ※数学的にはこの演算は関数の「相互相関」であって「畳込み」とは呼ばない. 演算の順序が変わることを考慮しなければこれらの演算は同じとみなしてOK.
  30. 機械学習モデルの拡張のまとめ (再掲) 46 (久保拓弥, データ解析のための統計モデリング入門, 岩波書店, 2012. にいっぱい出てくる図のオマージュ) 線型回帰モデル 線型基底関数モデル

    一般化線型モデル ニューラルネットワーク 基底関数の導入 活性化関数の導入 階層化 𝑦 𝑥 = 𝑓 𝐰T𝝓 𝑥 𝑦 𝑥 = 𝐰T𝝓 𝑥 𝑦 𝑥 = 𝑎𝑥 + 𝑏 𝑦 𝑥 = ロジスティック回帰 多項ロジスティック回帰 特定の形 畳込みニューラルネット 画像データに特化 単純 複雑
  31. DeepLabCutの構成再訪 48 入力画像 部位がありそうな位置マップ (score map) 部位がありそうな方向マップ (location refinement) ResNet

    (巨大なCNN) 転置 CNN 転置 CNN CNNで構成されているので局所的受容野や重み共有 といった一般的なCNNの性質はDLCにもある (例:重み共有によりマウスが並進移動したら出力も並進移動する)
  32. 情報のエンコードとデコード 49 入力画像 部位がありそうな位置マップ (score map) 部位がありそうな方向マップ (location refinement) ResNet

    (巨大なCNN) 転置 CNN 転置 CNN 次元を削減する 次元を増やす 元々分類のモデルであるResNetは次元を削りすぎるので構造が少し修正されてる (論文のMethodsの “the ResNets were adapted to represent the images with higher spatial resolution, ...”) CNNをかけるごとに画像は小さくなる →主成分分析のような次元圧縮がかかる →出力のマップを作るのに必要な情報以外を落とす
  33. DeepLabCutのGUIでラベリングした 教師データは2種類のマップに変換される 50 ラベリングした点の周辺が1, それ以外が0のラベルを表す画像 ラベリングした点に向かって 流れる “場” を表現する画像 GUIで打った

    “点” 「ここに尻尾の付け根がある!!」 • マップの大きさは pose_cfg.yaml の global_scale に基づく • DeepLabCutはワークフローに無いことをしようとすると 結構壊れるのでこういう中間表現見るのが難しい… 正解の大きさ: pos_dist_thresh 場が存在する範囲: pos_dist_thresh 場の強さ: locref_stdev
  34. DeepLabCutの学習に使う損失関数 52 教師データから作ったマップ 転置 CNN 転置 CNN 部位がありそうな 位置マップ (score

    map) 部位がありそうな 方向マップ (location refinement) 画素ごとの多クラス 交差エントロピー 画素ごとの二乗誤差 (各画素を部位に分類する 多クラス分類問題) (各画素をベクトルに 回帰する回帰問題) ※二乗誤差損失の部分は正確にはHuber損失という二乗誤差をもっとマイルドにした形の損失関数が標準で使われる pose_cfg.yaml の locref_huber_loss を false に変えると二乗誤差が使われる
  35. DeepLabCutの姿勢推定結果の出力 53 score mapの最大値が最も高い点を 部位位置の推定結果としてCSVに吐いてる (ただし,最大値がしきい値 pcutoff 以下の場合は 無視される) 部位がありそうな位置マップ

    (score map) 部位がありそうな方向マップ (location refinement) locref は出力の生成には使われていない (DeeperCutが複数個体検出の問題の定式化のために 使ってたネットワーク構造の名残で,DLCにとって 本当にcrucialなのかは自分もよく知らない…) 転置 CNN 転置 CNN ※マップの出力方法はドキュメントに記述が無いけど,コードを見た感じ一番真っ当そうなのは, deeplabcut.pose_estimation_tensorflow.visualizemaps の中の extract_maps 関数を使う方法と思われる (v2.2.2 時点,似た名前の未使用っぽい関数がいっぱいあるので正直わからん)
  36. CNNの性質により並進移動に強いけど 回転と拡大縮小には弱い • CNNは対象の並進移動に対しては不変性があるが, 回転や拡大縮小といった変化への不変性は無い ➢ DLCは回転・拡大縮小した教師データを自動生成(データ拡張) して頑健性は上げてるけど不変性にはおよばない ➢ 「上から撮影したマウスの追跡」は大きいモデルの力で

    無理矢理解けてるけど実は苦手 • 回転や拡大縮小への不変性を求めるなら ArUcoマーカー等を使うのが理想 ➢ 一般に,マーカー使うほうが深層学習より 検出が安定して精度も出て処理も軽い 57 ※このスライドでの不変性 (invariance) は同変性 (equivariance) と呼ぶほうが正確 https://docs.opencv.org/4.6.0/d5 /dae/tutorial_aruco_detection.ht ml
  37. 見た目の類似した複数個体の検出が 難しい理由 • 2匹のマウスの姿勢を追跡する問題を考えるとき,pose_cfg.yaml の骨格定義で nose_1, nose_2, left_ear_1, left_ear_2, ...

    のように 定義する (複数匹を擬似的に一個体とみなす) とマズい • DLCがスコアマップの最大値をひとつしか見ない ➢ 類似した個体が複数いると個体間で近いピーク同士が 喧嘩するので個体間で姿勢が絡まる出力になる 58 似たマウスが映ってる画像 nose_1の位置のscore map nose_1 tail_1 nose_2 tail_2 CNNの重み共有の性質により nose_1とnose_2の両方に 高いスコアが出るけど 選ばれる点はひとつだけ
  38. 問題:ウマとヒトの歩行同期を調べるために 曳き馬をしてるときの歩行を計測したい • ウマとヒト両者の足と身体の軸をとれば歩行のリズムとれそう? • 対象の動作は2次元的に捉えれば十分で画面からも見切れない • 野外なので背景を一様にするのは厳しそうだけどDeepLabCutなら カバーできる範囲内 •

    被験者をDLCで追跡しようとすると背景に映り込んでる人たちに出力 がミスヒットしそうだったので他の深層学習手法も利用 60 [上田+, 動物心理学研究, 2020] [上田+, 動物心理学研究, 2020] の Figure 1(b) の動画
  39. 曳き馬映像の画像解析のアプローチ 61 • ウマは素直にDeepLabCutで追跡した • ヒトの追跡は複数人を同時検出可能なモデルとカルマンフィルタ に基づく追跡手法によって行った (被験者のIDは手作業で選択) ➢ 邪魔されるぐらいならまとめて検出するほうがむしろ安全

    PifPaf [S. Kreiss+, CVPR, 2019] SORT [A. Bewley+, ICIP, 2016] [上田+, 動物心理学研究, 2020] [上田+, 動物心理学研究, 2020] の Figure 1(b) の動画に DeepLabCutによるウマ姿勢の検出結果だけ重ねたもの [上田+, 動物心理学研究, 2020] の Figure 1(b) の動画に PifPafによるヒトの姿勢検出結果をSORTによって 追跡した結果を重ねたもの. 背景にいる2人の人と前景の被験者の計3人が追跡されている
  40. さいごに • DeepLabCutの動作原理はまずはCNNを押さえればOK ➢ 姿勢推定モデルの発展は小さなアイデアの積み重ね ➢ 深層学習の性能は実験結果で納得しないといけないことが 多いけど設計の哲学はきちんとしたものがある • 適切な問題設計をして初めてその解法

    (DLC) が活きる ➢ 問題設計が疎かだと「マイナスな設計をゼロに戻す手段」 みたいな使い方になってしまう ➢ 古典的な方法を大事にしておくと 「DeepLabCutによって新しく解けるようになった問題」 を探すための鼻が利くようになる…と思う 62