ディープラーニング A to Z · 3-7

系列モデル — 記憶を持って1マスずつ歩く

文、音、センサーの記録、株価は、順序が意味をつくる。1枚ずつ別々に見るニューラルネットワークに「さっき見たもの」を覚えておくループを付けるとRNNになり、その記憶がぼやけないように扉(ゲート)を付けるとLSTMとGRUになる。記憶が実際に残るかを数字で追い、ゲートがあっても学習がひとりでにうまくいくわけではないことまで実験で確かめる。

1990Elmanの単純再帰型ニューラルネットワーク [R1]
1997LSTMの発表 [R3]
3個 · 2個LSTMとGRUのゲート数
1,152 : 912隠れ状態16のときのLSTMとGRUの再帰層パラメータ数 (Keras)
+0.86 → −0.88最初の信号を反転すると変わるLSTMの記憶 (セクション5)
2本Colabですぐ動かせるコード
11枚ずつ

1枚ずつ、一方向に — 場面1つではわからないこと

3-1でショウジョウバエは、影が「近づいてくるか」を見分けた。では、影が写った写真を1枚だけ受け取ったらどうだろうか。

ネットワークが受け取るもの

初心者のための解説

3-2・3-3のニューラルネットワークは、入力を1つ受け取って出力を1つ出したら終わりである。前に何を見たかは覚えていない。このようなネットワークをフィードフォワード(前にだけ流れる)ニューラルネットワークと呼ぶ。同じ大きさの影1枚は、近づいている途中かもしれないし、遠ざかっている途中かもしれない。答えは場面1つではなく場面の順序にある。3-1の実験で場面2枚(最初・後)を一緒に入れたのもこのためである。

2フィードフォワード

フィードフォワードで順序を入れる2つの方法とその限界

数列「100 → 110 → 120」(上昇)と「120 → 110 → 100」(下降)は、同じ3つの数でできている。フィードフォワードニューラルネットワークにこの2つを入れる方法は2通りある。

入れ方
数列の長さ
3ループと展開

ループが生まれる理由と展開

ht = f(xt, ht−1)同じ重みを時刻ごとに使い回す

表示
長さ

初心者のための解説

セクション2の問題を解くアイデアは簡単だ。1マスを処理するときに、前のマスでつくった要約(隠れ状態)も一緒に受け取る。図に描くと、箱から出た矢印が自分自身に戻ってループになる。このループを時間軸に沿ってずっと展開すると、同じ箱がマスの数だけ連なったフィードフォワードニューラルネットワークのように見える。箱はすべて同じ重みを使う。3-3のCNNが同じフィルタをすべての「位置」に使ったように、RNNは同じ重みをすべての「時点」に使う。だから長さが変わっても重みの数はそのままである。

4RNN

RNN — 隠れ状態、BPTT、そして勾配消失

ht = tanh(wx·xt + wh·ht−1)Elman, 1990

ループの重み wh
入力

BPTTと勾配消失

展開した図の上で誤差逆伝播法を行うとBPTT(時間をさかのぼる誤差逆伝播法)になる [R8]。最後の出力の誤差が最初のマスまで届くには、1マスさかのぼるたびに wh × tanhの勾配(1 − h²)を掛ける。この値が1より小さければマスの数だけべき乗されて0に近づき(勾配消失)、1より大きければ爆発しうる。Bengioらは1994年に、このため勾配降下法で長い時間依存を学ぶことが根本的に難しいことを示した [R2]。

whを大きくすると記憶は長く残るが(1.5)、tanhが±1付近に張り付いて勾配 1 − h² が0に近づく。記憶をつかんでおくことと、その記憶を学習で直すことがぶつかり合うのである。3-2の「シグモイドの勾配は最大0.25」と同じ根を持つ問題だ。

5LSTM

LSTM — セル状態と3つの扉

ct = ft ⊙ ct−1 + it ⊙ gt · ht = ot ⊙ tanh(ct)Hochreiter & Schmidhuber, 1997 · 忘却ゲート Gersら, 2000

