第003回 講義 Q&A 学生・受講者からの質疑応答
自然言語処理で猛威を振るったTransformer は 画像でも猛威を振るい始めています。そのきっかけとなったVision Transformer を詳細に説明する「入門 Vision Transformer」の著者である品川先生に、VITだけでなく「入門 Vision Transformer」の読み方についても講演してもらいました。
講義を聴くだけでなく、ぜひ教科書を買って読破してみてください。きっと新しい世界への扉が開くと思います。
== 参考資料
① 「Vision Transformer 入門」
学生からの質問と回答
以下のページに、医療講義と特別講義を見て学生から受けた質問とその回答を記載しています
質問001:なぜ特徴量の内積でうまくいっているのか?
質問者:匿名たろうさん
回答者:品川先生
A. Multi-head Attentionの内積計算の話だと考えてお答えします。
Attentionの肝はトークン同士の類似性を捉えることで、内積自体はベクトル同士の類似性を捉える上で最も単純な方法だと言えるかと思います。
歴史的には、自然言語処理で昔からBahdanauのAttention [1] (ベクトル同士を結合して全結合層を通して類似度を得る方法)や、LuongのAttention [2](内積、パラメータの行列を2つのベクトルで挟んで変換する形、全結合層)による方法が有名ですが、どれも大して性能は変わらないということが実験的に分かっています。
であれば、内積で十分だと考えられたのかもしれません。
類似度という意味では内積ではなく、ノルムを正規化したコサイン類似度の方が良いという可能性はあります。ただ、ノルムの自由度が減るぶん多様な類似度を表現しにくくなる面がどのように影響するかが鍵になりそうです。
ちなみに、Multi-head Attentionでは、Attention mapの数値がコサイン類似度に少し近くなるように内積に対して定数で正規化を行っています。これにより、内積が極端に大きな値になってしまうことを防いでいます。この定数は層の素子数により決めています。これがベストであるとは限らないため、例えば、学習可能にするとどうなるか試してみると面白いかもしれません。
[1] BahdanauのAttention:https://arxiv.org/abs/1409.0473
[2] LuongのAttention:https://aclanthology.org/D15-1166/
質問002:VITはどういうシーンで使うと便利なのでしょうか?
質問者:匿名さん
回答者:品川先生
A. 大規模なデータセット、モデルを利用可能な状況で、性能が高いことを求めるなら、性能の面でViTが有効だと言えます。学習済みモデルを利用してfine-tuningするのであれば、この限りでは無いと思われます。性質的な面での差異としては、ViTはCNNよりも大域を捉えた形状認識に強い面がありますので、そのような目的に合致するのであればViTの方が有効だと思われます。
swin transformer が結局いいの?
A. KaggleなどではViTよりもSWin Transormerが好まれることが多いようです。ただし、SWin Transformerのトークン集約方法には向上の余地がありそうです。たとえば、事前学習なしのImageNetの訓練では、NesT[Zhang21]が畳み込みと最大プーリングを用いた方法を利用しており、Swin Transformer のように近傍のトークンをチャンネル方向に結合して集約する場合よりも性能が高いことを報告しています。これはSWin Transformerにも当てはまるかもしれません。
[Zhang21] Zizhao Zhang, Han Zhang, et al. "Nested Hierarchical Transformer: Towards Accurate, Data-Efficient and Interpretable Visual Understanding" arXiv:2105.12723, 2021.
質問003: Kaggle ではCNNとtransformerはどういう勢力図?
質問者:匿名さん
回答者:品川先生
A. 私はKaggleをやらないので何とも言えません。聞いた限りでは、どちらも候補として検討されているようです。
質問004: 教師なし学習がなぜできているのか?
質問者:匿名さん
回答者:品川先生
A. 教師なし学習はおそらく自己教師あり学習のことかと思います。基本的には入力画像にデータ拡張的な変形処理を行い、元の画像を直接予測したり、元の画像とペアかどうかを対照学習で予測したりすることで良い表現を獲得することができます。
質問005: データ量で性能が変化?
質問者:匿名さん
回答者:品川先生
A. 機械学習では、サンプルサイズ、データの質(ノイズがどの程度入っているか)によって性能は変化します。
質問006: MAE がIamageNetで教師有学習でよくなるとありましたが、どれだけのデータ量が必要なのでしょうか?
質問者:匿名さん
回答者:品川先生
A. あればあるほど良いです。画像だとざっくり10万枚以上のスケールであることが望ましいと思われます。ちなみに、ImageNet(ImageNet-1k)は120万枚、事前学習で使われるImageNet-21kは1400万枚あります。
質問00x: テンプレート
質問者:匿名さん
回答者:匿名運営A?
質問00x: テンプレート
質問者:匿名さん
回答者:匿名運営A?
質問00x: テンプレート
質問者:匿名さん
回答者:匿名運営A?