核方法总结———(二)

接 《核方法总结———(一)》继续做摘录或总结笔记。

全文目录

一、核函数的基本性质

二 、常用核函数

    1、简单核函数

          线性核                  

          多项式核

          高斯核

            指数核

             Gamma指数核

2、核函数的学习

  三、概率核

        基于模型距离的核

       基于模型映射的核

            Fisher核

          TOP核 

四 、复杂对象上的核函数

4.1 集合上的核

4.2 序列上的核

4.3 图上的核

   4.3.1 基于状态转移的图核函数

     4.3.2 基于路径标识的特征映射方法

   4.3.3 基于最短路径的图核

   4.3.4 有限状态机

五、总结


一、核函数的基本性质

      设k1(. , .), k2(. , .) 是合法的核函数,α是一个非负数,f(.) 是任意一个函数,\phi是从X到R^{N}的映射, k3(. , .)是定义在 R_{N}\times R_{N}上的核函数,B是一个对称半正定矩阵。则可以证明如下操作生成的函数都是合法的核函数:

                                         k(x,x') = k1(x,x') + k2(x,x')

                                         k(x,x') = αk1(x,x')

                                         k(x,x') = k1(x,x')k2(x,x')

                                         k(x,x') = f(x)f(x')

                                         k(x,x') = k3(\phi(x),\phi(x'))

                                         k(x,x') = f(x)k1(x,x')f(x')

                                         k(x,x') = x^{T}Bx^{'}

    此外,通过以下方式生成的核函数也是合法的:

                                         k(x,x') = exp(k1(x,x'))

                                         k(x,x') = P(k1(x,x'))

                                         k(x,x') = exp(\frac{-\left \| x-x^{'} \right \|^{2}}{2\sigma ^{2}})

上式中,k1(x,x')是一个合法的核函数,P(x)是一个具有正系数的多项式,\sigma是一个任意常数。通过核函数的这些基本性质,可以从简单核函数生成复杂核函数。

二 、常用核函数

    1、简单核函数

          线性核                  

                                           k(x,x') = x\cdotx' + c

           核方法不仅包含特征映射,也包含非参建模,因此线性核在很多实用场景中也好于传统参数方法。典型的线性核方法如线性SVM。

          多项式核

                                          k(x,x') = (\alpha x\cdot x^{'} + c )^{d}  α>0, c>=0, d \in Z_{+}

           多项式核等价于对原始数据进行了特征扩展,不仅考虑映射特征,同时考虑不同特征之间的相关性。多项式核的缺点是,当阶数d比较大时,在取值时容易出现数值上的不稳定,可能出现过大或过小值。

          高斯核

           高斯核是应用最广泛的核函数,其式如下:

                                       k(x,x')=exp(-\alpha \left \| x -x')\right \|^{2}),

           α是控制核函数宽度的参数,高斯核是距离的函数,具有位置不变性,因与RBF形式一致,也称为RBF核。

            高斯核有多种扩展形式,如果在特征空间φ(x)计算核函数,则此时的核函数变成:

                                      k(x,x') = exp(-\alpha k1(x,x)- 2k1(x,x') + k1(x',x')))

            其中 k(x,x') = \phi (x)^{T}\phi (x') 

            指数核

              具有如下形式:

                                        k(x,x')=exp(-\alpha \left \| x-x' \right \|_{1})

             Gamma指数核

              另一种类似的核是Gamma指数核,如:

                                      k(x,x')=exp(-\alpha \left \| x - x' \right \|^{\gamma })

2、核函数的学习

            当数据分布比较复杂时,简单核函数可能无法使用,一种方是利用 第一节列出的核函数性质,由简单核函数生成复杂核函数,但人为定义的生成方式往往不能满足需要,为此,一种常用的核函数设计方法是将若干简单的核函数线性组合起来生成复杂核函数,其中组合系数通过学习得到。该方法可形式化如下:

k(x,x') = \sum _{r}w_{r}k_{r}(x,x')

