【机器学习论文翻译】去信任的机器学习合约:在以太坊区块链上评估和交换机器学习模型1

29 篇文章 13 订阅
11 篇文章 23 订阅
本文探讨了AI与区块链结合的创新应用,介绍了一种无信任的机器学习模型交易协议——DanKu协议,允许用户通过区块链匿名交换训练有素的机器学习模型。协议利用智能合约自动验证解决方案,确保交易的公正性和透明性,同时解决了过度拟合、数据集操纵等关键问题。
摘要由CSDN通过智能技术生成

一、前言

区块链是最近特别火热的一门技术,特别是比特币、挖矿概念的兴起,更是推动了区块链的发展。目前基本上确定的未来的研究方向是AI + 区块链,所以从现在开始,做个小白,不断开始滚雪球。

如果你有什么问题,希望跟我能够一起交流,除了通过博客交流外,欢迎你加入我的QQ群,一起交流有关于机器学习、深度学习、计算机视觉有关内容。目前我处于广泛涉猎阶段,希望我们能够一起沟通。下图是我的群二维码:

由于论文本身内容比较多这篇论文我分两次翻译完。论文可以去上面的群里下载。

接下来就让我们开始学习这篇论文,跟随这篇论文一起走进区块链的世界吧!

二、摘要

使用区块链技术,可以创建提供反馈的合约,以换取针对特定数据集的训练有素的机器学习模型。这将允许用户以无信任的方式训练机器学习模型以获得反馈。

智能合约将使用区块链自动验证解决方案,因此不存在关于解决方案是否正确的争论。提交解决方案的用户不会有交易对手风险,他们将无法获得工作回报。任何拥有数据集的人都可以轻松创建合同,甚至可以由软件代理以编程方式创建。

这创造了一个市场,擅长解决机器学习问题的各方可以直接从他们的技能组合中获利,并且任何有人工智能解决问题的组织或软件代理都可以从世界各地征求解决方案。这将激励创建更好的机器学习模型,并使公司和软件代理更容易访问AI。

创建这个市场的结果是,机器学习模型的GPU训练代价很明确。在许多情况下,加密货币挖掘也使用GPU。我们可以设想一个世界,在任何特定时刻,矿工都可以选择指导他们的硬件在任何更有利可图的工作量上工作:加密货币挖掘或机器学习培训。

How it work

三、 背景

1、 比特币和加密货币

比特币于2008年首次推出,旨在创建一种分散的方法,用于存储资金并将资金从一个账户转移到另一个账户。它使用公钥加密强制执行所有权。资金存储在各种地址中,任何拥有地址私钥的人都可以从该帐户转移资金。要以分散的方式创建这样的系统,需要创新如何在参与者之间达成共识,这是使用区块链解决的。这创建了一个生态系统,可在不受信任的用户之间实现快速且可信的交易。

比特币为简单任务实现了脚本语言。这种语言的设计并不完整。随着时间的推移,人们希望在区块链上实现更复杂的编程任务。以太坊推出了图灵完备语言,以支持更广泛的应用。该语言旨在利用区块链的分散性。基本上它是在以太坊区块链之上的应用层。

通过使用更强大,图灵完备的编程语言,可以在以太坊区块链之上构建新类型的应用程序:从托管系统,铸造新硬币,分散的公司等等。以太坊白皮书谈论创建分散的市场,但侧重于身份和声誉等事情,以促进这些交易。在这个市场中,特别是机器学习模型,信任是必需的特征。这种方法明显不同于本文提出的无信任交换系统。

 

2、 结果

2012年,Alex Krizhevsky,Ilya Sutskever和Geoff Hinton能够利用GPU训练深度神经网络进行图像分类。他们提交的大规模视觉识别挑战赛(LSVRC)将当时的最大错误率减半。GPU能够并行完成数千个矩阵运算,这是训练深度神经网络所需的突破。

随着更多的研究,机器学习(ML)系统已经能够在许多特定问题上超越人类。这些系统现在更擅长:唇读,语音识别,位置标记,下棋,图像分类等。

在ML中,使用各种模型和方法来解决不同类型的问题。这种方法称为神经网络(NN)。神经网络由节点,偏差和加权边缘组成,几乎可以代表任何函数。

神经网络概要

