質問編集履歴
1
不明点を具体的に加筆
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,16 @@
|
|
1
1
|
【前提】
|
2
2
|
|
3
|
+
初学者のものです。説明の都合上前提が長くて恐縮です。
|
4
|
+
|
3
|
-
こちらは某通信制スクールでの問題になります。
|
5
|
+
こちらは某通信制スクール(ラビットチャレンジ)での問題になります。
|
6
|
+
|
4
|
-
|
7
|
+
※講習の設定上合格しないと回答が貰えず試行錯誤しております。
|
8
|
+
|
9
|
+
↑いい意味で鍛錬になっておりますが、テキストに載ってない部分なので赤本黒本駆使しているところです・・
|
10
|
+
|
11
|
+
|
12
|
+
|
5
|
-
|
13
|
+
0925追記:不明点を加筆
|
6
14
|
|
7
15
|
|
8
16
|
|
@@ -208,4 +216,62 @@
|
|
208
216
|
|
209
217
|
とありますが、**「σ=0.9」「2回目の訓練サンプルをX⁼0.0」とした場合のコードを教えて頂く事は可能でしょうか?**
|
210
218
|
|
211
|
-
(前提に記載しているコードのどの部分を変えればいいのか色々試したのですが選択肢に辿り着かない状態です)
|
219
|
+
(前提に記載しているコードのどの部分を変えればいいのか色々試したのですが選択肢に辿り着かない状態です。以下が私が試したコード)
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
```
|
224
|
+
|
225
|
+
(a, b) = (-0.1 * 0.9, 0.1 * 0.9) #「前回の更新量」× 「慣性項のパラメータ」※根拠は下記更新式参照
|
226
|
+
|
227
|
+
lr = 0.1 # 学習率 learning rate
|
228
|
+
|
229
|
+
(x, y) = (0.0, 0.5)
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
# 問題文における偏微分の定義で n = 1 とする
|
234
|
+
|
235
|
+
dL_da = lambda a, b: a * x * x + b * x - x * y
|
236
|
+
|
237
|
+
dL_db = lambda a, b: b + a * x - y
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
# (a, b)を1回更新する更新量を(da, db)とする
|
242
|
+
|
243
|
+
da = -lr * dL_da(a, b)
|
244
|
+
|
245
|
+
db = -lr * dL_db(a, b)
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
# 答えを表示
|
250
|
+
|
251
|
+
print(da, db)
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
#出力値
|
256
|
+
|
257
|
+
-0.0 0.041
|
258
|
+
|
259
|
+
```
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
###【参考】前回の更新量を利用して慣性項を追加する場合の更新式
|
264
|
+
|
265
|
+
![イメージ説明](b2deaac274b170ba651a38f8b41ae5bf.jpeg)
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
###今回分からなかった部分
|
272
|
+
|
273
|
+
①Momentam有の場合、pythonでのコードは上記で問題ないでしょうか?
|
274
|
+
|
275
|
+
(出力値が-になっているが誤差の範囲と考えていいのか??)
|
276
|
+
|
277
|
+
②(そもそも論で恐縮ですが)「モメンタムあり」の位置づけが全く理解出来ていないので、エッセンスを教えて頂く事は可能でしょうか?
|