機械学習

TransformerをAI進化の流れと共にわかりやすく解説!Attention層に至るまで

Transformer
記事内に商品プロモーションを含む場合があります
ウマたん
ウマたん
当サイト【スタビジ】の本記事では、昨今のAIブームのベースとなっているTransformer(トランスフォーマー)について簡単に解説していきたいと思います!Transformerはディープラーニングの進化をブレークスルーさせた技術なんです

こんにちは!

データサイエンティストのウマたん(@statistics1012)です!

この記事では、昨今話題のAIの進化のきっかけになったTransformer(トランスフォーマー)という手法について解説していきます。

主要なAI用語について一挙にまとめた以下の記事も合わせて要チェックです!

ビジネスで役立つ!AI用語45選まとめ!
【これだけはおさえておきたい!】ビジネスで役立つAI用語45選まとめ!当サイト【スタビジ】の本記事では、ディープラーニング系/機械学習系/統計学系の3つのカテゴリに分けて重要な用語を説明していきます!...

2017年にこのTransformerが登場し大きくAIの精度が向上し、その後の研究に多大な影響を与えました!

ウマたん
ウマたん
Transoformer登場前後でディープラーニングの歴史は大きく変わったんだよ!

昨今のAIの流れの土台になっている手法ですので、ぜひおさえておきましょう!

以下の動画でも分かりやすく解説しているのであわせてご覧ください!

「Transformer(トランスフォーマー)」の概要をザックリ解説

Transformerとは、「Attention Is All You Need」という論文で2017年に発表されたディープラーニングのモデルです。

以下、「Attention Is All You Need」の引用になります。

The dominant sequence transduction models are based on complex recurrent or convolutional neural networks that include an encoder and a decoder. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely.
引用元:Google- “Attention Is All You Need”

どんなことを言っているかというと従来のリカレントニューラルネットワーク畳込みニューラルネットワークで利用されていたリカレント層や畳み込み層を使わずにAttention層だけを使うようにしたらなんか精度がめっちゃ良くなったよ!ということです。

「Attention Is All You Need」とは、その言葉通りAttention層だけでいいんだよ!ってことです。

そう、Transformerのすごいところは、今までのRNNやCNNなどの従来のディープラーニングで当たり前に考えられていたReccurent層や畳み込み層を使わずにAttention層だけを使うようにしたということなんです!

ウマたん
ウマたん
既存の枠組みを疑って生まれたブレークスルー!

そこからBERTGPTなどの新しい手法の登場、これらの大規模言語モデルの戦いへとつながっています。

ザックリ理解できたところで、具体的な仕組みについて見ていきましょう!

Transformer(トランスフォーマー)の仕組みとアルゴリズム解説

AI

それでは具体的にTransformerがどんな仕組みなのか見ていきましょう!

そのためにまずは、先ほど登場した従来のニューラルネットワークに使用されていた畳み込み層やリカレント層などがどんな層なのか解説していきます。

その後にTransformer(トランスフォーマー)の構造やそこで使われているAttention層について見ていきましょう!

畳み込みニューラルネットワークとは?畳み込み層とは?

従来の画像認識を解くタスクでは畳み込み層という特殊な層を用いた畳み込みニューラルネットワークという手法が主要でした。

畳み込み層とは3次元の画像情報を1次元に直すことなく位置情報を保持して次の層に渡すアプローチです。

畳み込みニューラルネットワーク

以下のように特定のフィルタを通して計算していきます。

畳み込みニューラルネットワーク

この場合、4×4の入力画像データに対して、3×3のフィルターをかけあわせていっています。

1番右の2×2のデータの左上には、4×4の入力と3×3のフィルターをかけあわせて1×2+2×0+・・・1×2=15で入ります。

畳み込みニューラルネットワークに関しては当メディアが運営しているスタアカの「ディープラーニングコース」で詳しく解説しています!

リカレント層とは?

