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

3D Clustering and Metric Learning

masa-ita
November 14, 2021

3D Clustering and Metric Learning

masa-ita

November 14, 2021
Tweet

More Decks by masa-ita

Other Decks in Technology

Transcript

  1. 3Dクラスタリングと距離学習
    板垣正敏 2021-11-14 @Python機械学習勉強会 in 新潟

    View Slide

  2. 今⽇お話しすること
    š モチベーション
    š ModelNet10データセットを⽤いた3次元データのクラスタリング
    š Voxel化したデータのk-means++/t-SNEによるクラスタリング
    š 10クラスの識別器として学習させた3D-CNNモデルの特徴ベクトルを使ったクラスタリング
    š Autoencoderの隠れベクトルを使ったクラスタリング
    š k-means++による疑似ラベル⽣成と3D-CNN訓練によるクラスタリング
    š AugmentationとTriplet Lossによる距離学習から得た特徴ベクトルのクラスタリング
    š 上記の実験結果
    š まとめ
    š コード(Jupyter Notebook)は下記で公開している
    š https://github.com/masa-ita/3d_clustering_experiments 2

    View Slide

  3. モチベーション
    š 新潟国際情報⼤学藤⽥教授と、新潟県歴史博物館、東京国⽴博物館、九州国⽴博物館の研究者の
    ⽅々、BSNアイネットと私で、考古学へのディープラーニング適⽤を研究している中で、縄⽂⼟器
    の3Dスキャニングデータをもとにしたクラスタリングが題材に上った。
    š 縄⽂⼟器のスキャンはまだ始まったばかりであったため、ModelNetを使って分析モデルの調査を
    ⾏うことになった。
    š 深層学習によるクラスタリングの⼿法を調べているうち、Autoencoderの隠れベクトルに距離学
    習を組み込んでいる例を知り、距離学習⾃体がクラスタリングに使えないかと考えた。
    3
    https://arxiv.org/abs/2009.04091v1

    View Slide

  4. 今回使ったデータ︓ ModelNet10 Dataset
    š プリンストン⼤学が公開している3
    次元物体識別ベンチマーク⽤データ
    セット
    š ModelNet10は4900のオブジェクト
    から成るCADデータを元にした3D
    オブジェクトデータセット
    š ⾊、階調のなどテクスチャのない
    データ
    š クラス数によりModelNet10と
    ModelNet40がある
    š ライセンスは学術研究に限定
    š 今回はtrimeshライブラリを使い、
    64x64x64のVoxelデータにリサイズ
    変換後使⽤
    4

    View Slide

  5. クラスタリングと可視化のための⼿法
    š k-means
    š クラスタリングの代表的⼿法
    š ランダムに選んだ中⼼(セントロイド)からの距離をもとに初期クラスターを形成、クラスターの中⼼の
    再計算とクラスターの⽣成を繰り返す⽅法。
    š PCA(主成分分析)
    š 分散共分散⾏列の固有ベクトルを⽤いて、相関のある特徴量から互いに相関のない特徴量空間へのマッピ
    ングを⾏う⽅法。
    š 次元削減にも⽤いられる。
    š t-SNE
    š 次元削減とクラスター顕著化の⼿法。
    š ⾼次元空間の中のサンプル(点)を中⼼とする t分布を仮定し、距離から類似度を計算。Kullback–Leibler
    情報量を指標として⽬的とする低次元空間に類似分布を反復再現し、低次元へのマッピングを⾏う⽅法。 5

    View Slide

  6. 特徴量抽出︓4種類の⽅法
    š Raw Features
    š 64x64x64のVoxelの3Dデータ(3階のテンソル)を226224次元のフラットなベクトルに変換
    š 3D-CNN Classifier
    š 分類器として訓練した3D-CNNから得たベクトルを特徴量とする
    š Autoencoder
    š ⼊⼒を再現するように学習させたAutoencoderの隠れベクトルを特徴量とする
    š k-means Pseudo Label 3D-CNN
    š k−means法での疑似ラベル⽣成と3D-CNNの学習を繰り返す
    š Triplet Loss with Augmented Data
    š サンプルをデータ拡張により⽔増して1つのクラスとし、Triplet Lossで距離学習させ特徴量とする
    6

    View Slide

  7. 特徴量抽出器とし
    ての3D-CNN
    š 3D-CNNを使った分類器を学習さ
    せる
    š 学習済みの3D-CNNで分類層の⼀
    つ前の出⼒(活性化関数適⽤前)
    を特徴量とする
    7
    この層の出⼒
    を特徴量とし
    て取り出す

    View Slide

  8. Autoencoder
    š ⾃⼰学習であるAutoencoder
    の隠れベクトルを特徴量として
    クラスタリングを⾏う⼿法
    š Ex.
    š https://github.com/deve
    lopfeng/DeepClustering
    š http://ecmlpkdd2017.ijs.s
    i/papers/paperID345.pdf
    š 隠れベクトルは32768次元
    š 他のモデルのようにGAP後の
    128次元では再現性が低いため、
    ⾼次元なモデルを使⽤した
    š バッチサイズ10、エポック数
    200
    8
    Encoderの出⼒
    を特徴量とする

    View Slide

  9. k-means++による
    疑似ラベル反復学習
    š DeepCluster &DeeperCluster by
    Facebook Research
    š Deep Clustering for Unsupervised Learning
    of Visual Features
    š https://arxiv.org/abs/1807.05520
    š https://github.com/facebookresearch
    /deepcluster
    š Unsupervised Pre-Training of Image
    Features on Non-Curated Data
    š https://arxiv.org/abs/1905.01278
    š https://github.com/facebookresearch
    /deepercluster
    9

    View Slide

  10. 距離学習とは
    š 多次元の特徴量(⾔い換えれば埋め込み
    ベクトル)を⽣成する上で、下記のよう
    に学習させる
    š 似た対象の埋め込みベクトル同⼠は近く
    š 似ていない対象の埋め込みベクトル同⼠は
    遠く
    š 検索や顔認証、異常検知などの分野で提
    案されてきた⼿法
    š 深層学習以前
    š マハラノビス距離学習
    š 深層学習以後
    š Siamese Network
    š Triplet Network
    š L2 Softmax Network
    10

    View Slide

  11. Triplet Lossについて
    š 基準となるサンプル(アンカー)と、似てい
    るサンプル(ポジティブ)、似ていないサン
    プル(ネガティブ)間の距離を⽐較
    š 似ていないサンプル同⼠の距離が、似ている
    サンプル同⼠の距離よりも設定したマージン
    だけ⼤きいように学習する
    š 学習には適切なTripletを選択する必要がある
    š Hard Triplet 𝑑!"
    > 𝑑#"
    š Semi-Hard Triplet 𝑑!"
    + 𝑚 > 𝑑#"
    https://copypaste-ds.hatenablog.com/entry/2019/03/01/164155
    11
    https://omoindrot.github.io/triplet-loss

    View Slide

  12. データ拡張による教師なし距離学習
    š 1サンプルを1クラスとし、データ拡張をする
    ことでTripletを⽣成し距離学習
    š データ拡張にはVolumentation-3Dを使⽤
    š 距離学習にはTensorFlow Addonsの
    TripletSemiHardLossを使⽤
    š モデルの損失関数を変えるだけでバッチ内の
    ⼀番難しいTripletの組み合わせで損失を計算
    する
    š 1バッチ=8サンプル×4拡張=32個で実験
    š 2エポック程度で学習は進まなくなる
    Sample1
    AugSample1
    AugSample2
    AugSample3
    AugSample4
    Sample2
    AugSample5
    AugSample6
    AugSample7
    AugSample8
    anchor
    positive
    negative
    12

    View Slide

  13. 実験結果
    13

    View Slide

  14. クラスタ数による
    クラスタ内残差平⽅和の変化
    14
    Raw Features Autoencoder
    k-means Pseudo Label Triplet Loss
    3D-CNN Classifier
    k=10に変曲点

    View Slide

  15. クラスタとラベルの対応関係
    15
    Raw Features Autoencoder
    k-means Pseudo Label Triplet Loss
    3D-CNN Classifier
    クラスター
    とラベルが
    1対1対応
    クラスター
    とラベルの
    関係は
    はっきりし
    ない

    View Slide

  16. PCAによる可視化︓クラスラベル
    16
    Raw Features Autoencoder
    k-means Pseudo Label Triplet Loss
    3D-CNN Classifier
    クラスター
    が最もはっ
    きりしてい

    View Slide

  17. PCA正規化後のt-SNE︓クラスラベル
    17
    Raw Features Autoencoder
    k-means Pseudo Label Triplet Loss
    3D-CNN Classifier
    クラスター
    がはっきり
    している
    最もクラス
    ターが不鮮

    View Slide

  18. PCA正規化後のt-SNE︓クラスターID
    18
    Raw Features Autoencoder
    k-means Pseudo Label Triplet Loss
    3D-CNN Classifier

    View Slide

  19. まとめ
    š Voxelデータによる3次元オブジェクトのクラスタリングを試⾏した
    š 特徴抽出を⾏う3D-CNNの事前学習データによるバイアスを避けるため、教師なし学習によるク
    ラスタリングを前提とし、下記の3つを⽐較した
    š Autoencoder
    š クラスタリングによる疑似ラベル⽣成と3D-CNNの学習の⼆重ループ
    š データ拡張とTriplet Lossによる距離学習
    š 疑似ラベル⽣成を⽤いた3D-CNNの学習では、分離性能の良いクラスタが得られたが、特徴量⾃
    体が初期設定のクラスタ数に影響を受けていることが確認された
    š データ拡張とTriplet Lossによる距離学習では、学習が早い段階で収束してしまうため、抽象度の
    ⾼い特徴抽出ができなかった
    š Autoencoderはバイアス無しに特徴量を学習できる⼿法である
    19

    View Slide

  20. クラスタリングのための特徴量抽出は
    どうあるべきか︖
    š クラスタリングとは「似たもの同⼠を集める」ことである。
    š したがって、クラスタリングのための特徴量抽出は、「データの中の共通点を⾒つけて抽出する」こと
    が望ましく、これは分類問題と共通することである。
    š 他⽅で、この学習は「共通点」以外の情報を「捨てている」可能性を意味している。
    š ⼀⽅、各サンプルを1つのクラスとみなして同⼀性の学習を⾏う⼿法では、「他とは異なる特徴」を学
    習することになり、「共通性」のウエイトは低くなると考えられる。
    š Autoencoderによる特徴量抽出では、こうした偏りがない特徴量抽出が⾏われていると考えられる。
    š 単なるグルーピングではなく、埋め込みベクトルの空間内の位置関係などを分析に使⽤する場合には、
    こうした共通点の強調や特異性の強調などのバイアスがかからない特徴量抽出が望ましいと考える。
    š ただし、Autoencoderの学習には⼤量のデータと計算時間を要するため、少量のデータのクラスタリ
    ングには適していない。また、異常検知にも⽤いられている学習したデータに近くないものについては
    再現できない特性からわかるように、学習対象にない特徴については抽出できない可能性があることに
    留意する必要がある。 20

    View Slide