精华内容
下载资源
问答
  • 计算理论

    2021-07-01 04:22:38
    计算理论(Computability theory)作为计算理论的一个分支,研究在不同的计算模型下哪些算法问题能够被解决。相对应的,计算理论的另一块主要内容,计算复杂性理论考虑一个问题怎样才能被有效的解决。可计算理论的...

    可计算性理论(Computability theory)作为计算理论的一个分支,研究在不同的计算模型下哪些算法问题能够被解决。相对应的,计算理论的另一块主要内容,计算复杂性理论考虑一个问题怎样才能被有效的解决。可计算理论的研究对象有三个 : ( 1) 判定问题; ( 2) 可计算函数;( 3) 计算复杂性。[1]

    中文名

    可计算性理论

    外文名

    computability theory

    学    科

    计算机、数学又    称

    算法理论

    基    础

    算法设计与分析的基础

    应用领域

    并行计算、人工智能

    可计算性理论简介

    编辑

    语音

    可计算性理论,亦称算法理论或能行性理论,计算机科学的理论基础之一。是研究计算的一般性质的数学理论。可计算性理论通过建立计算的数学模型[2]

    ,精确区分哪些是可计算的,哪些是不可计算的。计算的过程是执行算法的过程。可计算性理论的重要课题之一,是将算法这一直观概念精确化。算法概念精确化的途径很多,其中之一是通过定义抽象计算机,把算法看作抽象计算机的程序。通常把那些存在算法计算其值的函数叫做可计算函数。因此,可计算函数的精确定义为:能够在抽象计算机上编出程序计算其值的函数。这样就可以讨论哪些函数是可计算的,哪些函数是不可计算的。

    应用计算性理论是计算机科学的理论基础之一。早在30年代,图灵对存在通用图灵机的逻辑证明表明,制造出能编程序来作出任何计算的通用计算机是可能的,这影响了40年代出现的存储程序的计算机(即冯诺依曼型计算机)的设计思想。可计算性理论确定了哪些问题可能用计算机解决,哪些问题是不可能用计算机解决的。

    可计算性理论中的基本思想、概念和方法,被广泛用用与计算机科学的各个领域。建立数学模型的方法在计算机科学中被广泛采用。递归的思想被用于程序设计,产生了递归过程和递归数据结构,也影响了计算机的体系结构。

    可计算性理论计算模型

    编辑

    语音

    可计算理论的计算模型主要包括: ( 1)Turing 机; ( 2) 递归函数 ; ( 3) λ演算 ;( 4) POST 系统;( 5) 正则算法。 第一个模型是程序设计语言 S,该程序语言定义了 1) 变量;2) 标号; 3)语句; 4) 指令;5) 程序; 6) 状态;;7) 快相; 8) 后继; 9)计算。 设f(x 1 , x 2 , …, x n )是一个部分函数, 如果存在程序 S 计算 f ,则称 f 是部分可计算函数。 从而, 一个函数是否是可计算的,只需要判断是否可以构造对应的程序 S 即可。可计算函数经过原始递归运算还是可计算函数。 给出了通用程序的概念, 任意程序和输入x 1 , x 2 , …( y = # ( ) ), 存在通用程序以 x 1 , x 2 , …, x n 和y 作为输入 ,计算结果恰好等于程序的计算结果。“ 参数定理” 、“ 递归定理”提供了判断一个函数是否可计算的方法,从基本的可计算函数推道出其他函数是否可计算,而不需要构造程序证明其可计算 。

    另一个计算模型是语言 hn, 该模型为字符串运算设计的。 设字母表 A 中有 n 个符号, 如果 A上的m 元部分函数能用程序计算, 则这个函数是可计算的。 Post-Turing 语言也是面向字符串运算的程序设计语言, 要处理的字符串存在一条带上。Post-Turing 程序ζ计算的 A 上m 元部分函数定义为对任意给定的输入 x 1 , x 2 , …, x n ∈A, 从初始带格局开始, 如果计算最终停止, 则部分函数等于计算停止时从带的内容中删除不属于 A 的符号后得到的字符串; 如果计算不停止, 则部分函数无定义。 图灵机 μ由六部分组成:( 1) 有穷状态集,,( 2) 字母表,( 3) 动作函数, ( 4)输入字母表,( 5) 空白符 B, ( 6) 初始态 q1。 上述计算模型等价性的证明, 主要采用将一种模型用另一种模型表示的方法证明。 可计算理论中,计算模型很多, 如有穷自动机, 正则算法在本质上都与图灵机相似。 Church-Turing 论题指出: 通常说的能行可计算函数等同于部分递归函数, 也等同于Turing 机计算的部分函数; 也就是说, Turing 机可计算性与递归性是等价的。 因此, 把递归函数、Turing 机( 部分) 可计算函数及其等价的概念作为可计算函数的严格定义。[1]

    可计算性理论有关术语

    编辑

    语音

    可计算性理论可计算性等级

    在数学中,可计算性是函数的一个特性。定义域为D和范 围为R的函数f有一个确定的对应关系。通过这个 对应关系使R范围的单个元素f(x) (称为 值) 和D定义域的每个元素x(称为变元)联系起来。 如果存在这样一种算法,给定D中的任意的x,就 能给出f(x)的值,那么说函数f是可计算的。[3]

    在计算机中,可计算性(calculability)是指一个实际问题是否可以使用计算机来解决.从广义上讲如“为我烹制一个汉堡”这样的问题是无法用计算机来解决的(至少在目前)。而计算机本身的优势在于数值计算,因此可计算性通常指这一类问题是否可以用计算机解决.事实上,很多非数值问题(比如文字识别,图象处理等)都可以通过转化成为数值问题来交给计算机处理,但是一个可以使用计算机解决的问题应该被定义为“可以在有限步骤内被解决的问题”,故哥德巴赫猜想这样的问题是不属于“可计算问题”之列的,因为计算机没有办法给出数学意义上的证明,因此也没有任何理由期待计算机能解决世界上所有的问题。分析某个问题的可计算性意义重大,它使得人们不必浪费时间在不可能解决的问题上(因而可以尽早转而使用除计算机以外更加有效的手段),集中资源在可以解决的问题上。

    这样我们可以定义可计算性等级:所有的语言的集合,记为All;递归可枚举语言,即可以被图灵机枚举的语言的集合,记为RE;递归语言,即可以被图灵机决定的语言的集合,记为R。可见,即形成可计算性等级。那么产生相关的问题即是两个包含关系是不是严格的,即是否有在All而不在RE中的语言,以及在RE而不在R中的语言。阿兰·图灵在1930年代的工作表明这两个包含关系都是不严格的,即可以证明存在语言L_d,是不能被图灵机所枚举的,以及存在语言L_u,是不能被图灵机所决定的。证明的主要思想是对角线法。

    可计算性理论停机问题

    停机问题就是判断任意一个程序是否会在有限的时间之内结束运行的问题。该问题等价于如下的判定问题:给定一个程序P和输入w,程序P在输入w下是否能够最终停止。

    可计算性理论不可解度

    不可解度的概念定义了不可解的集合之间的相对计算难度。例如,不可解的停机问题显然比任何可解的集合都要难,然而同样不可解的“元停机问题”(即所有具备停机问题的预言机的停机问题)却要难过停机问题,因为具备元停机问题的预言机可以解出停机问题,然而具备停机问题的预言机却不能解出元停机问题。

    可计算性理论相关函数

    编辑

    语音

    可计算性理论转换演算

    一种定义函数的形式演算系统,是A.丘奇于1935年为精确定义可计算性而提出的。他引进λ记号以明确区分函数和函数值,并把函数值的计算归结为按一定规则进行一系列转换,最后得到函数值。按照λ转换演算能够得到函数值的那些函数称为λ可定义函数(见λ转换演算)。

    可计算性理论递归函数

    自变量值和函数值都是自然数的函数,称为数论函数。原始递归函数是数论函数的一部分。首先规定少量显然直观可计算的函数为原始递归函数,它们是:函数值恒等于0的零函数C0,函数值等于自变量值加1的后继函数S,函数值等于第i个自变量值的n元投影函数P嫔。然后规定,原始递归函数的合成仍是原始递归函数,可以由已知原始递归函数简单递归地计算出函数值的函数仍是原始递归函数。例如,和函数f(x,y)=x+y可由原始递归函数P(1)1和S递归地计算出函数值 f(x,0)=P(1)1(x) f(x,S(y))=S(f(x,y))

    比如,f(4,2)可这样计算,首先算出f(4,0)=P(1)1(4)=4,然后计算 f(4,1)=S(f(4,0))=S(4)=5

    f(4,2)=S(f(4,1))=S(5)=6

    因此,和函数是原始递归函数。显然,一切原始递归函数都是直观可计算的。许多常用的处处有定义的函数都是原始递归函数,但并非一切直观可计算的、处处有定义的函数都是原始递归函数。

    可计算性理论部分函数

    为了包括所有的直观可计算函数,需要把原始递归函数类扩充为部分递归函数类。设g(x1,…,xn,z)是原始递归函数,如果存在自然数z使g(x1,…,xn,z)=0,就取f(x1,…,xn)的值为满足g(x1,…,xn,z)=0的最小的自然数z;如果不存在使g(x1,…,xn,z)=0的自然数z,就称f(x1,…,xn)无定义。把如上定义的函数f加到原始递归函数类中,就得到部分递归函数类。因为不能保证如上定义的f在一切点都有定义,故称其为部分函数。处处有定义的部分递归函数称为递归函数。部分递归函数类与图灵机可计算函数类相同。对于每个n元部分递归函数f,可以编一个计算机程序P,以自然数x1,…,xn作为输入,若f(x1,…,xn)有定义,则P函数值执行终止并输出的f(x1,…,xn),否则P不终止。

    可计算性理论应用领域

    编辑

    语音

    由于可计算理论的建立,才出现了现代的计算机系统,此学科无疑是计算机科学的基础。 计算机科学分为计算机理论和计算机应用。 计算机基础理论包含以下几部分:

    ( 1) 程序理论( 程序逻辑、程序正确性验证、形式开发方法等)

    ( 2) 计算理论( 算法设计与分析、复杂性理论、可计算性理论等)

    ( 3) 语言理论( 形式语言理论、自动机理论、形式语义学、计算语言学等)

    ( 4) 人工智能( 知识工程、机器学习、模式识别、机器人等)

    ( 5) 逻辑基础( 数理逻辑、多值逻辑、模糊逻辑、模态逻辑、直觉主义逻辑、组合逻辑等)

    ( 6) 数据理论( 演绎数据库、关系数据库、面向对象数据库等)

    ( 7) 计算机数学( 符号计算、数学定理证明、计算几何等)

    ( 8) 并行计算( 网络计算、分布式并行计算、大规模并行计算、演化算法等)[1]

    参考资料

    1.

    可计算理论的研究内容及应用

    .中国知网[引用日期2017-06-15]

    2.

    《数学辞海》编辑委员会.数学辞海:中国科学技术出版社,2002

    3.

    许镇宇;郑尔章,翁瑞琪.计算机科学与工程百科全书:天津科学技术出版社,1991

    展开全文
  • 【联邦学习】隐私计算理论和效率

    万次阅读 2021-04-29 14:48:52
    随着大数据、机器学习与互联网经济的不断发展,人们对用户数据隐私保护的要求也不断提升,涉及数据保护的立法也不断完善。 • GDPR of EU, 2018 • CCPA of USA, 2018 • Cyber Security Law of China,2017 数据...

    主讲:

    1. 隐私计算:背景

    随着大数据、机器学习与互联网经济的不断发展,人们对用户数据隐私保护的要求也不断提升,涉及数据保护的立法也不断完善。

    • GDPR of EU, 2018
    • CCPA of USA, 2018
    • Cyber Security Law of China,2017

    数据孤岛:各个公司、组织和个人之间互相孤立、不共通数据,难以通过大数据的优势获得机器学习模型的增益。

    2. 隐私计算

    如何在保护数据隐私不泄露的前提下,协同多方参与计算:

    • 隐私定义
    • 隐私度量
    • 隐私保护技术
    • 隐私泄露分析

    隐私计算技术在满足个人隐私保护和数据法律法规的基础上,能够整合多方数据孤岛数据进行大数据分析与机器学习建模,大大提升模型与应用性能。

    3. 隐私计算技术及应用技术

    3.1 多方安全计算(MPC)

    多方安全计算(Secure Multiparty Computation, MPC )定义了多方联合的计算任务,其中每一方拥有一份输入,最终每一方只能得到函数的输出值而无法获知其他参与方的输入值。

    四种不同的多方安全计算实现:

    • 秘密共享:将计算任务看作函数
    • 同态加密:将计算任务看作函数
    • 不经意传输:将计算任务看作查询
    • 混淆电路:将计算任务看作电路

    3.2 同态加密

    同态加密(Homomorphic Encryption)是一种允许在加密数据上进行代数运算的加密方法。
    通过同态加密技术,我们可以加密上传数据进行计算任务,服务器端在没有密钥的情况下无法获得用户原数据。

    3.3 秘密共享与多方安全计算

    秘密共享(Secret Sharing)将隐私数据划分为若干份,拆分后的每一份交给不同的成员进行管理,单一成员无法复原出隐私数据基于秘密共享可设计出多方联合的计算协议。

    现有的秘密共享方案举例:加法秘密共享:使用加法运算构建密文

    布尔秘密共享:使用异或运算构建密文

    3.4 可信执行环境

    TEE在服务器的CPU中保留一块独立于操作系统的安全区域(Enclave),并确保它所运行的代码和访问的数据/资源的完整性和保密性。

    Enclave可以访问到应用内存,但是操作系统和应用内存无法访问Enclave中的代码与数据。

    用户可以将数据上传至服务器端的Enclave中进行处理,而无需担心其他未经审核的恶意代码和应用会窃取数据隐私。

    e.g: Intel’s SGX, ARM’s TrustZone

    有多个参与方时,各方将数据上传到由TEE保护的运行环境中进行运算。

    4. 联邦学习

    联邦学习针对近似计算任务(建模/预测)设计针对任务的隐私计算方法。

    要点
    • 数据不动,模型动。
    • 多方合作训练机器学习模型,但不交换明文数据。

    应用场景:智能设备之间、企业之间等在保护隐私的条件下训练模型

    4.1 横向联邦学习

    • 参与方拥有的数据特征相同(包括标签),即数据特征是对齐的;训练样本ID不同(或者交集很少)。
    • 横向联邦学习也称为“样本横向划分的联邦学习”,或者跨样本的联邦学习。
    • 横向联邦学习可以增加训练样本的总量。

        

    4.1.1 横向联邦学习:客户端-服务器架构

    聚合服务器(Aggregation Server),也称为参数服务器(Parameter Server)。

    优点

    • 聚合服务器帮助协调模型训练

    缺点

    • 聚合服务器可能带来安全威胁
    • 聚合服务器可能成为系统瓶颈

    4.1.2 横向联邦学习:P2P架构

    训练方(Trainer),也称为工作者(Worker)。训练方之间点对点通信交换训练结果。

    优点

    • 不需要集中服务器(如聚合服务器)

    缺点

    • 需要Peer-to-Peer的通信,增加通信开销
    • 当参与方很多时,系统的复杂度明显增加

    4.1.3 横向联邦学习应用

    Google Gboard System,Language model for next-word prediction.(https://arxiv.org/pdf/1812.02903.pdf

    4.2 纵向联邦学习

    纵向联邦学习特点

    • 各个参与者拥有的样本ID相同,数据特征不同纵向联邦学习也称为“按特征划分的联邦学习”。
    • 参与方拥有相同的样本ID。
    • 参与者之间需要交换中间结果,不交换原始数据。
    • 通常应用于企业间的联邦学习场景。

    训练过程

    • 系统使用一种基于加密的用户ID对齐技术,来确保A 方和B 方不需要暴露各自的原始数据便可以得到共同用户。

    • 在用户(i.e., 样本)对齐期间,系统不会将属于某一家公司的用户数据暴露给另一方。

    • 在确定共有实体后,各方使用这些共有用户(i.e.,样本)的数据来协同地训练一个机器学习模型。

    4.3 同态加密实现联邦学习

    • Step 1: 参与方生成一组同态加密密钥,参与方之间共享私钥,并共享公钥给聚合服务器
    • Step 2: 每个参与方对模型参数加密,上传给聚合服务器
    • Step 3: 聚合服务器不经解密对参数进行聚合(同态加法、乘法)
    • Step 4: 聚合服务器将聚合后参数(密文)分发给参与方
    • Step 5: 各参与方解密模型参数,开始下一轮训练

    【注】Chengliang Zhang et al. BatchCrypt: Efficient Homomorphic Encryption for Cross-Silo Federated Learning. In ATC 2020.

    4.4 秘密共享实现联邦学习

    秘密共享:将隐私数据划分为若干份,拆分后的每一份交给不同的成员进行管理,单一成员无法复原出隐私数据联邦学习中:x_{0}, x_{1}, x_{2}即模型参数/梯度,

    基于加法秘密共享设计协议:

    其中S_{i,j}为随机数.

    5. 总结

    隐私计算的解决方案:

    协议层面:混淆电路(GC)、秘密共享(Secret Sharing)、茫然传输(OT)、同态加密(HE)

    硬件层面:可信执行环境(TEE)

    应用场景:多方安全计算(MPC)联邦学习(Federated Learning, FL)

    —————————————————————————————————————————

    Part II 隐私计算的效率问题和研究探索

    1. 同态加密:隐私保护计算中的核心安全技术之一

    关键特性:实现密态下的无损运算。

    但是,同态加密会造成巨大的密文计算量和传输量

    解决方案:

    计算优化:异构加速同态加密与密态下运算。

    通信优化:RDMA+自研通信框架和协议。

    2. 加速隐私计算和联邦学习计算的探索

    2.1 GPU异构加速联邦学习计算- 可⾏性分析

    1. 数据加解密及密态计算,不同数据的计算互不影响(计算高度并行)

        √ GPU适合加速能高度并行的计算任务

    2. 算法逻辑简单,但重复执行次数巨大(重复的轻量级运算)

        √ GPU适合加速重复的轻量级计算

    3. 数据以批量形式产生,并且数据量巨大(批量大数据)

        √ GPU适合加速海量数据的批量计算

    【注】CPU:强大的逻辑处理,仅有少量核心,有限的主频频率。

              GPU:弱化的逻辑处理,众多的计算核心,极高的浮点运算能力上限。

    2.2 GPU加速联邦学习计算——三大挑战

    1. 联邦学习计算需要做2048-bit大整数运算

        x 问题:GPU流处理器不直接支持大整数运算。

    2. 联邦学习计算涉及大量的模幂运算

        x 问题:GPU做模幂运算的代价非常大。

    3. 联邦学习计算需要缓存大量中间计算结果

        x 问题:由于成本跟能耗的限制,GPU显存非常有限。

    优化1——基于分治思想做元素级并行

    1. 联邦学习计算需要做2048-bit大整数运算

    x 问题: GPU流处理器不直接支持大整数运算

    √ 解决方案:基于分治思想做元素级并行

    将大比特数分解为一组多个标准字长的数,以计算a*b为例:

    使用GPU向量SIMD指令,在分解的数组上做细粒度的大整数并行计算

    优化2——平方乘算法+ 蒙哥马利算法

    2. 联邦学习计算涉及大量的模幂运算

    x 问题:GPU做模幂运算的代价非常大

    √ 解决方案平方乘算法 + 蒙哥马利算法

    问题:如何高效计算模幂运算ab mod c (a, b, c均为N比特大整数)?

    优化3——中国剩余定理减小中间计算结果

    3. 联邦学习解密计算需要缓存很大的中间计算结果

    x 问题:由于成本跟能耗的限制,GPU缓存非常有限

    √ 解决方案中国剩余定理减小中间计算结果

    异构加速联邦学习评测结果– GPU vs CPU

    隐私计算加速卡——计算性能比较

    3. 加速隐私计算和联邦学习网络通信的探索

    3.1 隐私计算通信两大场景与挑战

    场景数据中心内部不同机构间通信

    场景二:不同机构的数据中心跨区域通信

    挑战:

    1. 数据中心内场景:高速网络时代如何加速联邦学习通信?

    2. 跨区域场景:高延迟、高丢包率网络环境下如何加速联邦学习通信?

    3.2 优化数据中心内隐私计算通信

    数据中心内场景:高速网络时代如何加速隐私计算通信?

    √ 解决方案:

    1)RDMA技术优化两点间通信

    2)动态参数聚合模型优化多点间通信

    3)机器学习专用的网络传输协议

    • 网络带宽的高速增长对通信带来了巨大挑战!

    3.2.1 优化1:高速网络下加速通信:TCP→ RDMA

    • GPU与RDMA之间存在多次数据拷贝

    • GPU-Direct-RDMA 技术实现数据零拷贝

    • RDMA网络死锁问题和解决方法(Tagger, IEEE/ACM TON 2019)

    3.2.2 优化2: 动态参数聚合模型优化多点间通信

    现有参数聚合模型:Parameter Server & Ring Allreduce

    3.3 跨区域场景

    高延迟、高丢包率网络环境下如何加速联邦学习通信?

    √ 解决方案

    机器学习专用的网络传输协议。

    3.3.1 联邦学习跨区域通信的几点观察

    (1)随着物理距离增加,跨区域通信时间在联邦学习中的时间占比越来越大

    (2)跨区域主干网具有高延迟、高丢包率等特征,丢包侦测与丢包恢复代价很大

    (3)机器学习模型训练可以容忍一定的丢包率

    3.3.2 机器学习专用的网络传输协议——MLT

    核心想法:允许一定的丢包,不做重传,从而降低跨区域通信时间

    MLT性能测试

    观察:通过减少不必要的丢包重传,MLT能够大幅缩短隐私联合建模训练的时间。

    展开全文
  • 次微分的例子: 考虑凸函数f(x...奇异集合就是里面含有使深度神经网络梯度出现跳变,不是连续的(势能函数在红色曲线处不可微,只是连续的),这使得深度学习无法学到。 53:30:概率为0的人脸,代表穿过了集合的奇异集

    次微分的例子:
    考虑凸函数f(x)=|x|。在原点的次微分是区间[−1, 1]。
    紧集:
    在数学中,如果欧几里得空间 Rn 的子集是闭集合且是有界的,那么称它是紧致的。
    利普希茨连续:
    在数学中,特别是实分析,利普希茨连续(Lipschitz continuity)以德国数学家鲁道夫·利普希茨命名,是一个比通常连续更强的光滑性条件。直觉上,利普希茨连续函数限制了函数改变的速度,符合利普希茨条件的函数的斜率,必小于一个称为利普希茨常数的实数(该常数依函数而定).
    可数集:
    可数集,或称可列集,是与自然数集的某个子集具有相同基数(等势)的集合。
    紧集是完备的,Rn是可分的:
    https://www.bilibili.com/video/BV18A41157B4?from=search&seid=12302125890121465140&spm_id_from=333.337.0.0
    老顾2020年讲座第一集:10:00 从第28分半左右开始听不懂了
     
     
     
     
    https://www.bilibili.com/video/BV1qQ4y1q7V8?spm_id_from=333.999.0.0
    顾2021年讲座:
    29分,每一类数据——指所有的数字1图片组成一个类 或 所有的数字2图片组成一个类或所有的数字3,4,…9组成一个类,可以抽象成2维曲面上的一个概率分布。
    46:56:这里讲的似乎不对,生成器也能接收到来自判别器的梯度信息
    49分左右——奇异集合这一块不是很懂。奇异集合就是里面含有使深度神经网络梯度出现跳变,不是连续的(势能函数在红色曲线处不可微,只是连续的),这使得深度学习无法学到。
    53:30:概率为0的人脸,代表穿过了集合的奇异集

    展开全文
  • 基于欧几里得距离的相似度计算 【公式1】:欧几里得计算公式 作为计算结果的欧式值显示的是两点之间的直线距离,该值的大小表示两个物品或者用户差异性的大小,即用户的相似性如何。如果两个物品或者用户距离越...

    基于欧几里得距离的相似度计算

    【公式1】:欧几里得计算公式

    d=\sqrt{\left(x_{1}-x_{2}\right)^{2}+\left(y_{1}-y_{2}\right)^{2}}

    作为计算结果的欧式值显示的是两点之间的直线距离,该值的大小表示两个物品或者用户差异性的大小,即用户的相似性如何。如果两个物品或者用户距离越大,那么相似性越小;反之,距离越小相似度越大。由于欧几里得相似度计算中最终数值的大小和相似度成反比,因此在实际中常常使用欧几里得距离的倒数作为相似度值,即1/d+1作为近似值。

    【例子1】:欧几里得公式的应用

     物品1(特征1)物品2(特征2)物品3(特征3)物品4(特征4)
    用户11131
    用户21232
    用户32211

    如果计算用户1和其他用户之间的相似度,通过欧几里得距离公式可以得出:

    d_{12}=\sqrt{(1-1)^{2}+(1-2)^{2}+(3-3)^{2}+(1-2)^{2}} \approx 1.414

    从结果可知,用户1和用户2的相似度为1.414。用户1和用户3的相似度是:

    d_{13}=\sqrt{(1-2)^{2}+(1-2)^{2}+(3-1)^{2}+(1-1)^{2}} \approx 2.287

    因此可以得到用户2更加相似于用户1(距离越小,相似度越大)

     

    基于余弦角度的相似度计算

    【公式2】:余弦相似度计算公式

    \cos @=\frac{\sum\left(x_{i} \times y_{i}\right)}{\sqrt{\sum x_{i}^{2}} \times \sqrt{\sum y_{i}^{2}}}

    两条直线分别从坐标原点出发,引出一定的角度。如果两目标较为相似,那么其线段形成的夹角较小。因此在使用余弦度量的相似度计算中可以用夹角的大小来反映目标之间的相似性。

    余弦值一般为[-1,1],这个值的大小与余弦夹角的大小成正比。夹角越小,余弦值越小,两目标越相似。

    【例子2】:余弦相似度公式的应用

    表1中用户1和用户2之间的相似性,结果如下:

    d_{12}=\frac{1 \times 1+1 \times 2+3 \times 3+1 \times 2}{\sqrt{1^{2}+1^{2}+3^{2}+1^{2}} \times \sqrt{1^{2}+2^{2}+3^{2}+2^{2}}}=\frac{14}{\sqrt{12} \times \sqrt{18}} \approx 0.789

    用户1和用户3的相似性如下:

    d_{13}=\frac{1 \times 2+1 \times 2+3 \times 1+1 \times 1}{\sqrt{1^{2}+1^{2}+3^{2}+1^{2}} \times \sqrt{2^{2}+2^{2}+1^{2}+1^{2}}}=\frac{8}{\sqrt{12} \times \sqrt{10}} \approx 0.344

    相对于用户3,用户2与用户1更为相似。

     

    对比

    欧几里得相似度注重目标之间的差异,与目标在空间的位置直接相关。

    余弦相似度是不同目标在空间中的夹角,更加表现在前进的趋势上的差异。

    展开全文
  • 离散的最优传输问题介绍: 非常熟悉的线性规划法。 K-M离散问题: 满足每个生产者的约束和每个消费者...c变换是最优传输理论中最重要的一环。 一小时左右的镜像对称的表述不太懂。x到梯度的映射就是最优传输映射。 ...
  • 1995年秋季,第二作者刚刚来到哈佛大学开始攻读计算机科学领域的博士学位,并在数学系学习丘成桐先生的微分拓扑课程,同时在麻省理工学院人工智能实验室学习Berthold Horn教授的机器人视觉课程. Horn教授提倡从物理的...
  • 很多同学想知道计算机二级理论题如何复习,下面是小编整理的相关内容,希望对大家有所帮助!计算机二级理论题如何复习做理论题在电脑上实验。如果是程序题,把程序输进电脑进行运行,看得出什么结果。若是命令和函数...
  • 能克服时间域与频率域之间相互转换的计算障碍,在光谱、大气波谱分析、数字信号处理等方面有广泛应用的一种快速算法.快速傅氏变换(FFT),是离散傅氏变换的快速.1991年,Anisimov等人发现,在传统的L(S)DA中,只包括...
  • 精品文档大学计算机基础知识点第一章计算思维与计算机1、三大科学思维——理论思维 (以数学为基础的理论思维) 、实验思维以物理为基础的实验思维、计算思维2、计算思维是运用计算机科学的基础概念进行问题求解、系统...
  • 什么是机器学习? 什么是深度学习? 什么是计算机视觉? 什么是自然语言处理? 课程前言 什么是人工智能? Artificial Intelligence: also called machine intelligence, means any device that percieves its...
  • 对于这个大众相对比较陌生的领域其实有很多相关的技术,比如TEE、MPC、同态加密等,网上的资料也比较杂,今天分别给大家做下介绍,另外也讲下联邦学习与这些可信计算技术的关系。 3大可信计算技术 可信计算指的...
  • 机器学习中信息增益的计算方法

    千次阅读 2021-11-29 15:22:14
    游戏A的熵比游戏B的熵大,所以游戏A的不确定性比游戏B高。用简单通俗的话来讲,游戏B要不就在上升期,要不就在衰退期,它的未来已经很确定了,所以...我们通过计算信息熵可以解决这个问题。 按照分组统计,我们可以..
  • 文章目录对于文章的理解涉及到...Python机器学习房价预测 (斯坦福大学机器学习课程) 机器学习的步骤简单的分为以下三步 步骤①数据获取与处理 步骤②选择与训练模型 步骤③评估与显示 对于文章的理解 涉及到的知识 ...
  • 原标题:计算思维对学习计算机知识有何作用?任何一门学科都有其核心思想。数学中,公理化的数理思维居于核心;工程学里,近似化的工程思维乃是黄金准则;法学上,权利与义务的思维则贯穿始终;经济学内,有着理性人...
  • 移动边缘计算是指在移动网络边缘部署计算和存储资源,为移动网络提供 IT 服务环境和云计算能力,从而为用户提供超低时延和高带宽的网络服务解决方案。 计算卸载是指终端设备将部分或全部计算任务交给云计算环境处理...
  • 隐私计算发展趋势隐私计算的技术隐私计算体系结构安全多方计算联邦学习可行执行环境差分隐私比较应用场景发展趋势发展展望总结补充 写在前面的话 本文纯属个人笔记,仅供参考。 隐私计算 什么是隐私计算? 隐私计算...
  • 如果让我回到大学生涯,我一定会认认真真的学习下面的课程,起码我的头发可以少掉一半!1、计算机组成原理2、计算机操作系统3、计算机编译原理4、数据结构与算法5、计算机网络一、计算机组成原理计算机组成原理这门...
  • 近年来,随着深度学习技术的革新、计算存储的扩大、可视化数据集的激增,计算机视觉领域的研究开始蓬勃发展,如火如荼。在自动驾驶、智能安防、智慧城市、医疗保健、商业零售、航空能源、虚拟现实等诸多人工智能热门...
  • 化工原理精馏塔理论塔板数的计算

    千次阅读 2021-01-14 19:18:18
    这里写自定义目dsa录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个...如果你想学习如何使用
  • 在最近学习中,用Adam作为优化器,在训练时发现学习率并没有改变。这好像与之前理解的自适应的学习率有所矛盾?通过参考网址1和网址2,理解了Adam的原理之后发现,初始的学习率在训练过程中是没有改变的,而是 深入...
  • 学习计算机的主要目的是什么?

    千次阅读 2021-06-17 05:25:38
    认为有计算机本科教育有偏见,计算机科学无法学习纯粹的理论并不能进行研究. ” 最新的高考信息,高考政策,应试准备,高考预测,志愿报告计算机是学什么的,录取分数线等. 高考时间表中的所有重要节点 在“大学入学...
  • 网易有道开源EMLL:高性能端侧机器学习计算库,大幅提高计算性能简介一、端侧AI端侧AI具有以下优势:端侧AI挑战:二、ARM第三方BLAS库EigenOpenBLASARM Compute Library三、EMLL特点高性能易用性扩展性四、EMLL性能...
  • 机器学习是人工智能及模式识别领域的共同研究热点,其理论和方法已被广泛应用于解决工程应用和科学领域的复杂问题。为了给机器学习计算研究领域的专家学者提供一个交流相关领域最新研究成果的平台,2022年第14届...
  • 点上方计算机视觉联盟获取更多干货仅作学术分享,不代表本公众号立场,侵权联系删除转载于:机器之心AI博士笔记系列推荐周志华《机器学习》手推笔记正式开源!可打印版本附pdf下载链接这是一个用 ...
  • 点上方计算机视觉联盟获取更多干货仅作学术分享,不代表本公众号立场,侵权联系删除转载于:公众号我爱计算机视觉,52CVAI博士笔记系列推荐周志华《机器学习》手推笔记正式开源!可打印版本附pd...
  • 计算机学习心得体会范文(精选3篇)当我们经过反思,对生活有...计算机学习心得体会1当前,计算机行业是个飞速发展的行业,日新月异,因此,不断加强理论学习,拓展知识领域,进行知识更新,是我们当前最为迫切的任务...
  • 学习计算机专业该具备那些能力?

    千次阅读 2021-06-16 11:40:30
    计算机专业涵盖软件工程专业,主要培养具有良好的科学素养,系统地、较好地掌握计算机...计算机专业学生主要学习计算机科学与技术方面的基本理论和基本知识,接受从事研究与应用计算机的基本训练,具有研究和开发...
  • 所以,完全充电容量的再学习和补偿方法对库仑计量法是非常关键重要的。 2.4动态电压算法电量计 动态电压算法电量计仅根据电池电压即可计算锂电池的荷电状态。此法是根据电池电压和电池的开路电压之间的差值,来估计...
  • 博主正在学习INTRODUCTION TO THE THEORY OF COMPUTATION (Second Edition) --Michal Sipser,以及学习计算复杂性”课程,做一些笔记供自己回忆,如有错误请指正。整理成一个系列计算理论,方便检索。 计算理论...
  • 显卡计算的特点是:只要内存不爆,那么多大的矩阵计算时间是差不多的。 1 基本概念 如果把显卡只当成矩阵计算的工具,那么最重要的就是矩阵的尺寸/数据类型。因为矩阵占用的空间是平方增加的,所以要清除存储允许的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 339,404
精华内容 135,761
关键字:

计算学习理论

友情链接: 实验四.rar