Index
GPT-1 とは
2018年 OpenAI から提案されたニューラル言語モデル.
教師なし事前学習(Unsupervised Pre-Training) と 教師あり学習 ファインチューニング (Supervised Fine-Tuning)
を組み合わせることで、半教師あり学習 (Semi Supervised) のアプローチをとる.
- ULMFiT
Transformer をベースに、事前学習-ファインチューニングすることで精度を達成した.
生成系事前学習モデル. (生成に特化 = Transformer Decoder を利用 = BERT との違い)
学習の仕組み
教師なし事前学習(Unsupervised Pre-Training) と 教師あり学習 ファインチューニング (Supervised Fine-Tuning) の 2つのステップで構成されている.
教師なし事前学習(Unsupervised Pre-Training)
次に最大化する目的関数を決定する.
これは、一般的にニューラル言語モデルで利用される確率モデル.
次の単語の予測確率を最大化したモデルを作ることが目的.
上の目的関数を Multi Layer Transformer Decoder (後述) を利用して最適化.
教師あり学習 ファインチューニング (Supervised Fine-Tuning)
大規模なコーパスで、上の目的関数を最適化した事前学習済みモデルができたら、
そのモデルを用いて、教師ありのタスクでファインチューニングする.
タスクは、分類問題. つまり、入力の文章に対して、X 個のクラスのラベル (例えば、楽しい、悲しいなど) に分類する.
ここで、目的関数を以下のように定義する.
そして、ファインチューニングでは、事前学習で用いた、目的関数も合わせ、最終的な目的関数として、それを最大化する.
ネットワークアーキテクチャ
Transformer の Decoder をベースにした、Multi Layer Transformer Decoder を利用する.
- Input Layer
- Word Embedding
- Position Embedding
- Decoder Layer x n (論文だと12層)
- Attention Layer
- FFN Layer
- Classification Layer
- 事前学習とファインチューニングで異なる.
教師なし事前学習(Unsupervised Pre-Training)
入力トークン に対して、Word Embedding と Position Embedding を実行.
- は、Word Embedding の重みパラメータ
- は、Position Embedding の重みパラメータ
(どちらも事前学習時に更新して最適化する.)
その後、各 Decoder Layer の処理を実行
は Decoder Layer の index.
最後に、逆 Word Embdedding を行い、語彙の大きさの行列に変換し、各語彙ごとの確率値を計算する.
教師あり学習 ファインチューニング (Supervised Fine-Tuning)
事前学習で得られたモデルを利用して、分類器も含め学習を行う.
事前学習と異なる部分は、最後の「各語彙ごとの確率値」を計算する部分で、
ここが、「クラスごとの確率」を計算するニューラルネットワークになる.
は分類器のネットワークの重みパラメータ.
参考
- Improving Language Understanding by Generative Pre-Training
- [2018 OpenAI] 発表論文
- 1 Introduction
- 3 Framework
- 3.1 Unsupervised pre-training
- 3.2 Supervised fine-tuning
- https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf
Web サイト
- 【論文解説】OpenAI 「GPT」を理解する