All posts by dotte

把宇宙138亿年压缩到1年:看完怀疑人生

作者:Arif Babul  来源:把科学带回家

 

如果138亿年的宇宙历史压缩到一年,人类出现在哪个月?5月?9月?

 

著名科普作者、天文学家卡尔﹒萨根在《伊甸园的龙》中提出的宇宙年历,会让你惊掉下巴。

 

让我们一起来看一看,宇宙、地球和人类的大事件,都出现在什么时刻吧!

 

如果把138亿年的历史压缩到1年里,很明显时间加速了。在这个日历里,日历的每一秒相当于438年,日历上的一小时相当于158万年,日历上的一天相当于3780万年。

 

在这个宇宙年历里,一个人活到80岁,宇宙才过去了0.18秒。

1月1日

大爆炸

 

5月1日

银河系诞生

 

9月9日

太阳系诞生

 

9月14日

地球诞生

 

9月25日左右

地球产生第一个生命

 

10月2日

地球上已知最古老的岩石

 

10月9日

地球最古老的化石(细菌和蓝藻)

 

11月1日左右

有性生殖诞生(微生物)

 

11月12日

最古老的光合植物化石

 

11月15日

真核生物(具有细胞核核的第一批细胞)开始繁荣兴旺

 

12月14日

多细胞生物诞生

 

12月17日

寒武纪大爆发,显生宙古生代寒武纪开始

 

12月18日

海洋浮游生物出现;三叶虫繁荣的时代

 

12月19日

第一批鱼类;第一批脊椎动物

 

12月20日

第一批维管植物

 

12月21日

海洋动物登陆

 

12月22日

第一批两栖动物;第一批有翼昆虫

 

12月23日

第一批树;第一批爬行动物

 

12月24日

恐龙出现

 

12月26日

第一批哺乳动物

 

12月27日

第一批鸟

 

12月28日

第一批花;恐龙灭绝

 

12月29日

第一批灵长动物

 

12月30日

灵长目的额叶开始进化得更高级;

人科物种出现

 

下面所有这一切发生在12月31日这天!

下午1:30

原康修尔猿(Proconsul)和腊玛古猿(Ramapithecus),

它们可能是现代猿类和人类的共同祖先

 

晚上10:30

第一批人类

 

晚上11点

旧石器时代

 

晚上11:46

北京猿人学会使用火

 

晚上11:56

最近冰期的开始

 

晚上11:58

人类在澳大利亚登陆

 

晚上11:59

欧洲的洞穴绘画的年代

 

晚上11:59:20

人类进入农业社会

 

晚上11:59:35

新石器时代开始;

人类有了第一个城市

 

晚上11:59:50

苏美尔(美索不达米亚早期文明)、

埃勃拉(西亚古国)和埃及出现第一个朝代;

天文学开始发展

 

晚上11:59:51

字母表被发明;

人类历史上第一个帝国——美索不达米亚阿卡德帝国诞生

 

晚上11:59:52

巴比伦的汉谟拉比法典颁布;

古埃及中王国时期

 

晚上11:59:53

青铜时代;

古希腊迈锡尼文明;

特洛伊战争;

最古老的美洲文明之一奥尔梅克文明;

指南针发明

 

晚上11:59:54

铁器时代;

第一个亚述帝国;

以色列王国;

腓尼基人建立迦太基城

 

晚上11:59:55

印度阿育王的王朝;

中国秦代;

雅典黄金时期领导人伯里克利的年代;

佛诞

 

晚上11:59:56

欧氏几何;

阿基米德物理学;

托勒密天文学;

古罗马帝国诞生;

基督诞生

 

晚上11:59:57

印度人阿耶波多(Aryabhata)发明零和小数;

古罗马灭亡;

伊斯兰教和伊斯兰文明诞生

 

晚上11:59:58

玛雅文明;

中国宋代;

拜占庭帝国;

蒙古西征;

十字军东征

 

晚上11:59:59

欧洲文艺复兴;

欧洲大航海;

中国明朝郑和下西洋;

现代科学诞生

 

晚上11:59:59

第一次工业革命

 

我们所在的年代

爱因斯坦诞辰;

计算机的发明;

登陆月球;

网络的发明

下一年5月2日

太阳成为红巨星

 

下一年5月7日

太阳成为白矮星

 

在宇宙的年历中,孔子在12月31日午夜5.8秒前诞生,牛顿则在午夜0.76秒前横空出世;在午夜前的0.02秒时(按萨根成书时计算),我们才刚刚有了互联网;而到明年5月7日,太阳则会进入生命的晚年,成为白矮星。到那时,人类将何去何从呢?
from:http://www.360doc.com/content/17/0912/10/40167318_686443332.shtml

Redis 备份、容灾及高可用实战

一、Redis简单介绍

Redis是一个高性能的key-value非关系型数据库,由于其具有高性能的特性,支持高可用、持久化、多种数据结构、集群等,使其脱颖而出,成为常用的非关系型数据库。

此外,Redis的使用场景也比较多。

  1. 会话缓存(Session Cache)
    Redis缓存会话有非常好的优势,因为Redis提供持久化,在需要长时间保持会话的应用场景中,如购物车场景这样的场景中能提供很好的长会话支持,能给用户提供很好的购物体验。
  2. 全页缓存
    在WordPress中,Pantheon提供了一个不错的插件wp-redis,这个插件能以最快的速度加载你曾经浏览过的页面。
  3. 队列
    Reids提供list和set操作,这使得Redis能作为一个很好的消息队列平台来使用。我们常通过Reids的队列功能做购买限制。比如到节假日或者推广期间,进行一些活动,对用户购买行为进行限制,限制今天只能购买几次商品或者一段时间内只能购买一次。也比较适合适用。
  4. 排名
    Redis在内存中对数字进行递增或递减的操作实现得非常好。所以我们在很多排名的场景中会应用Redis来进行,比如小说网站对小说进行排名,根据排名,将排名靠前的小说推荐给用户。
  5. 发布/订阅
    Redis提供发布和订阅功能,发布和订阅的场景很多,比如我们可以基于发布和订阅的脚本触发器,实现用Redis的发布和订阅功能建立起来的聊天系统。

此外还有很多其它场景,Redis都表现的不错。

二、Redis使用中单点故障问题

正是由于Redis具备多种优良特新,且应用场景非常丰富,以至于Redis在各个公司都有它存在的身影。那么随之而来的问题和风险也就来了。Redis虽然应用场景丰富,但部分公司在实践Redis应用的时候还是相对保守使用单节点部署,那为日后的维护带来了安全风险。

在2015年的时候,曾处理过一个因为单点故障原因导致的业务中断问题。当时的Redis都未采用分布式部署,采用单实例部署,并未考虑容灾方面的问题。

当时我们通过Redis服务器做用户购买优惠商品的行为控制,但后来由于未知原因Redis节点的服务器宕机了,导致我们无法对用户购买行为进行控制,造成了用户能够在一段时间内多次购买优惠商品的行为。

这种宕机事故可以说已经对公司造成了不可挽回的损失了,安全风险问题非常严重,作为当时运维这个系统的我来说有必要对这个问题进行修复和在架构上的改进。于是我开始了解决非分布式应用下Redis单点故障方面的研究学习。

三、非分布式场景下Redis应用的备份与容灾

Redis主从复制现在应该是很普遍了。常用的主从复制架构有如下两种架构方案。

常用Redis主从复制

  • 方案一

Redis这是最常见的一种架构,一个Master节点,两个Slave节点。客户端写数据的时候是写Master节点,读的时候,是读取两个Slave,这样实现读的扩展,减轻了Master节点读负载。

  • 方案二

Maste

  • 这种架构同样是一个Master和两个Slave。不同的是Master和Slave1使用keepalived进行VIP转移。Client连接Master的时候是通过VIP进行连接的。避免了方案一IP更改的情况。

Redis主从复制优点与不足

  • 优点
  1. 实现了对master数据的备份,一旦master出现故障,slave节点可以提升为新的master,顶替旧的master继续提供服务
  2. 实现读扩展。使用主从复制架构, 一般都是为了实现读扩展。Master主要实现写功能,  Slave实现读的功能
  • 不足
    架构方案一
    当Master出现故障时,Client就与Master端断开连接,无法实现写功能,同时Slave也无法从Master进行复制。

架构

此时需要经过如下操作(假设提升Slave1为Master):

  1. 在Slave1上执slaveof no one命令提升Slave1为新的Master节点。
  2. 在Slave1上配置为可写,这是因为大多数情况下,都将slave配置只读。
  3. 告诉Client端(也就是连接Redis的程序)新的Master节点的连接地址。
  4. 配置Slave2从新的Master进行数据复制。

架构方案二
当master出现故障后,Client可以连接到Slave1上进行数据操作,但是Slave1就成了一个单点,就出现了经常要避免的单点故障(single point of failure)。

 

之后需要经过如下操作:

  1. 在Slave1上执行slaveof no one命令提升Slave1为新的Master节点
  2. 在Slave1上配置为可写,这是因为大多数情况下,都将Slave配置只读
  3. 配置Slave2从新的Master进行数据复制

可以发现,无论是哪种架构方案都需要人工干预来进行故障转移(failover)。需要人工干预就增加了运维工作量,同时也对业务造成了巨大影响。这时候可以使用Redis的高可用方案-Sentinel

四、Redis Sentinel介绍

Redis Sentinel为Redis提供了高可用方案。从实践方面来说,使用Redis Sentinel可以创建一个无需人为干预就可以预防某些故障的Redis环境。
Redis Sentinel设计为分布式的架构,运行多个Sentinel进程来共同合作的。运行多个Sentinel进程合作,当多个Sentinel同一给定的master无法再继续提供服务,就会执行故障检测,这会降低误报的可能性。

五、Redis Sentinel功能

Redis Sentinel在Redis高可用方案中主要作用有如下功能:

  • 监控
    Sentinel会不断的检查master和slave是否像预期那样正常运行
  • 通知
    通过API,Sentinel能够通知系统管理员、程序监控的Redis实例出现了故障
  • 自动故障转移
    如果master不像预想中那样正常运行,Sentinel可以启动故障转移过程,其中的一个slave会提成为master,其它slave会重新配置来使用新的master,使用Redis服务的应用程序,当连接时,也会被通知使用新的地址。
  • 配置提供者
    Sentinel可以做为客户端服务发现的认证源:客户端连接Sentinel来获取目前负责给定服务的Redis master地址。如果发生故障转移,Sentinel会报告新的地址。

六、Redis Sentinel架构

Redis

七、Redis Sentinel实现原理

Sentinel集群对自身和Redis主从复制进行监控。当发现Master节点出现故障时,会经过如下步骤:

  • 1)Sentinel之间进行选举,选举出一个leader,由选举出的leader进行failover
  • 2)Sentinel leader选取slave节点中的一个slave作为新的Master节点。对slave选举需要对slave进行选举的方法如下:a) 与master断开时间
    如果与master断开的时间超过down-after-milliseconds(sentinel配置) * 10秒加上从sentinel判定master不可用到sentinel开始执行故障转移之间的时间,就认为该slave不适合提升为master。b) slave优先级
    每个slave都有优先级,保存在redis.conf配置文件里。如果优先级相同,则继续进行。c) 复制偏移位置
    复制偏移纪录着从master复制数据复制到哪里,复制偏移越大表明从master接受的数据越多,如果复制偏移量也一样,继续进行选举

    d) Run ID
    选举具有最小Run ID的Slave作为新的Master
    流程图如下:

  • 3)  Sentinel leader会在上一步选举的新master上执行slaveof no one操作,将其提升为master节点
  • 4)Sentinel leader向其它slave发送命令,让剩余的slave成为新的master节点的slave
  • 5)Sentinel leader会让原来的master降级为slave,当恢复正常工作,Sentinel leader会发送命令让其从新的master进行复制
    以上failover操作均有sentinel自己独自完成,完全无需人工干预。

总结

使用sentinel实现了Redis的高可用,当master出现故障时,完全无需人工干预即可实现故障转移。避免了对业务的影响,提高了运维工作效率。
在部署sentinel的时候,建议使用奇数个sentinel节点,最少三个sentinel节点。

写在最后

由于sentinel知识点比较多,这里仅给大家进行介绍,让大家有个了解,想了解更多可与我联系。谢谢。

from:http://www.yunweipai.com/archives/22663.html

如何优雅、机智地向新公司表露自己想要的薪酬待遇?

本回答针对的是有一定工作经验,主动跳槽或被猎头挖的过程中如何优雅机智谈薪水。

需要明确的是接受一个新的工作,谈薪水只是整个面试一个环节而已,而薪酬谈判的核心就是明确自己的期待和市场情况。

很多职场人跳槽后,本来兴高采烈上班,结果入职后发现其他同岗位同事工资比自己高,瞬间跌入谷底。要是发现自己同事工资比自己低,就开始我心飞翔。

对于你值多少钱这件事情,是市场能给到的价格,你对市场的了解,加之你的谈判技巧等多方面因素决定。

说到底,就是你期望工资的满足程度+你对市场价格的了解程度两个因素决定。

v2-23944475aa3d845ba8dc3c615b8c1242_b

1. 如何知道市场能offer多少呢?

我过去工作就是薪酬架构设计,每年都会参加行业薪酬调研,所以比较了解各行各业的市场情况,也会比较清楚企业设计薪酬价格的底层逻辑——工作本身让我实现了薪酬方面的信息对称。

对于一般的职场人,要了解市场价格,不妨从以下几个方面入手。
积累同行业人脉,认识和结交同行,或者亲戚,朋友,学姐学长,老师等人脉资源
链接行业薪酬专家,比如同行业HR和行业资深猎头。
利用搜索渠道,比如前程无忧,智联招聘,知乎等等……
完全可以把自己定位为一个薪酬调研的小机构,平时注意积累和搜集市场数据。

通过以上渠道你可以大体了解市场薪酬范围,然后设定好自己的底线价格,市场价格,理想价格。

通常来说,底线价格 ≤ 市场价格 ≤ 理想价格。

比如,根据你了解市场某职位薪酬范围是10000-11000左右,那么你应该报多少合适呢?

在给企业方报价的时候,先自己回答一个问题,低于多少我不会接受?

低于10000你去吗?去

低于9000你去吗?去 ——这就是你的大致底线价格。

低于8000你去吗?不去,不去,不去

那么,在谈判环节报12000-13000就是比较明智的价格,也就是高于市场价格的你的理想工资,而你的底线价格大体是9000-10000。

最重要的是通过面试来试探市场对你的反馈,总结自己的能力和经验在市场上值多少钱。

2. 薪酬谈判是否有策略?

有。

很多人的跳槽日常是不清楚外面市场情况,正好猎头或朋友介绍1-2个机会,就挖空心思想谈个理想的offer.

这种想法是比较幼稚的,因为你并不了解市场对你的反馈,报价也是瞎报,高低也不清楚。

v2-114841b188cc959b86e1342811027e7b_b

策略之一,通过面试积累经验,检验自己在市场上的价格

成熟的职场人,在一个岗位工作一年半到两年上就应该主动到市场上看看机会,检验下自己目前的工作内容、能力和经验在市场上是否有价值,市场的真实反应如何?

同时可以尝试报理想价格,看市场给到自己的真实反馈。

当然,我的经验都是在机会众多的一线城市。小城市机会也不会特别多,圈子小,尝试太多,容易坏了名声。

