精华内容
下载资源
问答
  • 在人工智能和大数据产品开发过程中,有哪些特别需要注意要点?人工智能领域的算法大师、华盛顿大学教授Pedro Domingos对此进行了深入思考。 在达观数据最新翻译智能Web算法》(第2版)中,对Pedro Domingos教授...

    人工智能是近年来科技发展的重要方向,大数据的采集、挖掘、应用的技术越来越受到瞩目。在人工智能和大数据产品的开发过程中,有哪些特别需要注意的要点?人工智能领域的算法大师、华盛顿大学教授Pedro Domingos对此进行了深入思考。

    在达观数据最新翻译的《智能Web算法》(第2版)中,对Pedro Domingos教授的观点进行了高度概括,提炼出12个注意点,为行业开发实践提供了重要的参考:

    在人工智能和大数据产品的开发中,有哪些需要特别注意的点?

    注意点1:你的数据未必可靠

    在实际应用中,有很多各种各样的原因会导致你的数据是不可靠的。因此,当你将数据用于解决问题前,必须经常留心来检查数据是否值得信赖。如果基于糟糕的数据来挖掘,无论多么聪明的人也永远只会获得糟糕的结果。下面列举了一些常见的会导致数据可靠性问题的因素:

    用于开发的数据,往往和实际情况下的数据分布不同。例如也许你想把用户按照身高划分为“高”、“中等”、“矮”三档,但如果系统开发时使用的数据集里最低用户的身高是6英尺(184cm),那么很有可能你开发出来的系统里会把一个“仅有6英尺”的用户称为“矮”用户。

    你的数据集中存在很多缺失数据。事实上,除非是人为构造的数据集合,否则很难避免缺失数据问题的发生,如何处理数据缺失的问题是很有技巧的事情。实践中我们要么是干脆丢弃一部分残缺的数据,要么就是想办法计算一些数值去填补这些缺失值。无论哪种方法都可能导致应用结果的不稳定。

    你的数据可能随时在变化。数据库的表结构可能会变,数据定义也可能会变。

    你的数据可能没有被归一化。假设你可能在观察一组用户的体重,为了能够获得有效的结论,首先需要对每个体重的衡量单位进行归一化,是英镑还是公斤,不能混淆着用。

    你的数据可能并不适用于相应的算法。数据存在着各种各样的形式和规范,或者叫数据类型(data types),有些是数值化的数据,有些则不是。有些数据集合能被有序排列,有些则做不到。有些是离散化的数据(例如房间里的人数),另一些则是连续化的(例如气温或者气压等数据)。

    注意点2:计算难以瞬间完成

    完成任何一个人工智能解决方案的计算,都需要一定的时间,方案的响应速度,对商业应用的成功与否起到十分关键的作用。不能总是盲目假设任何算法在所有数据集上都一定能在规定时间内完成,你需要测试下算法的性能是否在可接受的应用范围内。

    以搜索引擎为例,用户对结果返回的时长是有忍耐的限度的。如果用户等待的时间超过10秒,50%的用户会流失,如果等待时间超过1分钟,90%以上的用户会流失。在开发智能应用系统时,不能为了达到更好的算法精度而忽略系统运算和等待的时间,否则会导致整个产品的失败。

    注意点3: 数据的规模非常重要

    当我们考虑智能应用时,数据规模是很重要的因素。数据规模的影响可以分为两点来考察:第一点是规模会影响应用系统的响应速度,上一节我们刚提过;第二点是在很大的数据集上的挖掘出有价值结果的能力会受到考验。例如为100个用户开发的电影或音乐推荐系统可能效果很好,但是同样的算法移植到有着100000个用户的环境里,效果可能就不尽如人意了。

    其次,使用更多的数据来训练的简单算法,比受制于维度诅咒(Dimension Curse)的复杂算法往往有好得多的效果。类似Google这样拥有海量数据的大型企业,优秀的应用效果不仅来自于精妙复杂的算法,也来自于其对海量训练数据的大规模分析挖掘。

    注意点4: 不同的算法具有不同的扩展能力

    我们不能假设智能应用系统都可以通过简单增加服务器的方法来扩展性能。有些算法是有扩展性的,而另一些则不行。

    例如如果我们要从数亿的文章标题里,找出标题相似的各个组的文章,注意并不是所有的聚类算法此时都能并行化运行的,你应该在设计系统的同时就考虑可扩展性。有些情况下你需要将数据切分成较小的集合,并能够让智能算法在各个集合上并行运行。设计系统时所选择的算法,往往需要有并行化的版本,而在一开始就需要将其纳入考虑,因为通常围绕着算法还会有很多相关联的商业逻辑和体系结构需要一并考虑。

    注意点5:并不存在万能的方法

    你可能听说过一句谚语“当你有了把榔头的时候,看什么东西都像钉子”,这里想表达的意思是:并不存在能够解决所有智能应用问题的万能算法。

    智能应用软件和其他所有软件类似——具有其特定的应用领域和局限性。当面对新的应用领域时,一定要充分的验证原有方法的可行性,而且你最好能尝试用全新的视角来考察问题,因为不同的算法在解决特定的问题时才会更有效和得当。

    注意点6:数据并不是万能的

    根本上看,机器学习算法并不是魔法,它需要从训练数据开始,逐步延伸到未知数据中去。

    例如假设你已经对数据的分布规律有所了解,那么通过图模型来表达这些先验的知识会非常有效。除了数据以外,你还需要仔细的考虑,该领域有哪些先验知识可以应用,这对开发一个更有效的分类器会很有帮助。数据和行业经验结合往往能事半功倍。

    注意点7:模型训练的时间差异很大

    在特定应用中,可能某些参数的微小变化就会让模型的训练时间出现很大的差异。例如在深度神经网络训练时就会有各种各样的参数调节的情况发生。

    人们往往会直观地觉得调整参数时,训练时间是基本稳定不变的。例如假设有个系统是计算地球平面上任意两点之间的距离的,那么任意给出两个点的坐标时,计算时间差不多都是相同的。但在另一些系统里却并非如此,有时细微的调整会带来很明显的时间差异,有时差异甚至可以大到数小时,而不是数秒。

    注意点8:泛化能力是目标

    机器学习实践中最普遍存在的一个误区是陷入处理细节中而忘了最初的目标——通过调查来获得处理问题的普适的方法。

    测试阶段是验证某个方法是否具备泛化能力(generalization ability)的关键环节(通过交叉验证、外部数据验证等方法),但是寻找合适的验证数据集不容易。如果在一个只有几百个样本的集合上去训练有数百万维特征的模型,试图想获得优秀的精度是很荒唐的。

    注意点9:人类的直觉未必准确

    在特征空间膨胀的时候,输入信息间形成的组合关系会快速增加,这让人很难像对中等数据集合那样能够对其中一部分数据进行抽样观察。更麻烦的是,特征数量增加时人类对数据的直觉会迅速降低。

    例如在高维空间里,多元高斯分布并不是沿着均值分布,而是像一个扇贝形状围绕在均值附近,这和人们的主观感受完全不同。在低维空间中建立一个分类器并不难,但是当维度增加时,人类就很难直观的理解了。

    注意点10:要考虑融入更多新特征

    你很可能听说过谚语“进来的是垃圾,出去的也是垃圾”(garbage in, garbage out),在建立机器学习应用中这一点尤其重要。为了避免挖掘的效果失控,关键是要充分掌握问题所在的领域,通过调查数据来生成各种各样的特征,这样的做法会对提升分类的准确率和泛化能力有很大的帮助。仅靠把数据扔进分类器就想获得优秀结果的幻想是不可能实现的。

    注意点11:要学习各种不同的模型

    模型的组合(Ensemble)技术正变得越来越流行了,因为组合方法,仅需要付出少许偏见(bias)的代价,就能大大的减少算法的不确定性。在著名的Netflix算法竞赛中,冠军队以及成绩优异队伍们全都使用了组合模型方法,把超过100个模型合并在一起(在模型上叠加高层的模型形成组合)以提升效果。在人工智能用于实际应用时,从业者普遍都认为,未来的算法一定时会通过模型组合的方法来获得更好精度,但是这也会抬高非专业人员理解系统机制的门槛。

    注意点12:相关关系不等同于因果关系

    这一点值得反复强调,我们可以通过一句调侃的话来解释:“地球变暖、地震、龙卷风,以及其他自然灾害,都和18世纪以来全球海盗数量的减少有直接关系”。这两个变量的变化有相关性,但是并不能说存在因果关系,因为往往存在第三类(甚至第4、5类)未被观察到的变量在起作用。相关关系应该看作是潜在的因果关系的一定程度的体现,但需要进一步研究。

    在开发人工智能与大数据应用系统时,把握好以上十二个注意点,将能够有效避免实战中的各种“坑”,帮助技术在走出实验室、走向落地应用时,发挥更加强大的作用。

    陈运文,达观数据创始人兼CEO,复旦大学计算机专业博士,上海市计算机学会多媒体分会副会长,国际计算机学会(ACM)和国际电子电器工程师学会(IEEE)高级会员。曾任盛大文学首席数据官,腾讯文学高级总监、数据中心负责人,百度核心技术研发工程师,多次代表中国参加ACM等国际数据挖掘竞赛并获冠。  


    本文作者:佚名

    来源:51CTO

    展开全文
  • 大部分经济活动和智能合约将继续在原有以太坊网络上运行,它将继续成为以太坊 2.0平行系统。开发者实现了Eth1向Eth2过渡连接桥,但反向是无法转回 Token 。 以太坊 2.0部署三个阶段是什么? 第0阶段:信...

    图片由Pete Linforth提供

     

    以太坊 2.0是以太坊网络的升级,预计将在2020年年底进行。

    一旦推出,以太坊 2.0将成为测试Proof-of-Stake共(PoS)算法系统的试验网。大部分经济活动和智能合约将继续在原有的以太坊网络上运行,它将继续成为以太坊 2.0的平行系统。开发者实现了Eth1向Eth2过渡的连接桥,但反向是无法转回 Token 的。

    以太坊 2.0部署的三个阶段是什么?

    第0阶段:信标链

    测试网于2020年7月开始。它只包括测试新的PoS共识机制,因此该网络将主要是测试驱动的,尽管它将使用真实的以太坊 Token。在这个阶段内,以下PoS的功能将会上线。

    • Staker的管理

    • Staker的资金管理。

    • 一个随机数生成器,帮助选择区块生产者和质押的监管者。

    • Staker对区块大小提案进行投票。

    • 奖励和罚款的分配,对Staker的奖励和罚款。

    第一阶段:分片

    最初将部署一个有64个分片的实验网络。在没有重大经济活动的情况下,0阶段旨在测试基本的PoS基础设施,1阶段旨在测试基本的分片模型。在这一阶段,65个区块链将并行运行--0阶段存在的信标链和64个新的分片。在信标链和所有64个分片之间也将有一个双向通信和链接机制。

    第二阶段:实施新的运行模式

    假设在这个阶段,智能合约将开始在网络上工作,经济活动将开始。分片将不再是原始数据的存储,而是开始类似于虚拟机和以太坊 1.0智能合约。第二阶段的规范正在制定中。

    单向转换

    以太坊 2.0推出后,将有两个网络并行运行--Eth1和Eth2。最初可以将Eth1 Token兑换成Eth2 Token,但反之则不行,所以理论上,Eth2 Token的交易价格应该小于或等于Eth1 Token的价值。然而,在过渡的早期阶段,Eth2 Token不太可能被交易所定价或支持,因为它们的唯一用途将是质押。甚至连基本的转账都将无法实现。

    要将Eth1转移到Eth2,你需要使用Eth1托管协议。这个协议会销毁Eth1上的 Token,然后销毁的 Token可以作为发行新的Eth2 Token的确认。Token 会被永久销毁毁,不过由于硬分叉导致的协议变更,可以实现 Token 的回收。

    转移到Eth2的 Token 会自动进入验证器池

    PoS(Proof of stake)

    根据PoS的概念,投票的 "权重 "和验证者的奖励金额是由质押的 Token 值决定的。Eth2规范规定,每个验证者必须有32个ETH。如果合约中收到的 Token 数超过32ETH,那么验证者不会从这些额外的 Token 中获得奖励。如果少于32个ETH Token ,那么节点将不会被激活。因此,您需要以32个 Token 的比例将ETH转入Eth2。32个ETH的每一部分都可以是一个单独的Staker。

    Token 的发行将是怎样的?

    Eth1将继续在PoW的基础上运行,Eth2将继续在PoS的基础上运行。

    在此期间,这两组验证者、矿工和候选节点都将获得奖励,因此以太坊的通货膨胀率将上升--至少在两个系统合并之前是这样。

    Eth2的发行水平将取决于参与质押过程的token数量。每年的发行水平将基于一种算法,其中Eth2是参与PoS验证池的以太坊 Token数量(这些数字的来源是Vitalik Buterin在2019年4月发表的一篇文章)。

    来源: BitMEX Research

    这个公式是基于这样的想法:ETH转入Eth2的数量越多,新 Token 的发行量就越多,但投资收益会随着质押的增加而减少。图解以太坊2.0通货膨胀率。

                

    数据来源: BitMEX Research

    下图表示以太坊 2.0的通货膨胀率:

           

    图表来源: BitMEX Research

    发行率决定了报酬的数额。该奖励旨在激励用户向Eth2转换 Token 。由于Eth2的成功将减少对 Token 的需求,因此奖励将按比例减少。这样的模式可以确保移动 Token 的数量足以显著增加网络的规模;但是,如果Eth2很受欢迎,那么发行量不会变得太高。

    这样的模式似乎与以太坊最初的 "永久线性膨胀 "计划相矛盾。

    • 一些因素可以减轻通货膨胀可能上升的影响。

    • 在第一阶段,激励系统预计将包括两个要素:一个是销毁 Token 的基本佣金,另一个则是Staker 的奖励佣金。销毁 Token 将降低通货膨胀。

    • 如果验证者不能参与验证过程--例如,如果节点停止工作或失去与网络的连接--那么质押奖励将被取消。

    • 如果验证者违反规则,他们会被罚款,没收的 Token 会被销毁掉。

    这些机制可能会导致大量的以太坊 Token 销毁毁,可能会抑制高通胀的影响。 

    区块链合并将如何进行?

    在未来,Eth1和Eth2可能会在几年内合并回一个系统。事实上,Eth1将成为Eth2内部的一个分片,允许以太坊在分片之间双向移动,两个 Token 将合二为一。据推测,目前发生在Eth1上的大部分经济活动将继续在Eth2分片内部进行。

    下一步可能是共识系统的合并。Eth1分片可以逐渐转向PoS

    Proof-of-Work可以继续工作,但在给定数量的区块之后--例如,每100个区块之后--区块的共识将决定Proof-of-Stake。最后,将有可能完全放弃PoW:PoW区块的奖励将变得没有必要。这将使以太坊用户和投资者对通货膨胀时间表更加确定。

    网站开发人员提供的主要技术功能是什么?

    数据来源: GitHub

    以太坊 2.0中, PoS(proof of stake)将如何运作?

    PoS是分叉选择规则的一般概念。

    优先选择多数 Token 投票的链。Eth2的核心投票系统原则与以太坊2018年提案中的原则相同,是基于Casper Friendly Finalty Gadget的想法。然而,该系统已经基于Casper Friendly Finalty Gadget和最新的Message Driven Greedy Heaviest Observed Subree Fork选择规则(Casper FFG & LMD GHOST Fork选择规则)的组合进行了更新。

    投票系统引擎包含以下几个部分。首先,一个大型的分叉池,每个分叉池最多代表32个ETH(激活一个分叉池需要32个ETH,这个数量可以减少到16个ETH,这就需要停用)。这个池子并不直接对区块进行投票--它被划分为委员会,其成员从更大的池子成员中随机选出。

    划分到委员会的原因是,不是每个Staker都能为每个区块投票--否则,区块链将包含过多的投票数据,这将使扩展变得不可能。

    此外,委员会允许你将投票数据收集到可控的数据器中。因此,在这些委员会中,随机选择一组Staker进行投票。

    根据Eth2的规范,每个委员会的Staker目标数量是128个(期望的最低数量)。开发者认为,这是一个足够多的stakers数量,以提供一个可能的区块选择保证。签名可以结合起来,以减少所需的区块大小并扩展网络。

    委员会由RanDAO等系统随机选出。随机选择定义了一个口令短语,每当有一个区块被建议时,就会加上这个口令。为了对抗区块分片攻击,提议区块只有两个选项可以影响该阶段:提议区块或不提议。因此,操纵的可能性是有限的。

    除了委员会分配质押外,还有另一个子类别的块和检查点块。

    每32个区块中就有一个区块检查点(checkpoint),检查点之间的时间间隔称为一个epoch(纪元)。在每个时代的边界内,有32个12秒的时间段(间隔)可以提出区块。

    因此,每个时代有32组时段,供32个委员会使用。在每个epoch结束时,委员会的成员会更换位置。每个时代有一个委员会("理想的最小值 "是128名成员)。一个委员在12秒的时间间隔内有独家提案权,其他委员可以投票支持一个区块。这种投票也称为证明。

    为信标链中的委员会分配Staker(假设每个槽位有一个委员会):

           

    数据来源: BitMex Research

    在现实中,事情可能比这些图中更复杂。所以,在0阶段,一个时段最多可以有64个委员会,而不是一个。因此,如果每个委员会有128个成员,那么每个时段最多可以容纳262,144个staker,相当于大约840万ETH。

    每个Staker被分配到一个委员会。质押的越多,委员会越多。最大的委员会规模是2048个,大致相当于每个epoch使用的全部以太坊供应量(64个委员会*32个ETH*32个槽位*每个委员会2048个staker=1.342亿ETH)。

    下图说明了委员会的数量和委员会成员的数量如何随着质押池中ETH数量的变化而变化。它显示,随着质押池的增长,委员会数量首先增加到64个,然后当质押池中约有840万ETH时,委员会的规模开始增长。

    委员会的数量和委员会成员的数量。

           

    数据来源: BitMex Research

    为了确定哪些区块拥有最多的选票,有必要将所有委员会的所有选票相加。如果投票者表现得很友好,他们可以从新增发的以太坊 Token 池中获得奖励。如果投票者违反规则,他们会被罚款,并失去部分质押物。惩罚的目的是为了防止诸如投票给两个冲突的区块这样的站队行为,尽管在某些情况下可能允许这样做。Staker会因为下线而被剥夺奖励。

    在以太坊 2.0中如何进行最终确定?

    当委员会成员对一个区块进行投票时,他们不仅要对一个特定的区块提案进行投票,还必须对一个特定的历史区块检查点进行参考和投票。正是这种机制保证了投票过程的稳定。因此,事实上,在PoS模型上,存在着两种投票程序,一内一外。下图说明了这两种投票是如何发生的,以及这些投票可以存储在哪些区块中。

    投票和引用,假设有效沟通(假设每个槽位有一个委员会)。 

                资料来源: BitMex Research

    如果在一个区块上建立了一个检查点区块,超过三分之二的委员会成员在投票时提到了这个检查点,那么这个区块就可以得到 "确认"。

    一个区块最早能成为 "确认 "的时间是在该区块的三分之二确认之后。

    下一个阶段是最终确定。当一个区块在区块链中包含两个确认后的区块时,这个区块就被最终确定了。因此,在大多数情况下,当三分之二投票者形式的门槛达到足够快时,由于有效的沟通渠道,用户需要等待一个纪元(6.4分钟)的确认,以及两个纪元(12.8分钟)的最终确定。这个过程如下图所示。

    正常情况下,在信标链中确认和最终确定一个区块的过程。

    数据来源: BitMex Research

    违反规则者将受到什么处罚?

    三种情况下,投票人会受到处罚。

    • 区块打包者在同一时段内提出两个相互冲突的提议。

    • 同时提交两个含有冲突链接的检查点区块。

    • 投出两个与检查点区块转场有重叠链接的投票。例如,一个标志着从检查点块1到检查点块4的过渡,以及从检查点块1到检查点块4的过渡,另一个一个指的是检查点块2到检查点块3的过渡。

    可以假设这个规则将被一个更合理的规则所取代,根据这个规则,所有对区块过渡的引用都必须按顺序进行,然而,一个诚实的节点有可能跳过一个检查点区块,连续投票的结果可能变成合法的。一张图说明了这种情况。

           

    来源: BitMex Research

    以太坊 2.0中的PoS效率如何?

    开发者宣称,在区块最终确定后,用户将得到保证,他们的交易不会被篡改。然而,这些系统在收敛程度和最终确定等参数上极难评估。

    也许整个过程,包括投票委员会、这种委员会的指数、检查点区块转换的链接,以及需要等待两个纪元的区块最终确定,都是一种不必要的抽象,是试图PoS模型将投票系统划分为组件,使其复杂化。但是安全模型包含一个根本性的缺陷,即stake没有资产的问题。

    另一方面,有可能这样的过程实际上增强了网络的安全性

    多组件过程--例如,质押的周期--这使得决定更改质押的用户很难改变规则。

    以太坊 2.0中,分片是如何工作的?

    在第一阶段,分片被添加到系统中。最初的计划是以1024个分片开始,但现在这个数字已经减少到64个。信标链仍然被认为是主链,但现在也包含分片引用。由于有64个分片,而每个信标区块可以与64个分片相关联,所以假设在正常操作中,每个信标区块可以与每个分片相关联。

    有一个双向链接机制--分片区块引用信标区块(有这些区块的哈希值),信标区块可以引用分片区块(交叉引用)。有些分片可能不会被信标区块引用,但每个分片区块都必须引用一个信标链。

    以太坊分片系统中的区块结构(显示两个分片)。 

    图片来源: BitMex Research

    蓝色箭头代表区块的哈希值,每一个区块中都必须包含这个哈希值。灰色箭头代表交叉引用的分片,不一定包含在信标区块中,如图右侧所示。

    在第一阶段,分片系统和质押过程变得相互交织。从0阶段开始的槽位的验证者委员会以分片的形式显示。每个分片都有自己的投票选择委员会,该委员会在拟议区块的每个 "委员会期 "中都会发生变化。

    同样,在信标链中,一个委员会成员被分配了在指定时间段产生一个区块的任务,而其他委员会成员在那个时间段对每个提案进行投票。关键因素是当信标链通过交叉引用系统引用分片区块链时,所有的投票数据都包含在信标链

    在第一阶段,质押被随机分配--要么在信标链中,要么在特定的分片中。如果stake包含的ETH少于840万,则没有足够的质押品完全服务于所有的分片,因此分片的工作可能会在一定程度上减缓。

    下图表示了一种可能:Staker委员会按分片分配。

                

    图:BitMex Research

    这使得信标链每个槽位只有一个验证者委员会。然而,每个分片区块链都包含最后一个信标区块的哈希值,每个信标区块可以包含所有分片的投票数据(交叉引用)。

    因此,分片区块链上的所有投票和质押也可以用于计算选择分叉的规则和主信标链的最终确定过程。PoS系统的工作原理和之前一样,只是信标链中不包含委员会目录(索引)中的投票数据,而是每个分片的投票数据。

    在各个分片区块链中没有检查点区块,也没有确认或最终确定的过程。为了确保交易在分片内部完成,你需要等待信标链。一旦信标链中的实际区块被最终确定,用户就可以验证交易是否在分片中进行。

    因此,交叉链接使得:

    • 将分片区块链委员会的投票权计入主信标链的投票权。

    • 最终确定和验证分片区块链区块。

    • 进行所有其他类型的分片交互--例如,将ETH从分片移动到分片或其他类型的资产。

    这方面所需的机制尚未充分发展。随着第二阶段的开始,它们可能会成为需求。

    分片框架允许以灵活的质量来管理一个节点--能够处理一切,包括信标链和每个分片。只有信标链可以被管理,这包括各个分片区块链的头。

    还有第三种可能--控制验证信标链和所选分片段的节点。如果用户选择不管理处理每个分片的节点,他必须依靠其他用户来验证这些分片中进程的真实性。然而,一些用户很有可能会选择验证这些分片,从而提供保证。

    以太坊 2.0的前景如何?

    以太坊持有者倾向于尝试新的复杂系统--DAO、Maker、DeFi。

    一些以太坊社区成员担心,以太坊技术已经存在5年了,但它仍然落后,所以他们认为需要新的技术。

    以太坊 2.0满足了社区对新想法的需求,可以预期它将产生大量的资金和stake奖励(可能是数十亿美元的ETH)。

    以太坊 2.0的推出将如何影响价格?

    短期内,大量的ETH Token可能会在信标链中被锁定,因为用户会被通过打包新区块赚钱的机会所吸引。因此,ETH在市场上的存量可能会缩减,价格可能会上涨。另一方面,ETH可能只是从其他合约中吸引过来,在那里它们被认为是封锁的。要想让以太坊 2.0成为token价格长期增长的催化剂,存量不仅不应受到限制,而且产生的需求也是必要的

    为了使以太坊 2.0网络取得成功,PoS和分片系统必须发挥作用,并且有足够的吸引力来吸引以太坊生态系统中具有经济意义的组成部分。

    智能合约和DeFi系统将不得不选择适合他们的分片,并投资升级他们的技术以兼容分片系统的限制。

    以太坊 2.0的主要缺点是什么?

    以太坊 2.0非常复杂。在一个拥有众多委员会、分片和不同类型投票的系统中,很有可能出现失败和延迟更新等问题。

     作者 | Alex Koma   翻译 | 李翰博

    展开全文
  •  EDA技术是在电子CAD技术基础上发展起来计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品自动设计。  利用EDA工具,电子设计师可以...
  • 算法系统越来越助于私人和公共参与者如何做出现实世界决策。 通常,这些系统背后内部推理对使用它们人来说是不透明。 本文对算法的工作原理以及存在哪些工具来询问它们如何做出决策进行了广泛技术概述。...
  • 市面上几种采集工具,大多都需要针对不同网站定制不同采集规则,才能最终采集到想要结果。本采集器内置了常用采集规则,只要添加文章列表连接,就能将内容采集回来。 本采集器采用多线程并行采集,可在...
  • 您的好帮手—得彩易双色球智能选...3.推出强大的智能荐号功能(红码荐号和蓝码荐号) v5.5 推出U盘版 v5.6 1、修改菜单结构,变更合理 2、修正了蓝码荐号中当选择杀号根据的公式数较多时(如54个),出现异常的Bug
  • 如果您问题或希望讨论与这些书籍相关内容,您可以在这里找到我 Google 群组: 保持最新状态 本附录介绍如何获取“人类人工智能”(AIFH) 丛书示例。 这可能是本书最具活力领域。 计算机语言总是在变化和添加...
  • 同时,我们可以通过这张C++世界地图,了解C++世界整个面貌:有哪些好玩的地方,有哪些有趣故事,有哪些有用知识,有哪些危险而需要注意地方。这张C++世界地图,将带领我们畅游整个C++世界。  还等什么,让...
  • 技术详解:基于人脸识别 AI 弹幕

    千次阅读 2020-05-12 13:46:01
    --------点击屏幕右侧或者屏幕底部“+订阅”,关注我,随时分享机器智能最新行业动态及技术干货--...有哪些核心技术? 在 GMIC 智慧文娱技术专场上,阿里文娱高级无线开发专家少廷分享了在优酷播放场景中,如何让互动结

    --------点击屏幕右侧或者屏幕底部“+订阅”,关注我,随时分享机器智能最新行业动态及技术干货----------

    有时候,弹幕比剧情还精彩,那些脑洞大开、观点鲜明的弹幕,可以让千万用户参与到“剧情创作”中,因此很多人都喜欢边看剧边发弹幕。在 AI 算法的加持下,弹幕的呈现形式也花样翻新。优酷的很多剧都上线了基于 AI 人脸识别的跟随弹幕,与剧情更贴合,可玩性也更高。这类弹幕是如何实现的?有哪些核心技术?

    在 GMIC 智慧文娱技术专场上,阿里文娱高级无线开发专家少廷分享了在优酷播放场景中,如何让互动结合算法的识别能力,实现新的 AI 弹幕形态。同时也介绍了优酷在互动游戏化领域的探索,以及让互动与内容相结合的应用实践。

    image.png

    播放中的互动场景

    为什么要在播放场景中加入互动环节?归纳起来有四个价值:一是让用户更好地融入剧情,参与到剧情之中;二是互动能够对用户做实时反馈,体感非常好;三是很多用户在看剧时,精力不是那么集中,我们通过互动去抓住用户的剩余注意力;四是增加社区属性,让用户尽情表达,产生归属感。

    image.png

    上图是优酷重要播放互动的场景,包括在画面中弹出提示,对相关情节信息做科普介绍;双流播放形态,通过子母屏为播放场景提供第三人称视角;在剧中加入猜剧情、投票、小游戏等,弹幕是最核心的形态。

    无论从用户规模还是用户效率看,弹幕都是效率最高的互动形式,是互动最头部的场景。AI 互动弹幕的出发点很简单,就是希望用户的互动与内容能更紧密地结合,让互动的展示形态更年轻和二次元。之前我们在弹幕中做过角色扮演的弹幕,指的是用户可以选择剧中角色,以他的口吻和头像来发弹幕。

    image.png

    角色扮演弹幕的转化率非常高。我们进一步思考,用户能不能直接在角色上,通过类似漫画配图的方式发弹幕,与内容融合到一起。这就是 AI 互动弹幕的由来。

    基于机器视觉的互动弹幕的技术挑战

    1、技术面临的问题:识别放到端侧还是云端?

    一是识别剧中人物,人像识别本身已经有成熟的算法,既可以放到端侧,也可以放到云端,那么应该把识别能力放在哪?核心的识别能力如果放到客户端上,识别的功耗和性能开销是很大的。如果是针对某些垂类场景,仅需在短时间内识别,放在客户端完全没有问题;但如果是长视频,从头到尾都有一个客户端的识别引擎在跑,端侧设备的性能、耗电就难以接受了。

    二是客户端识别的精准度,因为算法识别直接输出结果,很难达到产品化的要求。在这一过程中,还要对识别结果进行二次加工和处理,包括平滑处理、降噪。这些处理都需要更多的工作时长,如果都放到客户端,难以保证实时性。所以我们将整个识别引擎都放到云端,通过云端识别输出数据,经过优化处理再将这些数据打包下发到端侧,实现投放和互动。

    2、算法和工程如何对接?

    工程和算法如何对接、工程如何解决算法输出后的各类问题?包括识别精度、数据抖动、视频文件变更之后导致的数据不一致的问题;另外,端侧要解决核心的体验问题。在播放过程中,镜头频繁切换时,这些人像在镜头中变化的问题,手机界面横竖屏的适应;还有气泡样式的弹幕,在不同剧中和内容的氛围如何融合等。

    image.png

    上图是我们的技术链路,由下到上,依次是算法层、服务端、客户端。在算法层,我们通过模型训练进行抽帧,对每一帧的画面进行识别,通过人脸检测和跟踪来抓取每一帧的人脸数据,再传输到服务端进行预加工,包括数据合并和降噪,最后将人脸数据打包,通过互动投放引擎投放到端侧,实现核心交互和基础体验。

    1. 算法侧具体的技术细节如下:

    image.png

    1)视频抽帧与识别

    抽帧现在按每秒 25 帧来抽取,这也是一个视频的基础帧率,对于高帧率的视频当然可以抽更多,但这与机器开销和耗时是成正比的。另外在算法侧,人脸的识别引擎有几部分,一是标准的人脸识别,能够识别大多数人脸的场景;二是优酷还针对明星和人物角色做了单独优化,我们会抽取一些剧中的明星和角色数据,作为数据集去训练,提升剧中主角和明星的识别率。

    2)人脸跟踪

    算法会识别出视频中每一帧的人脸和对应坐标,坐标用来标注人脸对应的位置,每个人脸帧也对应有人脸的特征值,相同特征值能够识别为同一个人。这样通过坐标和特征值,我们就能识别出一个镜头从入场到出场的序列帧里同一个人的人脸运动轨迹。

    3)平滑处理,防抖动

    我们知道算法是基于单帧对人脸做识别的,人脸的位置和大小的识别结果是有像素级的误差的,同一个人脸哪怕运动很轻微,上一帧和下一帧的识别结果的方框是不会严丝合缝对齐的。这样把连续的每一帧的识别结果像放动画片一样串起来,这种像方框一样的识别结果在播放场景中就会看到明显的抖动。

    我们在工程侧对抖动做了检测和计算,将抖动限定在一个范围之内,让整个人脸的轨迹更平滑。

    动图1.gif

    视频2

    动图2.gif

    视频3

    视频 2 是算法直接输出的人脸轨迹的识别结果,大家可以看到人脸的识别结果是伴随人物运动在抖动的,既有位置的抖动,也有大小的抖动。视频 3 是经过平滑处理后的结果,人物在整个镜头中走动,我们的识别结果输出是稳定平滑的,抖动效果已经被平滑消除掉。

    2. 服务端对算法层输出的人脸原数据要做一系列的处理:

    技术详解:基于人脸识别的AI弹幕

    1)降噪,过滤掉镜头中不重要的人脸杂音。所谓不重要,是因为镜头中有大量的路人镜头,很多是一闪而过的,这些镜头的人脸对于用户交互来说不具备太大价值。所以我们要把路人、一晃而过的镜头中的人脸都过滤掉;

    2)防抖。我们会对原数据进行平滑处理;

    3)合并,就是合并一组连续帧中相同一个人脸的位置,打包输出。比如一个镜头中,一个人从左边走到右边,我们通过特征值识别出来这是相同一个人的连续镜头,那就把这一个镜头的人脸数据打包。这种包含了相同人脸和对应轨迹的数据,合并到一起之后,就成了一个数据包。然后将用户发的弹幕数据跟人脸的轨迹数据包绑定,投放到端侧,端侧负责展示。

    3. 在端侧的技术细节

    image.png

    借助优酷互动投放引擎,将人脸识别结果的轨迹数据包和弹幕一起投放,在端侧完成数据解析和展示。端侧有一个轮训引擎来轮训互动投放的数据,当播放进度到某个位置时有人脸轨迹的数据和弹幕数据时,端侧会把人脸位置的弹幕气泡显示到播放场景中。

    另外,客户端还要解决技术体验问题,包括镜头切换,虽然是细节问题,但是其实费了很多功夫。 例如,用户想发弹幕,在发送的一瞬间,镜头切换了。在用户侧看到的是弹幕闪一下就消失了,这个体感是非常不好的。

    image.png

    所以,在技术上我们要保证人脸弹幕发送后,会在同一个位置显示一定的时长。现在是 1 秒左右;投放弹幕的时候同样如此,如果用户在镜头的最后几百毫秒发送气泡弹幕,我们会把它做时间前置偏移,让弹幕稍微往前,在镜头中完整展示出来。

    另外,在氛围方面,我们有古装剧、有现代剧、有悬疑、有综艺,剧的类型差异比较大。气泡弹幕与播放结合比较紧密,我们还是希望它的效果、样式、氛围能够跟剧本身贴合。我们在端侧实现这类样式的动态配置能力,对于不同的剧集能够展示不同的风格。刚才大家在案例中也看到了,有红的、有蓝的、有灰的,然后古装剧会带一些纹理小花之类。

    另一个严重问题是,当视频剪辑变更之后,数据如何快速更新?

    image.png

    首先为什么会有视频变更?这是视频行业中的普遍现象。例如一个大剧,一个热综,在整个播放周期内,会经常因为一些原因被重新剪辑。重剪后就会引发一系列问题,比如,可能有一个桥段被剪掉了,原来识别出来的人脸数据结果和现在新的视频对不齐。另外,运营同学或者剪辑同学,其实无法准确的告知在什么时间点剪了什么内容,这无法依靠人力来保障同步。

    另外,假设我们知道视频被剪辑了,全部重新识别一遍行不行?答案是不行,第一是耗时长,额外开销高;第二,如果重新识别,相当于镜头中的人脸的数据全部都更新了一遍,用户发送的存量弹幕和人脸相结合的部分无法还原。

    所以我们的核心问题,就是要解决如何快速找到剪切点,并且只处理剪辑掉的部分。 技术解法如下:

    首先工程侧要自动识别变更,一旦视频源变更,服务端就能收到相应的通知,并启动去做重新识别。算法要识别剪辑之后出现差异的部分,找到中间差异的时间段。这样处理的优势是:1)可以实现无人值守;2)识别时间短,分钟级处理完毕。

    具体是如何实现的?我们会通过算法识别特征值。例如,原视频中 a 和 b 是两个人脸,中间的时长是 n 秒,剪辑后算法再去识别新视频源时,发现 c 和 d 对应的人脸特征值和 a 和 b 不一致、时长对不上。通过取两者(a 和 b,c 和 d)的差值,就知道那部分是被剪掉了,然后去处理差值的部分,一两分钟重新识别完,保证数据重新上线。

    image.png

    回到用户体验上,用户对 AI 弹幕是评价是怎么样的?

    左边是用户用 AI 互动弹幕发布的内容,很多都是优秀的段子手,大家能够玩起来。

    右边是用户反馈,有表达不理解、不清楚是做什么的,或者认为弹幕干扰正常观影。所以目前 AI 弹幕还是小范围投放,并没有全面铺开,因为我们也在思考用户的接受度。 在长视频中,并不是所有用户都能接受。更好的方向是将这种互动性强、更有意思的模式,与短视频和直播结合起来,因为在短内容和碎片化内容中,用户的接受度会更高,娱乐性会更强。

    播放互动的相关尝试和展望

    1. 互动交互能够和内容更紧密结合,交互方式更游戏化

    image.png

    通过对视频内容的识别,能够识别到或者理解到剧中的人物或者剧中的演员,甚至剧中的物体。这样我们对内容本身的场景和角色是能做到理解的。这样就可以将互动投放跟内容做的更紧密,比如说能够跟明星结合的更紧密,甚至能够跟商业化结合的更紧密,让商业化和内容本身结合,这也是一个方向。

    image.png

    2. 互动的效果更炫酷和惊艳

    让交互结果和交互的视觉更年轻化,更让人有意外,让用户能有更进一步互动的欲望。

    3. 用户参与的数据沉淀能够反过来指导内容的制作和生产

    将用户参与互动的数据沉淀下来,通过对数据的理解和二次加工,抽象出一些结论。包括用户在互动上的高潮节点和用户高反馈的点。另外,希望指导内容制作和生产。

    4. 短视频、直播这类碎片化的内容能够发挥互动的新价值

    在更碎片化的短视频和直播内容中,探索一些新形态和新价值。

    image.png

    原文链接:https://www.infoq.cn/article/g0LKc39WSRKpLqwei6q1

    展开全文
  • 异常以及最新的面向对象编程技术等内容。 作者Stephen Prata是受人尊敬的作者和教育家,他以清晰的语言,对C++做了具有启发性的、见解深 刻的介绍。本书在解释基本概念的同时,兼顾了C++语言的细节。书中通过大量...
  • 异常以及最新的面向对象编程技术等内容。 作者Stephen Prata是受人尊敬的作者和教育家,他以清晰的语言,对C++做了具有启发性的、见解深 刻的介绍。本书在解释基本概念的同时,兼顾了C++语言的细节。书中通过大量...
  • 异常以及最新的面向对象编程技术等内容。 作者Stephen Prata是受人尊敬的作者和教育家,他以清晰的语言,对C++做了具有启发性的、见解深 刻的介绍。本书在解释基本概念的同时,兼顾了C++语言的细节。书中通过大量...
  • 异常以及最新的面向对象编程技术等内容。 作者Stephen Prata是受人尊敬的作者和教育家,他以清晰的语言,对C++做了具有启发性的、见解深 刻的介绍。本书在解释基本概念的同时,兼顾了C++语言的细节。书中通过大量...
  • CVPR/ECCV 2018 最新目标检测算法有了解过嘛 如何理解上采样,和下采样区别是什么 上采样(UNSampling)与上池化(UnPooling)区别 全连接层理论上可以替代卷积层嘛 神经网络里面可以用什么方法替换掉pooling ...
  •  因此,在这个版本的《C++ Primer》中,我们进行了彻底的修改,使用了最新的C++标准,即C++11。为了了解新标准是如何全面影响C++语言的,你可以看一下xxiii页至xxv页的新特性列表,其中列出了哪些章节涉及了C++的新...
  •  因此,在这个版本的《C++ Primer》中,我们进行了彻底的修改,使用了最新的C++标准,即C++11。为了了解新标准是如何全面影响C++语言的,你可以看一下xxiii页至xxv页的新特性列表,其中列出了哪些章节涉及了C++的新...
  •  因此,在这个版本的《C++ Primer》中,我们进行了彻底的修改,使用了最新的C++标准,即C++11。为了了解新标准是如何全面影响C++语言的,你可以看一下xxiii页至xxv页的新特性列表,其中列出了哪些章节涉及了C++的新...
  • C++编程规范(带书签版).pdf

    千次下载 热门讨论 2012-01-18 15:31:43
     ■合理错误处理策略有哪些要素?  ■如何(和为什么要)避免不必要初始化、循环依赖和定义依赖?  ■何时应该(以及如何)同时使用静态和动态多态性?  ■如何实践“安全”改写(override)?  ■何时该提供不会...
  • DeepMind 如约公布了他们最新版AlphaGo论文(Nature),介绍了迄今最强最新的版本AlphaGo Zero,使用纯强化学习,将价值网络和策略网络整合为一个架构,3天训练后就以100比0击败了上一版本的AlphaGo。AlphaGo已经退休...
  • 进程之间究竟有哪些通信方式? 键盘敲入 A 字母时,操作系统期间发生了什么... 一口气搞懂「文件系统」,就靠这 25 张图了 万字长文 | 23 个问题 TCP 疑难杂症全解析 「网络IO套路」当时就靠它追到女友 10 张图打开 ...
  • 在第4版中,作者运用大量最新的插图和例子为这些原则提供了当前实践中的情境,验证了那些与技术和供应商无关的工具,以及那些经受住时间考验的技术。 第1部分 信息架构简介 1 第1章 信息架构要解决的问题 3 你好...
  • 软件代码多重过滤可以第一时间被搜索引擎收录,独特静态生成算法可以大大减轻服务器负担,无论在生成速度还是安全方面都达到国内领先水平。 二、生成过程更简单易用、更直观方便! 网趣HTML静态版V2012采用...
  • 如果服务运行期间改变配置文件,服务是不会得到最新的配置信息,需要解决这个问题就需要引入Refresh。可以在服务的运行期间重新加载配置文件, 当所有的配置文件都存储在配置中心的时候,配置中心就成为了一个非常...
  • 本群由我创立,目前已将群主权限交由合作方便于进行日常管理,介意朋友们在GitHub上看最新版就好了 如果你对于群管理更好建议,欢迎群内私聊我(我是-不管事不答疑随缘冒泡废人) 行了行了,名字很随意...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

最新的智能算法有哪些