長短期記憶ニューラルネットワーク(LSTM)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-戻る([[ニューラルネットワーク]]、[[言語処理(AI)]])
--一般的なフツーの[[ニューラルネットワーク]]
---[[順伝播型ニューラルネットワーク(FNN)>ニューラルネッ...
---[[ディープニューラルネットワーク(DNN)>ニューラルネッ...
---[[畳み込みニューラルネットワーク(CNN)]]
--[[再帰型ニューラルネットワーク(RNN)]]
---長短期記憶ニューラルネットワーク(LSTM)
---[[RNN Encoder-Decoder(Sequence-to-Sequence)]]
--[[生成モデル>機械学習の理論#p3f4e303]]系の[[ニューラル...
---[[自己符号化器(AE:オートエンコーダ)]]
---[[テキスト生成系(Transformer系)]]
---[[敵対的生成ネットワーク(GAN)]]
*目次 [#acc27eb6]
#contents
*概要 [#pd1c328c]
-(Long short-term memory: LSTM)
-memoryと言うがハード的なメモリが実装されているということ...
-ゲートという仕組みを使用して長期的特徴と短期的特徴を学習...
**特徴 [#t49e2d07]
-シンプルな[[RNN>再帰型ニューラルネットワーク(RNN)]]のh...
(長文を読んで要約をするというようなタスクには記憶力が足...
-LSTMでは、ゲートという仕組みを使用してコレを補い、~
長期的特徴と短期的特徴を学習することができる。
-欠点は計算量が多いこと。
**構造 [#i7fae4ca]
***そもそもゲートとはなにか? [#se7a0be3]
-LSTMには回路中にゲートというモノが含まれる。
--コレは[[RNN>再帰型ニューラルネットワーク(RNN)]]系の回...
--この制御に使うベクトルをXゲート・ベクトルと呼ぶ。
-このXゲート・ベクトルの
--計算方法は、どれも、[[RNN>再帰型ニューラルネットワーク...
(ただし、学習結果で、Wr, Wz, Wf, Wi, Woのゲート毎の重み...
---x と ht-1 の Wx との全結合(線形変換)の結果を足す(xW...
---活性化関数はtanhではなくsigmoid(σ)で、値は0~1の値に...
--値は、出力に、どの程度、前情報(前出力)を渡すか?を、~
情報ベクトルとXゲート・ベクトルのアダマール積(要素毎の積...
***GRU (Gated Recurrent Unit) [#la831b6b]
-ゲート付き回帰型ユニット
-LSTMの簡略版で、
--長期的特徴と短期的特徴を学習するための2つのゲートを採用
--前情報を忘れる程度を制御して長期記憶を実現する。
-リセット・ゲートと更新ゲート
--リセット・ゲート:前情報を減衰する程度を決定する。
--更新ゲート:前情報と現情報の配合比率を決定する。
***LSTM (Long short-term memory) [#o3c8be39]
-長短期記憶ニューラルネットワーク
-長・短期記憶
--長期的特徴と短期的特徴を学習できるゲートを使用し、~
ht(出力)に加え、Ct(出力コンテキスト)を引き継ぐ(ht-1...
--長期的特徴と短期的特徴を学習するための3つのゲートを採用
--同様に、前情報を忘れる程度を制御して長期記憶を実現する。
-3つのゲートを追加
--忘却ゲート:入力コンテキストを含める程度を決定する。
--入力ゲート:現コンテキストを含める程度を決定する。
--(入力&現コンテキストから出力コンテキストを計算)
--出力ゲート:出力コンテキストから短期記憶を抜き出す。
**LSTMでできること [#g9857ef4]
≒ [[RNNでできること>再帰型ニューラルネットワーク(RNN)#n...
*詳細 [#s0a94de2]
**GRUの仕組みと構造の説明 [#reea7d9e]
***数式と構造 [#jbdaf0a6]
|数式|GRUセルの構造|h
|#ref(gru-overview-0.png,left,nowrap,0,30%)|#ref(gru-over...
|※ 「*」はアダマール積と言う要素ごとの積。|~|
|BGCOLOR(#cccccc):リセット・ゲート|BGCOLOR(#cccccc):更新...
|#ref(gru-overview-2.png,left,nowrap,2,30%)|#ref(gru-over...
|>|https://axa.biopapyrus.jp/deep-learning/rnn/gru.html|
***要素の説明 [#h67928fa]
-ゲート
--リセット・ゲート:~ht(現情報)の計算をする際に、~
ht-1(前情報、前出力)をどれだけ減衰するかを決定する。
---入力と重みを使ってrt(リセット・ゲート・ベクトル)を計...
---\~ht(現情報)の計算の回路にrt(リセット・ゲート・ベク...
--更新ゲート:ht(出力)の計算をする際に、~
ht-1(前情報、前出力)と~ht(現情報)の配合比率を決定する。
---入力と重みを使ってzt(更新ゲート・ベクトル)を計算する。
---ht(出力)の計算の回路にzt(更新ゲート・ベクトル)を流...
-Xゲート・ベクトル
--rtは、リセット・ゲート・ベクトルと呼ばれる。
---式は、[[Xゲート・ベクトルの計算方法>#se7a0be3]]で
---\~ht(現情報)を算出する式での使われ方の観点からは、~
ht-1(前情報、前出力)を、どの程度減衰させるかを決定する。
--ztは、更新ゲート・ベクトルと呼ばれる。
---式は、[[Xゲート・ベクトルの計算方法>#se7a0be3]]で
---ht(出力)の式での使われ方の観点からは、~
ht-1(前情報、前出力)と~ht(現情報)の配合比率を決定する。
-情報ベクトル
--\~ht(現情報)ベクトルは、
---式の意味としては、~
・活性化関数含め、ほとんど[[RNN>再帰型ニューラルネットワ...
・rtによってht-1(前情報、前出力)が減衰される点が異なる。
---ht(出力)の式での使われ方の観点からは、~
ht-1(前情報、前出力)、~ht(現情報)と、ht(出力)に配合...
--ht(出力)は、~
計算済みのht-1(前情報、前出力)と、~ht(現情報)を、ztの...
---ztが0に近いと、ht-1(前情報、前出力)が強調される(文...
---ztが1に近いと、~ht(現情報)が強調される(文脈に変化...
**LSTMの仕組みと構造の説明 [#u3c58af4]
***数式と構造 [#h390b88e]
htだけでなくCt(コンテキスト)も次の再帰的な入力に引き継...
|数式|セルの構造|h
|#ref(lstm-overview-0.png,left,nowrap,0,80%)|#ref(lstm-ov...
|※ 「*」はアダマール積と言う要素ごとの積。|~|
|忘却ゲート|入力ゲート|h
|#ref(lstm-overview-2.png,left,nowrap,2,80%)|#ref(lstm-ov...
|コンテキスト計算|出力ゲート|h
|#ref(lstm-overview-4.png,left,nowrap,4,80%)|#ref(lstm-ov...
***要素の説明 [#rcdd3f80]
-ゲート
--忘却ゲート:Ct(出力コンテキスト)の計算をする際に、~
Ct−1(入力コンテキスト)をどの程度含めるか?を決定する。
---入力と重みを使ってft(忘却ゲート・ベクトル)を計算する。
---Ct(出力コンテキスト)の計算の回路にft(忘却ゲート・ベ...
--入力ゲート:Ct(出力コンテキスト)の計算をする際に、~
~Ct(現コンテキスト)をどの程度含めるか?を決定する。
---入力と重みを使ってit(入力ゲート・ベクトル)を計算する。
---Ct(出力コンテキスト)の計算の回路にit(入力ゲート・ベ...
--出力ゲート:ht(出力)の計算をする際に、~
Ct(出力コンテキスト)中から短期記憶を抜き出す。
---入力と重みを使ってot(出力ゲート・ベクトル)を計算する。
---ht(出力)の計算の回路にot(出力ゲート・ベクトル)を流...
-Xゲート・ベクトル
--ftは、忘却ゲート・ベクトルと呼ばれる。
---式は、Xゲート・ベクトルの計算方法で
---Ct(コンテキスト)の式での使われ方の観点からは、~
Ct(コンテキスト)に、Ct-1(入力コンテキスト)を、どの程...
--itは、入力ゲート・ベクトルと呼ばれる。
---式は、Xゲート・ベクトルの計算方法で
---Ct(コンテキスト)の式での使われ方の観点からは、~
Ct(コンテキスト)に、~Ct(現コンテキスト)を、どの程度含...
--otは、出力ゲート・ベクトルと呼ばれる。
---式は、Xゲート・ベクトルの計算方法で
---ht(出力の短期記憶)の式での使われ方の観点からは、~
Ct(コンテキスト)中の短期記憶を抜き出す。
-情報ベクトル
--\~Ctは、新コンテキストで、
---式の意味としては、活性化関数含め、ほとんど[[RNN>再帰型...
---Ct(コンテキスト)の式での使われ方の観点からは、~
Ct(コンテキスト)を算出する際にCt-1(旧コンテキスト)に...
\~Ct(新コンテキスト)を、どの程度含めるか?を決める。
--Ctは、長期記憶(コンテキスト)で以下の2つの計算結果を...
---ft(忘却ゲート・ベクトル)とCt-1(旧コンテキスト)のア...
---it(入力ゲート・ベクトル)と~Ct(新コンテキスト)のア...
--ht(出力の短期記憶)は、
---Ct(コンテキスト)中の短期記憶を抜き出したもの
---Ct(コンテキスト)とot(出力ゲート・ベクトル)のアダマ...
**拡張形式 [#q6dc4563]
***Bidirectional LSTM [#xbfd6b86]
-双方向LSTM
-前後の文脈を加味する。
--通常のLSTMは前の文脈しか加味しない。
--例えば、修飾された主語が(後ろの)動詞を見れば人名だと...
-構成
--forward LSTM~
普通のLSTM
--backward LSTM~
後ろから読むLSTM
-出力~
以下2つの出力を利用すれば前後のコンテキストを考慮すること...
→ ← ┌ → ┐
hi= concat(hi, hi) = │ hi │
│ ← │
└ hi ┘
--forward LSTMの出力
→ →
ht ≒ yt
--backward LSTMの出力
← ←
ht ≒ yt
-用例
--[[Attention(RNN search)>RNN Encoder-Decoder(Sequence...
***Deep Bidirectional LSTM [#z69315b2]
-多層双方向LSTM
*参考 [#k9e4c67e]
-深層学習についてのレポート(RNN編)~
https://www.osscons.jp/joho108j0-537/#_537
**[[ゼロつく2>言語処理(AI)#s380107d]] [#s0a205b4]
**YouTube [#j8a7799c]
***[[AIcia Solid Project>再帰型ニューラルネットワーク(RN...
終了行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-戻る([[ニューラルネットワーク]]、[[言語処理(AI)]])
--一般的なフツーの[[ニューラルネットワーク]]
---[[順伝播型ニューラルネットワーク(FNN)>ニューラルネッ...
---[[ディープニューラルネットワーク(DNN)>ニューラルネッ...
---[[畳み込みニューラルネットワーク(CNN)]]
--[[再帰型ニューラルネットワーク(RNN)]]
---長短期記憶ニューラルネットワーク(LSTM)
---[[RNN Encoder-Decoder(Sequence-to-Sequence)]]
--[[生成モデル>機械学習の理論#p3f4e303]]系の[[ニューラル...
---[[自己符号化器(AE:オートエンコーダ)]]
---[[テキスト生成系(Transformer系)]]
---[[敵対的生成ネットワーク(GAN)]]
*目次 [#acc27eb6]
#contents
*概要 [#pd1c328c]
-(Long short-term memory: LSTM)
-memoryと言うがハード的なメモリが実装されているということ...
-ゲートという仕組みを使用して長期的特徴と短期的特徴を学習...
**特徴 [#t49e2d07]
-シンプルな[[RNN>再帰型ニューラルネットワーク(RNN)]]のh...
(長文を読んで要約をするというようなタスクには記憶力が足...
-LSTMでは、ゲートという仕組みを使用してコレを補い、~
長期的特徴と短期的特徴を学習することができる。
-欠点は計算量が多いこと。
**構造 [#i7fae4ca]
***そもそもゲートとはなにか? [#se7a0be3]
-LSTMには回路中にゲートというモノが含まれる。
--コレは[[RNN>再帰型ニューラルネットワーク(RNN)]]系の回...
--この制御に使うベクトルをXゲート・ベクトルと呼ぶ。
-このXゲート・ベクトルの
--計算方法は、どれも、[[RNN>再帰型ニューラルネットワーク...
(ただし、学習結果で、Wr, Wz, Wf, Wi, Woのゲート毎の重み...
---x と ht-1 の Wx との全結合(線形変換)の結果を足す(xW...
---活性化関数はtanhではなくsigmoid(σ)で、値は0~1の値に...
--値は、出力に、どの程度、前情報(前出力)を渡すか?を、~
情報ベクトルとXゲート・ベクトルのアダマール積(要素毎の積...
***GRU (Gated Recurrent Unit) [#la831b6b]
-ゲート付き回帰型ユニット
-LSTMの簡略版で、
--長期的特徴と短期的特徴を学習するための2つのゲートを採用
--前情報を忘れる程度を制御して長期記憶を実現する。
-リセット・ゲートと更新ゲート
--リセット・ゲート:前情報を減衰する程度を決定する。
--更新ゲート:前情報と現情報の配合比率を決定する。
***LSTM (Long short-term memory) [#o3c8be39]
-長短期記憶ニューラルネットワーク
-長・短期記憶
--長期的特徴と短期的特徴を学習できるゲートを使用し、~
ht(出力)に加え、Ct(出力コンテキスト)を引き継ぐ(ht-1...
--長期的特徴と短期的特徴を学習するための3つのゲートを採用
--同様に、前情報を忘れる程度を制御して長期記憶を実現する。
-3つのゲートを追加
--忘却ゲート:入力コンテキストを含める程度を決定する。
--入力ゲート:現コンテキストを含める程度を決定する。
--(入力&現コンテキストから出力コンテキストを計算)
--出力ゲート:出力コンテキストから短期記憶を抜き出す。
**LSTMでできること [#g9857ef4]
≒ [[RNNでできること>再帰型ニューラルネットワーク(RNN)#n...
*詳細 [#s0a94de2]
**GRUの仕組みと構造の説明 [#reea7d9e]
***数式と構造 [#jbdaf0a6]
|数式|GRUセルの構造|h
|#ref(gru-overview-0.png,left,nowrap,0,30%)|#ref(gru-over...
|※ 「*」はアダマール積と言う要素ごとの積。|~|
|BGCOLOR(#cccccc):リセット・ゲート|BGCOLOR(#cccccc):更新...
|#ref(gru-overview-2.png,left,nowrap,2,30%)|#ref(gru-over...
|>|https://axa.biopapyrus.jp/deep-learning/rnn/gru.html|
***要素の説明 [#h67928fa]
-ゲート
--リセット・ゲート:~ht(現情報)の計算をする際に、~
ht-1(前情報、前出力)をどれだけ減衰するかを決定する。
---入力と重みを使ってrt(リセット・ゲート・ベクトル)を計...
---\~ht(現情報)の計算の回路にrt(リセット・ゲート・ベク...
--更新ゲート:ht(出力)の計算をする際に、~
ht-1(前情報、前出力)と~ht(現情報)の配合比率を決定する。
---入力と重みを使ってzt(更新ゲート・ベクトル)を計算する。
---ht(出力)の計算の回路にzt(更新ゲート・ベクトル)を流...
-Xゲート・ベクトル
--rtは、リセット・ゲート・ベクトルと呼ばれる。
---式は、[[Xゲート・ベクトルの計算方法>#se7a0be3]]で
---\~ht(現情報)を算出する式での使われ方の観点からは、~
ht-1(前情報、前出力)を、どの程度減衰させるかを決定する。
--ztは、更新ゲート・ベクトルと呼ばれる。
---式は、[[Xゲート・ベクトルの計算方法>#se7a0be3]]で
---ht(出力)の式での使われ方の観点からは、~
ht-1(前情報、前出力)と~ht(現情報)の配合比率を決定する。
-情報ベクトル
--\~ht(現情報)ベクトルは、
---式の意味としては、~
・活性化関数含め、ほとんど[[RNN>再帰型ニューラルネットワ...
・rtによってht-1(前情報、前出力)が減衰される点が異なる。
---ht(出力)の式での使われ方の観点からは、~
ht-1(前情報、前出力)、~ht(現情報)と、ht(出力)に配合...
--ht(出力)は、~
計算済みのht-1(前情報、前出力)と、~ht(現情報)を、ztの...
---ztが0に近いと、ht-1(前情報、前出力)が強調される(文...
---ztが1に近いと、~ht(現情報)が強調される(文脈に変化...
**LSTMの仕組みと構造の説明 [#u3c58af4]
***数式と構造 [#h390b88e]
htだけでなくCt(コンテキスト)も次の再帰的な入力に引き継...
|数式|セルの構造|h
|#ref(lstm-overview-0.png,left,nowrap,0,80%)|#ref(lstm-ov...
|※ 「*」はアダマール積と言う要素ごとの積。|~|
|忘却ゲート|入力ゲート|h
|#ref(lstm-overview-2.png,left,nowrap,2,80%)|#ref(lstm-ov...
|コンテキスト計算|出力ゲート|h
|#ref(lstm-overview-4.png,left,nowrap,4,80%)|#ref(lstm-ov...
***要素の説明 [#rcdd3f80]
-ゲート
--忘却ゲート:Ct(出力コンテキスト)の計算をする際に、~
Ct−1(入力コンテキスト)をどの程度含めるか?を決定する。
---入力と重みを使ってft(忘却ゲート・ベクトル)を計算する。
---Ct(出力コンテキスト)の計算の回路にft(忘却ゲート・ベ...
--入力ゲート:Ct(出力コンテキスト)の計算をする際に、~
~Ct(現コンテキスト)をどの程度含めるか?を決定する。
---入力と重みを使ってit(入力ゲート・ベクトル)を計算する。
---Ct(出力コンテキスト)の計算の回路にit(入力ゲート・ベ...
--出力ゲート:ht(出力)の計算をする際に、~
Ct(出力コンテキスト)中から短期記憶を抜き出す。
---入力と重みを使ってot(出力ゲート・ベクトル)を計算する。
---ht(出力)の計算の回路にot(出力ゲート・ベクトル)を流...
-Xゲート・ベクトル
--ftは、忘却ゲート・ベクトルと呼ばれる。
---式は、Xゲート・ベクトルの計算方法で
---Ct(コンテキスト)の式での使われ方の観点からは、~
Ct(コンテキスト)に、Ct-1(入力コンテキスト)を、どの程...
--itは、入力ゲート・ベクトルと呼ばれる。
---式は、Xゲート・ベクトルの計算方法で
---Ct(コンテキスト)の式での使われ方の観点からは、~
Ct(コンテキスト)に、~Ct(現コンテキスト)を、どの程度含...
--otは、出力ゲート・ベクトルと呼ばれる。
---式は、Xゲート・ベクトルの計算方法で
---ht(出力の短期記憶)の式での使われ方の観点からは、~
Ct(コンテキスト)中の短期記憶を抜き出す。
-情報ベクトル
--\~Ctは、新コンテキストで、
---式の意味としては、活性化関数含め、ほとんど[[RNN>再帰型...
---Ct(コンテキスト)の式での使われ方の観点からは、~
Ct(コンテキスト)を算出する際にCt-1(旧コンテキスト)に...
\~Ct(新コンテキスト)を、どの程度含めるか?を決める。
--Ctは、長期記憶(コンテキスト)で以下の2つの計算結果を...
---ft(忘却ゲート・ベクトル)とCt-1(旧コンテキスト)のア...
---it(入力ゲート・ベクトル)と~Ct(新コンテキスト)のア...
--ht(出力の短期記憶)は、
---Ct(コンテキスト)中の短期記憶を抜き出したもの
---Ct(コンテキスト)とot(出力ゲート・ベクトル)のアダマ...
**拡張形式 [#q6dc4563]
***Bidirectional LSTM [#xbfd6b86]
-双方向LSTM
-前後の文脈を加味する。
--通常のLSTMは前の文脈しか加味しない。
--例えば、修飾された主語が(後ろの)動詞を見れば人名だと...
-構成
--forward LSTM~
普通のLSTM
--backward LSTM~
後ろから読むLSTM
-出力~
以下2つの出力を利用すれば前後のコンテキストを考慮すること...
→ ← ┌ → ┐
hi= concat(hi, hi) = │ hi │
│ ← │
└ hi ┘
--forward LSTMの出力
→ →
ht ≒ yt
--backward LSTMの出力
← ←
ht ≒ yt
-用例
--[[Attention(RNN search)>RNN Encoder-Decoder(Sequence...
***Deep Bidirectional LSTM [#z69315b2]
-多層双方向LSTM
*参考 [#k9e4c67e]
-深層学習についてのレポート(RNN編)~
https://www.osscons.jp/joho108j0-537/#_537
**[[ゼロつく2>言語処理(AI)#s380107d]] [#s0a205b4]
**YouTube [#j8a7799c]
***[[AIcia Solid Project>再帰型ニューラルネットワーク(RN...
ページ名: