---
title: 【生成Deap Learning 第2版】5.1~5.2
tags:  #lstm #rnn  
author: [京都大学人工知能研究会KaiRA](https://convert.docswell.com/user/kyoto-kaira)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/3EK5188VJD.jpg?width=480
description: 【生成Deap Learning 第2版】5.1~5.2 by 京都大学人工知能研究会KaiRA
published: May 15, 25
canonical: https://convert.docswell.com/s/kyoto-kaira/5MXPMW-2025-05-15-210952
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/3EK5188VJD.jpg)

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


# Page. 2

![Page Image](https://bcdn.docswell.com/page/L73KQ2MQ75.jpg)

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


# Page. 3

![Page Image](https://bcdn.docswell.com/page/87D39Z6WJG.jpg)

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


# Page. 4

![Page Image](https://bcdn.docswell.com/page/VJP4ZDYX78.jpg)

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


# Page. 5

![Page Image](https://bcdn.docswell.com/page/2EVXW1G3JQ.jpg)

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


# Page. 6

![Page Image](https://bcdn.docswell.com/page/57GVD28Y7L.jpg)

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


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4EQ61P96EP.jpg)

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


# Page. 8

![Page Image](https://bcdn.docswell.com/page/KJ44RYXMJ1.jpg)

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


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LE14Q6NYEG.jpg)

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


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GEWXMW4172.jpg)

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


# Page. 11

![Page Image](https://bcdn.docswell.com/page/47Z6Q52X73.jpg)

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


# Page. 12

![Page Image](https://bcdn.docswell.com/page/YJ6269VP7V.jpg)

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


# Page. 13

![Page Image](https://bcdn.docswell.com/page/GJ526NDPJ4.jpg)

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


# Page. 14

![Page Image](https://bcdn.docswell.com/page/9E24M58ZJR.jpg)

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


# Page. 15

![Page Image](https://bcdn.docswell.com/page/D7YMXK6N7M.jpg)

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


# Page. 16

![Page Image](https://bcdn.docswell.com/page/VENW1RZVE8.jpg)

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


# Page. 17

![Page Image](https://bcdn.docswell.com/page/Y79X5MZVJ3.jpg)

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


# Page. 18

![Page Image](https://bcdn.docswell.com/page/G782YL147D.jpg)

LSTMの実装
モデルの構築
17


# Page. 19

![Page Image](https://bcdn.docswell.com/page/L7L24LQVJR.jpg)

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


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4EM8KM1NEW.jpg)

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


# Page. 21

![Page Image](https://bcdn.docswell.com/page/PER5XVL479.jpg)

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


# Page. 22

![Page Image](https://bcdn.docswell.com/page/P7XK6ZWZEX.jpg)

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