我们通过面试,可以积累面试经验,增加自信,了解市场价格。
总之,市场是最好的试金石。
策略之二,跳槽之前设定好合理的找工作时间,尽量手里有offer去谈offer

很多人跳槽的时候都是在本公司做不下去了,可能是跟领导闹翻了,或者把客户得罪了,或者和同事撕逼了,还有的人是常年不升职加薪,太委屈了,狠下心找工作。

这样的心态去找工作,可以接受的时间长度都很短,忍不住就裸辞,从谈判心态上来说,基本上给钱就走。

从跳槽时机的角度来说,最好在职业上升期或者在公司风光一时的时候离开,这时候你在市场上会获得最高的溢价。

另外,可以给自己设定合理的跳槽时间,比如用6个月左右的时间找到合适的机会,先找几家公司练练手,不要一开始就投自己的理想企业,练手差不多了再投。
如果在练手的过程中拿到几个offer,可以先hold住,拿着offer和理想雇主谈offer。
练手的好处是可以在理想雇主面试环节表现出最佳状态。

通常猎头和企业都会在面试环节问你手头是否有其他offer,希望了解你的求职进程。

如果候选人说,我手里已经有几个offer,自然有底气,这就是谈判的重要筹码。
注意说自己有offer的措辞,可以说,坦白讲,我目前有两个offer,但都不是特别满意,我更希望能到××公司工作…… 因为……我希望….
我曾经负责公司审批升职加薪等流程,现实情况是很多优秀人才被猎头挖之后,拿着offer提辞职,因为是人才嘛,领导和企业自然会count offer来挽回,那么就顺利在企业内部实现升职加薪。
这样的人才通常都是在企业的核心岗位的高价值人才,而那些高替代性的普通员工,你的去留真的没有在意。
因为市场检验了你,给出了标价,企业惜才,你有价值,或者领导正好需要你,就会给到你想要的。

策略之三, 先发制人,高开低走,附加协议

市场上的中高端职位,猎头和企业方对候选人的薪酬都是open的,所谓open,就是根据候选人目前的package(整体薪酬包),根据市场情况,对其能力进行评估,给予一定的合理涨幅。

先发制人

在面试的最后环节,企业方会抛出关键问题——你期望的工资是多少?

我建议“先发制人”,在了解了市场价格的前提下,所以当然是我们先报出理想价格。

我们先报,主动权就在我们。况且我们心里知道企业价格和我们能接受的底线。比如,底线9000, 市场价格10000, 理想价格12000。

那么,当企业问你的期望工资的时候,你就直接说12000。你有80%的可能拿到11000的offer.

而候选人通常会犯的致命错误是在报价的那一刻突然怂了。

自降身价,比如明明心里想好了理想价格是12000,面试官问出问题的那一刻,嘴就不听使唤的报出10000。

企业经过第二轮谈判开出9000的价格,直接击穿到你的底线价格,好吧,那就接受吧。

这样的场面和谈判过程——非常常见。

高开低走

所谓“高开低走”,也是给企业一点斡旋的空间,当然也有一些情况,基于你报出的价格在企业的薪酬架构里属于低价位,企业也不会和你讨价还价,直接给你offer。

市场上大部分情况是企业会和候选人进行谈判,也就一轮到两轮。你提出一个报价,企业说OK,或者说稍微调整下期望。仅此而已。

附加协议

如果你的期望就是12000,企业谈判中说只能给你11000,你可以尝试谈判和企业协商,是否可以在合同中写出,试用期11000,如果胜任工作,过了试用期将工资调整到12000。

这就是附加协议的例子,你可以根据实际情况来应用。

v2-ce0e3d6ca2261c655382dbc4605050a8_b

3. 企业薪酬架构是什么?

中小企业或者小的创业公司几乎不存在这个概念,也就是随行就市,根据市场大体情况和候选人的报价,以及和内部同岗位人员薪酬进行综合比对,给出最后的offer。

也有一些土豪公司,就给出市场上的最高价格,你开价多少都没关系,看中你的能力就给到让你满意的工资。

但是,大型企业都有完善的薪酬架构体系,薪酬架构是根据企业的职等职级制定的薪酬带,和你谈工资的HR手里通常都有这样类似的一张表。

v2-a6867a756ac32e9123ecb35a9e732b68_b

(一线城市,某IT公司支持部门薪酬价格数据,有一定参考性)

中位数的意思是大多数企业会支付的价格,市场上绝大多数企业都会参加年度薪酬调研,拿到同行业的薪酬数据报告,根据各家的发展战略制定薪酬策略。大部分企业的策略是给到候选人市场上50分位的价格。

如何理解50分位呢?

有比如有5个市场专员的薪酬数据,分别是5000,5500,6000,8000,10000,排在中间也就是第三名的数字,6000,就是市场专员的中间值。

当然也有的企业针对核心岗位,制定高于绝大多数企业的薪酬架构,比如给出90分位的价格来吸引优秀人才。90分位就是1-100个同岗位的薪资数据,排在第90高的数值。

4. 还涉及的一个问题就是,薪酬谈的越高越好吗?

告诉你个事实。企业每年调薪的机会一般是1次或2次。

