SlideShare a Scribd company logo
1 of 25
Download to read offline
Long Short-term Memory
2015-07-31
サイボウズラボ機械学習勉強会
西尾泰和
不定長の入力
自然言語で書かれた文章とか
お客さんがある操作をして別の操作をして…
という操作ログとか
そういう不定長の入力を扱いたい
2
Grid Long Short-term Memory
面白そうな論文 ”Grid Long Short-term Memory”
[Kalchbrenner+ 2015]
Long Short-term Memory(LSTM)を縦横につなげ
てやるとWikipediaの文字予測タスクでNN界最強
中国語英語翻訳でもphrase-based reference
systemよりはるかに性能がいい
これを理解するために遡っていく…
3
http://arxiv.org/abs/1507.01526
LONG SHORT-TERM MEMORY
今回解説するのはこれ、LSTM元祖の論文
“LONG SHORT-TERM MEMORY”
[Hochreiter&Schmidhuber 1997]
Recurrent Neural Networkの問題点を指摘し、
LSTMを考案した
4
http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf
Recurrent Neural Network
「不定長の入力を受け付けたい」
「ならばNNの中にループを作ろう」
直前の自分の活性を入力として受け取ることに
よって「記憶」のあるNNを実現、時系列入力と
して与えることで不定長入力を可能にする
5
Backpropagation Through Time
ループのあるNNをどうやって学習するか?
時間軸方向に展開して
仮想の多層ネットワークの学習として扱う
[Williams&Zipser 1992]
6
問題
勾配を何度も掛け算→エラー情報が消滅or発散
振動したり、学習にとても時間がかかったりする
エラー情報が消滅発散しないようにしよう!
そこで…
7
Constant Error Carrousel(CEC)
1つのニューロンが自分の出力を受け取ることを
考える、エラー情報が一定であるためには
・ニューロンの活性化関数が線形
・他の入力がないとき活性は一定
が必要。この論文では以下の設定を用いる:
・活性化関数は f(x) = x
・リカレント結合の重みは1.0
8
[Hochreiter&Schmidhuber 1997]
問題: Input Weight Conflict
(著者曰く勾配ベースの手法すべてにある問題)
ある情報を、必要になるまで覚えておきたい
つまり、その情報が来たときに
ニューロンの活性は変わってほしい
しかし、他の情報が来たときに
ニューロンの活性は変わってほしくない
変わるか変わらないかが重みの値で表現されてい
る仕組みでは、この衝突が学習の妨げになる
9
問題: Output Weight Conflict
出力に関しても同様に
「覚えておいた値を使う」と
「必要になるまで使わない」とを
出力重みの値で表現するのはConflict
10
解決策
書くのか書かないのか、読むのか読まないのか、
「記憶」に対する読み書きオペレーションが
重みという一つのスカラー値で決まるのではなく
入力に基づいてコントロールされるメカニズムが
必要である
そこで…
11
LSTM
記憶をつかさどるCECの前後に
入出力を管理するゲート素子を配置
12
Memory Cell Block
1個のメモリセルは「ニューロン1個分」の1次元
の情報しか記憶できない
→複数のメモリセルでゲートの重みを共有する
一時に複数の次元を記憶できるようになる
13
Abuse Problem
学習序盤は、メモリセルを使わなくても
誤差が減少する
なのでメモリセルを記憶以外のこと
(定数オフセットなど)に使ってしまう問題
が起きる
一度そういう変な学習をすると、
解放されるまでに時間がかかる
14
Abuse Problem
複数のメモリーセルが同じ内容を記憶してしまう
問題も起きる
(Q: 出力に影響はないのでは? A: せっかくのメモ
リセルが有効活用されないのが問題)
15
解決策
(1)ネットワークの学習が止まった時に
ちょっとずつメモリーセルを足す
(2)出力ゲートをマイナスのオフセットで初期化
出力ゲートが「出力OK」のシグナルを出せるよ
うになるまで学習ステップが余計に必要になる
ことで序盤にメモリセルが使われることを防ぐ
16
Internal state drift
メモリセルへの入力が正ばかり(または負)
だと、メモリセルの値が一方的に大きくなり
勾配が消滅する(活性化関数がシグモイドとかだ
と問題ないんだけど今回線形なんで)
序盤の間、入力ゲートの出力が0に近づくように
バイアスする
(学習がしばらく進むと他のニューロンがドリフ
トを吸収するので、それまでの間耐え忍ぶ)
17
Forget Gate
[Gers+ 1999] “Learning to Forget: Continual
Prediction with”
従来のLSTMは手動で記憶をリセットしていたが
それを自動でリセットできるようにしたよ、
という論文
http://citeseerx.ist.psu.edu/viewdoc/download?do
i=10.1.1.55.5709&rep=rep1&type=pdf
18
Forget Gate
↑これを ↑こうする
これがLSTMの基本形 [Gers+ 1999]
19
実装
[Hochreiter&Schmidhuber 1997]のp.23から
ALGORITHM DETAILS
Tomonari MASADA先生による数式と実装*
実装はCで966行
Chainerでの実装** 228行
RNNLIBっていうC++実装もあるらしい。
単に使うだけならこれがよい??
20
* http://diversity-mining.jp/wp/?p=407
** https://github.com/pfnet/chainer/blob/master/chainer/functions/lstm.py
数式読解
LSTMによる隠れ層がN層重なっている構造
21
数式読解
Wは重み、下の添え字xιなどが「入力xから入力
ゲートιへの重み」をあらわしており、上の添え
字nが「n層目の重み」をあらわしている
𝑊ℎ− ι のハイフンはマイナスではなく「前の隠れ
層h-から入力ゲートιへの重み」という意味
22
数式読解
𝜄 𝑡
𝑛
はn層目の時刻tの入力ゲートの出力で、Dn次元
のベクトル
ι、φ、ωは重みが違うだけでほぼ同じ式。入力、
下の隠れ層の出力、自分の1時刻前の出力、CEC
の出力、が使われている。
23
数式読解
ωと小文字のwは別物。CECの出力ηを使う際に、
同じ層の他のLSTMのηは使わないので重み行列が
対角行列になり、その対角成分だけ取ってベクト
ルになってるのでWが小文字になっている。
要素積してるのもベクトル形で書いたから。対角
行列なら普通の行列積になる。
24
要するにこういうこと
元論文ではゲー
トはメモリセル
の外にある風
だったが、メモ
リセル1個につ
き1個ゲートが
あって、そのメ
モリセルの内部
状態(青線)だけ
は見えるような
ので中に描いた
25