リカレント層とは、従来のリカレントニューラルネットワークという手法に使われていた層構造になります。

自然言語処理の分野において使われていて、文脈を読むのに利用されていました。

例えば以下のような文があったとしましょう!

Tom came home, and he said “I’m () “.

()の中にどのような文章が入るかほとんどの人が分かると思います。

おそらく

Tom came home, and he said “I’m home ”

でしょう。

このようにテキストの文脈からワードを推論するのは周りの文脈が非常に重要なんです。

それを実現できるのがRNNと考えてください。

通常のディープラーニングではそれぞれのインプットがそれぞれの中間層に与えられていました。

3層構造のニューラルネットワーク

しかし、RNNでは同一の中間層を用いて再帰的にインプットが行われます。

再帰的という部分がReccurentと言われるゆえんです。

こんなイメージ

rnnの概念

同じレイヤーh1を用いているのがミソです。

これにより前のワードの情報をレイヤに記憶させ後続へとつなぐことができます。

詳しく知りたい場合、「RNN」の論文を読んでみるとよいでしょう!

Time underlies many interesting human behavior. Thus, the question of how to represent time in connectoinist models is very important. In this approach, hidden unit patterns are fed back to themselves; the internal representations which deveolp thus reflect task demands in the context of prior internal states.

引用:Google-“Finding Structure in Time”

ウマたん
ウマたん
しかし、結局リカレント層はTransoformerの登場により不要に・・・

リカレントニューラルネットワークは後ろの単語を記憶して後続につないでいくので文脈を読み解くのに便利でしたが、あまりにも長文になると精度が下がってしまう点や時系列での学習になるので並列学習に向かず大規模データを学習するのには多大な時間がかかってしまうという課題がありました。。

それらを解決したのがAttention層なのです!

Attention層とは?

Attention層自体はTransformer登場以前から存在しました(Attention層は2015年に発表)。

RNNのあまりにも長文になると精度が下がってしまう課題を解決するためにAttention層が使われていたのです。

しかし過去から脈々と受け継がれてきた研究成果を引きずり、リカレント層をなくしてAttention層だけで構築するという発想にはならなかった。

そこに終止符を打ったのがTransformer、リカレント層なんていらずAttention層だけでよいのです!

Attention層とは簡単に言うと、「文の中で重要な単語には重み付けをして渡す」というもの。

たとえば先ほどの簡単な文を以下のように長文にしてみましょう!

Tom had a number of incidents before returning to his final destination home. He sent his cat to the hospital because it was injured, found a purse snatcher, caught it, and took it to the police station. When it was all over and he finally reached his destination, and he said “I’m () “.

トムは災難なことに最終目的の家に着く前に猫を助けたり泥棒を捕まえたり色んなことが起きます。そのため、文脈を読み取るのが難しくなっています。

これを通常のRNNで実行しても、そもそも目的地ってどこだっけとなり精度が悪くなる可能性があります。

しかしAttention層を使えば、単語の重要度に重み付けをしてどこに注目すべきかを理解してくれるので「目的地は家だったな。じゃあ”I’m home. “かな!?」それっぽい出力を出してくれる可能性が高くなるわけです。

ロボたん
ロボたん
なるほど!重要ってわかっていれば前の文章に惑わされないわけだ!

Transoformerの構成とは?

それでは、そんなAttention層を使って構築されたTransformerの構成を論文「Attention Is All You Need」から図を拝借してみてみましょう!

Transformer

複雑に見えますが、簡単に分解すると以下のようになります。

Transformer

順番に見ていきましょう!

エンコーダー・デコーダー

まず、左側がエンコーダーと右側がデコーダーとなっています。

エンコーダーで処理しやすいベクトル形式にしてからそれをデコーダーでアウトプットに変換しています。

例えば、和英翻訳ではエンコーダーで日本語をベクトル化してそれを元にデコーダーで英語に出力します。

Positional Encoding

