回答編集履歴
3
補足追記
test
CHANGED
@@ -41,3 +41,45 @@
|
|
41
41
|
|
42
42
|
|
43
43
|
コードにしたければ、上記を愚直にコードにすればよく、訓練サンプル複数の場合への応用も容易です。
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
2021/09/23追記
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
コード例を示します。
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
```Python
|
56
|
+
|
57
|
+
(a, b) = (1.0, 0.0)
|
58
|
+
|
59
|
+
lr = 0.1 # 学習率 learning rate
|
60
|
+
|
61
|
+
(x, y) = (-1.0, 0.0)
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
# 問題文における偏微分の定義で n = 1 とする
|
66
|
+
|
67
|
+
dL_da = lambda a, b: a * x * x + b * x - x * y
|
68
|
+
|
69
|
+
dL_db = lambda a, b: b + a * x - y
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
# (a, b)を1回更新する更新量を(da, db)とする
|
74
|
+
|
75
|
+
da = -lr * dL_da(a, b)
|
76
|
+
|
77
|
+
db = -lr * dL_db(a, b)
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
# 答えを表示
|
82
|
+
|
83
|
+
print(da, db)
|
84
|
+
|
85
|
+
```
|
2
一部修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
この問題からなぜdiabetesデータセットを使ったのか、質問者様の意図がわかりません。
|
2
2
|
|
3
|
-
SGDの基本的な定義を理解しているかを確認するために、単純に数
|
3
|
+
SGDの基本的な定義を理解しているかを確認するために、単純に代数的に解くのが問題意図ではないでしょうか?
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -37,3 +37,7 @@
|
|
37
37
|
|
38
38
|
|
39
39
|
となります。
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
コードにしたければ、上記を愚直にコードにすればよく、訓練サンプル複数の場合への応用も容易です。
|
1
一部修正
test
CHANGED
@@ -14,11 +14,13 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
に単純に
|
17
|
+
に単純に、
|
18
18
|
|
19
19
|
|
20
20
|
|
21
21
|
(a, b) = (1.0, 0.0) * 初期値
|
22
|
+
|
23
|
+
η = 0.1
|
22
24
|
|
23
25
|
N = 1 ※ 訓練サンプルが1つ
|
24
26
|
|