下記コードの①、②、③について質問させてください
①:何をやっているのかよく分かりません。解説していただけないでしょうか?
②:なぜ初期化する必要があるのでしょうか?
③:誤り訂正学習法のバイアスbについて、修正分「Δb = -(t-y)」と公式に書いてあったのですが、なぜマイナスが付いていないのでしょうか?
--
2種類の正規分布に従うデータの分類を考える。
ニューロンが発火しないデータは平均値が0、発火するデータは平均値が5とし、それぞれ10ずつデータがある。
このデータを生成するコードは以下。
Python
1import numpy as np 2 3rng = np.random.RandomState(123) 4d = 2 # データの次元 5N = 10 # 各パターンのデータ数 6mean = 5 # ニューロンが発火するデータの平均値 7 8// ① 9x1 = rng.randn(N,d) + np.array([0,0]) 10x2 = rng.randn(N,d) + np.array([mean, mean]) 11 12x = np.concatenate((x1,x2), axis = 0) 13 14// ② 15w = np.zeros(d) 16b = 0 17 18def y(x): 19 return step(np.dot(w,x) + b) 20 21def step(x): 22 return 1 * (x > 0) 23 24def t(i): 25 if i < N: 26 return 0 27 else: 28 return 1 29 30while True: 31 classified = True 32 for i in range(N * 2): 33 delta_w = (t(i) - y(x[i])) * x[i] 34 // ③ 35 delta_b = (t(i) - y(x[i])) 36 w += delta_w 37 b += delta_b 38 classified *= all(delta_w == 0) * (delta_b == 0) 39 if classified: 40 break
散布図
各グループの実体
引用元
回答2件
あなたの回答
tips
プレビュー