其中k_{r}是简单核函数,w_{r}为相应的组合系数。

  三、概率核

        在某些情况下直接计算样板间的距离比较困难,概率核方法通过对数据建立概率模型,再基于该模型计算样本件的距离,从而可以解决直接计算样本间的距离比较困难(如序列样本)。

        概率核有两种设计方法,在基于模型距离的核方法中,对每个样本建立概率模型,再基于模型间的距离来定义样本间的距离。这一方法多用在比较复杂的样本(如集合或序列)情况下,基于单个样本可以建立独立的概率模型。而基于模型映射的核方法,对所有样本建立一个概率模型,再基于该概率模型实现对每个样本的映射。

        基于模型距离的核

        KL核是一种常见的基于模型距离的核,其思路是对样本x和x' 分别建立一个概率模型,然后基于这两个模型间的KL距离导出核函数。

         一种常用的KL核形式如下:

 k(x,x')=e^{-\beta (KL(p_{x}\parallel p_{x'}) + KL(p_{x}\parallel p_{x'})) + b}

         类似的,还有Bhattacharyya核,基于Bhattacharyya距离来计算两个分布的相似度,形式化如下:

                                                k(x,x')=\int \sqrt{p_{x}(z)} \sqrt{p_{x'}(z)}dz

       基于模型映射的核

            Fisher核

                                            k(\mathbf{x},\mathbf{x'};\theta ) = g(\mathbf{x};\theta )^{T}I(\theta )^{-1}g(\mathbf{x'};\theta )

其中 g(\mathbf{x};\theta ) 称为Fisher Score,其维度与 θ 一致g(\mathbf{x};\theta ) = \triangledown _{\theta }lnp(x\mid \theta ) 为 以\mathbf{\theta} 为参数的概率生成模型p(x\mid \theta ),对于任一x ,在该点处关于θ的梯度向量。I(\theta )为Fisher信息矩阵,定义为:

I(\theta ) = E_{x}[g(x;\theta )g(x;\theta )^{T}] 即为梯度向量的协方差阵。引入该矩阵的目的是对梯度向量做正规化。

          TOP核 

           是基于Fisher核的扩展。

                                                k(\mathbf{x},\mathbf{x'}) = f(\mathbf{x};\mathbf{\theta} )^{T}f(\mathbf{x^{'}};\mathbf{\theta} )

其中 f(\mathbf{x};\mathbf{\theta} ) = \triangledown _{\theta }lnv(x\mid \theta ) ,v为二分类任务的概率模型p(x|θ)所定义的后验概率差函数:

v(x;\mathbf{\theta }) = \frac{p(y=1| \mathbf{x},\mathbf{\theta} )}{p(y=-1| \mathbf{x},\mathbf{\theta}) }

四 、复杂对象上的核函数

           核方法可以应用到比较复杂的对象,如集合、序列、图结构,这种复杂对象一般有多种属性和较强的结构性。对于这些复杂对象,用核方法就可以无需将这些对象做向量化,只需设计刻画对象之间相似性的核函数,即可完成分类、回归等建模任务。