所以入职的工资对你很重要,如果你谈的很高,比如财务专员薪酬范围是4500-8500,而你谈了8500加入公司(参考上图)。除非你升职,通常来讲,按照公司政策,你未来几年加薪的可能性很低,即便有也不高。

而且如果你是拿到这个级别最高工资加入公司,你的老板和公司对你的期望也会更高。
所谓“颜值越高,责任越重“。
如果你是拿7500工资(红色圈圈数字),担任财务主管职位,就是起步价,每年还会有稳步提升工资的空间。

5. 谈判中,如何突破企业薪酬架构?

谈薪资的时候,有否有听面试官说,你报的工资我们给不了,超过我们的公司政策了,也就是你的报价超过了上面薪酬架构例子中的最高值。

这种情况下,如何突破指导线呢?

不要和HR谈,HR一般没有突破政策的权限。

可以争取机会再次和业务负责人谈,如果业务负责人对你的能力是肯定的会帮你突破,拿到超过企业薪酬架构最高值的offer。
规则都是让老板打破的。

6. 整体报酬的角度看如何谈一个满意的薪水

我曾经用整体报酬的概念回答过除了薪酬和五险一金,在挑选公司的时候最应该考虑什么,链接如下。薪酬谈判的问题也涉及到整体报酬,我将答案简化分享如下。菲凡:除了薪酬和五险一金,在挑选公司的时候最应该考虑什么?

回到我这个整体报酬专家的专业本身,薪水仅仅是一份新工作需要考量的一小部分而已。

在选择公司的时候, 跳槽谈offer,以及拿到几个offer来决策的时候,还是要从整体报酬出发。
直接报酬——通常说的薪水部分
间接报酬——公司福利,不容忽视
工作内容——工作内容本身能够带给你什么价值
职业发展——是否有持续发展的机会
公司文化——你是否能融入公司文化
公司平台——平台决定了你的努力会有多少回报
跟随领导——一个牛逼的领导会带你飞
6.1 直接报酬

包括:工资、补贴、奖金、股票…… 面试最后环节问清楚出了基本工资是否还有其他现金报酬。比如电话补贴,交通补贴,午饭补贴,或者其他技术或岗位补贴。

6.2 间接报酬

五险一金的缴纳,商业医疗保险,年度体检,带薪假期等也是一线城市较好企业的标配。

6.3 工作内容

工作内容代表了工作本身的价值,是否与你的兴趣和能力匹配,工作的多样性、挑战性、重要性以及其意义。

核心部门的核心岗位就是高价值岗位。比如谷歌的工程师,雅诗兰黛等品牌公司的市场岗位,咨询公司的顾问等等。工作内容越核心,未来的价值越不可估量。

6.4 职业发展

了解自己的岗位定位,未来三到五年的发展前景十分重要。比如有些美女前台,毕业的时候工资还挺高的,但是职位本身没有发展空间按,每年调薪幅度有限,几年后也就是原地踏步。

6.5 公司文化

企业文化就是公司所提供的员工与员工、员工与团队之间的良好氛围。说起来很简答,但是文化决定企业的格局,发展和未来。好的企业文化就是鞭策员工和企业共同成长,双赢。

6.6 公司平台

BAT或华为这样的平台我们就不说了,平台是够大的。职场新人,尽量选择顶级或最好的平台开阔视野,工作几年后再决定是否到小公司或初创公司,这个顺序如果错了,那么大公司或顶级公司对你来说就不一定那么容易加入了。而且你错过了学习的黄金时间。

6.7 跟随领导

领导虽然风格各异,你需要判断TA是否正直、值得信任,另外要询问部门架构,搞清楚领导在公司的架构中的位置,级别越高,部门越核心,领导就越有话语权。汇报给这样的领导,你才有更多的资源和机会。
一个牛逼的领导可以让你的职业发展如虎添翼,而一个差领导也一定可以让你的职业发展屡屡受挫。

———-重点来了——

7. 薪酬谈判中常见坑有哪些?

大坑一,用奖金来压低底薪。

“有的企业方在谈判中提到,底薪不高,但是奖金可观,希望你降低底薪要求,而实际情况是奖金因为种种情况几乎不发放,或者和当初面试时候说的奖金相差甚远。”

应对策略:

谈奖金部分的都是目标奖金数字,有的是年薪的15%,有的公司目标奖金达到年薪的50%,还有的根据业务情况发放季度奖金,半年奖金等等。不要轻易相信这个目标数字,没有实际意义。

首先仔细询问下企业方过去两年的实际奖金有多少?

当然,也有的公司目标奖金只有10%,而实际发放比例每年都是高于目标奖金,甚至达到年薪的20%+。

实际发放比例才是公司营业能力的体现。不要被目标奖金比例蒙蔽了双眼。

还有的公司,根本不发奖金,目标奖金只是摆设,老板说有就有,说没有就没有。
你再次跳槽的时候,猎头和HR考察你的整体package,也是要看你去年实际拿到的奖金,而不是目标奖金,所以目标奖金低,也是变相的降薪跳槽。
大坑二、加班加班加班

“有的职位工资和工作内容等各方面都不错,但是入职之后才发现,公司没有人按时下班, 公司加班文化非常浓烈,老板喜欢加班,而且没有加班费。”