构建新的机器学习模型有两个步骤。第一步是训练,它将数据集作为输入,并调整模型权重以提高模型的准确性。第二步是测试,它使用独立的数据集来测试训练模型的准确性。第二步是验证模型和防止称为过度拟合的问题所必需的。过度拟合的模型在特定数据集中非常好,但是对于给定问题的概括是不好的。

一旦训练完成,就可以使用ML模型对新数据执行任务,例如预测,分类和聚类。

对机器学习模型的需求很大,能够获得良好机器学习模型的公司可以通过提高效率和新功能获利。由于对这种技术的需求强劲,人才供应有限,因此为机器学习模型创造市场是有意义的。由于机器学习纯粹是软件和培训,因此不需要与任何物理系统进行交互,使用区块链进行用户之间的协调,使用加密货币进行支付是一种自然的选择。

 

四、 简介

以太坊白皮书以身份和声誉系统为基础,讨论了连锁分散市场。它没有详细介绍实现,但提到了一个建立在身份和声誉等概念之上的市场。

在这里,我们在以太坊区块链之上引入了一个新协议,其中不需要身份和声誉来创建市场交易。这个新协议建立了一个市场,以自动和匿名的方式为参与者交换机器学习模型。

培训和测试步骤是独立完成的,以防止过度拟合等问题。通过在以太坊虚拟机上以正向传递方式运行ML模型来验证和评估ML模型。使用此协议的参与者无需相互信任。信任是不必要的,因为协议使用加密验证来强制执行事务。

五、协议

为了演示业务,实现了一个简单的神经网络和正向传递功能来展示一个示例用例。

基本结构:

1.阶段1:用户Alice向以太坊合同提交数据集,评估函数和奖励金额。评估函数接受机器学习模型,并输出指示该模型质量的分数。奖励是金钱奖励,通常以某些加密货币(例如比特币或以太币)计价。

2.阶段2:用户下载用户Alice提交的数据集,并独立工作以训练可以表示该数据的机器学习模型。当用户Bob成功训练模型时,他将他的解决方案提交给区块链。

3.阶段3:在未来某个时间点,区块链(可能由用户动作启动)将评估用户使用评估功能提交的模型,并选择竞赛的获胜者。

注意:每个阶段都需要一些额外的步骤,以确保竞争的信任和公平。“协议”部分中要遵循的详细信息。

提议DanKu(Dan iel + Ku rtulmus)协议允许用户以无信任的方式征求机器学习模型以获得奖励。该协议有5个阶段,以确保合同成功执行。

初始化阶段
提交阶段
测试数据集显示阶段
评价阶段
完成阶段

1、 定义

1.一个用户由任何可以与以太坊合同交互的人定义

2.DKC(DanKu合同)是一个实现Danku协议的以太坊合同

3.组织者由创建Danku合同的用户定义

4.提交者是向Danku合同提交解决方案以获得奖励的用户

5.周期是由开采的块数组成的时间段单位。

6.数据点由输入和预测组成。

7.数据组是由数据点组成的矩阵。

8.散列数据组是数据组的散列,该数据组还包括一个随机的nonce。

9.合同钱包地址是一个托管账户,在合同最终确定之前,该账户持有奖励金额

合同使用以下协议:

 

2、 合同初始化阶段

1.合同创建

合同创建:组织者使用以下元素创建合同:

(a)机器学习模型定义。(在演示中使用神经网络)

(b)init1()init2()init3()函数。

(c)get_training_index()函数用于接收训练指标。

(d)get_testing_index()函数用于接收训练指标。

(e)init3()函数用于向所有用户显示训练数据集。

(f )submit_model()函数用于提交合同解决方案。

(g)get_submission_id()函数用于获取提交ID。

(h)函数reveal_test_data()用于向所有用户显示测试数据集。

(i)函数get_prediction()用于为给定模型运行正向传递。

(j)函数evaluate_model()用于评估的单一模式。

(k)函数cancel_contract()在显示训练数据集之前取消合同。

(l)函数finalize_contract()返回最好的提交,如果最佳模型不满足评估标准,则返回给组织者。

2.初始步骤1

(a)奖励存入合同钱包地址,支付中奖解决方案。

(b)提交、评估和测试的最大长度显示由块高度定义的周期。

(c)哈希数据组。

3.初始步骤2

