Transformerとは? 一言でいうと?
Transformer とは、入力された系列(文章の単語の並びなど)のすべての位置どうしの関係を、注意機構で一度に計算するニューラルネットワークの構造です。
2017年に Vaswani らが論文「Attention Is All You Need」で提案しました。論文の要旨では、注意機構だけに基づき、再帰(RNN)と畳み込み(CNN)を完全に使わない 構造であること、そのため並列化しやすく学習時間を大きく短くできたことが述べられています。機械翻訳の評価では、WMT 2014 の英独翻訳で BLEU 28.4、英仏翻訳で 41.8 という当時の最高水準の結果が報告されました。
もとの論文の Transformer は、入力を読み取る エンコーダ と、出力を1語ずつ作る デコーダ の組み合わせでした。エンコーダ・デコーダはそれぞれ同じ構造の層を6層重ねたものです。
注意機構(Attention)はどう働く?
注意機構は、「今注目している語にとって、ほかのどの語がどれだけ関係するか」を重みとして計算し、その重みで情報を混ぜ合わせる仕組みです。Transformer では、各語から次の3つのベクトルを作ります。
Attention(Q, K, V) = softmax(QKᵀ ÷ √d_k) × V
- 1Query と各語の Key の内積をとり、関係の強さを出す
- 2√d_k(Key の次元数の平方根)で割る(内積が大きくなりすぎて softmax の勾配が小さくなるのを防ぐ)
- 3softmax で重みにする
- 4重みを Value にかけて足し合わせ、出力にする
この計算を並列に複数(論文では8個)走らせるのが Multi-Head Attention。
| 名前 | 役割のたとえ | 何に使うか |
|---|---|---|
| Query(Q) | 探している条件 | ほかの語の Key と比べて、関係の強さを出す |
| Key(K) | 各語につけた見出し | Query との内積で関係の強さ(重み)を決める |
| Value(V) | 各語が持つ中身 | 重みをかけて足し合わせ、出力にする |
論文では、この計算を Scaled Dot-Product Attention と呼び、Q と K の内積を √d_k(Key の次元数の平方根) で割ってから softmax で重みにし、V にかけます。割る理由は、次元が大きいと内積の値が大きくなり、softmax の勾配が極端に小さくなるのを防ぐためと説明されています。
さらに、この注意の計算を並列に複数(論文では8個)走らせる Multi-Head Attention を使い、異なる観点の関係を同時にとらえます。Q・K・V を同じ系列から作る場合を Self-Attention(自己注意) といいます。
簡単な例で考えます。「センサの値が急に上がったので、それを記録した」という文で、「それ」の Query は「センサの値」の Key と強く一致し、「それ」の出力には「センサの値」の情報が多く混ざります。語の距離が離れていても、一度の計算で関係を結べるのがポイントです。
POINT
順番の情報:Transformer は語を並列に扱うので、そのままでは語順が分かりません。論文では、sin と cos の関数で作った 位置エンコーディング を入力に加えて順番を表しています。また、文章を作るデコーダでは、まだ作っていない後ろの位置を参照しないよう マスク をかけます。
RNN と Transformer の違いは?
Transformer が登場する前、文章や時系列データの処理には RNN(再帰型ニューラルネットワーク)やその改良の LSTM が広く使われていました。違いを表にまとめます。計算量の欄は原論文の比較(n は系列の長さ、d は表現の次元数)によります。
| 観点 | RNN | Transformer |
|---|---|---|
| 処理の順番 | 前から1つずつ順に処理し、状態を次へ渡す | すべての位置を同時に処理する |
| 並列化 | しにくい(順番に待つ必要がある) | しやすい |
| 逐次的な計算の段数 | O(n) | O(1) |
| 遠く離れた語の関係 | 何段も状態を経由して伝わる | 一度の注意の計算で直接結べる |
| 1層あたりの計算量 | O(n・d²) | O(n²・d) |
| 語順の扱い | 処理の順番そのものが語順になる | 位置エンコーディングで加える |
| 苦手なこと | 長い系列で離れた情報を保ちにくい | 系列が長いと計算量が長さの2乗で増える |
表の最後の行が大事です。Transformer は万能ではなく、系列が長くなると計算量とメモリが大きく増えます。センサの長い時系列をそのまま入れるような場面では、この弱点が設計上の課題になります。
BERT・GPT・ViT とはどういう関係?
Transformer の構造をもとに、目的に合わせたモデルが作られてきました。代表的なものを原論文の説明で整理します。
| モデル | 発表 | 特徴 | 主な用途 |
|---|---|---|---|
| Transformer | 2017年 | エンコーダとデコーダを注意機構だけで構成 | 機械翻訳 |
| BERT | 2018年 | エンコーダを使い、左右両方の文脈を同時に使って事前学習 | 文の分類・理解 |
| GPT-3 | 2020年 | 1,750億パラメータの自己回帰型言語モデル(前の語から次の語を予測) | 文章の生成 |
| ViT | 2020年 | 画像を小さなパッチに分け、その並びを Transformer に入力 | 画像認識 |
生成AIやLLMの全体像は 生成AIとLLM で、深層学習そのものの仕組みは ディープラーニング で説明しています。
IoT との関係では、カメラ画像の認識(ViT の考え方)、センサの時系列からの異常の検知、集めたデータを要約・説明する生成AIなどで Transformer 系のモデルが使われ得ます。ただし計算量が大きいので、機器の中(エッジ)で動かすか、クラウドで動かすかの判断が必要になります。
BERT
- 文章の文脈を理解する表現を学ぶ
GPT
- 前の文脈から次の語を予測する
ViT
- 画像をパッチに分けて扱う
注意機構という仕組みと、学習の目的・入力を分ける。
本文の内容を当サイトが図に整理したものです。配置や面積は数量・出題比率を表しません。
IoT検定ではどう問われる?
IoT中級の公式ページでは、出題カテゴリ「IoTデータ活用技術(AI、ビッグデータ分析、活用事例)」の比率が 25〜30% と示されています(2026年9月27日確認)。Transformer はこのカテゴリの AI の話題に入ります。中級の対応テキスト『IoT技術テキスト 第4版』では、第3章「IoTデータ活用技術」の範囲に当たると当サイトは推定しています(使っているのは目次の章名だけです)。
IoT基礎でも、MCPC のテキストのページで『IoT技術テキスト 基礎編 改訂4版』の説明として、生成AIを「深層学習の Transformer アルゴリズムを核として発展してきた」技術として扱うと書かれています。改訂の全体像は 基礎編 改訂4版で変わったこと にまとめました。
4択で問われるとしたら、次のような観点が考えられます(出題の頻度や実際の問題を示すものではありません)。
- 仕組みの名前を選ぶ:系列の関係を重みで計算する仕組みの名前(注意機構)を、ほかの仕組みと区別できるか。
- RNN との違いの正誤:並列化、語順の扱い、長い系列での弱点について、正しい記述と誤った記述を見分けられるか。
- 派生モデルの対応:BERT・GPT 系・ViT の特徴と名前を正しく組み合わせられるか。
- 生成AIとの関係:生成AIの土台の技術として Transformer を位置づけられるか。
間違えやすいのはどこ?
Transformer の説明でよく混ざる点を、つまずき別にまとめました。
| 間違えやすい理解 | 正しい理解 |
|---|---|
| Transformer は RNN を改良した再帰型のモデル | 再帰も畳み込みも使わず、注意機構だけで構成する |
| 語を並列に扱っても語順は自然に分かる | 語順は位置エンコーディングで別に加える |
| √d_k で割るのは計算量を減らすため | 内積が大きくなり softmax の勾配が小さくなりすぎるのを防ぐため |
| Transformer は系列が長いほど有利 | 計算量は系列の長さの2乗で増えるので、長い系列は負担が大きい |
| BERT は文章を生成するためのモデル | BERT はエンコーダ型で、左右の文脈を使う理解向けの事前学習モデル |
| Transformer は文章専用 | ViT のように画像をパッチの並びとして扱う使い方もある |
確認問題1
Transformer が並列計算しやすい理由は?
Transformer が RNN に比べて学習を並列化しやすい主な理由として、最も適切なものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:2。Transformer は注意機構で全位置の関係を同時に計算するため、前の結果を待つ必要がなく並列化しやすくなります。
1 は RNN の説明です。前の状態を待つので、むしろ並列化しにくい理由になります。3 は CNN(畳み込み)の説明で、Transformer は畳み込みを使いません。4 は入力を1本のベクトルに押し込む古い方式の説明で、Transformer は各位置の表現を保ったまま関係を計算します。
確認問題2
√d_k で割るのは何のため?
Scaled Dot-Product Attention で、Query と Key の内積を √d_k(Key の次元数の平方根)で割る目的として、最も適切なものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:1。原論文では、次元数が大きいと内積が大きくなり、softmax が勾配の極めて小さい領域に入ってしまうため、√d_k で割ると説明されています。
2 は誤りです。割り算をしても全位置の組み合わせを計算することは変わらず、計算量は減りません。3 は位置エンコーディングの役割です。4 はデコーダで使うマスクの役割で、割り算とは別の仕組みです。
確認問題3
BERT と ViT の特徴を組み合わせると?
次の記述ア・イに当てはまるモデルの組合せとして、最も適切なものはどれか。
ア:エンコーダを使い、文の左右両方の文脈を同時に使って事前学習するモデル/イ:画像を小さなパッチに分け、その並びを Transformer に入力して画像を認識するモデル
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:4。BERT は左右両方の文脈を使って事前学習するエンコーダ型のモデル、ViT は画像をパッチの並びとして Transformer に入力するモデルです。
1 と 3 のアの GPT-3 は、前の語から次の語を予測する自己回帰型の言語モデルで、左右両方の文脈を同時には使いません。2 のイの CNN は畳み込みで画像の特徴を集める方式で、パッチの並びを注意機構で扱う ViT とは違います。3 のイの RNN は系列を順に処理する方式で、画像認識のためにパッチを入力するモデルではありません。
次は何で力を試す?
3問とも根拠を言えたなら、Transformer の要点はつかめています。IoT中級では、AI のほかにビッグデータ分析や活用事例、さらにセンサ・通信・セキュリティまで幅広く出題されます。IoT中級の無料お試し20問 で、公式カテゴリの比率に合わせた20問を解いてみてください。登録なしで、全問の解説を読めます。
Transformer は IoT基礎の範囲でもあります(基礎の章の要点は IoT基礎 第6章、無料お試しは /iot-kiso/try)。中級の試験の全体像は IoTシステム技術検定 中級とは をご覧ください。