
10.5
RBM
を用いた協調フィルタリング
233
prv_hb = cur_hb
prv_vb = cur_vb
error = sess.run(err, feed_dict={v0: X,
_w: cur_w, _vb: cur_vb, _hb: cur_hb})
print ('Epoch: %d' % epoch,'reconstruction error: %f' % error)
self.w = prv_w
self.hb = prv_hb
self.vb = prv_vb
10.5.3
RBM
を用いた推薦システムの訓練
RBM
を訓練するために、まず
ratings_train
から
inputX
を作り、それを
float32
に変換する。
次に
RBM
を定義する。この際に、入力と出力を
1,000
次 元 、学 習 率 を
0.3
、訓 練 エ ポ ッ ク 数 を
500
、バッ
チサイズを
200
とする。これえらのパラメータ値は最初の予備評価のためのパラメータにすぎない。い
ろいろ試してもっといいパラメータを探してみてほしい。
# Begin the training cycle
# Convert inputX into float32
inputX = ratings_train
inputX = inputX.astype(np.float32)
# Define the parameters of the RBMs we will train
rbm=RBM(1000,1000,0.3,500,200) ...