忘却ゲートのバイアス bf
最初の信号
記号名前範囲役割 (このセルで決めた重み)
ctセル状態制限なし長い記憶を運ぶベルトコンベア。掛け算1回(f)と足し算1回だけを経て次のマスへ行く
ft忘却ゲート0~1 (σ)前の記憶をどれだけ残すか。σ(bf)で常に一定にしておいた
it入力ゲート0~1 (σ)新しい値をどれだけ書き込むか。σ(10 × 開始マーク − 5):最初のマスでだけ開く
gt候補値−1~1 (tanh)書き込む内容。tanh(3 × xt)
ot出力ゲート0~1 (σ)記憶のうちどれだけを出すか。σ(5) ≈ 0.993で常に開けておいた
ht隠れ状態(出力)−1~1ot ⊙ tanh(ct)。次の層と次のマスのゲートへ行く
⊙要素ごとの積ベクトルの同じ位置どうしを掛ける。この例のように数が1つなら、ただの掛け算である

初心者のための解説

このセルの重みは説明のために人が決めた。「最初のマスでだけ書き込み、その後はほとんど消さない」という規則である。だから最初の信号を反転すると、20マス後の記憶も正確に反転する。セクション4のRNNは、同じ入力で最初の信号を反転しても、最後の値が小数点以下4桁までまったく同じだった。LSTMが長い記憶を保持できる構造だということである。セル状態が掛け算1回(f ≈ 1)と足し算だけでつながっているので、逆向きに伝わる勾配もほとんど小さくならない [R3]。

2つ補足する。第一に、1997年の元のLSTMには忘却ゲートがなかった。忘却ゲートは、Gersらが終わりなく続く入力でセル状態が大きくなる一方になる問題を解くために加えたもので [R4]、今日「LSTM」といえば普通はこの版を指す。第二に、構造が記憶を保持できるからといって、学習がその重みを見つけ出す保証はない。コード2の実験がその違いを示している(セクション6の下)。

6GRU

GRU — 扉を2つに減らしたLSTM

ht = (1 − zt) ⊙ ht−1 + zt ⊙ h̃tChoら, 2014

隠れ状態のサイズ
入力サイズ

GRUは何をまとめたか

GRUはLSTMの忘却ゲートと入力ゲートを更新ゲート z 1つにまとめた。前の記憶を (1 − z) だけ残し、その空いた分を新しい候補 h̃ で z だけ埋める。残すほど書き込みが減り、書き込むほど残る分が減る天秤である。これに、前の記憶を候補の計算にどれだけ使うかを決めるリセットゲート rを加えた。セル状態と隠れ状態を分けないので、出力ゲートもない [R5]。

重みのまとまりがLSTMの4つから3つに減り、教科書の式ではパラメータはちょうど3/4になる。KerasのデフォルトのGRUはバイアスをもう1組持つので少し多い(隠れ状態16、入力1のとき912個対1,152個、約0.79倍)。どちらが良いかはタスクによって異なる。

コード2の実験 — 構造が記憶を保持できることと、学習がそれを見つけ出すことは別である

すべてのマスが±1で、正解が最初のマスである数列(後ろのマスはすべて同じ見た目の妨害役)。隠れ状態16、Adam 0.005、30エポック、学習2,000個・テスト1,000個。シード2つの結果を別々に記した。50%付近は当てずっぽうの水準、つまり学習失敗である。

7オートエンコーダ

オートエンコーダ — 砂時計で縮めてから復元する

入力を狭い中間層(ボトルネック)に縮めてから、また元どおりに復元するように学習する。正解は要らない。入力そのものが正解である。ショウジョウバエのキノコ体は正反対に広げる。

ボトルネックのサイズ
表示

初心者のための解説

ボトルネックが狭ければ、最も重要なものだけを残さなければならない。この図の数列は、2種類の正弦波を混ぜてつくった16マスの断片である。活性化関数のない(線形の)オートエンコーダが学習で到達できる最良の結果は主成分分析(PCA)と同じであることが証明されているので [R6]、この図はその最適な結果を直接計算して示している。層を重ねた非線形のオートエンコーダは、PCAよりうまく縮めることができる [R7]。

