我的算法RBM用于协同过滤不会收敛...... 我认为RBM用于协同过滤的想法是
初始w,b,c和随机的[0,1]
For By User 钳位数据 - >可见(softmax)
隐藏= sigmoid(b + W * V)
隐藏运行吉布斯 - > Hidden_gibbs
肯定=隐藏*可见
隐藏 - >重建 - > reconstruct_visible
在reconstruct_visible上运行Gibbs - > reconstruct_visible_gibbs
negative = Hidden_gibbs * reconstruct_visible_gibbs
结束
更新
w = w +(正 - 负)/ Number_User
b = b +(visible - reconstruct_visible_gibbs)/ Number_User
c = c +(Hidden - Hidden_gibbs)/ Number_User
我看过很多论文或讲座,不知道哪里出错了
答案 0 :(得分:0)
这不是一个容易的问题!您对学习过程的描述看起来很好。但是,从描述到实际代码的错误还有很大的余地。此外,对于CF," vanilla" RBM不会工作。
你是如何实现可见的" softmax"单位?
您是否使用"单用户"培训您的RBM?数据集,如原始作品[1]中所推荐的那样?
有两个关于体重更新和预测程序的细节与香草RBM略有不同
[1] Salakhutdinov http://www.machinelearning.org/proceedings/icml2007/papers/407.pdf