负采样_欠采样

负采样_欠采样参考1参考2

大家好,又见面了,我是你们的朋友全栈君。

训练一个神经网络意味着要输入训练样本并且不断调整神经元的权重,从而不断提高对目标的准确预测。每当神经网络经过一个训练样本的训练,它的权重就会进行一次调整。

当前对于绝大多数的神经网络而言,更新参数使用的都是反向传播(back propagation)的方式。然而,对于庞大的神经网络而言,反向更新权重并不是一件容易的事情。同时,这意味着对于那些结果与标签值的不一致的节点,都需要做反向传播来更新权重。

这个时候我们就需要用到负采样(negative sampling)的技术。

下面通过Skip-Gram来讲解负采样技术。

Skip-Gram 的输出和输出都是 one-hot 编码的向量,假设我们的词典的 size 是 10000,即输入的向量是 10000 维的向量,然后嵌入成 400 维的向量,这样隐层就有 400 个节点,输出层也是一个 10000 维的向量。我们重点关注隐层 – 输出层这里的权重,这里总共有400*10000=4,000,000个权重。也就是说,如果我们不做任何改进的话,每一次的训练都需要更新4,000,000个权重。显然,这样大量的计算会极大地拖慢训练的速度。

为了提升训练的速度,减少更新权重的数量,我们就需要对节点进行负采样。首先来了解两个概念 postive word 和 negative word。positive word 指的是在输出向量中期待为 1 的那个节点,negative word 指的是在输出向量中期待为 0 的节点。在 Skip-Gram 中,输出向量一般只有一个位置为 1,其余的 9999 个位置都为 0。负采样的目的就是在 negative word 中,找出一部分节点进行权重的更新,而不需要全部都更新。比如我们找 5 个 negative word 节点,最后,我们更新的节点就是 1 个 positive word + 5 个 negative word 节点,总共是 6 个节点。在这种情况下,需要更新的权重数量是6*400=2400,相比起前面计算的4,000,000,是不是少了很多!

负采样的本质:每次让一个训练样本只更新部分权重,其他权重全部固定;减少计算量;(一定程度上还可以增加随机性)

参考1
参考2
参考3

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/124841.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 布隆过滤器原理以及应用_bitmap与布隆过滤器

    布隆过滤器原理以及应用_bitmap与布隆过滤器1.先说下背景,肯定遇到这种情况,判断元素在不在一个集合里面,如果,集合里面的元素非常大,这个判断过程是非常耗时的,而且集合占用空间也很大。2.应用场景,网页黑名单,垃圾邮件过滤,电话黑名单,url去重,内容推荐等。3.原理:布隆过滤器实际上就是一个字节数组,字节数组的值是0或1,在添加元素的时候,对值通过多个hash函数的计算,得到多个0,1然后在字节数组里面在相应的位置设置值。这样处理…

    2022年10月7日
    2
  • U8 8.9 数据库置疑恢复方法

    U8 8.9 数据库置疑恢复方法A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQLServerEnterpriseManager里面建立。B.停掉数据库服务器。C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。D.启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。…

    2022年8月20日
    5
  • python2 nonlocal_python关键字及用法

    python2 nonlocal_python关键字及用法python变量引用顺序:从当前作用域开始寻找变量,如果没找到就往上一层作用域寻找,没找到就再上一层……即:当前作用域局部变量->外层作用域变量->再外层作用域变量->……->当前模块全局变量->pyhton内置变量global:全局变量nonlocal:外层嵌套函数的变量使用总结:局部作用域改变全局变量用global,global同时还可以定义新的…

    2025年9月21日
    7
  • mysql命令窗口_HLOOKUP函数

    mysql命令窗口_HLOOKUP函数窗口:记录集合窗口函数:在满足某些条件的记录集合上执行的特殊函数,对于每条记录都要在此窗口内执行函数。有的函数随着记录的不同,窗口大小都是固定的,称为静态窗口;有的函数则相反,不同的记录对应着不同的窗口,称为滑动窗口。1.窗口函数和普通聚合函数的区别:①聚合函数是将多条记录聚合为一条;窗口函数是每条记录都会执行,有几条记录执行完还是几条。②聚合函数也可以用于窗口函数。2.窗口函数的基…

    2022年10月4日
    4
  • 服务器托管双线技术方案怎么写_自己搭建内网穿透服务器全端口

    服务器托管双线技术方案怎么写_自己搭建内网穿透服务器全端口多线路接入技术就是在互联网数据中心(IDC)通过特殊的技术手段把不同的网络接入商(ISP)服务接入到一台服务器上或服务器集群,使服务器所提供的网络服务访问用户能尽可能以同一个ISP或互访速度较快的ISP连接来进行访问,从而解决或者减轻跨ISP用户访问网站的缓慢延迟(南北网络瓶颈)问题。多线路接入是一个技术概念可以有多种具体实现方式,由于大多用户都是网通与电信,为了见简单起见,我们只讨…

    2025年8月11日
    2
  • windows下常见php集成环境安装包介绍(updated)

    windows下常见php集成环境安装包介绍(updated)windows下常见php集成环境安装包介绍(updated)September4,2010 |作者:猪肉有毒   WAMP是指在Windows服务器上使用Apache、MySQL和PHP的集成安装环境,可以快速安装配置Web服务器,一般说来,大家都习惯于将Apache、MySQL、PHP架设在Linux系统下,但是,不可否认的是Windows也有其优点,就是易用,

    2022年6月28日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号