Transformerの図を見ると、最初に「Positional Encoding」があります。

Transformer

これは単語の位置関係を絶対/相対的な観点でモデルに認識してもらうための処理です。

RNNでは時系列的に学習していくので位置関係が理解できましたが、リカレント層がなくなった構成だと理解できません。

そこで「Positional Encoding」が用いられています。

ザックリ位置関係理解のために使われているのだなと思っておけば大丈夫です。

マスクしたAttention層とAttention層

先ほどAttention層については学びましたが、TransoformerではMulti-Head Attention層というものを使っています。

Transformer

これはザックリ言うと、同時に複数のAttention層の機能を有した層のことです。

Attention層では単一の単語に注目していましたが、Multi-Head Attention層では複数の単語に注目して学習することが可能です。

そしてマスクしたAttention層では、特定の単語をマスクして(隠して)学習します。

ザックリ言うと、

エンコーダーで入力された重み付け単語ベクトルに対して、デコーダーでは特定の単語が隠された状態でそれより前の文章の重み付けベクトルが入力され、これらの情報から隠された単語には何が入りそうか確率値を出力するのが、このTransformerの構成です。

Transformer(トランスフォーマー)の派生モデル

さてザックリTransformerについて理解したところで、派生モデルについても簡単に見ておきましょう!

BERT

BERTはTransformerをベースにしている手法で2018年にGoogleが発表し、2019年に英語版のGoogle検索エンジンに搭載されました。

そもそもTransformerはGoogleが発表した手法であり、それを改良したのがBERTということになります。

BERTの実装については以下の記事でまとめています!

【Pythonで実装】BERTについて解説!日本語モデルを使って予測をしてみようー!当サイト【スタビジ】の本記事では、Googleが新たにリリースしたBERTについてSEO的観点とデータサイエンス的観点で解説し、日本語モデルを使って実際に文章の予測を行っていきます!BERTはPythonで簡単に実装できるんですよー!ぜひ試してみてくださいね!...

GPT

昨今のAIの進化はめまぐるしく、OpenAIが発表したChatGPTは世界に衝撃を与えました。

2023年3月現在、GPT-4まで発表されており、その精度の高さは衝撃です。

まだ触ったことがないのであればぜひOpenAIのサイトから体感してみましょう!

https://openai.com/

GPTシリーズの進化の軌跡については以下の記事でまとめていますので是非チェックしてみてください!

GPT1,2,3,4
GPT-1→GPT-2→GPT-3→GPT-3.5→ChatGPT→GPT-4までの進化の軌跡と違いをまとめてみた当サイト【スタビジ】の本記事では、昨今のAIの進化のきっかけになっているGPTシリーズについてまとめていきたいと思います。GPT-1から始まりGPT-2、GPT-3、そしてChatGPTであるGPT-3.5、GPT-4と進化してきました。この進化の軌跡と違いについて解説していきます。...

DALL・E

同じくOpenAIが開発した画像生成のDALL・Eというモデルも内部でTransformerのアーキテクチャーを用いています。

CLIP(出典:”Learning Transferable Visual Models From Natural Language Supervision“)

DALL・Eに関しては以下の記事で詳しく解説していますので興味のある方は参考にしてみてください!

DALLE2
OpenAIが開発したDALL・E(ダリ)2の使い方と仕組みを解説!当サイト【スタビジ】の本記事では、OpenAIが開発したDALL・E(ダリ)2の使い方と仕組みについて解説していきます。DALL・E(ダリ)2はテキストから非常に高精度な画像をアウトプットしてくれる生成系AIのモデルです。DALL・E(ダリ)2を理解する上ではCLIPと拡散モデルという技術をおさえておくことが重要です。...

Whisper

さらにOpenAIの開発している音声をテキストに変換するWhisperというモデルもTransformerのアーキテクチャーを用いています。