组织者触发随机函数生成训练和测试数据组的索引。这些索引是通过使用块散列数作为随机种子来选择的。

4.初始步骤3

组织者通过 init3()函数将训练数据组和nonce发送到合同,从而显示这些数据组和nonce。数据由先前为数据组提供的哈希值进行加密验证

此时,DanKu契约被初始化,训练数据集是公共的。提交者可以下载培训数据集来开始训练他们的模型。训练成功后,他们可以提交解决方案。

3、 解决方案提交阶段

在这个阶段,任何用户都可以提交一个潜在的解决方案。这是唯一一个接受提交的时期。

提交者调用submit_model()函数,为解决方案提供以下元素:

(a)解决方案的权重和偏差。

(b)模型定义。

(c)付款的付款地址。

 

3、 评估阶段

评估阶段可以通过以下两种方式之一启动:

1.组织者调用显示测试数据集的reveal_test_data()函数。

(a)在这种情况下,测试数据集将用于评估

2.测试显示期已过,但组织者尚未打访问 reveal_test_data()

(a)由于测试数据集不可用,因此训练数据集将用于评估。

评估阶段开始后,将不再接受提交,提交者现在可以开始评估他们的模型:

1.提交者使用提交ID调用evaluate_model()函数。

2.如果模型通过了评估功能,并优于目前提交的最佳模型(或第一个评估过的模型),则将其标记为最佳模型。

 

4、 评估后阶段

1.在评估期结束后,任何用户都可以调用finalite_contract()函数将奖励支付给最佳模型提交者。

2.如果不存在最佳模式,则奖励将返还给组织者。

五、激励和风险模式(Incentives and Threat Models)

任何市场的关键是用户信任。我们需要设计一个系统,在这个系统中,没有任何用户可以欺骗或获得优于任何其他用户的优势。我们必须从所有参与方的角度来考虑这一点:组织者、提交者,甚至以太坊区块链的矿工。

我们预见了需要减轻的几个风险:

1、 提交者过度拟合

如果提交者可以访问测试数据集,那么他们可以将其模型过度适合此数据集。这是机器学习的一大问题。提交者可以通过在测试集中进行大量的训练来“欺骗”,缺点是模型不适用于更一般的问题。

解决这个问题的方法是将测试数据集保密,直到提交周期结束。在我们的合同中,我们要求组织者稍后再来公开测试集。

2、 组织者测试集操作

如果训练和测试集不是从相同的输入分布中抽取,那么组织者可以从他们的费用中欺骗建模者。组织者可以提供虚假的测试数据,并收集模型权重,而无需向提交者付款。

此问题的解决方案是确保组织者无法选择培训和测试数据集。组织者提交表示整个数据集的数据组的哈希值。DanKu合同随机选择组织者有义务稍后透露的数据子集。由于哈希是确定性的,因此可以验证显示数据组的有效性。这可以防止组织者操纵训练/测试数据集。

3、管理器不会显示测试数据集

由于任何特定原因,组织者可能不会透露测试数据集。这将阻止调用评估功能,并在这些情况下支付提交者的工作。

为了缓解这个问题,我们给组织者一定的时间来公开测试数据集。如果组织者未能这样做,提交者仍然可以在训练数据集上触发评估功能。

使用训练数据集评估模型远非理想,但这是必要的最后手段,因此提交者将在这些极少数情况下获得奖励。

 

4、 提交的数量太多

在以太坊网络中,所有交易都由矿工执行。每次交易都需要付费以补偿矿工的执行并将其保存在区块链上。这笔费用称为燃气费。由于每个块平均每12秒开采一次,因此接受需要很长时间的事务是不切实际的。接受这些类型的长期交易会增加错失区块的风险,而不会被其他矿工挖掘。为了缓解这个问题,矿工们有自己的自我限制气体。如果交易使用超过限额,则无论支付金额多少都会失败。

最初评估函数由组织者或提交者调用,如果未公开测试数据集。此评估功能将评估所有提交的模型。如果DanKu合同有太多的模型需要评估,那么由于现有的天然气限制,评估功能可能会出现燃气耗尽的风险。在撰写本文时,平均气体限制约为800万。这将产生一个漏洞,其中函数调用者可以非常快地耗尽气体,或者由于在任何节点都不能接受大气体大小而立即被拒绝。这意味着合同永远不会最终确定。

