【生成Deap Learning 第2版】5.1~5.2

>100 Views

May 15, 25

スライド概要

profile-image

AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

2025年 前期輪読会 第3回 [生成 Deep Learning] 第5章 自己回帰モデル [5.1~5.2] 大阪大学 基礎工学部 B4 緒方 克哉 0

2.

自己紹介 • 所属 ○ 大阪大学 基礎工学部 情報科学学科 B4 • 興味分野,インターンとか ○ アプリケーション開発 ○ クラウドネイティブ ○ MLLM ○ エムニでアプリケーションエンジニア • 個人的な趣味とか おがた かつや 緒方 克哉 ○ 登山 ○ 映画鑑賞 ○ サウナ 1

3.

アジェンダ ■ 標準的なRNN ■ LSTMのアーキテクチャ ■ LSTMの実装 ■ 結果 2

4.

アジェンダ ■ 標準的なRNN ■ LSTMのアーキテクチャ ■ LSTMの実装 ■ 結果 3

5.

標準的な RNN (Elman Net) 周囲の単語からその単語の意味は決定されるという観点のもと言語モデルは成り立っている 例えば、コンテキスト長を2として、t番目の単語を予測するとき 4

6.

標準的な RNN (Elman Net) 最も基礎的かつシンプルなRNNネットワークのアーキテクチャ Contextual Representation using Recurrent Neural Network Hidden State for Statistical Parametric Speech Synthesis 5

7.

Elman Netの問題点 勾配消失・爆発によりコンテキストが長くなると正しい文章が生成できなくなる https://www.wikiwand.com/en/articles/Recurrent_neural_network https://keisan.casio.jp/exec/system/1541128601 6

8.

アジェンダ ■ 標準的なRNN ■ LSTMのアーキテクチャ ■ LSTMの実装 ■ 結果 7

9.

LSTMモデルのアーキテクチャ ゲートを用いて情報をフィルタリングする https://pabloinsente.github.io/the-recurrent-net 8

10.

LSTMモデルのアーキテクチャ LSTMモデルではなぜ勾配消失が発生しないのか ・記憶セルのみに着目する ・まず、記憶せるの勾配は+ノードを通るが、こ れはそのまま流れるだけ ・次に×ノードを通るが、forgetゲートにより、忘 れるべき情報については、勾配が小さくなり、 重要な情報については、勾配が大きくなるよう に学習されていく ・よって、逆伝播を行ったときに、重要情報の 勾配は保たれたまま伝播させることができる ようになる https://pabloinsente.github.io/the-recurrent-net 9

11.

LSTMモデルのアーキテクチャ 重要な情報のみを記憶して、そうでないものは忘れていく https://pabloinsente.github.io/the-recurrent-net 10

12.

Embeddingレイヤー トークンから機械学習モデルが扱いやすい単語の特徴量ベクトルへと埋め込む層 ・トークンからその単語の特徴量を表すベクトルへと変 換してくれる層 ・よりその単語の特徴量を捉えられるように学習されて いく ・最近だとRAGとかの文脈でよく出てくる https://cvml-expertguide.net/terms/dl/layers/embedding-layer/ 11

13.

アジェンダ ■ 標準的なRNN ■ LSTMのアーキテクチャ ■ LSTMの実装 ■ 結果 12

14.

LSTMの実装 以下のGoogle Colabを用いて実際に動かしていきます ● 編集権限はないので、各自コピーを作成して実行をお願いします ● Kerasで記述されたものをPythorchで再実装しています ● 間違っていそうな部分があれば教えてください https://colab.research.google.com/drive/1JWMBVXqTZVM8p88OWRbfDBtCeknmaqg0?usp=sharing 13

15.

LSTMの実装 語彙の作成部分の実装(単語からidへの対応を作成する) ・語彙というのは、単語からトークン(ID)へ の対応とトークンから単語への対応を定 義するデータ構造 ・Kerasには対応するクラスが存在する が、Pytorchには多分ない気がするので、 自前で実装しました ・小文字変換と単語ごとの分割を行い、最 も出現頻度の多かった順にトークンを作 成する ・入力の大きさを揃えるためのパディング 用トークンと、知らない単語が出てきた時 のUnknownトークンも入れておく 14

16.

LSTMの実装 Tokenizerの実装 ・与えられた文字列を単語に分割して、 対応するトークンの配列を返す ・語彙にない単語が来た場合は、 unknownトークンを返す ・定められた長さに合わせるために、足 りない場合はパディングで埋めて、多す ぎる場合は、カットする 15

17.

LSTMの実装 データの与え方 ・入力は、テキストの最後の単語を除いたものを 渡す ・出力は、テキストの2単語目から最後の単語ま でを返す ・これにより、先述した確率モデルを実現する言 語モデルの構築を目指す 16

18.

LSTMの実装 モデルの構築 17

19.

LSTMの実装 テキスト生成 ・訓練が適切に進んでいるかを確認するために、エポックごとに文章を生成 する ・最初の文字列はプロンプトとして与えられ、一定の文字列長もしくは、パ ディングが入るまで生成を続ける ・生成された最後の単語のロジッツにsoftmax関数を適用して、その確率分 布をもとにサンプリングを行う(決定的ではなく確率的に生成) ・温度パラメータを利用して、言語モデルの表現力を調整することもできる 18

20.

アジェンダ ■ 標準的なRNN ■ LSTMのアーキテクチャ ■ LSTMの実装 ■ 実行結果 19

21.

実行結果 完璧な文章とは言えないが、所々正しい文法で意味の通る文章が生成できる。 20

22.

まとめ ● 言語モデルは、周囲の単語から単語を予測することで文章を生成している ● LSTMモデルを利用することで、勾配消失を防ぐことができる ● LSTMモデルはゲートを用いて、重要な情報のみを伝達する 参考文献 ・松田 晃一, 小沼 千絵, 「生成 Deep Learning 第2版」, 2024年 ・斎藤 康毅, 「ゼロから作るdeep learning ❷」, 2018年 21