ニューラルネット系自然言語処理の歴史を、アルゴリズムも紹介しながら単純パーセプトロンからChatGPTに至るまで辿る
ニューラルネットの誕生からChatGPTまで山田悠之介2023/03/03
View Slide
概要目次● 前半:ニューラルネットワークについて● 後半:自然言語処理とニューラルネット● 数式を使わずにできるだけアナロジーで説明● 用語はちゃんと使う2
保険● 自分が勉強したのは学部3年の時○ 5年前、2017年○ ChatGPTの元になる論文:2017年● 理論まで理解していたのは基礎的な内容(ニューラルネットの話)● 後半になるについて「らしい」が増えていきます3
ニューラルネットワーク (NN)4
単純パーセプトロン(50、60年代)● ≒1つの神経細胞をモデル化● いい感じに学習(重みの更新)させることで線形分離可能な問題を解ける○ 「線形分離可能な問題」:平面を線で区切る、3次元を面で区切る● そうでない問題は解けない...○ 下火に5
多層パーセプトロン(80年代)● さっきの神経細胞を繋げていく● シナプス伝達のモデル化● 重みの更新は出力側から入力側に伝播させる(誤差逆伝播)● 中間層のおかげで線形分離可能でなくても識別できる● 中間層を増やすにはマシンパワーが...○ 再び下火に6
深層学習(2000年代)● マシンパワーが改善されたことで階層が深くても学習できるように● そして新しい問題が○ 局所最適解○ 勾配の消失7
局所最適解● 学習は山登りに例えられる○ 今いる地点の傾き(勾配)を見て、上にいく(勾配法)● 逆に今いる地点しか見れないので、周りを見るともっと高い山があるのに、手近な頂上を目指してしまう(局所最適解)○ 初めのうちは気まぐれで上以外の方向に進んでみる(確率的勾配降下法)○ でも結局、間違った答えを出すことはある8
勾配の消失● 上の方に進んでいきたいが、傾きが0だとどっちに行けば良いか分からない○ 学習が止まる● 誤差は逆伝播させていくので、より出力側で勾配が0になると、入力側も学習が止まる○ 勾配の消失● 階層が深くなると発生しやすくなる○ いろんな対応がある9
自然言語処理(NLP)とNN10
RNN (Recurrent neural network)● ネットワーク内で循環があるもの● 再帰的な構造のおかげで過去の状態、文脈を考慮できると言われている○ NLPへの応用● 一方でうまくいっていない部分も○ 長期的な依存関係の学習○ 勾配消失問題の発生11
LSTM (Long short-term memory)● 長期記憶と短期記憶のモデル化● RNNの問題点改善のため● ユニットとしてパーセプトロンではなく、記憶の保持と忘却ができるものを利用?12
Encoder-DecoderモデルとSeq2Seq● Encoder-Decoderモデル○ 入力をエンコーダで中間表現に変換してからデコーダで出力する● Seq2Seq (2014)○ Encoder-Decoderモデルのうち、入出力が系列になっているもの○ エンコーダ、デコーダにはRNN(LSTM)が使われる13
Seq2Seq with Attention (2015)● Seq2Seqはエンコーダからデコーダに渡る情報が少なかったため、精度が良くなかった● 改善のためAttentionが導入○ 2つの文章中の単語のペアに対して、どのペアが重要か○ 異なる文章:Source-Target Attention○ 同じ文章 :Self Attention○ 長い文でも単語の関係をとらえやすくなった14
Transformer (2017)● Attentionに注目● Encoder-DecoderモデルだがRNN、LSTMを使わない● エンコーダ、デコーダにはNNを6段ずつ使う● 精度が良く、学習も並列でできる● Google翻訳もこのアルゴリズム15
GPT (Generative Pre-trained Transformer)● Transformerの1種● 教師あり学習するには、人力でデータを用意する必要● 精度を上げるにはデータは多いほど良いが、大変(無理なこともある)● 教師なしでの事前学習を採用し、その後用途別の調整● GPT-3では570GBの文章で事前学習○ GPT-3.5: GPT-3に編集と挿入機能を持たせる○ ChatGPT: GPT-3.5に対して微調整したもの16
終わり17