应对策略:

面试过程中如果面试官询问你对加班的看法,大部分情况是是加班严重的岗位。你可以问问企业方日常的加班强度和加班工资如何计算。如果能链接到该公司的在职人员问问实际情况那就最好了。

避免掉到加班的大坑里。

大坑三、原来公司不调薪

“跳槽的时候,工资谈的还挺满意的,你觉得开心无比,结果加入公司后发现,每年薪资调整就只有1-2%或者几百块,CPI都追不上,变相降薪。”

应对策略:

面试过程中问清楚公司普调比例和加薪政策。比如:去年的加薪幅度是多少?加薪考核的指标是什么?

—–没有实际谈判经验,优雅机智谈薪水都是瞎扯,让自己投入到市场中去体会吧—-

实践出真知。

v2-e19427946e34ffa9f8d572fc8f58740f_b

本人坐标上海,薪酬谈谈判专家,长期混迹于外企500强,我个人思维和经验的局限导致我的分享并不能代表整个中国职场,当然如果对你有些许帮助,你可以手动点赞,不同观点,开放讨论。

你可能喜欢的菲凡其他文章:

【1】如何判断领导的段位

【2】我是如何工资快速破万的

【3】快速升职的秘密

from:https://www.zhihu.com/question/23146089

NLP入门之语音模型原理

作者:云时之间

这一篇文章其实是参考了很多篇文章之后写出的一篇对于语言模型的一篇科普文,目的是希望大家可以对于语言模型有着更好地理解,从而在接下来的NLP学习中可以更顺利的学习.

1:传统的语音识别方法:

这里我们讲解一下是如何将声音变成文字,如果有兴趣的同学,我们可以深入的研究.

首先我们知道声音其实是一种波,常见的MP3等都是压缩的格式,必须要转化成非压缩的纯波形的文件来处理,下面以WAV的波形文件来示例:

大数据
在进行语音识别之前,有的需要把首尾段的静音进行切除,进行强制对齐,以此来降低对于后续步骤的干扰,整个静音的切除技术一般称为VAD,需要用到对于信号处理的一些技术.

如果要对于声音进行分析,就需要对于声音进行分帧,也就是把声音切成一小块一小块,每一小块称为一帧,分帧并不是简单地切开,而是使用的移动窗函数来实现的,并且帧和帧之间一般是有交叠的

大数据
就像上图这样

分帧之后,语音就变成了很多个小段,但是波形在时域上是没有什么描述能力的,因此就必须要将波形进行变换,常见的一种变换方法就是提取MFCC特征,然后根据人耳的生理特性,把每一帧波变成一个多维度向量,这个向量里是包含了这块语音的内容信息,这个过程叫做声学特征的提取,但是实际方法有很多,基本类似.

至此,声音就成了一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。观察序列如下图所示,图中,每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。

大数据
接下来就要介绍怎样把这个矩阵变成文本了。首先要介绍两个概念:

1:音素:

单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集,参见The CMU Pronouncing Dictionary‎。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。

1. 状态:这里理解成比音素更细致的语音单位就行啦。通常把一个音素划分成3个状态。

语音识别是怎么工作的呢?实际上一点都不神秘,无非是:

把帧识别成状态(难点)。

把状态组合成音素。

把音素组合成单词。

如下图所示:

大数据
图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。

那每帧音素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最大,那这帧就属于哪个状态。比如下面的示意图,这帧在状态S3上的条件概率最大,因此就猜这帧属于状态S3。

大数据
那这些用到的概率从哪里读取呢?有个叫“声学模型”的东西,里面存了一大堆参数,通过这些参数,就可以知道帧和状态对应的概率。获取这一大堆参数的方法叫做“训练”,需要使用巨大数量的语音数据,训练的方法比较繁琐,这里不讲。

但这样做有一个问题:每一帧都会得到一个状态号,最后整个语音就会得到一堆乱七八糟的状态号。假设语音有1000帧,每帧对应1个状态,每3个状态组合成一个音素,那么大概会组合成300个音素,但这段语音其实根本没有这么多音素。如果真这么做,得到的状态号可能根本无法组合成音素。实际上,相邻帧的状态应该大多数都是相同的才合理,因为每帧很短。

解决这个问题的常用方法就是使用隐马尔可夫模型(Hidden Markov Model,HMM)。这东西听起来好像很高深的样子,实际上用起来很简单: 第一步,构建一个状态网络。 第二步,从状态网络中寻找与声音最匹配的路径。

这样就把结果限制在预先设定的网络中,避免了刚才说到的问题,当然也带来一个局限,比如你设定的网络里只包含了“今天晴天”和“今天下雨”两个句子的状态路径,那么不管说些什么,识别出的结果必然是这两个句子中的一句。

那如果想识别任意文本呢?把这个网络搭得足够大,包含任意文本的路径就可以了。但这个网络越大,想要达到比较好的识别准确率就越难。所以要根据实际任务的需求,合理选择网络大小和结构。

搭建状态网络,是由单词级网络展开成音素网络,再展开成状态网络。语音识别过程其实就是在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,这称之为“解码”。路径搜索的算法是一种动态规划剪枝的算法,称之为Viterbi算法,用于寻找全局最优路径。