More Related Content

What's hot

What's hot (20)

【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
 
[DL輪読会]MetaFormer is Actually What You Need for Vision
[DL輪読会]MetaFormer is Actually What You Need for Vision[DL輪読会]MetaFormer is Actually What You Need for Vision
[DL輪読会]MetaFormer is Actually What You Need for Vision
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video Processing (NeRF...
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video  Processing (NeRF...[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video  Processing (NeRF...
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video Processing (NeRF...
 
自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)
 
動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット
 
スパースモデリング入門
スパースモデリング入門スパースモデリング入門
スパースモデリング入門
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
 
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
 
畳み込みLstm
畳み込みLstm畳み込みLstm
畳み込みLstm
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations
 
3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)
 
【DL輪読会】Dropout Reduces Underfitting
【DL輪読会】Dropout Reduces Underfitting【DL輪読会】Dropout Reduces Underfitting
【DL輪読会】Dropout Reduces Underfitting
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
 
【宝くじ仮説】The Lottery Ticket Hypothesis: Finding Small, Trainable Neural Networks
【宝くじ仮説】The Lottery Ticket Hypothesis: Finding Small, Trainable Neural Networks【宝くじ仮説】The Lottery Ticket Hypothesis: Finding Small, Trainable Neural Networks
【宝くじ仮説】The Lottery Ticket Hypothesis: Finding Small, Trainable Neural Networks
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識
 
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
 

Viewers also liked (6)

論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
 
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields [DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
 
LSTM (Long short-term memory) 概要
LSTM (Long short-term memory) 概要LSTM (Long short-term memory) 概要
LSTM (Long short-term memory) 概要
 
Recurrent Neural Networks
Recurrent Neural NetworksRecurrent Neural Networks
Recurrent Neural Networks
 
深層学習時代の自然言語処理
深層学習時代の自然言語処理深層学習時代の自然言語処理
深層学習時代の自然言語処理
 
論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models
 

More from nishio

More from nishio (20)

量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング
 
夏プロ報告
夏プロ報告夏プロ報告
夏プロ報告
 
ITと経営
ITと経営ITと経営
ITと経営
 
部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI
 
交渉力について
交渉力について交渉力について
交渉力について
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道
 
組織横断型研究室構想
組織横断型研究室構想組織横断型研究室構想
組織横断型研究室構想
 
2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義
 
強化学習その5
強化学習その5強化学習その5
強化学習その5
 
良いアイデアを出すための方法
良いアイデアを出すための方法良いアイデアを出すための方法
良いアイデアを出すための方法
 
強化学習その4
強化学習その4強化学習その4
強化学習その4
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
 
強化学習その2
強化学習その2強化学習その2
強化学習その2
 
強化学習その1
強化学習その1強化学習その1
強化学習その1
 
線形?非線形?
線形?非線形?線形?非線形?
線形?非線形?
 
機械学習キャンバス0.1
機械学習キャンバス0.1機械学習キャンバス0.1
機械学習キャンバス0.1
 
首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分
 
勾配降下法の 最適化アルゴリズム
勾配降下法の最適化アルゴリズム勾配降下法の最適化アルゴリズム
勾配降下法の 最適化アルゴリズム
 
Wifiで位置推定
Wifiで位置推定Wifiで位置推定
Wifiで位置推定
 
ESP8266EXで位置推定
ESP8266EXで位置推定ESP8266EXで位置推定
ESP8266EXで位置推定
 

Long Short-term Memory