• word2vec改进之Negative Sampling


    训练网络时往往会对全部的神经元参数进行微调,从而让训练结果更加准确。但在这个网络中,训练参数很多,每次微调上百万的数据是很浪费计算资源的。那么Negative Sampling方法可以通过每次调整很小的一部分权重参数,从而代替全部参数微调的庞大计算量。

    词典D中的词在语料C中出现的次数有高有低,对于那些高频词,我们希望它被选为负样本的概率比较大,对于那些低频词,我们希望它被选中的概率比较小,这是我们对于负采样过程的一个大致要求,本质上可以认为是一个带权采样的问题。

    一、基于Negative Sampling的CBOW模型

    输入:基于CBOW的语料训练样本,词向量的维度大小Mcount,CBOW的上下文大小2c,步长η, 负采样的个数neg

    输出:词汇表每个词对应的模型参数θ,所有的词向量xw

    1. 随机初始化所有的模型参数θ,所有的词向量w

    2. 对于每个训练样本(context(w0),w0),负采样出neg个负例中心词wi,i=1,2,...neg

    3. 进行梯度上升迭代过程,对于训练集中的每一个样本(context(w0),w0,w1,...wneg)做如下处理:

     

     

     

     

     

    d) 如果梯度收敛,则结束梯度迭代,否则回到步骤3继续迭代。

     

    二、基于Negative Sampling的Skip-Gram模型

    输入:基于Skip-Gram的语料训练样本,词向量的维度大小Mcount,Skip-Gram的上下文大小2c,步长η, , 负采样的个数neg。

    输出:词汇表每个词对应的模型参数θ,所有的词向量xw

    1. 随机初始化所有的模型参数θ,所有的词向量w

    2. 对于每个训练样本(context(w0),w0),负采样出neg个负例中心词wi,i=1,2,...neg

    3. 进行梯度上升迭代过程,对于训练集中的每一个样本(context(w0),w0,w1,...wneg)做如下处理:

     


    b)如果梯度收敛,则结束梯度迭代,算法结束,否则回到步骤a继续迭代。

    参考内容:

    https://www.cnblogs.com/pinard/p/7249903.html

  • 相关阅读:
    console.dir()和console.log()的区别
    md5
    sorket is closed
    箱形图和小提琴图
    PCA降维
    模式识别与机器学习(二)
    模式识别与机器学习(一)
    论文研读Unet++
    分类中使用的一些评价指标
    前列腺分割论文
  • 原文地址:https://www.cnblogs.com/r0825/p/10990724.html
Copyright © 2020-2023  润新知