Whisper(出典:“Robust Speech Recognition via Large-Scale Weak Supervision”

これだけTransformerは様々なタスクのAI進化のきっかけになったブレークスルーなのです!

Vision Transformer

Vision Transformer(ViT)とは2021年にGoogleから発表された画像認識用のtransformerです。

論文は以下です。

transformerのアーキテクチャを元に自然言語処理ではなく画像認識の領域に応用したのがVision Transformerなのです。

Vision Transformerは以下のようなアーキテクチャになっています。

vision transformer

非常にシンプルでほぼTransformerのアーキテクチャと変わりません。

Vision Transformerについて詳しく知りたい方は以下をご覧ください!

Vision Transformer
【入門】Vision Transformerについて分かりやすく解説!Pythonで画像分類実装!当サイト【スタビジ】の本記事では、Googleが2021年に発表し話題になった画像認識AIのVision Transformerについて解説していきます!2017年に発表されたTransformerのアーキテクチャをベースに画像認識に応用された手法!アーキテクチャ・性能・Pythonでの実装方法を見ていきましょう!...

Transformer まとめ

ここまでTransformerについて簡単に解説してきましたが、概要を理解していればそこまで深く踏み込まなくても問題ないと思っています。

それよりも、手を動かして天才が生み出した素晴らしいAIの技術を社会実装していくこと!

ここで紹介した技術はPythonのライブラリを使用して実装したり、公開されているAPIを使ってサービスに組み込んだりすることが可能です!

PythonのAPIを利用
【5分で分かる】Pythonを使って様々なサービスのAPIを利用してみよう!当サイト【スタビジ】の本記事では、Pythonを使ってSlackやGoogleのAPIを利用していきます!APIを利用することで非常に様々なことができるので是非試してみましょう!APIを使えるようになると幅が広がりますよ!...

ぜひガンガン手を動かして実装していきましょう!

Transformerをから発展し最近のトレンドになっている様々なAIを利用する方法を知りたい方は当メディアが運営するスタアカの以下のコースを是非チェックしてみてください!

スタアカは業界最安級のAIデータサイエンススクールです。

スタアカトップ
【価格】ライトプラン:1280円/月
プレミアムプラン:149,800円
【オススメ度】
【サポート体制】
【受講形式】オンライン形式
【学習範囲】データサイエンスを網羅的に学ぶ
実践的なビジネスフレームワークを学ぶ
SQLとPythonを組みあわせて実データを使った様々なワークを行う
マーケティングの実行プラン策定
マーケティングとデータ分析の掛け合わせで集客マネタイズ

・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析
・世界最大手小売企業のウォルマートの実データを用いた需要予測
・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定
・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践して稼ぐ
・生成系AIの基礎や使い方を学ぶ

AIデータサイエンスを学んで市場価値の高い人材になりましょう!

データサイエンスやAIの勉強方法は以下の記事でまとめています。

【5分で分かる】データサイエンティストに必要なスキルと独学勉強ロードマップ!当サイト【スタビジ】の本記事では、データサイエンティストに求められるスキルとそれを身に付けるための勉強法について徹底的にまとめていきます!入門者でも、しっかりデータサイエンティストについて理解しある程度独学で駆け出しの状態までいけることを目指します。...
AIのロードマップ
【これだけ!】AI(人工知能)の勉強ロードマップを徹底的に解説!当サイト【スタビジ】の本記事では、AIを勉強するロードマップについて徹底的に解説していきます。まずは、AIの概要について理解して統計学の基本知識・機械学習の基本知識・Pythonでの実装・インフラ周りの知識などを包括的に理解していきましょう!...
スタビジアカデミーでデータサイエンスをさらに深く学ぼう!

スタアカサービスバナースタビジのコンテンツをさらに深堀りしたコンテンツが動画と一緒に学べるスクールです。

プレミアムプランでは私がマンツーマンで伴走させていただきます!ご受講お待ちしております!

スタビジアカデミーはこちら