トランスフォーマー(115)

 位置埋め込みは、位置情報を明示的に考慮できないSelf-Attentionにトークン位置情報を付加する役割を持つ。これは、Transformerの性能を向上させるのに欠かせない存在である。

 近年の進展で、この位置埋め込みの作り方にもさまざまな方法が提案された。では、どの手法を使うのが良いのだろうか? 目的によって使い分けた方がよいのだろう?

 まず、これまで提案されてきた主な位置埋め込みを類型化してみよう。位置情報(位置埋め込み)を抽出する手法は位置符号化と呼ばれ、位置符号化の種類は、大きく分けてどのように位置埋め込みを作るか、位置埋め込みをどのように入力するかの2つの観点で類型化できる。

 

| | コメント (0)

2024年5月23日 (木)

トランスフォーマー(114)

 さまざまな問題にTransformerが適用されるようになり、Transfomerを使うのが一般的になってきた。Transformerを提案した論文「Attention Is All You Need」の登場が2017年6月であり、丸7年経ったことになる。

 登場当時は、多くの人々が驚き困惑した。以来、Transformerモデル構成は大部分が天下り的に説明され、これが良いのかという部分は謎のままだった。

 Transformerの魅力として確かにいえることは、それまで主流だったLSTMやGRUなどのRNNベースのモデルに比べ、各ステップを並列に計算して高速に訓練を実行できることである。Encoderのみのモデルで分類やテキスト生成などさまざまなタスクに使えてしまうBERTや、Decoderのみでさまざまなタスクを無理やり1つの言語モデルで解いてしまうGPTなど代表的な手法が揃い、Transformerを使うとすごいことができそうだという認識は瞬く間に広がった。こうして、自然言語処理分野におけるTransformerベースの手法による大規模学習時代が到来し、今日、画像や音声など、さまざまな研究分野でTransformerを標準的に使うようになってきている。

 そして、Transformerが標準的な手法として普及するにつれ、棚上げされていた次のようなTransformerの謎の解明には大きな関心が寄せられている。

・Transformerはこのモデル構成がベストなのか?
・学習方法にもっと工夫すべき点があるのではないか?
・Transformerはモデル内部のどこで何を学習しているのか?

 これらの疑問に答えるような研究も進んでおり、さまざまな面白い知見が明らかになってきた。Transformerのまとめとして、謎がどのように解明されてきたかをみてみよう。

 

| | コメント (0)

2024年5月22日 (水)

トランスフォーマー(113)

 MAEはマスク領域をうまく復元するよう、Encoder-DecoderのViTモデルで自己教師あり学習を行っている。

 従来の自己教師あり学習は、対照学習に基づいた手法が主流だった。ところが、入力画像をマスクし、元の入力画像に復元させるMAEのような自己教師あり学習が登場した。

 これにより、ViTと自己教師あり学習の組み合わせは年々増加している。自己教師あり学習は、2020年から毎年新しい手法が提案されており、今後も爆発的に増えるものと思われる。

 

| | コメント (0)

2024年5月21日 (火)

トランスフォーマー(112)

---

 なぜ、MAEが教師あり学習の精度を上回ることができるのだろうか。性能向上の理由は、自己教師あり学習により、わずかな情報から全体の情報をうまく予測できる良い表現を内部で学習できたためである。

 つまり、小さなパッチがそれぞれrichな情報として予測に利用できるモデルになっていると考えられる。MAEは画像を全体的に捉えて再構成する、すなわち、画像の意味的な情報を学習することを示唆する。 つまり、 入力画像をマスクしてもマスクされていないパッチから部分的に特徴を捉えることで、マスクされたパッチを補間しつつ画像の意味的情報を表現できるということである。

 マスクの割合を75%で学習し、入力画像をそれぞれ 75%、85%、95% マスクした際、75% と 85% でマスクした場合では物体を正確に復元できるが、95% マスクするとシマウマの数やピーマンを正確に復元できない。特にピーマンの場合、代わりにトマト(同じ野菜)で復元することから、マスクされていないパッチから部分的な特徴を捉え画像全体を再構成しているといえる。さらに、異なる入力マスクで学習した際、BEiTで提案されているブロック単位のマスキングでは、大きなブロックを切り抜くため、ランダムマスキングより学習が難しく精度が低くなる傾向がある。これによって復元画像がボヤけてしまう。また、グリッド単位のマスキングでは、復元画像はシャープになるものの、品質はランダムマスキングより劣る。ランダムにマスキングすることで、画像全体の意味的な情報をまんべんなく学習でき、結果的に品質の良い復元画像が得られると考えられる。これらのことから、richな情報として予測に利用できるモデルを獲得できるのかがより良い自己教師あり学習の鍵と考えられる。

 

