回答編集履歴

3

挿入したコードの位置を変更

2018/01/14 01:33

投稿

wakame
wakame

スコア1170

test CHANGED
@@ -7,14 +7,6 @@
7
7
 
8
8
 
9
9
  3. まず`self.params['W1']`と`self.params['W2']`は初期値が異なります。以下のコードで確認してみました。
10
-
11
- したがって`loss_W`は引数共通であっても両者値が異なるので結果が異なるということになります。
12
-
13
-
14
-
15
- ごめんなさい、最後のこの文の意味がよくわかりませんでした。
16
-
17
- > しかし、色々とデータを代入してみると、['W1']の場合と['W2']の場合で結果が異なってしまいました。どうして違う結果になるのでしょうか。
18
10
 
19
11
 
20
12
 
@@ -109,3 +101,13 @@
109
101
  """
110
102
 
111
103
  ```
104
+
105
+
106
+
107
+ したがって`loss_W`は引数共通であっても両者値が異なるので結果が異なるということになります。
108
+
109
+
110
+
111
+ ごめんなさい、最後のこの文の意味がよくわかりませんでした。
112
+
113
+ > しかし、色々とデータを代入してみると、['W1']の場合と['W2']の場合で結果が異なってしまいました。どうして違う結果になるのでしょうか。

2

よくわからなかった点を追記

2018/01/14 01:33

投稿

wakame
wakame

スコア1170

test CHANGED
@@ -9,6 +9,12 @@
9
9
  3. まず`self.params['W1']`と`self.params['W2']`は初期値が異なります。以下のコードで確認してみました。
10
10
 
11
11
  したがって`loss_W`は引数共通であっても両者値が異なるので結果が異なるということになります。
12
+
13
+
14
+
15
+ ごめんなさい、最後のこの文の意味がよくわかりませんでした。
16
+
17
+ > しかし、色々とデータを代入してみると、['W1']の場合と['W2']の場合で結果が異なってしまいました。どうして違う結果になるのでしょうか。
12
18
 
13
19
 
14
20
 

1

最後の質問についての回答を追加

2018/01/14 01:32

投稿

wakame
wakame

スコア1170

test CHANGED
@@ -3,3 +3,103 @@
3
3
 
4
4
 
5
5
  2. はいそうです。`TwoLayerNetクラスのnumerical_gradient関数`の引数(x, t)がラムダ式に渡され、`loss_W`に格納されています。
6
+
7
+
8
+
9
+ 3. まず`self.params['W1']`と`self.params['W2']`は初期値が異なります。以下のコードで確認してみました。
10
+
11
+ したがって`loss_W`は引数共通であっても両者値が異なるので結果が異なるということになります。
12
+
13
+
14
+
15
+ ```python
16
+
17
+ import numpy as np
18
+
19
+ from pprint import pprint
20
+
21
+
22
+
23
+ input_size=784
24
+
25
+ hidden_size = 100
26
+
27
+ output_size=10
28
+
29
+ weight_init_std = 0.01
30
+
31
+ W1 = weight_init_std * np.random.randn(input_size, hidden_size)
32
+
33
+ pprint(W1)
34
+
35
+
36
+
37
+ """
38
+
39
+ array([[ -4.66963760e-03, -4.61920583e-03, -1.34628863e-02, ...,
40
+
41
+ -7.12342008e-03, -9.51390931e-03, -1.42363695e-02],
42
+
43
+ [ 5.15248205e-03, -1.81531005e-02, -9.33031556e-03, ...,
44
+
45
+ -6.03827853e-03, 2.32682820e-02, 1.14371378e-02],
46
+
47
+ [ -1.47480497e-03, -1.16778968e-02, -5.36428583e-03, ...,
48
+
49
+ 3.24273403e-03, 2.58535969e-03, 4.07705684e-03],
50
+
51
+ ...,
52
+
53
+ [ -6.12870871e-04, 2.27194176e-02, -9.20775174e-03, ...,
54
+
55
+ -6.56353954e-03, -4.82236650e-03, -8.97790691e-03],
56
+
57
+ [ -1.38384077e-02, -1.03076298e-02, 3.97350335e-03, ...,
58
+
59
+ -4.14367214e-03, -7.06703864e-06, 9.48678489e-03],
60
+
61
+ [ -1.24808408e-03, -4.70239299e-03, 5.48649149e-03, ...,
62
+
63
+ 1.01967985e-02, 1.20364877e-02, 2.37953073e-03]])
64
+
65
+ """
66
+
67
+
68
+
69
+ W2 = weight_init_std * np.random.randn(input_size, hidden_size)
70
+
71
+ pprint(W2)
72
+
73
+
74
+
75
+ """
76
+
77
+ array([[-0.00076081, -0.00396194, 0.00877313, ..., -0.01413236,
78
+
79
+ 0.00682878, 0.00223497],
80
+
81
+ [ 0.00896433, 0.00138473, -0.00574664, ..., 0.00085467,
82
+
83
+ 0.01578464, 0.00760901],
84
+
85
+ [ 0.00133846, -0.012744 , 0.00191541, ..., -0.01548384,
86
+
87
+ -0.01866372, 0.01076827],
88
+
89
+ ...,
90
+
91
+ [ 0.00888638, 0.00104892, 0.01148437, ..., 0.00610676,
92
+
93
+ -0.00137109, 0.00020582],
94
+
95
+ [ 0.00232449, -0.00431334, -0.0065821 , ..., 0.02289721,
96
+
97
+ 0.00331537, -0.0168427 ],
98
+
99
+ [-0.01369978, 0.00572917, 0.00457355, ..., 0.01380905,
100
+
101
+ 0.00524373, -0.00342188]])
102
+
103
+ """
104
+
105
+ ```