系列モデルでは、RNNエンコーダが文1つを固定長のベクトルに縮め、RNNデコーダがそれを別の文に展開する構造(エンコーダ–デコーダ)として使われた [R5]。長い文を狭いボトルネック1つにすべて収めるのは難しいという限界が、次の回3-8のアテンションを生む。

8図の文法・系譜

ダイアグラムの文法と系譜 — 図の読み方、誰がいつ

本や論文によって図の記号は少しずつ違う。このシリーズの約束事を整理し、系列モデルがどんな問題を解きながら受け継がれてきたかを年代順に見る。

記号意味フィードフォワードRNNLSTMGRUオートエンコーダ
箱層1つ (重みの積 + 活性化関数)✓✓✓✓✓
→値が流れる方向前にだけ前 + 次の時点前 + 次の時点前 + 次の時点前にだけ
↺ ループ前の時点の値を再び受け取る—hhとch— (系列型はRNNを使う)
σ0〜1に押し込む扉(ゲート)——3個 (f, i, o)2個 (z, r)—
tanh−1〜1に押し込む活性化関数選択✓候補 gと出力候補 h̃選択
⊙ · ⊕要素ごとの積 · 足し算——✓✓—
砂時計狭くなってから広がる層のサイズ————✓
9選択ガイド

選択ガイド — 自分のデータにはまず何を試すか

3つの質問に答えると、出発点となるモデルを選ぶ。正解ではなく最初の候補である。最終的な決定は、いつも検証データで比較して行う(3-2 セクション9)。

① データ
② 系列の長さ
③ 処理の仕方

Colabコード — このページを自分で実行してみる

どちらのコードも、Colabに標準でインストールされているライブラリだけを使う。「ノートブック(.ipynb)をダウンロード」したあと、Colabでファイル → ノートブックをアップロードで開くか、コピーして新しいノートブックのセルに貼り付ける。

コード1 · RNNとLSTMをNumPyで1マスずつ計算するセクション4・5と連動 · numpy, matplotlib · CPU 1秒未満

セクション4の数1つだけのRNNと、セクション5の手で決めたLSTMを、同じ数列で計算する。隠れ状態、逆向きに伝わる勾配、最初の信号を反転したときの変化が、ページと同じ数字で出てくる。自分のデータに変えるには SEQだけを変える。

実行結果(2026-10-03実行、numpy 2.4 · matplotlib 3.10 · CPU)。計算に乱数がないので、いつ実行しても同じだ。
コード2 · KerasでSimpleRNN · LSTM · GRUを比較 — 「最初の信号を覚える」セクション6と連動 · tensorflow(Keras), numpy, matplotlib · CPU 約5分

すべてのマスが±1で、正解が最初のマスである数列を3つのモデルで学習する。長さ10 · 50 · 100、シード2つ。セクション6の下の表は、この出力からそのままつくられている。

実行結果(2026-10-03 実行、TensorFlow 2.21 · Keras 3.15 · CPU)。シード・バージョン・ハードウェアによって成功と失敗が入れ替わることがある。この変動そのものが、この実験が示すことの1つである。

AI応用プロンプト — このコードを出発点にする

ChatGPT、Qwen、ClaudeのようなAIアシスタントに貼り付けるプロンプトである。「コピー」を押すと、プロンプトのあとに選んだコードが一緒に付く。〔 〕の中を自分の状況に書き換えて使えばよい。

一緒に付けるコード

AIの答えは出発点にすぎない。提案された論文・数値・ライブラリ関数は、必ず原文と公式ドキュメントで確認する。コンテストや論文でAIの助けを借りた場合は、主催者や学術誌の規定に従って、使用した事実と範囲を明らかにする。

用語集

本文の黄色い点線の下線と同じ辞書である。シリーズ全体で同じ表記を使う。セクション名を押すと最初に出てきた場所へ移動する。