为了缓解这个问题,我们允许用户在任何提交的模型上调用评估函数。这可以防止过多的提交问题,因为评估函数一次只能在单个模型上运行。这也减少了评估模型所需的总计算量。这将创建一种情况,即只激励最好的模型提交者在自己的模型上调用评估函数。

由于评估也可以离线完成,因此提交者可以在本地评估每个模型,以确定他们的模型确实是最好的模型还是在top-n中。如果您位于top-n中,则可以在模型上调用求值函数,因为最佳模型提交者可能不会在其模型上调用求值函数。在一个理想的情况下,这不应该发生,但如果确实如此,那么下一个最好的模型提交者也可以在它发生时获得奖励。

5、 彩虹表攻击哈希数据组

最初,sha-3-keccak只是在没有nonce的情况下对数据组进行散列。这使得这种散列方法容易受到提交者的彩虹表攻击。

解决此问题的一种可能方法是实现bcrypt,并使用salted哈希代替。密码散列函数确实有效,但它们的计算成本更高。相反,我们决定在数据组的末尾添加一个随机数,并使用sha3-keccak对其进行散列。

这种方法可以防止彩虹表攻击,并将燃气成本保持在较低的价格点。

此问题可能还有其他解决方案,包括缩放数据点和添加噪声。这是有道理的,因为现实生活中的数据很少干净,而且大多数都是噪声

6、 阻止矿工的哈希操纵

最初我们只使用最后一个块哈希作为我们随机化函数的熵源。这种方法的问题是矿工可以影响给定块的结果散列。如第(4.2)节所述,这为组织者提供了作弊的机会。如果他们是矿工,他们可以在挖掘区块后立即部署合同。这并不能保证他们的合同将被初始化,但它会对培训和测试数据集的选择过程产生一些影响

作为一名矿工并不能完全控制培训选择过程的工作方式。但它会告诉您将选择哪些数据组。因此,组织者可以决定不挖掘可能导致不期望的训练索引的特定块散列。

为了最大限度地减少攻击者的影响,我们要求他们init2()在5个调用块内调用函数init1()。如果他们没有这样做,合同将被取消。

要了解有关哈希实现的更多信息以及获得有利培训指标的可能性,请参阅第5.2节。

7、管理器不会显示测试数据集

根据选择标准,奖励可以由满足评估标准的第一个提交者,最佳模型提交者或两者来声明。奖励甚至可以在顶级解决方案中分配,以激励更多的参与。组织者可以完全控制选择DanKu合同的选择标准。

分布式奖励系统将类似于以太坊对旧的区块的按比例开采奖励。过时的区块是对传播到网络太晚的区块的解决方案。这些区块仍然得到奖励,以确保矿工仍能获得他们所贡献工作的报酬,并保持网络稳定。但最多只奖励7个过时的区块。由于许多原因,例如过时的挖掘软件、糟糕的网络连接,一些区块块可能过时。

分布式奖励系统可以对提交者进行去激励,因为恶意提交者可能会重新提交相同的解决方案,而对解决方案的更改最少,以窃取原始提交者的工作。由于这个原因,只支付给最好的提交者是有意义的。如果有两个提交具有相同的解决方案,并且此解决方案是最佳解决方案,当他们都被评估时,第一个提交者将获得支付。这是为了防止恶意提交者重新提交相同的解决方案并在原始提交者之前调用评估函数。

理想的情况是这些模型在池中训练,并且当找到解决方案时,奖励将分配给池中的成员。这将使协作和分发奖励成为可能。阅读第7.1节中有关池挖掘的更多信息。

终于翻译完了,感觉百度翻译都要被我玩坏了,这是我翻译的第一批人工智能+区块链的论文,只翻译了一部分,剩下的部分我会接着翻译。因为刚开始了解,可能很多翻译有问题,如果大家有什么问题,请及时和我沟通。

当年没有好好学英语,现在知道英语的重要性,所以通过写博客,翻译英语论文来提升自己的英语水平。当年欠下的,以后是要自己慢慢还的。所以啊,希望每一个看到这篇博客的人,如果你有梦想,就要全力以赴去追寻,不要因为困难就放弃,因为困难就退缩,有些东西,是逃避不了的,那我们就勇敢去面对。

加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值