负采样_欠采样

负采样_欠采样参考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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 50个高端大气上档次的管理后台界面模板

    50个高端大气上档次的管理后台界面模板

    2021年11月17日
  • oracle11g安装图解「建议收藏」

    oracle11g安装图解「建议收藏」Oracle11g安装:**一、软件需求安装CentOS6.5的服务器一台Oracle11g安装介质:linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip命令行客户端工具xshell、crt或者putty图形界面客户端工具Xming二、系统配置检查1.内存检查SSHSecureShell的命令行窗口,执行[root@localhost~]#grepMemTotal/proc/meminfoM

  • 网络编程01_01是什么

    网络编程01_01是什么网络编程1.1概述网络编程的目的:信息传递,数据交换,通信。实现网络的条件:如何准确定位网络上的一台主机?IP地址+端口号定位到这台计算机上的某个资源找到了这个主机,如何传输数据?——硬件传输介质网络通信的规则:协议——UDP,TCP​ TCP/IP参考模型[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBe6VKUl-1639203769386)(…/image/01-16372424176942.png)]Javaweb——网页

  • vmware linux安装_vm如何安装系统

    vmware linux安装_vm如何安装系统火眼发布Windows渗透工具包(CommandoVM)包含140个渗透工具工具下载地址:github.com/fireeye/commando-vmKaliLinux已成为攻击型安全专家的标配工具,但对需要原生Windows功能的渗透测试员来说,维护良好的类似工具集却是不存在的。安全服务公司火眼就是要改变这一现状。3月28日,该公司发布了一个包含超过140个开源Windows工具的…

  • Java 日志相关的面试

    近期整理的关于日志的面试题,对于初级者来说,很少会涉及到日志的处理,架构的选择。但是我相信作为一个资深者,这部分是必不可少的,同时也是评定一个系统的指标,足以证明日志的重要性。1.常用的日志框架    JavaLoggingAPI(Oracle)——Java默认的日志框架    Log4j(Apache)——开源日志框架    Logback(LogbackProject)——开源项目,…

  • AttributeCollection类与Attributes.Add方法的使用[通俗易懂]

    AttributeCollection类与Attributes.Add方法的使用[通俗易懂]控件属性集合:AttributeCollection类AttitudeCollection隶属于namespaceSystem.Web.UI命名空间。AttributeCollection类属于集合类,具有其他集合所共有的一些属性。AttributeCollection类用来封装服务器控件的所有属性,可实现对服务器属性集合的添加和删除。控件的属性包括颜色、样式、名称等,这些属性都可以通过At

发表回复

您的电子邮箱地址不会被公开。

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