たとえ集 — そしてたとえが外れるところ

たとえは理解の第一歩だが、誤解の種にもなる。ショウジョウバエ・脳のたとえには強さを示した。直接 実際に同じことをしているという根拠がある · 部分 一部の性質だけが似ている · なし 対応するものが知られていない

概念日常のたとえショウジョウバエ・脳のたとえたとえが外れるところ
隠れ状態本を読みながら頭の中に積み上げるあらすじの要約部分的 ニューロン集団の持続的な活動脳の短期記憶がどんな回路で保たれるかは領域ごとに異なり、研究中である
展開・重み共有同じ社員が毎日同じ業務マニュアルで働くことなし脳は時刻ごとに同じ「コピー」をつくらない。展開は計算のための図である
勾配消失伝言ゲームで最初の言葉がぼやけていくことなし 誤差逆伝播法そのものが脳で確認されていない伝言ゲームは前へ進む信号がぼやけることだが、勾配消失は逆向きに進む学習信号が小さくなることである
セル状態工場のベルトコンベアなしベルトの上の物はそのまま運ばれるが、セル状態は忘却ゲートの分だけ毎マス少しずつ小さくなる
ゲート蛇口 (どれだけ開くか 0〜1)部分的 シナプス伝達を調節する神経調節物質 (例:ショウジョウバエのキノコ体のドーパミン)ドーパミンは学習(結合の強さの変化)に関わる。LSTMのゲートは毎マスの流れを決める計算であり、それ自体は学習ではない
GRUの更新ゲート天秤:古い記憶を減らすほど新しい内容を多く入れるなし実際の天秤と違い、マスごと、数ごとに異なる比率を使う
オートエンコーダのボトルネック長い会議を3行に要約してから、また書き広げること部分的 反対の例:キノコ体は狭めずに広げる要約と違い、オートエンコーダは「何が重要か」を人が決めず、復元誤差だけで決める

著者紹介と参考文献

E-1 著者紹介 · E-2 学術参考文献 · E-3 図の参考資料

E-1 著者紹介

Sangsun Ahn(株式会社M-Robo代表)

韓国電気安全公社、毎日経済新聞を経て、現在は毎日経済の社外ベンチャーである株式会社M-Roboを創業し、代表を務めている。株式会社M-Roboは報道機関の社内ベンチャーとして始まったメディアベンチャーで、国民日報にロボット記者(ストックボット)をサービスし、韓国インターネット振興院、韓国言論振興財団、韓国放送通信電波振興院などで多数のプロジェクトを手がけた。その後、自社のAIニュース新聞であるMoney-Roboをサービスしている。代表在任中にアジア・オープンデータ・ハッカソンで優勝し、データ起業分野での功績により行政安全部長官賞を2回受賞した。また、人工知能およびブロックチェーン分野で5件の特許の発明者・登録者である。著書に『AI犯罪と自己防衛』があり、フィンテック分野、統計学、人工知能分野について韓国技術教育大学校オンライン生涯教育院のeラーニングコンテンツを開発した。最終学位は経済学博士(東国大学校、ミクロ数理経済学)。国民大学校、湖西大学校など複数の大学でデータおよび人工知能に関する科目を講義している。詳しいプロフィール

講義

  • Sangsun Ahn (2025). 『ビジネスのためのデータサイエンス』講義案. 韓国オープンサイバー大学 人工知能融合学科.
  • Sangsun Ahn (2025). [K-デジタル] 人工知能 自然言語処理. STEP(スマート職業訓練プラットフォーム), 韓国技術教育大学校オンライン生涯教育院.
  • Sangsun Ahn (2024). [K-デジタル] フィンテックデータ分析の基礎. STEP(スマート職業訓練プラットフォーム), 韓国技術教育大学校オンライン生涯教育院.

STEPの講義へのリンク:link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
サイトのリニューアルにより接続しにくい場合は、www.step.or.krからアクセスしてください。

