Publicité

Transformerを用いたAutoEncoderの設計と実験

11 Mar 2023
Publicité

Contenu connexe

Présentations pour vous(20)

Similaire à Transformerを用いたAutoEncoderの設計と実験(20)

Publicité

Transformerを用いたAutoEncoderの設計と実験

  1. Transformerを用いた AutoEncoderの設計と実験 発表者:myxy ML集会
  2. 誰? ● myxy(みきしぃ) ● 本業はプログラマ ● 機械学習は完全に趣味で勉強してる アバター作ったりもする アバターワールドの検索・表示システムとか作った
  3. Transformerを用いた AutoEncoderの設計と実験 発表者:myxy ML集会
  4. Transformer "Attention is All You Need"より引用 ● 自然言語処理で活躍 ● 言語・音声等系列データの処理 ● パラメータが増えるほど強いらしい
  5. Transformerを用いた AutoEncoderの設計と実験 発表者:myxy ML集会
  6. AutoEncoder ● 入力次元より低い次元に圧縮してから 元のデータを復元する ● 入力と出力の誤差を最小化 ● データに対して低次元の 特徴量が得られる 英語版wikipedia "AutoEncoder"より引用 (CC-BY-SA)https://en.wikipedia.org/wiki/Autoencoder#/ media/File:Autoencoder_structure.png
  7. 動機 通常のAutoEncoderは入出力次元数が固定されており 長さが変化する系列データの処理はできない Transformerを使って 系列データのAutoEncoderを作りたい
  8. 既存研究 "Masked Autoencoders Are Scalable Vision Learners"より引用 AutoEncoderと銘打っているが やってることはマスクしたパッチの補間
  9. 出力次元数を下げる ● 系列長は減らない ● あまり次元を下げると 位置情報が保持できなくなる 次元数を減らすのではなく 系列長を減らせるだろうか? ナイーブな方法 Transformer Encoder 系列長n × 次元数256 ・・・ ・・・ 系列長n × 次元数128
  10. V K Q Transformerに使われる Query-Key-Value型のAttentionでは Queryに入力した系列と 同じ長さの系列が出力される 系列長n ・・・ 系列長n ・・・
  11. V K Q Transformerに使われる Query-Key-Value型のAttentionでは Queryに入力した系列と 同じ長さの系列が出力される 系列長n ・・・ 系列長n ・・・ Key-Valueの方に入力すれば 系列長を圧縮できるのでは?
  12. 位置エンコーディング (潜在ベクトル用) ・・・ 潜在ベクトル系列 ・・・ Encoder (Transformer Decoder) 提案手法 Decoder (Transformer Decoder) 入力ベクトル系列 ・・・ 位置エンコーディング (入力ベクトル用) ・・・ + 位置エンコーディング (入力ベクトル用) ・・・ 出力ベクトル系列 ・・・ Key-Value Key-Value Query Query 同じ位置エンコーディ ングを使用 x N x N 空間的な位置というより 潜在ベクトルを識別するIDに近い
  13. 実験 ● CIFAR-10の画像データ(32x32)を 4x4のパッチに分割(64個x48次元) ● Encoder, Decoderはそれぞれ6層の TransformerDecoder ● 位置エンコーディングは正規分布で初期化して 学習可能な位置埋め込みとした ● 詳しくはコード見て https://gist.github.com/myxyy/0e06c430652b35cd a4d56aaf21eb7fa9
  14. 潜在ベクトルが16個の16次元ベクトルの場合 ● 左から入力画像、潜在ベクトル、出力画像 画像の位置埋め込み、潜在ベクトルの位置埋め込み ● 500epoch時点のvalidationのMSELossは0.00805
  15. ● 500epoch時点のvalidationのMSELossは0.00646 ● 16x16よりちょっと鮮明になった 潜在ベクトルが32個の16次元ベクトルの場合
  16. ● 500epoch時点のvalidationのMSELossは0.00480 ● 32x16よりも性能が良い 潜在ベクトルが16個の32次元ベクトルの場合
  17. 考察 ● なんで32x16より16x32の方が性能いいの? ○ Transformerの系列は並び替えで変化しない ○ 16x16は256次元ベクトルより16!倍弱い ○ 系列長を倍にしても情報量が倍にならない ○ ベクトルの次元数を増やす方が効率が良い
  18. 今後の課題 ● 文字列等の本来やりたかった可変長系列の処理 ○ 画像をパッチ分割することで様々な解像度の 画像を処理可能? ● 潜在ベクトルから位置情報を分離したい ○ VAEのような正則化が必要?
Publicité