首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一段来自区块链和深度学习的探戈(一)

一段来自区块链和深度学习的探戈(一)

胡晗 I 文

张怀政 I 技术审稿

最近几年,区块链和深度学习这两个最热门的技术吸引了大量讨论。很自然的一个问题是,这两个技术能否进行高效融合以提高效能?本系列文章尝试从技术层面回答这个问题:即如何利用深度学习改进区块链,以及如何利用区块链改进深度学习。本系列文章将分为三篇。第一篇,首先探讨区块链和深度学习的基本原理。针对上述第一个子问题即如何利用深度学习改进区块链,系列文章第二篇将按照自底向上的逻辑结构,将主流的区块链系统分为五层,并逐一分析每层区块链系统遇到的问题,提出基于深度学习的解决方案。系列文章第三篇将探讨第二个子问题,即如何利用区块链改进深度学习。区块链系统的主要优势,可用来解决深度学习在进行敏感数据的访问管理和分布式模型训练时所面临的挑战。文章将给出一种统一的基于区块链的解决方案,并介绍典型的应用案例。

系列文章第一篇,我们一起来探讨区块链和深度学习基本原理。

区块链

区块链是一种安全、共享和分布式记账系统。它不依赖于第三方集中式的可信机构,允许交易的双方通过P2P网络进行资源(有形或者无形财物)的可信交换,从而实现交易的认证、记录和追踪。一个区块链系统通常包括如下功能模块:

·底层P2P网络:区块链运行在P2P网络之上。P2P网络的节点对应于不同的实体,按照功能可划分为全节点、数字钱包、挖矿等。它们承担的任务主要有4种:交易的产生(transaction generation)、交易/区块的路由(transaction/block routing)、交易/区块的认证(transaction/block verification)以及区块挖掘(block mining)。这些节点通过P2P网络进行互连,通过泛洪算法进行数据的交换。

· 交易(transaction):区块链中的交易表示一定量的数字货币的所有权从买方转移到卖方,用于购买某种商品或者服务。数字货币的所有权以Unspent Transaction Outputs形式存在,其中包含了UnLocking Script,只有所有者才可解开。一个交易可包括多个输入和多个输出。输入为买方拥有的数字货币的所有权,输出是所有权转移到卖方和买方还拥有的数字货币所有权。输入和输出之间的余额则转移给挖矿节点的拥有者。

Figure 1 一个典型的拥有多输入/多输出的交易

· 区块(block)构成:一个transaction的大小通常在几百bytes内,多个transaction通过Merkle tree构成一个block(通常1MB内)。每一个Block包括头block head和block data。Block头包括blockHash、preBlockHash、Nonce、Timestamp和MerkleRoot。Block data中存储对应的transaction。Merkle tree是一种自下而上生成的数据结构,常用来高效生成transaction的摘要和验证transaction集合的完整性。区块中transaction的Hash值作为原始Merkle tree的叶节点,每一层的非叶节点通过对应的子节点进行Hash运算,直到产生唯一的根节点。Nonce由挖矿节点产生,用来验证block的合法性。

Figure 2. 区块链示意图

· 挖矿:挖矿依赖于区块链采用的验证机制,目前较成功的是Proof-of-work。它的原理是寻找一个随机数(block header里面的Nonce),当对该随机数以及block里的内容进行double SHA256计算时,产生的Hash值的前固定位数是0。这种机制能抵抗Sybil attacks,但同时会消耗大量的计算力。为了激励挖矿节点进行挖矿(block验证),区块链系统会给第一个成功找到该随机数的节点一定数量的数字货币作为奖励。

· 区块链(blockchain)结构:所有当前系统中验证过的区块组成一个链式结构,存储系统中发生过的交易事件。这些block按照验证时间排序,每一个block包括一个指向前一个block的reference(preBlockHash)。

目前,区块链已吸引工业界的广泛关注,并在商业上取得了较大成功。典型的3种区块链系统包括Bitcoin、Ethereum和Hyperledger,除此之外还有很多基于此的变种。

深度学习

机器学习是从数据中学习,从而做出预测或者决策的一门学科。它通常可分为监督学习、无监督学习和强化学习。监督学习中,数据集合是有标记的。分类和回归是两种典型的监督学习问题,它们分别有分类输出和数值输出。在无监督学习中,训练数据没有标记。无监督学习试图从没有标记的数据中提取信息,比如聚类和密度估计等。表征学习是一种经典的无监督学习,它的目的在于寻找到一种对原始数据的表示,能尽可能多地保持原始数据的信息,同时该表示能比原始数据更简单,具有低维和稀疏等特点。 机器学习中的第三类强化学习,有评价反馈,但没有监督信息。

深度学习是一种特殊的机器学习方法,用于区分传统的浅层学习。对传统的机器学习算法而言(如线性回归、SVM、决策树等),模型包括输入和输出层。输入层可通过对原始数据进行人为的特征提取来获得。但在深度学习中(以DNN为例),输入层和输出层之间有一层或者多层的隐藏层。连续两层的神经元通过权重连接起来。除了输入层的每一层中每个神经元的输入等于前面一层输出的加权和;然后利用非线性变换或者激活函数(如logistic、tanh或者ReLU),得到前一层输出的一个新的表示。CNN和RNN是目前非常成功的两种深度学习结构。CNN(卷积神经网络)是一种前馈神经网络,包括卷积层、池化层和全连接层。CNN通常用来处理矩阵类型的数据,比如图片和视频等。RNN(递归神经网络)使用隐藏单元处理过去的历史信息,常用来处理语言、音频等连续输入信息。RNN可以看成是各层共享相同权重的多层神经网络。深度学习可用来进行监督学习、无监督学习和强化学习。在强化学习中,神经网络被用于进行函数的近似。

区块链和深度学习

区块链和深度学习都在各自的领域取得了较大的成功,但这两者的融合并不是一件容易的事情。很重要的一点是这两者的应用场景不尽相同,区块链更多应用在对分布式计算、安全隐私和可信计算有要求的场景,而深度学习则用于数据分析、决策等应用。

在后续文章中,本文尝试分析两者的技术特点,并给出大致的改进方案。

本文版权归作者所有。

新加坡南洋理工CAP组

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180601G1B9ET00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券