論文と発表

  • Sangsun Ahn (2025). 国民老後保障パネルデータを活用した世帯支出予測モデルの研究:人工知能モデルに基づくアプローチ. 『未来社会』, 16(2). 原文
  • Sangsun Ahn (2025). 国民老後保障パネルデータを活用した世帯支出予測モデルの研究:人工知能によるアプローチ. 国民老後保障パネル学術大会 発表資料(2025.05.13), 国民年金公団 国民年金研究院. 発表資料
  • Sangsun Ahn (2025). SNSテキストに基づく麻薬疑い取引検出アルゴリズムに関する研究:パターンおよび文脈分析を中心に. 『未来社会』, 16(1). 原文
  • Sangsun Ahn (2024). 金融分野の異常検知モデルのセキュリティのための統計ベースの敵対的データ対応策:実証分析とシミュレーション結果. 『未来社会』, 15(3). 原文
  • Sangsun Ahn (2024). 人工知能を活用した仮想キャラクターの特性に基づくSNS投稿検出ソリューション. 2024 Summer Newmedia Party ポスター発表(2024.06.19), ソウルメディア大学院大学.
  • Sangsun Ahn (2024). 労災パネルデータを活用した機械学習モデル. 第10回 労災保険パネル学術大会 ポスター発表(2024.05.17), 勤労福祉公団 勤労福祉研究院.
  • Sangsun Ahn (2024). 暗号資産の時系列データの分析と予測:時系列モデルと人工知能モデルの比較、改善点の提示. 『未来社会』, 15(1). 原文

E-2 学術参考文献

  1. [R1] Elman, J. L. (1990). Finding structure in time. Cognitive Science, 14(2), 179–211. — ヒーロー、セクション4・8
  2. [R2] Bengio, Y., Simard, P., & Frasconi, P. (1994). Learning long-term dependencies with gradient descent is difficult. IEEE Transactions on Neural Networks, 5(2), 157–166. doi:10.1109/72.279181 — セクション4・8
  3. [R3] Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation, 9(8), 1735–1780. doi:10.1162/neco.1997.9.8.1735 — ヒーロー、セクション5・8
  4. [R4] Gers, F. A., Schmidhuber, J., & Cummins, F. (2000). Learning to forget: Continual prediction with LSTM. Neural Computation, 12(10), 2451–2471. doi:10.1162/089976600300015015 — セクション5・8 (忘却ゲート)
  5. [R5] Cho, K., van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using RNN encoder–decoder for statistical machine translation. EMNLP 2014, 1724–1734. doi:10.3115/v1/D14-1179 — セクション6・7・8 (GRU、エンコーダ–デコーダ)
  6. [R6] Baldi, P., & Hornik, K. (1989). Neural networks and principal component analysis: Learning from examples without local minima. Neural Networks, 2(1), 53–58. 著者公開版 — セクション7・8
  7. [R7] Hinton, G. E., & Salakhutdinov, R. R. (2006). Reducing the dimensionality of data with neural networks. Science, 313(5786), 504–507. doi:10.1126/science.1127647 — セクション7・8
  8. [R8] Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. deeplearningbook.org — セクション3・4 (第10章 再帰型ニューラルネットワーク、BPTT)
  9. [R9] Caron, S. J. C., Ruta, V., Abbott, L. F., & Axel, R. (2013). Random convergence of olfactory inputs in the Drosophila mushroom body. Nature, 497(7447), 113–117. doi:10.1038/nature12063 — セクション7
  10. [R10] Dasgupta, S., Stevens, C. F., & Navlakha, S. (2017). A neural algorithm for a fundamental computing problem. Science, 358(6364), 793–796. bioRxiv プレプリント — セクション7

E-3 図の参考資料

  • セクション1の接近・遠ざかりの場面 — 3-1「AIはどう動くのか」セクション3・4の場面と同じ設定
  • セクション7のキノコ体の図 — 3-1 セクション5と同じ概略値(糸球体 約50種、ケニオン細胞 約2,000個)

教育者向けTIP