| | コメント (0)

2024年5月20日 (月)

トランスフォーマー(111)

 MAE(Masked AutoEncoder)は名前の通りAutoEncoder構造になっており、入力されたパッチをEncodeで圧縮して、圧縮された特徴量からDecoderで元の入力画像に復元処理を行う。EncoderとDecode のどちらもViT構造になっているが、入力される情報が異なる。

 Encoderでは、パッチに分割された入力画像の一部にランダムにマスク処理を行い、マスクされていないパッチのみを入力する。これがMaskedの由来である。ViT同様に各パッチに対して線形変換や位置埋め込みを行った後に、各パッチ間の対応関係をEncoderで獲得する。

 Self-Attentionの計算量はパッチ数の二乗に比例し、マスクされていないパッチのみで計算するため、少ない計算コストでEncoderを学習できる。Decoderでは符号化(エンコード)されたパッチトークンとマスクトークンを入力する。このマスクトークンは学習可能なパラメータであり、全マスクトークンで共有される。全マスクトークンのパラメータが共有されているということは、各マスクトークンのDecoderの出力は同じになり、マスクトークンのパラメータだけではターゲット画像をうまく復元できないことを意味する。したがって、マスクトークンは画像内の位置に関する情報を持たせるために、Decoderにおいても各トークンに位置埋め込みを行う。Decoderではマスクされたパッチに対してのみ損失が計算される。すなわち、Decoderの最終層で分割したパッチの次元数と等しくなるようにマスクトークンを線形変換し、そのマスクトークンと入力画像のマスクされた真値との平均二乗誤差で学習する。また、パッチ内で全ピクセルの平均と標準偏差を計算し、それを使用してそのパッチを正規化する処理を行うことでモデルの高性能化を実現する。

 ImageNetにおけるViT-Lモデルの教師あり学習の精度が76.5%、MAEの精度が82.5%となる。

 

| | コメント (0)

2024年5月19日 (日)

トランスフォーマー(110)

 ViTは3億枚のデータセットを用いて事前学習し、転移学習によって性能が向上する。3億枚のデータセットによる事前学習は「教師あり学習」であり、すべてのサンプルに人が正解ラベルを付与するアノテーションを必要とする。そのため、ViTで高い認識精度を得るには、多くの人的コストと時間コストが必要になる。

 自己教師あり学習は、ラベルのないデータに対して擬似的な問題を適用することで、データから自動的にラベルを付与して学習する方法である。付与されたラベルはクラス情報などを含まないため、自己教師あり学習したモデルは事前学習モデルとして、クラス分類や物体検出などの下流タスクに利用される。


 2020年、対照学習に基づいた手法が提案され、別の視点としてポジティブペアのみを利用する手法も提案されている。2021年からはViTの登場により、ViTをベースとした自己教師あり学習が提案されている。DINOやMoCov3は、対照学習をベースにViTのための自己教師あり学習を実現している。一方、SiTやMAE、BEiTなど、ViTから出力される各パッチトークンと入力パッチ間で損失を計算することで、元の入力画像に復元させるような自己教師あり学習も提案されている。以下、MAEを説明する。

 

| | コメント (0)

2024年5月18日 (土)

