当前位置:www.7704.com > www.7704.com > 正文
而躲藏层的每个节点咱们则但愿它对应于一种音
发布日期:2019-10-20

  做为一个神经收集,RBM有可见层和躲藏层两层,此中可见层每个节点对应一首歌曲,而躲藏层的每个节点我们则但愿它对应于一种音乐类型,故对应上述歌曲的特点正在申明中使躲藏层为两个节点。同时再加一个bias unit来节制过分抢手的item对该模子形成的影响,此神经收集各节点的毗连环境是如许的:

  如斯,一次从可见层到躲藏层的计较便竣事了。之后反过来,从躲藏层到可见层,将pos_hidden_states做为样本调集输入躲藏层,做一遍取上述过程完全不异的计较,同样能够计较出两相连节点之间的相关性,此次记为。因为是随机取的初始weight,Positive取Negative之间该当会有不小的不同,而RBM的优化方针即是通过多个epoch的锻炼,使其不同尽可能小。

  算出激活值后,家喻户晓,神经收集的节点往往包含一个激活函数,这里利用Sigmond函数,将上一步算出的激活值节制到0-1之间,来代表此节点被激活的可能性,当为某节点计较出的激活概率越接近1,则其被激活的可能性越大,这里操纵numpy的功能,对上述生成的矩阵中的所有节点都一个Sigmond函数。然后将bias unit对应的那一列全改为1,这暗示bias unit老是被激活的,具体缘由见下文。

  这篇文章通过逐行阅读并运转Edwin Chen的开源代码,旁不雅其顶用到的数据布局、值的变化来展示RBM的运做道理及实现技巧。

  该文章为转载文章,做者简介:汪剑,现正在正在出门问问担任保举取个性化。曾正在微软雅虎工做,处置过搜刮和保举相关工做。 T...

  第二个Topic讲深度进修,衔接前面的《浅谈机械进修根本》。 深度进修简介 前面也提到过,机械进修的素质就是寻找最...

  受限玻尔兹曼机(restricted Boltzmann machine, RBM)是一种可通过输入数据集进修概率分布的随机生成神经收集,正在降维、分类、协同过滤、特征进修和从题建模等范畴中有着普遍使用。

  一、Net类的设想取神经收集初始化 闲言少叙,间接起头 既然是要用C++来实现,那么我们天然而然的想到设想一个神经...

  对于所有样本和所有的躲藏节点都是一样的处置,那么可将这么很多次点乘化为矩阵相乘,按照矩阵相乘的法则(行向量点乘列向量成果放正在响应的)能够看出将data取weight矩阵相乘刚好暗示对每个样本和每个躲藏节点将上述处置做了一次,会发生出一个新的外形为(6*3)的矩阵,第一列对应bias unit值全为0,第二列的第一个元素便对应了Dancing Queen正在hidden unit1处生成的值。利用矩阵相乘,效率要比对样本和躲藏单位进行迭代快得多。

  RBM rbm是浅层的神经收集,只要两层,第一层是visible可见层,第二层是躲藏层。 分歧层之间有毗连,统一层...

  rand函数会随机生成一个处于0到1之间的数,将上述算出的节点激活概率取一个如许的随机数比力大小来决定能否激活此节点,这意味着即便此时某次锻炼中某躲藏结点的激活概率为0.99,也是有可能不被激活的。

  而要为user保举item,则需要将其收听汗青向量[1, 1, 1, 0, 0, 0]输入锻炼好的模子,激活一些躲藏节点,再将暗示躲藏层节点被激活环境的向量反向输入模子,可为每个item获得一个被激活的概率,去掉用户曾经听过的item,再对概率进行从大到小排序拔取K个即可做出TopK保举。该处置只要简单的向量计较很是敏捷,可用于正在线及时生成保举成果。

  这个矩阵的寄义举例为其第一行第二列的值暗示Dancing Queen能否激活了hidden unit1。

  上述一正一反便算完成了一个epoch,按照式子算出新的weight值(此中L为进修速度需要炼金而得),来起头下一个epoch的计较,如斯会使得两者之间的差值越来越小,从而获得一个锻炼好的RBM模子。

  受限玻尔兹曼机(RBM)是用于深进修深概率模子的积木的一个典型的例子。RBM本身不是一个深刻的模子,但能够用做建立...

  可见层的每个节点取所有躲藏层的节点相连,bias unit取两层所有的节点相连,每个毗连对应一个weight,起首利用矩阵来暗示可见层取躲藏层节点的所有weight,好比该矩阵的第一行的第一列的数据对应于可见层节点Dancing Queen取hidden unit1相连的weight,然后正在此根本上,插入bias unit的weight,由于它取可见层、躲藏层皆相连,故此矩阵的行取列各加1。给两层节点之间的所有weight付与一个范畴内的随机值以初始化该矩阵,取bias unit相连的节点暂全置为0。

  比力巧妙的仍是bias unit,能够看到上述有些可见节点取bias unit的联系关系值达到6,而鄙人一次轮回中,又会对bias unit整个从头赋值,这个处置能够将那些抢手的item对躲藏节点能否激活的影响引向这个bias unit,来稀释这种影响,尽量防止“the Beatles现象”的呈现。同时,因为它取两层每个节点都相连,正在从可见层到躲藏层的计较过程中,它其实是做为一个躲藏层节点来一同参取计较的,而正在反向时,它又做为一个可见层节点来阐扬感化,实是妙啊。

  接下来构制一些锻炼样本,一个样本是关于这六首歌的收听环境的list(按照上图从上到下的挨次对应list中的index),填值1暗示该user听过此歌,填值0暗示该user未听过此歌。这里构制6个样本做为样本调集,同时考虑到weight矩阵添加了bias unit,为了后续线性代数运算的对应性,需要正在样本调集构成的矩阵中再插入一列,值均置为1。

  如上述进行过了一次所有样本对躲藏层激活环境的计较,能够得出Dancing Queen取hidden unit1同时亮起的相关性,记为,看上述矩阵data取pos_hidden_probs,第一个样本正在Dancing Queen节点取值为1,对hidden unit1激活概率为0.49606932,将两者相乘获得一个值,对所有样本如斯计较获得的值的加和即为这两个节点的相关性,这个过程同样能够利用矩阵相乘来暗示如下:

  对于显示反馈,好比Netflix Prize的环境,Ruslan Salakhutdinov等人对RBM提出了改良,可见层利用Softmax神经元来暗示打分环境,对于没有被评分过的item则利用特殊的神经元暗示,不取躲藏层相连避免无谓的计较;而前提RBM能够正在处置显示反馈时将用户浏览过哪些物品如许的现式反馈的影响同时考虑进去。这些改良都涉及到对本文计较过程取数学公式的改良,具体能够参考论文。

【字号: 】 【打印】 【关闭】 点击量:

Copyright 2019-2022 http://www.lianxinok.cn 版权所有 未经协议授权禁止转载