講師、実務OJT担当者、チューターのための運営ガイドである。時間は目安なので、実際の授業に合わせて調整する。

対象3-2を終えた大学生・社会人。センサー・ログ・文・時系列データを扱う実務者
前提知識3-2の誤差逆伝播法と勾配消失、シグモイド・tanh。3-3の重み共有を知っているとセクション3がわかりやすい
学習目標① フィードフォワードが順序を扱いにくい理由を2つの方法(平均、つなげる)で説明する ② RNNの隠れ状態と勾配消失を数字で示す ③ LSTM・GRUのゲートが何をするかを説明し、「構造が記憶を保持できる」と「学習がそれを見つける」を区別する
所要時間の目安読む 45〜55分 · アニメーション実演 25分 · Colab実習 30分 (コード1 10分、コード2 実行5分 + 解釈15分)

三つの運営案

講義形式 50分

概念中心

導入5分(セクション1の同じ場面)→ セクション2・3 10分 → セクション4 勾配消失 10分 → セクション5 最初の信号の反転 15分 → セクション6の下の実験表の討論 5分 → 確認問題 5分。

実務OJT 90分

業務への適用中心

セクション9の選択ガイドでチームのデータを分類 15分 → セクション4・5 20分 → コード2の実行・解釈 30分(「シードによって分かれる」をどう報告するか)→ セクション7 異常検知のアイデア 15分 → プロンプトカード 10分。

1対1のチュータリング

レベル別の進度

入門者はセクション1・3・5・9だけ。中級者には、セクション5のcの計算を手で3マス追わせた後でコード1のlstm関数と照らし合わせ、セクション6のパラメータの式を自分で導かせる。

セクション別の運営ポイント

セクション立ち止まって投げかける質問操作のコツ
1 1枚ずつ「3番目の場面だけを見て、接近かどうかわかるだろうか?」「今の場面1枚」で止めてから「順序」に切り替える
2 フィードフォワード「文の長さが毎回違ったら、つなげる方法はどうなるだろうか?」長さ3と5を交互に押して、入力のマス数が変わるのを見る
3 ループと展開「展開した箱5つの重みは何組あるだろうか?」畳んだ図 ↔ 展開した図を交互に押す
4 RNN「w_hを大きくすると記憶は長く残るのに、なぜ学習はより難しくなるのだろうか?」0.9 → 1.5に変えて、h12と勾配の数字を比べる
5 LSTM「最初の信号を反転すると、20マス後の記憶はどうなるだろうか?」b_f = 5で+1/−1を切り替えた後、b_f = 1に変えて違いを見る
6 GRU「ゲートのあるLSTM・GRUが、なぜT = 100で失敗したのだろうか?」実験表のシード0と1を並べて読む
7 オートエンコーダ「ボトルネックが4のとき誤差が急に小さくなる理由は?」ボトルネックを1 → 4に増やしながら緑の曲線を見た後、キノコ体の表示に切り替える
8 図の文法・系譜「1997年のLSTMと今日のLSTMは何が違うだろうか?」年表を押して2000年の忘却ゲートへ進める
9 選択ガイド「うちのチームのデータはどれに当たるだろうか?」参加者ごとに答えを選ばせた後、推薦が分かれるポイントを討論する

よくある誤解 Top 5

誤解正しい説明見せる場面
LSTMを使えば長い記憶の問題は解決するLSTMは長い記憶を保持できる構造である。学習がその重みを見つけるかどうかは、タスク・学習時間・初期化次第であるセクション6の下の実験表 (T = 100)
SimpleRNNは数マス進めば必ず忘れる初期化とタスクによってはかなり長く覚えていることもある。この実験ではT = 50まで両方のシードで成功したセクション6の下の実験表 (T = 50)
LSTMには最初から忘却ゲートがあった1997年の元の論文にはなく、2000年にGersらが加えたセクション8の年表
GRUはLSTMより常に速くて良いパラメータが約3/4と少ないだけで、性能はタスクによって異なる。この実験のT = 50ではGRUだけが失敗したセクション6
オートエンコーダは脳の記憶の仕組みをまねた狭めて要約する計算手法である。ショウジョウバエのキノコ体はむしろ広げるセクション7のキノコ体の表示

