ニューラルネットワークで行う処理は、
② 推論
の2つのフェーズに分けられる。
① 学習は大量のデータと長い時間が必要なため(*1)
本書では、次章以降、
事前学習済みのBERTモデルで、
ファインチューニングや性能評価を行う。
そのため、まずは
1,2.BERTの構造・入力形式
で、推論のしくみを、
3.学習
で、学習と導入方法を、
解説する構成となっている。
推論〜BERTの構造・入力形式
BERTは、Transformer(2017年発表*2)ベースのモデルだ(GPT-3も)。
ニューラルネットワークに、
RNNの欠点を克服した「Transformer Encoder」
を用いている。
*2 Transformerは、最近では、画像認識にもCNNの代わりに使われ、あらゆるAIモデルの重要な技術になりつつある、という。
RNNの欠点とは、
時系列データを扱うのに順次処理することに起因し、
② 勾配消失の影響を受けやすい
③ 処理の並列化が困難で時間がかかる
ことの3点だ。
これを克服するため、
Transformer では、
❷ Attention:入力文のすべての単語を見て、対応する出力単語を決定するメカニズム
❸ Self-Attention :ある単語をその周りの単語の文脈により理解するメカニズム
の3つの特徴を持つ。
本書では、
これらの特徴を持つ「Transformer Encoder」のしくみを、
数式を用いて具体的に解説している。
とくに、
Attentionを実現している
「Multi-Head Attention」
の説明が詳しい。
数式を読み飛ばしても大丈夫なくらいわかりやすいが、
実装するなかで、
くりかえし確認し、理解を深めたい。
なお、
❶ positional encodingについては、
2.入力形式で、
トークン化のあとベクトル化する際に、
文書中の位置情報を加えることで対応している。
学習〜学習と導入方法
学習については
実際にはしないため、
かんたんな説明にとどめられている。
1.事前学習
BERTは、
ラベルなしデータをTransformerが処理することで学習する。
えっ⁉️
教師なし学習でなにを正解として学習させるの⁉️
一瞬驚いたが、
そのための工夫として、
大量のデータを用いて、
② Next Sentence Prediction
という2つの手法を同時進行で行い学習するのだ。
2.転移学習・ファインチューニング
BERT によって個別のタスクを解くために、
② それに、タスク処理モデルを接続する
ことで、そのタスクに特化したモデルをつくる。
ここは、
次の第4章から、
実際にBERTを動かしていくので、
そこで確かめたい。
さあ、いよいよだ。
ワクワクがとまらない‼️