4.1 集合上的核

      首先定义集合之间的距离,一种简单的定义方法是利用集合中点对点的距离再生成集合间的距离:

      D(A,A') =f(\{d(a_{i},a_{j})|(a,a_{j}^{'})\in A\times A^{'}\})

其中d(a_{i},a'_{j}) 是两个集合中元素的点对点距离,f是一个聚合函数,如果对所有点对点距离取平均,则得到平均连接距离;如果取A中的每一点到A' 最近的点距离,以及A'中每一点到A的最近的点距离,并取这些距离的平均即为平均最小距离。另一种常用的集合之间的距离为Hausdorff距离: 

D(A,A') = max{\{max_{a_{i}}\{min_{a'_{j}}\{d(a_{i},a'_{j})\}\},max_{a'_{j}}\{min_{a_{i}}\{d(a_{i},a'_{j})\}\}}\}

     有了上述的距离定义,就可以定义集合上的核函数了,常用的方法就是距离替换法,就是将基于向量距离的核替换为基于集合的距离,

 k(x,x') = f(\left \| x -x' \right \|) ————> k(x,x') = f(\left \| -\alpha D(x,x')^{2} \right \|)

比如Gauss Kernel:

k(A,A') = e^{-\alpha D(A,A')^{2}}

基于集合间的距离生成核函数的另一种方式是标志集向量,选择一些“标志集”,记为(s_{1}s_{2},...s_{m}),求集合A到所有s_{i}的距离,

v(A) =[D(A,S_{1}),......,D(A,S_{m})]^{T}

利用任意一个基于向量的核函数即可以得到一个集合上的核函数:

k(A,A') = k(v(A),v(A'))

如果k(.,.) 是半正定的,则关于v(A)上的核函数也是半正定的。

    第三种生成集合核函数的方法是利用概率核方法,将集合表示成一个概率函数,再基于概率函数间的距离设计集合的核函数。

     测地线距离

    首先将一个集合中的元素进行聚类,得到每一类的中心即该类中的元素在整个集合中的比例,基于此,一个集合可以表示成一个元素是二元组的向量:

v(A) =[(p_{1},u_{1}),......,(p_{n},u_{n})]^{T}

其中p_{i}p'_{j} 分别为A和A' 的类中心向量。u_{i} 为第i类中元素的比例。基于此,A和A'的测地线距离可表示为:

 D(A,A') = \frac{\sum_{i}^{}\sum_{j}^{}f_{ij}d(p_{i},p'_{j})}{\sum_{i}^{}\sum_{j}^{}f_{ij}}

f_{ij}是可基于二元组向量v(A)、v(A')通过优化方法求出一组参数。EMD事实上描述了由一个离散分布S变换成另一个离散分布所需要的最小努力。

     \chi ^{2}距离

    是另一种描述离散分布相似性的度量方法。设两个m维的离散分布S和S',其\chi ^{2}距离定义如下:

\chi ^{2}(S,|S') = \frac{1}{2}\sum_{i=1}^{m}\frac{(u_{i}-u'_{i})^{2}}{(u_{i}+u'_{i})}

u_{i}u'_{i}分别为这两个离散分布的第 i 个分量。如果两个集合分别可以表示为离散分布S和S',则这两个集合之间的距离可以用这两个分布的\chi ^{2}距离表示: D(A,A')=\chi ^{2}(s,s')

     基于以上两种距离,可以用替换法得到集合上的核函数:

k(A,A') = e^{-\alpha D(A,A')^{2}}

    另一种概率核方法,即基于模型映射的方法(如Fisher核),可同样用于设计集合的核函数。首先需要对S中的所有元素建立一个全局概率模型,再求该模型对一个集合A所有元素的对数概率的梯度:

v(A) = \triangledown _{\mathbf{\theta} }\sum_{a}^{}logp(a|\mathbf{\theta })  a \in A

其中θ是参数向量,v(A)是关于θ的导数向量,则集合上的Fisher核可简单表示为:

k(A,A') = v(A)^{T}I^{-1}v(A')

其中I^{-1}为概率模型的Fisher信息矩阵(梯度向量的协方差阵)。

4.2 序列上的核

      如果对象是一个序列,如文本串、DNA等,则距离计算更复杂。处理方法有两种:一种简单的处理方法是忽略序列中的元素顺序,这时序列退化为一个集合,序列上的核函数退化为集合上的核函数。另一种方法只考虑局部顺序,文本处理的 N-gram词袋模型在实践中被广泛采用。

    在局部顺序方面,Lodhi提出了一种基于子串的序列核,称为SSK核(String Subsequence Kernel)。方法通过搜索两个序列中的共同子串描述连个序列的相似性,子串可以连续的,也可以不连续的。Lodhi证明这一核函数是对称半正定的,还设计了基于动态规划的快速算法,以高效计算两个序列的SSK核函数值。

    如果是全局顺序,一般需要对序列进行对齐(序列之间元素一一对应的方式),采用某种对齐策略,可以计算序列之间的距离。给定两个序列,总可搜索得到一种将x和x'对齐的策略使得依此方式得到的元素间的距离的和最小:

d(x,x') = min\sum_{\varepsilon }^{}d(\xi _{t}(x),\xi_{t}(x'))

    式中d为距离,\xi _{t}(x) 为依对齐\xi序列中排第t位的元素。这一优化任务可以用动态规划算法求解,通常称为动态时间弯折算法。文本处理中常用的编辑距离即是这一方法的特例。

    距离本身并不一定是合法的核函数,可以利用距离替换法或者标志集向量发生成序列的核函数。Neuhaus提出了一种核函数构造方法,定义如下:

k(x,x') = \frac{1}{2}(d(x,x_{0})^{2} + d(x',x_{0})^{2} - d(x,x')^{2})

x_{0}是某一参考序列。

    虽然d(x,x')一般不是个合法的核函数,但如果d选择合理,是可以构造合法的核函数。如shimodaira提出的:

d(x,x') = min_{\xi}\sum_{t }^{}\phi (\xi _{t}(x))^{T}\phi(\xi_{t}(x'))

其中\phi(.)是对序列中元素的特征映射。这一核函数可以表示成映射空间的内积,因此是对称半正定的。

     生成序列核的另一种方法是对序列进行概率建模,一是用模型间的距离构造核函数(如KL核),另一种是将序列映射为向量(如Fisher核)。还有一种方法的基本思路是,如果两个序列的联合概率分布式条件独立的:

p(x,x') =\sum_{c}^{}p(x|c)p(x'|c)p(c)

    上式右侧显然可以是两个向量的内积,因此联合概率分布是一个合法的核函数:

k(x,x') = p(x,x')

4.3 图上的核

      图是比序列更复杂的结构,如何定义两幅图之间的相似性成为创建核函数的关键。

 Haussler提出几种基于子结构的图核函数,称为卷积图核方法。

    具体地,设依某一关系R可以将图G分解成子结构的一个组合g=(g_{1},g_{2},g_{3}....g_{m}),记为g\in R^{-1}(G) ,表示g是依R的一个可能组合。如果该组合的上的一个函数k可以用下式来表示:

 k(g,g')= \prod_{i=1}^{D}k_{}(g_{i},g'_{i}),

则如下图核函数是对称半正定的:

K(G,G')= \sum_{g\in R^{-1}(G),g'\in R'^{-1}(G)}^{}k(g,g')

    卷积图核给出一种在图上构造核函数的方法,但依R分解子结构较困难,可以将子结构限制为部分路径,从而降低分解的复杂度,通过计算两幅图中部分路径的相似性来计算图之间的相似性。

   4.3.1 基于状态转移的图核函数

    基于这一思路Kashima给出一个基于状态转移的图核函数。是在两幅图上进行随机游走,通过随机游走对两幅图进行路径采样,通过对路径的相似性进行求和,即可得到两幅图的相似性。

    一个无向图G可由节点集合V核边集合E表示,如果V中的两个节点和边集合E表示,如果V中的两个节点v_{j} 和 v_{k}相邻,则二者被E中的一条边e_{jk}相连,记为j~k,为推论方便,可以假设图的顶点没有标识,而边是有标识的。

    设图G中节点间的跳转概率由矩阵P定义,其中p_{jk}表示由节点j到节点k的跳转概率。设在G上进行了t步随机游走后到达结束状态,所经过节点的下标序列为i_{1},i_{2},i_{3},....,i_{t+1},对应边上的标记序列为h_{1},h_{2},h_{3},....,h_{t}。设初始概率为p,结束概率为q,则路径h的概率为:

p(h|G) = q_{i_{t}+1}\prod_{j=1}^{t}p_{i_{j},i_{j+1}}p_{i_{1}}

若两个标记序列即路径h和h'长度不同,则相似性为0,否则相似性由定义在序列间的核函数确定:

k(h,h') = \prod_{i=1}^{t}k(h_{i},h'_{i})

两幅图G和G'间的距离为:

k(G,G')= \sum_{h}^{}\sum_{h'}^{}k(h,h')p(h|G)p(h'|G')

即两序列的核与两序列概率积在所有序列上求和。

      如果k是合法的核函数,则k(G,G')由于是和式,显然可以写成两个向量的内积,因而是一个合法的核函数,称之为边缘化核。

     4.3.2 基于路径标识的特征映射方法

    基于类似思路,Gartner提出了一种基于路径标识的特征映射方法。给定长度为n的一个标识序列s=(h_{1},...h_{n}),其中hi为路径第i条边上的标识。统计图G中包含着一序列的综述C_{s},由此得到一个特征映射:

\phi (G) =[C_{s_{1}},C_{s_{2}},C_{s_{3}},...]^{T}

    其中每维为对应一个可能的序列s。注:长度为n的s总数为\left | L \right |^{n},其中L为标识集,即L=\{h_{i}\},因n可以选取不同的数量,可以得到非常高的维度,基于这一特征,可以得到一个对称半正定核函数:

k(G,G') =\phi (G)^{T}\phi (G')

   4.3.3 基于最短路径的图核

    Borgwardt 提出一种基于最短路径的图核,和上面基本思路一致,但节点之间采用的最短路径标注,即节点之间的标注都在原图的最短路径上。因此首先要将原图转换成最短路径图。基于最短路径图可计算核函数:

k(G,G')= \sum_{h\in E}^{}\sum_{h' \in E'}^{}k(h_{i},h'_{j})

    其中E和E'分别为G和G'对应的最短路径图的边,即h和h'一定在最短路径上。

   4.3.4 有限状态机

    另一种常见的图结构是有限状态机,有限状态机之间的距离采用Rational核,一种简单的Rational核称为n-gram核。给定一个有限状态机G,所有可能的序列s都被赋以一个概率p_{G}(s),

定义s 中包含某子串的次数为\left | s \right |_{x},则G中包含x的期望次数为:

c(G,x) = \sum_{s}^{}p_{G}(s)\left | s \right |_{x}

基于这一统计次数,两个有限状态机G和G'之间的n-gram核函数可表示为:

k_{n}(G,G') =\sum_{\left | x \right |=n}^{}c(G,\mathbf{x})c(G',\mathbf{x})

因此n-gram 是对称半正定的,因此是合法核函数。

      以上几种图核函数的构造方法,都遵循将图做分解,用部分结构的相似性计算全局相似性。特别是将图分解成部分路径之后,相当于构造了以这些路径为索引的特征空间,从而将图与图之间的相似度转化为在特征空间的内积。

五、总结

       本文是学习《机器学习导论》(清华大学出版社,中文版,王东,2021年)的摘录总结或笔记。

      

    

   

      

      

         

                                             

                      

                                         

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 绪论 1 1.1 云计算的概念 1 1.2 云计算发展现状 3 1.3 云计算实现机制 5 1.4 网格计算与云计算 6 1.5 云计算的发展环境 9 1.5.1 云计算与3G 9 1.5.2 云计算与物联网 9 1.5.3 云计算与移动互联网 10 1.5.4 云计算与三网融合 11 1.6 云计算压倒性的成本优势 12 习题 15 参考文献 15 第2章 Google云计算原理与应用 17 2.1 Google文件系统GFS 17 2.1.1 系统架构 18 2.1.2 容错机制 20 2.1.3 系统管理技术 20 2.2 分布式数据处理MapReduce 21 2.2.1 产生背景 21 2.2.2 编程模型 22 2.2.3 实现机制 22 2.2.4 案例分析 24 2.3 分布式锁服务Chubby 25 2.3.1 Paxos算法 26 2.3.2 Chubby系统设计 27 2.3.3 Chubby中的Paxos 29 2.3.4 Chubby文件系统 31 2.3.5 通信协议 32 2.3.6 正确性与性能 34 2.4 分布式结构化数据表Bigtable 35 2.4.1 设计动机与目标 35 2.4.2 数据模型 36 2.4.3 系统架构 37 2.4.4 主服务器 38 2.4.5 子表服务器 39 2.4.6 性能优化 42 2.5 分布式存储系统Megastore 43 2.5.1 设计目标及方案选择 44 2.5.2 Megastore数据模型 44 2.5.3 Megastore中的事务及并发控制 46 2.5.4 Megastore基本架构 47 2.5.5 心技术——复制 49 2.5.6 产品性能及控制措施 52 2.6 大规模分布式系统的监控基础架构Dapper 54 2.6.1 基本设计目标 54 2.6.2 Dapper监控系统简介 54 2.6.3 关键性技术 57 2.6.4 常用Dapper工具 58 2.6.5 Dapper使用经验 60 2.7 Google应用程序引擎 62 2.7.1 Google App Engine简介 62 2.7.2 应用程序环境 63 2.7.3 Google App Engine服务 65 2.7.4 Google App Engine编程实践 72 习题 86 参考文献 86 第3章 Amazon云计算AWS 88 3.1 Amazon平台基础存储架构:Dynamo 88 3.1.1 Dynamo在Amazon服务平台的地位 88 3.1.2 Dynamo架构的主要技术 89 3.2 弹性计算云EC2 97 3.2.1 EC2的主要特性 97 3.2.2 EC2基本架构及主要概念 97 3.2.3 EC2的关键技术 99 3.3.4 EC2安全及容错机制 101 3.3 简单存储服务S3 102 3.3.1 基本概念和操作 102 3.3.2 数据一致性模型 104 3.3.3 S3安全措施 105 3.4 简单队列服务SQS 107 3.4.1 SQS基本模型 107 3.4.2 两个重要概念 107 3.4.3 消息 108 3.4.4 身份认证 109 3.5 简单数据库服务Simple DB 109 3.5.1 重要概念 110 3.5.2 存在的问题及解决办法 112 3.5.3 Simple DB和其他AWS的结合使用 112 3.6 关系数据库服务RDS 113 3.6.1 SQL和NoSQL数据库的对比 113 3.6.2 RDS数据库原理 114 3.6.3 RDS的使用 115 3.7 内容推送服务CloudFront 115 3.7.1 内容推送网络CDN 115 3.7.2 云内容推送CloudFront 117 3.8 其他Amazon云计算服务 119 3.8.1 快速应用部署Elastic Beanstalk和服务模板CloudFormation 119 3.8.2 云中的DNS服务 Router 53 119 3.8.3 虚拟私有云VPC 120 3.8.4 简单通知服务SNS和简单邮件服务SES 120 3.8.5 弹性MapReduce服务 120 3.8.6 电子商务服务DevPay、FPS和Simple Pay 122 3.8.7 Amazon执行网络服务 126 3.8.8 土耳其机器人 127 3.8.9 Alexa Web服务 128 3.9 AWS应用实例 129 3.9.1 在线照片存储共享网站SmugMug 129 3.9.2 在线视频制作网站Animoto 130 3.10 小结 131 习题 131 参考文献 131 第4章 微软云计算Windows Azure 135 4.1 微软云计算平台 135 4.2 微软云操作系统Windows Azure 136 4.2.1 Windows Azure概述 136 4.2.2 Windows Azure计算服务 137 4.2.3 Windows Azure存储服务 138 4.2.4 Windows Azure Connect 152 4.2.5 Windows Azure CDN 153 4.2.6 Fabric控制器 153 4.2.7 Windows Azure应用场景 155 4.3 微软云关系数据库SQL Azure 157 4.3.1 SQL Azure概述 157 4.3.2 SQL Azure关键技术 158 4.3.3 SQL Azure应用场景 160 4.3.4 SQL Azure和SQL Server对比 162 4.4 Windows Azure AppFabric 163 4.4.1 AppFabric概述 163 4.4.2 AppFabric关键技术 164 4.5 Windows Azure Marketplace 167 4.6 微软云计算编程实践 168 4.6.1 利用Visual Studio2010开发简单的云应用程序 168 4.6.2 向Windows Azure平台发布应用程序 170 习题 173 参考文献 173 第5章 VMware云计算 174 5.1 VMware云产品简介 174 5.1.1 VMware云战略三层架构 174 5.1.2 VMware vSphere架构 175 5.1.3 云操作系统vSphere 176 5.1.4 底层架构服务vCloud Service Director 177 5.1.5 虚拟桌面产品VMware View 178 5.2 云管理平台 vCenter 179 5.2.1 虚拟机迁移工具 179 5.2.2 虚拟机数据备份恢复工具 181 5.2.3 虚拟机安全工具 181 5.2.4 可靠性组件FT和HA 182 5.3 云架构服务提供平台vCloud Service Director 182 5.3.1 创建虚拟数据中心和组织 183 5.3.2 网络的设计 184 5.3.3 目录管理 184 5.3.4 计费功能 184 5.4 VMware的网络和存储虚拟化 184 5.4.1 网络虚拟化 184 5.4.2 存储虚拟化 186 习题 188 参考文献 188 第6章 Hadoop:Google云计算的开源实现 189 6.1 Hadoop简介 189 6.2 Hadoop分布式文件系统HDFS 190 6.2.1 设计前提与目标 190 6.2.2 体系结构 191 6.2.3 保障可靠性的措施 192 6.2.4 提升性能的措施 194 6.2.5 访问接口 195 6.3 分布式数据处理MapReduce 196 6.3.1 逻辑模型 196 6.3.2 实现机制 196 6.4 分布式结构化数据表HBase 197 6.4.1 逻辑模型 198 6.4.2 物理模型 198 6.4.3 子表服务器 199 6.4.4 主服务器 199 6.4.5 元数据表 200 6.5 Hadoop安装 200 6.5.1 在Linux系统中安装Hadoop 200 6.5.2 在Windows系统中安装Hadoop 208 6.6 HDFS使用 215 6.6.1 HDFS 常用命令 215 6.6.2 HDFS 基准测试 219 6.7 HBase安装使用 219 6.7.1 HBase的安装配置 219 6.7.2 HBase的执行 220 6.7.3 Hbase编程实例 221 6.8 MapReduce编程 223 6.8.1 矩阵相乘算法设计 223 6.8.2 编程实现 224 习题 226 参考文献 226 第7章 Eucalyptus:Amazon云计算的开源实现 228 7.1 Eucalyptus简介 228 7.2 Eucalyptus技术实现 229 7.2.1 体系结构 229 7.2.2 主要构件 230 7.2.3 访问接口 230 7.2.4 服务等级协议 231 7.2.5 虚拟组网 232 7.3 Eucalyptus安装与使用 233 7.3.1 在Linux系统中安装Eucalyptus 233 7.3.2 Eucalyptus配置和管理 236 7.3.3 Eucalyptus常用命令的示例和说明 238 习题 240 参考文献 240 第8章 其他开源云计算系统 241 8.1 简介 241 8.1.1 Cassandra 241 8.1.2 Hive 242 8.1.3 VoltDB 242 8.1.4 Enomaly ECP 243 8.1.5 Nimbus 244 8.1.6 Sector and Sphere 245 8.1.7 abiquo 247 8.1.8 MongoDB 247 8.2 Cassandra 249 8.2.1 体系结构 249 8.2.2 数据模型 250 8.2.3 存储机制 251 8.2.4 读/写删过程 252 8.3 Hive 254 8.3.1 整体构架 254 8.3.2 数据模型 255 8.3.3 HQL语言 257 8.3.4 环境搭建 259 8.4 VoltDB 260 8.4.1 整体架构 260 8.4.2 自动数据分片技术 261 习题 264 参考文献 264 第9章 云计算仿真器CloudSim 265 9.1 CloudSim简介 265 9.2 CloudSim体系结构 265 9.2.1 CloudSim心模拟引擎 266 9.2.2 CloudSim层 268 9.2.3 用户代码层 271 9.3 CloudSim技术实现 271 9.4 CloudSim的使用方法 274 9.4.1 环境配置 274 9.4.2 运行样例程序 274 9.5 CloudSim的扩展 277 9.5.1 调度策略的扩展 277 9.5.2 仿真心代码 280 9.5.3 平台重编译 286 习题 287 参考文献 287 第10章 云计算研究热点 288 10.1 云计算体系结构研究 288 10.1.1 Youseff划分方法 288 10.1.2 Lenk划分方法 290 10.2 云计算关键技术研究 292 10.2.1 虚拟化技术 292 10.2.2 数据存储技术 293 10.2.3 资源管理技术 295 10.2.4 能耗管理技术 298 10.2.5 云监测技术 301 10.3 编程模型研究 303 10.3.1 All-Pairs编程模型 303 10.3.2 GridBatch编程模型 304 10.3.3 其他编程模型 305 10.4 支撑平台研究 306 10.4.1 Cumulus:数据中心科学云 306 10.4.2 CARMEN:e-Science云计算 307 10.4.3 RESERVOIR:云服务融合平台 308 10.4.4 TPlatform:Hadoop的变种 309 10.4.5 P2P环境的MapReduce 309 10.4.6 Yahoo云计算平台 311 10.4.7 微软的Dryad框架 311 10.4.8 Neptune框架 312 10.5 应用研究 313 10.5.1 语义分析应用 313 10.5.2 生物学应用 314 10.5.3 数据库应用 315 10.5.4 地理信息应用 316 10.5.5 商业应用 317 10.5.6 医学应用 318 10.5.7 社会智能应用 319 10.6 云安全研究 321 10.6.1 Anti-Spam Grid:反垃圾邮件网格 321 10.6.2 CloudAV:终端恶意软件检测 323 10.6.3 AMSDS:恶意软件签名自动检测 324 10.6.4 CloudSEC:协作安全服务体系结构 325 习题 327 参考文献 327 第11章 总结与展望 332 11.1 主流商业云计算解决方案比较 332 11.1.1 应用场景 332 11.1.2 使用流程 334 11.1.3 体系结构 335 11.1.4 实现技术 335 11.1.5 心业务 336 11.2 主流开源云计算系统比较 338 11.2.1 开发目的 338 11.2.2 体系结构 339 11.2.3 实现技术 340 11.2.4 心服务 340 11.3 国内代表性云计算平台比较 341 11.3.1 中国移动“大云” 341 11.3.2 阿里巴巴“阿里云” 343 11.3.3 “大云”与“阿里云”的比较 343 11.4 云计算的历史坐标与发展方向 344 11.4.1 互联网发展的阶段划分 344 11.4.2 云格(Gloud)——云计算的未来 347 习题 349 参考文献 349
目录 一、设计总绪 2 1.1设计思想 2 1.2设计说明 2 1.3关键词:矩阵键盘,单片机,数码管显示,汇编语言 2 1.4设计目的 2 1.5设计要求 2 、设计方案 3 2.1硬件电路设计方案 3 2.1.1基本结构 3 2.1.2系统框架图 3 2.1.3工作流程图 4 2.1.4单片机主控制模块 5 2.2系统功能描述 6 三、各模块功能介绍 7 3.1键盘输入模块 7 3.1.1键盘分布图 7 3.1.2工作原理 7 3.2运算控制模块 8 3.3显示模块 8 3.4振荡电路模块 9 四、仿真电路 10 仿真运行结果 10 五、调试过程总结 12 附录: 13 参考文献: 13 源程序代码 13 一、设计总绪 1.1设计思想 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术 日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个心部件 来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加 以完善。 计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必 将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89c51单片机、LCD显 示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及汇编语言编 程,对其片资源及各个I/O端口的功能和基本用途的了解。掌握应用程序开发环境,常用 的LCD显示器的使用方法和一般键盘的使用方法 此设计是基于单片机技术的简易计算器的方案,本次设计所提出的一种基于单片机技术 的简易计算器的方案,采用具有数据处理能力的中央处理器CPU,随机存储器ROM,多种 I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算 机系统——单片机,配以汇编语言编写的执行程序,能更好的解决计算机计算的问题,随 着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集 成电路中,使用起来十分方便。 1.2设计说明 本次课程设计讨论了单片机技术的计算器构思,设计方案,工作原理,主要系统包括 单片机80C51,排阻RESPACK—8,开关,六位数码管显示器等,主要组成部分包括:键盘 输入模块,运算模块,控制模块,显示模块。通过键盘输入数值,单片机进行运算后在 数码管显示出结果。 1.3关键词:矩阵键盘,单片机,数码管显示,汇编语言 1.4设计目的 通过本次课程设计,运用《单片机微型计算机原理及应用》所学到的知识及查询相关资料 ,完成简易计算器的设计,进一步提高单片机的系统设计和开发能力,达到理论知识与 实践更好的结合,提高综合运用所学知识和设计能力的目的。 1.5设计要求 要求设计一个单片机应用系统,利用keil和proteus软件完成系统软硬件的设计及模拟调 试。实现五位数(可为带小数点)的加减乘除运算,通过按键输入十进制数据。利用六 位数码管显示运算结果。并实现复位操作。由于要设计的是简单的计算器,可以进行四 则运算,为了得到教好的显示效果,采用LCD显示数据和结果。、另外键盘包括数字键( 0-9)、符号键(+、- 、*、/)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算机键盘来 ,当键入+、- 、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值后将显示键入 的数值,按等号就会在LCD上输出运算结果,执行程序:开机显示零,等待键入数值,当 键入数字,通过LCD显示出 、设计方案 2.1硬件电路设计方案 2.1.1基本结构 计算器一般由运算器、控制器、键盘、显示器、电源和一些可选外围设备及电子配件通 过人工或机器设备组成。键盘是计算器的输入部件,一般采用接触式或传感式。显示器 是计算器的输出部件,有发光极管显示器或液晶显示器等。除显示计算结果外,还常 有溢出指示、错误指示等。计算器电源采用交流转换器或电池。计算器都采用CMOS工艺 制作的大规模集成电路。 本次课程设计中我是采用了以MCS—51系列的单片机AT89C51单片机为心构成的简易计算 器。该系统通过单片机控制,实现对4*4键盘进行实时扫描的按键检测,并把检测数据存 储下来。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描 ,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送 入数码管动态显示。整个系统可分为三个主要功能模块:功能模块一,实时键盘扫描; 功能模块,数据转换成显示器显示;功能模块三,计算控制模块。功能模块四:显示 模块。 2.1.2系统框架图 图2.1 系统总体框架图 2.1.3工作流程图 No Yes 图2.2 系统工作流程图 2.1.4单片机主控制模块 AT89C51是一种带4K字节闪烁可编程可擦除只
FPGA自学笔记——设计与验证JMB FPGA(可编程逻辑门阵列)是一种可编程的硬件平台,可以实现各种数字电路的设计与验证。本文将简要介绍使用FPGA自学设计与验证JMB(低功耗、高效能、集成度高的多媒体芯片)的过程。 首先,我们需要了解JMB的功能和特性。JMB是一种面向多媒体应用的芯片,具备低功耗、高效能和高集成度的优势。我们需要详细研究JMB的硬件架构和内部模块,包括处理器、存储器模块、图像和音频处理模块等。 接下来,我们可以使用FPGA开发板来设计和验证JMB。首先,我们需要熟悉FPGA设计工具,例如Vivado或Quartus等。这些工具提供了图形化界面和硬件描述语言(HDL)等设计方法。我们可以使用HDL编写JMB的功能模块,并将其综合为FPGA可执行的位流文件。 在设计完成后,我们需要验证JMB的功能和性能。我们可以使用仿真工具(例如ModelSim或ISE Simulator)来模拟JMB在不同情况下的行为。通过设计测试程序并运行仿真,我们可以验证JMB的各个模块是否正确地工作,是否满足设计要求。 在验证完成后,我们可以将位流文件下载到FPGA开发板中进行智能芯片的物理实现和测试。通过与外部设备的连接以及相关测试程序的运行,我们可以验证JMB在实际硬件中的功能和性能。 总结起来,学习FPGA设计与验证JMB,我们需要熟悉JMB的硬件架构和内部模块,并使用FPGA开发工具进行设计与验证。通过仿真和物理实现测试,我们可以验证JMB的功能和性能。这些过程需要理论知识和实践经验的结合,希望这些笔记能够给你提供一些参考和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值