teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

微修正

2019/10/29 23:14

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -5,10 +5,10 @@
5
5
  ----
6
6
  (追記)
7
7
 
8
- 質問に貼ってあるソースの動きは。
8
+ 質問に貼ってあるソースの動きはこうです
9
9
 
10
10
  1層目のLSTMの時刻t0の入力x0は「画像の一番上の28ピクセル」に対応する「28個の数値」を、28次元のベクトルだと見たものです。
11
- LSTMにx0を入れると内部状態を更新してh0になります。
11
+ LSTMにx0を入れると内部状態(128次元ベクトル)を更新してh0になります。(と同時にこれが出力でもあります。後述)
12
12
 
13
13
  1層目のLSTMの時刻t1の入力x1は「画像の上から2番目の28ピクセル」に対応する「28個の数値」を、28次元のベクトルだと見たものです。
14
14
  LSTMは1つ前の内部状態h0と、x1から、内部状態を更新してh1になります。
@@ -20,7 +20,7 @@
20
20
 
21
21
  `return_sequences=True`が指定してありますから、1層目のLSTMの出力は、h0からh27の128次元のベクトル28個をconcatenateしたものです。
22
22
 
23
- 2層目のLSTMの入力は128次元のベクトルの28ステップの時系列データとなります。
23
+ したがって、2層目のLSTMの入力は128次元のベクトルの28ステップの時系列データとなります。
24
24
 
25
25
  ----
26
26
 
@@ -37,7 +37,7 @@
37
37
 
38
38
  `return_sequences=True`が指定してありますから、2層目のLSTMの出力は、h0からh27の128次元のベクトル28個をconcatenateしたものです。
39
39
 
40
- 3層目のLSTMの入力も2層目と同様、128次元のベクトルの28ステップの時系列データとなります。
40
+ したがって、3層目のLSTMの入力も2層目と同様、128次元のベクトルの28ステップの時系列データとなります。
41
41
 
42
42
  ----
43
43
 
@@ -49,6 +49,8 @@
49
49
 
50
50
  `return_sequences=False`が指定してありますから、3層目のLSTMの出力は、**最後の**内部状態ベクトルh27です。つまり128次元のベクトルを出力します。
51
51
 
52
+ したがって、最後の全結合層の入力は128次元のベクトルになります。
53
+
52
54
  ----
53
55
 
54
56
  最後に、128次元の入力から全結合層につながって、10次元のベクトルをsoftmax関数を通して出力することでクラス分類の結果としています。

2

些細

2019/10/29 23:14

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -5,6 +5,8 @@
5
5
  ----
6
6
  (追記)
7
7
 
8
+ 質問に貼ってあるソースの動きは。
9
+
8
10
  1層目のLSTMの時刻t0の入力x0は「画像の一番上の28ピクセル」に対応する「28個の数値」を、28次元のベクトルだと見たものです。
9
11
  LSTMにx0を入れると内部状態を更新してh0になります。
10
12
 

1

追記

2019/10/29 23:09

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -1,3 +1,52 @@
1
1
  「28次元のベクトル」が変化していく時系列データを「28ステップ分」記録したもの
2
2
 
3
- だと思ってLSTMは処理しています。
3
+ だと思ってLSTMは処理しています。
4
+
5
+ ----
6
+ (追記)
7
+
8
+ 1層目のLSTMの時刻t0の入力x0は「画像の一番上の28ピクセル」に対応する「28個の数値」を、28次元のベクトルだと見たものです。
9
+ LSTMにx0を入れると内部状態を更新してh0になります。
10
+
11
+ 1層目のLSTMの時刻t1の入力x1は「画像の上から2番目の28ピクセル」に対応する「28個の数値」を、28次元のベクトルだと見たものです。
12
+ LSTMは1つ前の内部状態h0と、x1から、内部状態を更新してh1になります。
13
+
14
+ (略)
15
+
16
+ 1層目のLSTMの時刻t27の入力x27は「画像の一番下の28ピクセル」に対応する「28個の数値」を、28次元のベクトルだと見たものです。
17
+ LSTMは1つ前の内部状態h26と、x27から、内部状態を更新してh27になります。
18
+
19
+ `return_sequences=True`が指定してありますから、1層目のLSTMの出力は、h0からh27の128次元のベクトル28個をconcatenateしたものです。
20
+
21
+ 2層目のLSTMの入力は128次元のベクトルの28ステップの時系列データとなります。
22
+
23
+ ----
24
+
25
+ 2層目のLSTMの時刻t0の入力x0は「1層目のLSTMの時刻0の内部状態ベクトル」です。
26
+ LSTMにx0を入れると内部状態を更新してh0になります。
27
+
28
+ 2層目のLSTMの時刻t1の入力x1は「1層目のLSTMの時刻1の内部状態ベクトル」です。
29
+ LSTMは1つ前の内部状態h0と、x1から、内部状態を更新してh1になります。
30
+
31
+ (略)
32
+
33
+ 2層目のLSTMの時刻t27の入力x27は「1層目のLSTMの時刻27の内部状態ベクトル」です。
34
+ LSTMは1つ前の内部状態h26と、x27から、内部状態を更新してh27になります。
35
+
36
+ `return_sequences=True`が指定してありますから、2層目のLSTMの出力は、h0からh27の128次元のベクトル28個をconcatenateしたものです。
37
+
38
+ 3層目のLSTMの入力も2層目と同様、128次元のベクトルの28ステップの時系列データとなります。
39
+
40
+ ----
41
+
42
+ 3層目のLSTMの時刻t0の入力x0は「2層目のLSTMの時刻0の内部状態ベクトル」です。
43
+ LSTMにx0を入れると内部状態を更新してh0になります。
44
+ (略)
45
+ 3層目のLSTMの時刻t27の入力x27は「2層目のLSTMの時刻27の内部状態ベクトル」です。
46
+ LSTMは1つ前の内部状態h26と、x27から、内部状態を更新してh27になります。
47
+
48
+ `return_sequences=False`が指定してありますから、3層目のLSTMの出力は、**最後の**内部状態ベクトルh27です。つまり128次元のベクトルを出力します。
49
+
50
+ ----
51
+
52
+ 最後に、128次元の入力から全結合層につながって、10次元のベクトルをsoftmax関数を通して出力することでクラス分類の結果としています。