是的,您可以使用门控占位符在多合一体系结构中执行此操作.
让我们从一个简单的tensorflow概念代码开始,然后添加到它:
m = tf.Variable( [width,height] , dtype=tf.float32 ))
b = tf.Variable( [height] , dtype=tf.float32 ))
h = tf.sigmoid( tf.matmul( x,m ) + b )
想象这是您的单一“专家”模型架构.我知道它是相当基本的,但是出于我们说明的目的.
我们要做的是将所有专家系统存储在矩阵的m和b中,并定义一个门控矩阵.
我们称其为门控矩阵g.它将阻止特定的神经连接.神经连接以m定义.这将是您的新配置
g = tf.placeholder( [width,height] , dtype=tf.float32 )
m = tf.Variable( [width,height] , dtype=tf.float32 )
b = tf.Variable( [height] , dtype=tf.float32 )
h = tf.sigmoid( tf.matmul( x, tf.multiply(m,g) ) + b )
g是1和0的矩阵.为要保留的每个神经连接插入一个1,为要阻止的每个神经连接插入一个0.如果您有4个专家系统,那么1/4的连接将为1,而3/4的连接将为0.
如果希望他们所有人平等投票,则将g的所有值都设为1/4.