トランスフォーマー(109)

 Self-Attentionで用いられるクエリ、キー、バリュー特徴量は、ViTと同様にLayer Normalizationと全結合層により求める。Self-AttentionのAttention Weightはクエリとキーの行列積で求める。

 ただし、Self-Attentionは時空間すべてのパッチを計算するため、膨大な計算コストがかかる。448×448の解像度以上、入力フレーム数を32以上にすると、GPU数32、メモリ32GBでも、Joint Space-Time Attentionはメモリ上限を超え計算不可能になる。これはクエリとキーの内積にかかる計算コストがパッチ数の2乗になるためである。

 そのため、時間と空間の特徴を別々で捉えるDivided Space-Time Attentionを用いて計算コストの問題を解決する。spaceはフレームごとのパッチ全体をSelf-Attentionにより計算、timeは各パッチを他のフレームの同じ空間的位置にある全パッチをSelf-Attentionにより計算し、それぞれのAttention weightを算出する。各Attention WeightをValue特徴量と乗算することで、時間と空間それぞれのパッチ間の対応関係を取得する。その後、ViT同様に層ごとに残差機構とMLPを介して計算する。また、Sparse Local Global AttentionとAxial Attentionではそれぞれが表すパッチ領域との対応関係を取得するSelf-Attentionを計算する。最終的には、付与したクラストークンから動画像クラスを分類する。

 Transformerが自然言語分野で登場したこともあり、コンピュータビジョンにTransformerが応用できるとわかってから動画像分野に急速に発展した。TimeSformerは時間と空間を別々のSelf-Attentionで計算することにより、計算の効率化かつ高性能化を実現している。この空間と時間を別々で計算する似た手法に ViViTがある。また、3次元畳み込みニューラルネットワークのように空間と時間を一度に捉えるVideo Swin Transformerも提案 されている。現状はどちらが動画像認識タスクにとってよいか定かではないが、今後の動向に注目しよう。

 

| | コメント (0)

2024年5月17日 (金)

トランスフォーマー(108)

 TimeSformerは動画 X∈R^(H×W×3×F)をフレームFごとに重複しないN個のパッチに分割する。パッチサイズをPxPとしたとき、N個のパッチがフレーム全体に広がる。

 そのため、1フレームのパッチ数はN=HW/P^2になる。そしてViT同様に、パッチをp=1,...,N、フレームをt=1,...,Fで表すX(p,l)∈R(3P^2)として平坦化する。

 各パッチx(p,t)は重み行列E∈R^(D×3P^2)(実装上では Conv2D)を通し、位置埋め込み e(p,t)^POS∈R^Dを加算して、埋め込みベクトルz(p,t)^0∈R^Dとして線形変換される。

z(p,t)^0 = E・x(p,t) + e(p,t)^POS

 これは、ViTが分解したパッチを線形変換していたのに対し、TimeSformerでは各フレーム全体で線形変換を行っているということである。このとき、動画像認識のために学習可能なクラストークンベクトルz(o,o)^0∈R^Dを追加する。埋め込まれたベクトルzから、上述ののいずれかのSelf-Attention構造でパッチ間の対応関係を取得し、動画像認識するという流れになる。

 

| | コメント (0)

2024年5月16日 (木)

トランスフォーマー(107)

 2021年、Transformerを動画像認識タスクへ応用したTimeSformerが提案された。動画像認識は動画像の特徴を捉えて対象を認識する技術であり、例えばブレイクダンスをしている人の動画像を見て「これはブレイクダンスの動画だ」 とコンピュータに認識させる。

 従来の動画像認識は、2次元または3次元CNNで動画像のフレーム (時間)と静止画 (空間)の時空間特徴を捉えることで、高い精度を実現していた。一方、CNN は 局所的な帰納バイアスが強く、大規模データによる事前学習が主流となった今では、モデルの表現度を過度に制限する可能性がある。

 また、時空間特徴を捉えるためにカーネルを設定しいるが、受容野を超えた特徴を捉えることができない。層を深くすることで受容野は 自然と拡張されますが、これは短距離の情報を集約することであって、長距離の依存性を捉えるには本質的な制限がある。そこで、TimeSformer は畳み込み演算を時空間特徴を捉える Self-Attention 構造に置き換えることで、これらの問題に対処している。

 TimeSformerが捉える時空間 Self-Attention 構造において、時間と空間を別々で捉える Divided Space-Time Attention (T+S) は認識精度が高いことが報告されている。

 

| | コメント (0)

2024年5月15日 (水)

トランスフォーマー(106)

 既存モデルのSETRは Self-Attention にかかる計算コストがネックだった。しかし、SegFormer は効率的なSelf-Attention に置換することで、計算コストを大きく増加させることなくに性能の向
上を実現した。

 セグメンテーションタスクに言えることは、SegFormer は既存の CNN と比べてパラメータ数は少ないものの、メモリ容量の少ないエッジデバイスで機能するのかが不明であるということだ。したがって、実応用性がはっきりしていないといえる。

 このことから、パラメータ数を少なくしたViTモデルの登場が望まれる。

 

| | コメント (0)

«トランスフォーマー(105)