大数据
这里所说的累积概率,由三部分构成,分别是:

  1. 观察概率:每帧和每个状态对应的概率
  2. 转移概率:每个状态转移到自身或转移到下个状态的概率
  3. 语言概率:根据语言统计规律得到的概率

其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是使用大量的文本训练出来的,可以利用某门语言本身的统计规律来帮助提升识别正确率。语言模型很重要,如果不使用语言模型,当状态网络较大时,识别出的结果基本是一团乱麻。

这样基本上语音识别过程就完成了。

2:端到端的模型

现阶段深度学习在模式识别领域取得了飞速的发展,特别是在语音和图像的领域,因为深度学习的特性,在语音识别领域中,基于深度学习的声学模型现如今已经取代了传统的混合高斯模型GMM对于状态的输出进行建模,因此在普通的深度神经网络的基础之上,基于长短记忆网络的递归神经网络对语音序列的强大的建模能力进一步提高了语音识别的性能,但是这些方法依旧包含着最基础的隐马尔可夫HMM的基本结构,因此依旧会出现隐马尔科夫模型的训练和解码的复杂度问题.

基于深度学习的声学模型训练过程必须是由传统的混合高斯模型开始的,然后对训练数据集合进行强制的对齐,然后进行切分得到不同的声学特征,其实传统的方式并不利于对于整句话的全局优化,并且这个方法也需要额外的语音学和语言学的知识,比如发音词典,决策树单元绑定建模等等,搭建系统的门槛较高等问题.

一些科学家针对传统的声学建模的缺点,提出了链接时序分类技术,这个技术是将语音识别转换为序列的转换问题,这样一来就可以抛弃了传统的基于HMM的语音识别系统的一系列假设,简化了系统的搭建流程,从而可以进一步提出了端到端的语音识别系统,减少了语音对于发音词典的要求.

端到端的系统是由LSTM的声学建模方法和CTC的目标函数组成的,在CTC的准则下,LSTM可以在训练过程中自动的学习声学的特征和标注序列的对应关系,也就不需要再进行强制的对数据集合进行对齐的过程了.并且可以根据各种语种的特点,端到端识别直接在字或者单词上进行建模,但是因为端到端的识别可能是意味着发展的趋势,但是因为完全崛弃了语音学的知识,现如今在识别性能上仍然和传统的基于深度学习的建模方法有着一定的差距,不过我最近在看的一篇论文中,基于端到端的藏语识别已经达到甚至超过了现有的通用算法.

就拿藏语举例,藏语是一种我国的少数民族语言,但是因为藏族人口较少,相比起对于英文,汉语这样的大语种来说,存在着语音数据收集困难的问题,在上一篇文章中我们可以知道,自然语言处理的最重要的需求就是语料,如果有很好的语料库自然会事半功倍,这样就导致了藏语的语音识别研究工作起步较晚,并且因为藏语的语言学知识的匮乏进一步阻碍了藏语语音识别的研究的进展,在我国,藏语是属于一种单音节字的语言,在端到端的语音过程中,藏语是建模起来非常简单的一种语言,但是作为一种少数民族语言,语料不足会在训练过程中出现严重的稀疏性问题,并且很多人在研究现有的藏语词典中发现,如果完全崛弃现有的藏语发音词典,完全不利用这样的先验知识,这样其实也是不利于技术的发现的,因此现阶段下,采用CTC和语言知识结合的方式来建模,可以解决在资源受限的情况下声学的建模问题,使得基于端到端的声学模型方法的识别率超过当下基于隐马尔科夫的双向长短时记忆模型.

在基于CD-DNN-HMM架构的语音识别声学模型中,训练DNN通常需要帧对齐标签。在GMM中,这个对齐操作是通过EM算法不断迭代完成的,而训练DNN时需要用GMM进行对齐则显得非常别扭。因此一种不需要事先进行帧对齐的方法呼之欲出。此外对于HMM假设一直受到诟病,等到RNN出现之后,使用RNN来对时序关系进行描述来取代HMM成为当时的热潮。随着神经网络优化技术的发展和GPU计算能力的不断提升,最终使用RNN和CTC来进行建模实现了end-to-end语音识别的声学模型。CTC的全称是Connectionist Temporal Classification,中文翻译大概是连接时序分类。它要达到的目标就是直接将语音和相应的文字对应起来,实现时序问题的分类。

这里仍然可以描述为EM的思想:

E-step:使用BPTT算法优化神经网络参数;

M-step:使用神经网络的输出,重新寻找最有的对齐关系。

CTC可以看成是一个分类方法,甚至可以看作是目标函数。在构建end-to-end声学模型的过程中,CTC起到了很好的自动对齐的效果。同传统的基于CD-DNN-HMM的方法相比,对齐效果引用文章[Alex Graves,2006]中的图是这样的效果:

大数据
这幅图可以理解:基于帧对齐的方法强制要求切分好的帧对齐到对应的标签上去,而CTC则可以时帧的输出为空,只有少数帧对齐到对应的输出标签上。这样带来的差别就是帧对齐的方法即使输出是正确的,但是在边界区域的切分也很难准确,从而给DNN的训练引入错误。c) End-to-end模型由于神经网络强大的建模能力,End-to-end的输出标签也不再需要像传统架构一样的进行细分。例如对于中文,输出不再需要进行细分为状态、音素或者声韵母,直接将汉字作为输出即可;对于英文,考虑到英文单词的数量庞大,可以使用字母作为输出标签。从这一点出发,我们可以认为神经网络将声学符号到字符串的映射关系也一并建模学习了出来,这部分是在传统的框架中时词典所应承担的任务。针对这个模块,传统框架中有一个专门的建模单元叫做G2P(grapheme-to-phoneme),来处理集外词(out of vocabulary,OOV)。在end-to-end的声学模型中,可以没有词典,没有OOV,也没有G2P。这些全都被建模在一个神经网络中。另外,在传统的框架结构中,语音需要分帧,加窗,提取特征,包括MFCC、PLP等等。在基于神经网络的声学模型中,通常使用更裸的Fbank特征。在End-to-en的识别中,使用更简单的特征比如FFT点,也是常见的做法。或许在不久的将来,语音的采样点也可以作为输入,这就是更加彻底的End-to-end声学模型。除此之外,End-to-end的声学模型中已经带有了语言模型的信息,它是通过RNN在输出序列上学习得到的。但这个语言模型仍然比较弱,如果外加一个更大数据量的语言模型,解码的效果会更好。因此,End-to-end现在指声学模型部分,等到不需要语言模型的时候,才是完全的end-to-end。3、 语言模型(Language Model, LM)语言模型的作用可以简单理解为消解多音字的问题,在声学模型给出发音序列之后,从候选的文字序列中找出概率最大的字符串序列。

4、 解码传统的语音识别解码都是建立在WFST的基础之上,它是将HMM、词典以及语言模型编译成一个网络。解码就是在这个WFST构造的动态网络空间中,找到最优的输出字符序列。搜索通常使用Viterbi算法,另外为了防止搜索空间爆炸,通常会采用剪枝算法,因此搜索得到的结果可能不是最优结果。在end-to-end的语音识别系统中,最简单的解码方法是beam search。尽管end-to-end的声学模型中已经包含了一个弱语言模型,但是利用额外的语言模型仍然能够提高识别性能,因此将传统的基于WFST的解码方式和Viterbi算法引入到end-to-end的语音识别系统中也是非常自然的。然而由于声学模型中弱语言模型的存在,解码可能不是最优的。文章[yuki Kanda, 2016]提出在解码的时候,需要将这个若语言模型减掉才能得到最优结果。

End.

转载请注明来自36大数据(36dsj.com):36大数据 » NLP入门之语音模型原理

概念和概念所代表的含义

最近看了一个视频:
5年前节目中他首提引力波,遭嘉宾嘲讽,如今他们都欠他一个道歉

希望各位义愤填膺回答这个问题的时候先看题,引用@游嘉的评论:人们反感的是嘉宾对低学历的科学研究爱好者的武断和嘲笑,否定可以有很多种表达方式,恰恰嘉宾用了很没有教养的一种方式,最后五年后的今天也并没有显示出他们比那个求职者聪明多少

各位大神看清楚题干再抖机灵,没人在赞成民科维护民科,只不过是对嘉宾和主持人态度的不理解。

第一次知乎提问这么多回答真的受宠若惊,其实这个问题哪有那么多专业性,就怪题主手贱多点了科学标签,引来了好多义愤填膺不看题的大神。

作者:CHAI Bin
链接:https://www.zhihu.com/question/40563882/answer/87203104
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

我说三个故事。

1、几千年来,中国的道士们都痴迷于“点石成金”的仙术。现在,我们知道了“核聚变”这个东西,理论上不考虑成本、技术足够先进的话,确实可以把石头变成黄金。所以,中国古代的道士发明了核聚变技术?

2、一千多年前的唐朝,有个皇帝叫作李世民,巧了!我有个朋友也叫李世民。所以,我的朋友当过皇帝?

3、家父喜欢“装逼”,反驳我的时候常说“你懂什么!你连一加一为什么等于二都不知道!大科学家陈景润都没有证明一加一为什么等于二,这是全世界最难的问题!”所以,家父知道什么叫【1+1】?

回到本题,这个狗屁民科知道啥叫“引力波”?只不过听到别人说过这个名词,拿来说出来而已。不是名字一样就是一样东西,不是听到个新名词一知半解就是行家了。

借用评论里@失泆 的一句话,“这些名词为人所敬畏的地方是背后复杂而有依据的理论体系,而不是名词本身”。

另外,作为科班出身的人,我瞧不起所有哗众取宠,“总想搞个大新闻”的民科。

最后,你们慢聊,我去卖“高科技引力波理疗仪”发财去了~

================================================
有人非要说所谓“尊重”。

类比一下,当你平白无故说“你应该吃大便”的时候,我就可以叫你闭嘴了,而不需要听你解释为什么我需要吃大便这个荒谬的事情;同样的,当他说出第一句话的时候,任何有高中科学基础的人就知道他讲的有多荒谬了,就该让他闭嘴了。

要谈尊重也得是互相的,我们尊重的是人,是不同观点,而不是明显的荒谬,并用荒谬来哗众取宠。

他从来没有尊重过知识和科学,你让科学家们怎么尊重他?