混合专家系统(MoE)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Zoe_Su/article/details/78488143

混合专家系统(Mixture of Experts)

原理:

混合专家系统(MoE)是一种神经网络,也属于一种combine的模型。适用于数据集中的数据产生方式不同。不同于一般的神经网络的是它根据数据进行分离训练多个模型,各个模型被称为专家,而门控模块用于选择使用哪个专家,模型的实际输出为各个模型的输出与门控模型的权重组合。各个专家模型可采用不同的函数(各种线性或非线性函数)。混合专家系统就是将多个模型整合到一个单独的任务中。

混合专家系统有两种架构:competitive MoE 和cooperative MoE。competitive MoE中数据的局部区域被强制集中在数据的各离散空间,而cooperative MoE没有进行强制限制。

对于较小的数据集,该模型的表现可能不太好,但随着数据集规模的增大,该模型的表现会有明显的提高。

定义X为Nd维输入,y为Nc维输出,K为专家数,$\lambda $为学习率:

for j in(0...(d1)) and i in (0...(c1))for\ j\ in (0...(d-1))\ and\ i\ in\ (0...(c-1)):
各专家输出为: Vik=wikxV_{ik}=w_{ik}x

(其中wikw_{ik}为第k个专家模型对第i列输出的权重,VikV_{ik}为第k个专家对第i列的预测。(wikw_{ik}添加了bias所以输出为d+1维))

第k个专家输出均值为:

mk=i=0c1Vikm_{k}=\sum_{i=0}^{c-1}V_{ik}

门限模块输出为:

gk=emkTkemkTg_{k}=\frac{e^{m_{k}^{T}}}{\sum_{k}e^{m_{k}^{T}}}

输出yiy_i通过softmax函数转成概率值为:
ysi=eyiieyiy_{si}=\frac{e^{y_{i}}}{\sum_{i}e^{y_{i}}}

对于Cooperative MoE:

Δwik=λ(yiysi)gkx\Delta w_{ik}=\lambda(y_{i}-y_{si})g_{k}x
Δmk=λ(yiysi)(vikysi)gkx\Delta m_{k}=\lambda(y_{i}-y_{si})(v_{ik}-y_{si})g_{k}x

对于Competitive MoE:
Δwik=λfk(yiyik)x\Delta w_{ik}=\lambda f_{k}(y_{i}-y_{ik})x
Δmk=λ(fkgk)x\Delta m_{k}=\lambda (f_{k}-g_{k})x
yik=eVikieViky_{ik}=\frac{e^{V_{ik}}}{\sum_{i}e^{V_{ik}}}
fk=gkeiyilogyiklgleiyilogyikf_{k}=\frac{g_{k}e^{\sum_{i}y_{i}logy_{ik}}}{\sum_{l}g_{l}e^{\sum_{i}y_{i}logy_{ik}}}

实验结果:

不同数据集相同k值:

  1. k=2使用线性数据集,采用SGD和FTRL两种训练方式,结果如下:
    这里写图片描述
    这里写图片描述
  2. k=2使用非线性数据集,采用SGD和FTRL两种训练方式,结果如下:
    这里写图片描述
    这里写图片描述

相同数据集不同k值:

  1. k=1:
    这里写图片描述
    这里写图片描述
  2. k=2:
    这里写图片描述
    这里写图片描述
  3. k=4:
    这里写图片描述
    这里写图片描述

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