確認問題(解説は押して展開)

Q1. 数列を平均してフィードフォワードニューラルネットワークに入れると、どんな情報が失われるか? 例を挙げて説明せよ。

順序が失われる。100 → 110 → 120(上昇)と120 → 110 → 100(下降)はどちらも平均が110なので、ネットワークは区別できない。

Q2. 数1つだけのRNN h_t = tanh(x_t + 0.9·h_(t−1)) に1, 0, 0を入れると、h_1, h_2は?

h_1 = tanh(1) ≈ 0.762, h_2 = tanh(0.9 × 0.762) = tanh(0.686) ≈ 0.595.

Q3. 忘却ゲートが f = σ(5) ≈ 0.9933 で一定で、入力ゲートが完全に閉じているとすると、最初のマスで書き込んだセル状態は、20番目のマスで最初の値の何倍になるか?

19マスの間掛けられるので、0.9933の19乗 ≈ 0.880倍である。セクション5の実際の値(0.988 → 0.864、約0.875倍)が少し小さいのは、入力ゲートが完全には閉じておらず(0.007)、妨害信号が少しずつ漏れ込んだためである。この数列の妨害信号は−1が10個、+1が9個である。

Q4. 隠れ状態16、入力1のとき、SimpleRNN、LSTM、GRU(教科書の式)の再帰層のパラメータ数は?

1組 = 16 × (16 + 1) + 16 = 288。SimpleRNN 288、LSTM 4 × 288 = 1,152、GRU 3 × 288 = 864。KerasのデフォルトのGRUはバイアス48個を加えて912である。

Q5. コード2でLSTMはT = 100で両方のシードとも失敗した。「LSTMは長い記憶ができない」と結論づけてよいか?

よくない。セクション5のように重みを適切に決めれば、LSTMは長い記憶を保持できる。失敗は、30エポックのうちに勾配降下法がその重みを見つけられなかったという意味である。学習時間、学習率、データ量を変えて再び実験し、複数のシードで繰り返してはじめて結論を出せる。

Colab課題

基本

コード1のlstm関数で、入力ゲートを常に開けておくように(i = σ(5))変える。最初の信号を反転したときに20マス後のセル状態がどうなるかを計算し、入力ゲートの役割を2文で書く。

挑戦

コード2で、T = 100の失敗を成功に変える方法を1つ以上試す(エポックを増やす、学習率を変える、データを増やすなど)。シード3つ以上で結果を表にして報告し、何が効果的だったかを根拠を挙げて書く。

難易度の調整とさらに学ぶ

入門者セクション4の勾配グラフとセクション7・8は飛ばしても流れは途切れない。セクション5の「最初の信号の反転」1つだけを確実に見せる
発展セクション4の勾配の積の式を、隠れ状態のサイズが複数のとき(行列)に一般化し、固有値と勾配消失・爆発の関係を討論する [R2]
さらに学ぶSangsun Ahn『ビジネスのためのデータサイエンス』講義案(データサイエンス全般) · STEP [K-デジタル] 人工知能 自然言語処理(3-5・3-8と連動) · STEP [K-デジタル] フィンテックデータ分析の基礎(3-6と連動)
講師用資料確認問題の採点基準と課題の解答例は教育者用解答ページ (3-7)で見られる

お疲れさまでした!

「3-7 系列モデル」の回を最後まで読みました。研究室のメンバーがひと言ずつまとめます。

博士
博士記憶を持って1マスずつ歩くモデルたちに出会いましたね。
  • RNNは隠れ状態に記憶を入れて次のマスへ渡す
  • LSTMの扉(ゲート)は長い記憶を保持できる
  • 保持できることと、学習がそれを見つけ出すことは別である
助手
助手T = 100でまた50%だなんて!
ハエ研究員
ハエ研究員最初の信号…なんだっけ…