Slide 1

Slide 1 text

ゼロつく2 輪読会 Part4 3.4~3.6 2024年 3⽉10⽇

Slide 2

Slide 2 text

‣ これ以降の図は以下より引⽤ 斎藤 康毅 「ゼロから作るDeep Learning ❷―⾃然⾔語処理編」 はじめに

Slide 3

Slide 3 text

‣ 前回の復習 ‣ CBOWモデルの実装 ‣ word2vecに関する補⾜ ⽬次

Slide 4

Slide 4 text

前回の復習

Slide 5

Slide 5 text

‣ カウントベース→推論ベース ‣ ミニバッチ学習 ‣ 周囲のコンテキストから出現確率を推測 ‣ one-hotベクトル処理 ‣ CBOW(Continuous Bag-Of-Word) ‣ ⼊⼒層 = (B,N,L) (B: バッチサイズ,N: コンテキスト 数,L: コーパスの⻑さ) 前回の復習

Slide 6

Slide 6 text

CBOWの実装

Slide 7

Slide 7 text

学習 モデルアーキテクチャ 逆伝播の様⼦ optimizer : Adam

Slide 8

Slide 8 text

学習 loss推移 分散表現 コサイン類似度

Slide 9

Slide 9 text

word2vecの補⾜

Slide 10

Slide 10 text

‣ CBOWモデルを数式で考えてみる. ‣ 損失関数 ‣ 教師ラベル𝑡! は𝑤" に対応する箇所が1でその他は0 →𝑃(𝑤" |𝑤"#$ , 𝑤"%$ )のみが残る. ‣ コーパス全体 CBOWモデルと確率

Slide 11

Slide 11 text

‣ ターゲットからコンテキストを推測する. ‣ 損失関数 skip-gramモデル

Slide 12

Slide 12 text

‣ 推論ベース ‣ 語彙に新しい単語→学習済み重みを初期値として,パラ メータの再学習が可能 ‣ より複雑な単語間のパターンも捉えられる. ‣ 実際は単語の類似性に関する定量評価では優劣が つけられない カウントベースvs推論ベース

Slide 13

Slide 13 text

Appendix

Slide 14

Slide 14 text

ソースコード 概要 ch3 simple_cbow.py train.py common layers.py optimizer.py trainer.py util.py functions.py

Slide 15

Slide 15 text

‣ softmax ‣ cross_entropy_error functions.py

Slide 16

Slide 16 text

‣ MatMul ‣ init ‣params, grads ‣x (backwardで使⽤) ‣ forward ‣paramsとxを⾏列計算 ‣xを保持 ‣ backward ‣dx,dWを計算 ‣ SoftmaxWithLoss ‣ init ‣params, grads ‣y (softmaxの出⼒) ‣t (教師ラベル) ‣ forward ‣softmax ‣cross_entropy_error ‣ backward ‣dx layers.py

Slide 17

Slide 17 text

‣ Adam ‣ init ‣lr (学習率) optimizer.py

Slide 18

Slide 18 text

‣ init ‣ fit ‣ plot trainer.py

Slide 19

Slide 19 text

util.py