回答編集履歴

3

微修正

2019/10/29 23:14

投稿

quickquip
quickquip

スコア11029

test CHANGED
@@ -12,13 +12,13 @@
12
12
 
13
13
 
14
14
 
15
- 質問に貼ってあるソースの動きは。
15
+ 質問に貼ってあるソースの動きはこうです
16
16
 
17
17
 
18
18
 
19
19
  1層目のLSTMの時刻t0の入力x0は「画像の一番上の28ピクセル」に対応する「28個の数値」を、28次元のベクトルだと見たものです。
20
20
 
21
- LSTMにx0を入れると内部状態を更新してh0になります。
21
+ LSTMにx0を入れると内部状態(128次元ベクトル)を更新してh0になります。(と同時にこれが出力でもあります。後述)
22
22
 
23
23
 
24
24
 
@@ -42,7 +42,7 @@
42
42
 
43
43
 
44
44
 
45
- 2層目のLSTMの入力は128次元のベクトルの28ステップの時系列データとなります。
45
+ したがって、2層目のLSTMの入力は128次元のベクトルの28ステップの時系列データとなります。
46
46
 
47
47
 
48
48
 
@@ -76,7 +76,7 @@
76
76
 
77
77
 
78
78
 
79
- 3層目のLSTMの入力も2層目と同様、128次元のベクトルの28ステップの時系列データとなります。
79
+ したがって、3層目のLSTMの入力も2層目と同様、128次元のベクトルの28ステップの時系列データとなります。
80
80
 
81
81
 
82
82
 
@@ -100,6 +100,10 @@
100
100
 
101
101
 
102
102
 
103
+ したがって、最後の全結合層の入力は128次元のベクトルになります。
104
+
105
+
106
+
103
107
  ----
104
108
 
105
109
 

2

些細

2019/10/29 23:14

投稿

quickquip
quickquip

スコア11029

test CHANGED
@@ -9,6 +9,10 @@
9
9
  ----
10
10
 
11
11
  (追記)
12
+
13
+
14
+
15
+ 質問に貼ってあるソースの動きは。
12
16
 
13
17
 
14
18
 

1

追記

2019/10/29 23:09

投稿

quickquip
quickquip

スコア11029

test CHANGED
@@ -3,3 +3,101 @@
3
3
 
4
4
 
5
5
  だと思ってLSTMは処理しています。
6
+
7
+
8
+
9
+ ----
10
+
11
+ (追記)
12
+
13
+
14
+
15
+ 1層目のLSTMの時刻t0の入力x0は「画像の一番上の28ピクセル」に対応する「28個の数値」を、28次元のベクトルだと見たものです。
16
+
17
+ LSTMにx0を入れると内部状態を更新してh0になります。
18
+
19
+
20
+
21
+ 1層目のLSTMの時刻t1の入力x1は「画像の上から2番目の28ピクセル」に対応する「28個の数値」を、28次元のベクトルだと見たものです。
22
+
23
+ LSTMは1つ前の内部状態h0と、x1から、内部状態を更新してh1になります。
24
+
25
+
26
+
27
+ (略)
28
+
29
+
30
+
31
+ 1層目のLSTMの時刻t27の入力x27は「画像の一番下の28ピクセル」に対応する「28個の数値」を、28次元のベクトルだと見たものです。
32
+
33
+ LSTMは1つ前の内部状態h26と、x27から、内部状態を更新してh27になります。
34
+
35
+
36
+
37
+ `return_sequences=True`が指定してありますから、1層目のLSTMの出力は、h0からh27の128次元のベクトル28個をconcatenateしたものです。
38
+
39
+
40
+
41
+ 2層目のLSTMの入力は128次元のベクトルの28ステップの時系列データとなります。
42
+
43
+
44
+
45
+ ----
46
+
47
+
48
+
49
+ 2層目のLSTMの時刻t0の入力x0は「1層目のLSTMの時刻0の内部状態ベクトル」です。
50
+
51
+ LSTMにx0を入れると内部状態を更新してh0になります。
52
+
53
+
54
+
55
+ 2層目のLSTMの時刻t1の入力x1は「1層目のLSTMの時刻1の内部状態ベクトル」です。
56
+
57
+ LSTMは1つ前の内部状態h0と、x1から、内部状態を更新してh1になります。
58
+
59
+
60
+
61
+ (略)
62
+
63
+
64
+
65
+ 2層目のLSTMの時刻t27の入力x27は「1層目のLSTMの時刻27の内部状態ベクトル」です。
66
+
67
+ LSTMは1つ前の内部状態h26と、x27から、内部状態を更新してh27になります。
68
+
69
+
70
+
71
+ `return_sequences=True`が指定してありますから、2層目のLSTMの出力は、h0からh27の128次元のベクトル28個をconcatenateしたものです。
72
+
73
+
74
+
75
+ 3層目のLSTMの入力も2層目と同様、128次元のベクトルの28ステップの時系列データとなります。
76
+
77
+
78
+
79
+ ----
80
+
81
+
82
+
83
+ 3層目のLSTMの時刻t0の入力x0は「2層目のLSTMの時刻0の内部状態ベクトル」です。
84
+
85
+ LSTMにx0を入れると内部状態を更新してh0になります。
86
+
87
+ (略)
88
+
89
+ 3層目のLSTMの時刻t27の入力x27は「2層目のLSTMの時刻27の内部状態ベクトル」です。
90
+
91
+ LSTMは1つ前の内部状態h26と、x27から、内部状態を更新してh27になります。
92
+
93
+
94
+
95
+ `return_sequences=False`が指定してありますから、3層目のLSTMの出力は、**最後の**内部状態ベクトルh27です。つまり128次元のベクトルを出力します。
96
+
97
+
98
+
99
+ ----
100
+
101
+
102
+
103
+ 最後に、128次元の入力から全結合層につながって、10次元のベクトルをsoftmax関数を通して出力することでクラス分類の結果としています。