C_Meng PSNA

Never wait for the storm to pass, just dance in the rain.

0%

BLEU

BLEU (Bilingual Evaluation Understudy)是一种基于n-gram精度的评估指标,它通过计算机器翻译结果和参考翻译之间的n-gram匹配度来评估机器翻译的质量。

BLEU(Bilingual Evaluation Understudy)是一种评估机器翻译质量的方法,特别是它如何接近人类翻译的程度。BLEU分数是基于机器翻译输出与一组参考翻译之间的重叠程度来计算的。以下是BLEU分数的计算步骤:

  1. 选择N-gram

    • 确定你想要使用的N-gram大小。常见的选择是1-gram(单个词),2-gram(两个连续词),3-gram,以此类推,直到n-gram。
  2. 计算N-gram精确度

    • 对于每个N-gram大小,计算机器翻译输出中的N-gram与参考翻译中N-gram的精确度。精确度是指机器翻译输出中正确的N-gram数量除以机器翻译输出中N-gram的总数。
  3. 应用Brevity Penalty(BP)

    • 如果机器翻译输出比任何参考翻译都短,那么它可能会得到较低的BLEU分数,因为短的输出可能更容易与参考翻译匹配。BP用于惩罚这种短输出:
      $$
      \text{BP} =
      \begin{cases}
      1 & \text{if } c > \text{ref} \
      \exp(1 - \frac{\text{ref}}{c}) & \text{if } c \leq \text{ref}
      \end{cases}
      $$
    • 其中,$c$是机器翻译输出中的词数,$ref$是最短参考翻译中的词数。
  4. 计算加权和

    • 对于每个N-gram大小,计算其精确度与权重的乘积。权重通常按N-gram大小递减,例如,对于1-gram到4-gram,权重可能是(0.25, 0.25, 0.25, 0.25)。
  5. 计算几何平均值

    • 对所有N-gram的加权精确度进行几何平均,以得到最终的BLEU分数:
      $$
      \text{BLEU} = BP \times \exp\left(\sum_{n=1}^{N} \frac{w_n \cdot p_n}{\sum_{n=1}^{N} w_n}\right)
      $$
    • 其中,$(w_n)$是第n个N-gram大小的权重,$p_n$是第n个N-gram大小的精确度。
  6. 输出结果

    • 最终的BLEU分数范围从0到1,分数越高表示机器翻译的质量越接近人类翻译。

BLEU分数是一个快速且广泛接受的评估机器翻译质量的方法,但它也有局限性,例如它不能很好地评估语义的准确性和流畅性。因此,BLEU分数通常与其他评估方法一起使用,以获得更全面的翻译质量评估。

ROUGE

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一种主要用于评估自动文摘和机器翻译的评估指标,它通过计算机器生成的摘要或翻译结果和参考摘要或翻译之间的n-gram重叠度来评估生成结果的质量。ROUGE指标主要关注评估生成的摘要或翻译与一组参考摘要或翻译之间的重叠程度。以下是几种常见的ROUGE指标的计算方法:

ROUGE-N (N-gram Recall)

  1. 计算N-gram

    • 对于每个参考摘要和生成的摘要,分别计算N-gram(连续的N个词)。
  2. 确定匹配的N-gram

    • 找出生成的摘要中的N-gram与参考摘要中的N-gram相匹配的数量。
  3. 计算召回率

    • 召回率(Recall)是生成的摘要中匹配的N-gram数量与参考摘要中N-gram总数的比例:
      $$
      \text{ROUGE-N Recall} = \frac{\text{匹配的N-gram数量}}{\text{参考摘要中的N-gram总数}}
      $$

ROUGE-L (Longest Common Subsequence)

  1. 计算最长公共子序列(LCS)

    • 确定生成的摘要和参考摘要之间的最长公共子序列。
  2. 计算长度比

    • 将LCS的长度与参考摘要和生成的摘要的长度进行比较。
  3. 计算F-measure

    • F-measure是精确度和召回率的调和平均数,用于评估ROUGE-L:
      $$
      \text{ROUGE-L F-measure} = \frac{(1 + \beta^2) \cdot \text{ROUGE-L Recall} \cdot \text{ROUGE-L Precision}}{\beta^2 \cdot \text{ROUGE-L Recall} + \text{ROUGE-L Precision}}
      $$
    • 其中,$\beta$是一个权重因子,通常取1,使得精确度和召回率的权重相等。

ROUGE-S (Skip-Bigram Co-occurrence)

比如:”他每天都会去公园散步。”
在这个例子中,如果我们考虑bigram(两个连续词),句子中的”每天”和”散步”是连续的,而在生成句子中它们不是连续的。但是,如果我们考虑skip-bigram,我们可以看到”散步”和”公园”在两个句子中都是成对出现的,尽管它们在原文中不相邻。这表明生成的句子在语义上与参考句子保持了一定的连贯性。

  1. 计算skip-bigram

    • Skip-bigram是指在文本中不连续出现的两个词,但它们在另一个文本中是连续的。
  2. 确定匹配的skip-bigram

    • 找出生成的摘要中的skip-bigram与参考摘要中的skip-bigram相匹配的数量。
  3. 计算召回率

    • 召回率是生成的摘要中匹配的skip-bigram数量与参考摘要中skip-bigram总数的比例。

METEOR

METEOR (Metric for Evaluation of Translation with Explicit ORdering)是一种综合考虑精度、召回率和语法流畅度的评估指标,它通过比较机器翻译结果和参考翻译在单词级别的匹配度来评估机器翻译的质量。METEOR考虑了词汇的匹配、句子结构、词形变化以及同义词。METEOR与BLEU分数不同,它不仅关注词的重叠,还关注词的顺序和意义。以下是METEOR分数的基本计算步骤:

  1. 语义相似度计算:使用语义相似度算法比较摘要中的每个单词与原文中相应单词的语义相似度。常用的语义相似度算法包括基于词向量、知识图谱和深度学习的方法。
  2. 文本对齐度计算:评估摘要中的句子与原文中的句子之间的文本对齐度。常用的文本对齐度算法包括基于编辑距离、余弦相似度和句法结构的方法。
  3. 平均精度计算:根据语义相似度和文本对齐度的结果,计算每个单词的平均精度。平均精度的计算方式是将语义相似度和文本对齐度的结果相加,并除以总的相关单词数。
  4. 最终得分计算:将平均精度扩展到整个摘要,计算METEOR得分。可以通过将每个单词的平均精度相加,并除以摘要中的总单词数,得到最终的METEOR得分。

METEOR分数的计算公式大致如下:

该算法首先计算 unigram 情况下的准确率P和召回率R(计算方式与BLEU、ROUGE类似),得到调和均值F值:

Meteor的特别之处在于,它不希望生成很“碎”的译文:比如参考译文是“A B C D”,模型给出的译文是“B A D C”,虽然每个unigram都对应上了,但是会受到很严重的惩罚。惩罚因子的计算方式为:

在评价句子流畅性的时候,用了 chunk 的概念(候选译文和参考译文能够对齐的、空间排列上连续的单词形成一个 chunk,这个对齐算法是一个有点复杂的启发式 beam search),chunk 的数目越少意味着每个 chunk 的平均长度越长,也就是说候选译文和参考译文的语序越一致。 unigrams_matched表示匹配上的unigram个数。

最后,METEOR计算为对应最佳候选译文和参考译文之间的准确率和召回率的调和平均:

用于机器翻译评测时,通常取 $\alpha$ =3,$\gamma$=0.5,$\theta$=3。

Refs:
https://blog.csdn.net/m0_62554628/article/details/136645353
https://developer.baidu.com/article/details/3121202

什么是关联规则

关联规则是一种条件语句,它们帮助揭示数据库、关系数据库或其他信息库中看似无关数据之间的关系。关联规则用于发现经常一起使用的对象之间的关系。关联规则的应用包括购物篮数据分析、分类、交叉营销、聚类、目录设计和领先损失分析等。

关联规则使用两个基本标准:支持度(support)和置信度(confidence)。它通过分析数据中的频繁使用的”如果/那么”模式来识别关系和生成规则。通常,关联规则需要同时满足用户指定的最小支持度和用户指定的最小置信度。

计算方法如下:

AIS Algorithm

AIS算法由Agrawal、Imielinski和Swami首次提出的用于挖掘关联规则的算法。它专注于提高数据库的质量以及处理决策支持查询所需的必要功能。计算流程如下:

  1. 首先,候选项集是通过扫描数据库获得。
  2. 对于每个事务,确定此事务中包含上一步的大项集是哪一项。
  3. 通过将这些大型项集与此事务中的其他项一起扩展,生成新的候选项集。

案例如下:

首先生成候选集{1}{2}{3}{5},支持度为2,3,3,3。下一步生产两个候选项集{1,3}{1,4}….{1,5},对应的支持度为2,1,…,1.这里当支持度大于等于2时记录为大项集{1,3}{2,3}{2,5}{3,5},下一步生产三个组合的项集,{1,3,4}{2,3,5}{1,3,5},此时发现{2,3,5}是最终的最大项集。

SETM Algorithm

在SETM算法中,候选项目集在扫描数据库时即时生成,但在扫描结束时进行计数。然后,以与AIS算法相同的方式生成新的候选项目集,但生成交易的事务标识符TID与候选项目集一起以顺序结构保存。它将候选生成过程与计数过程分开。在扫描结束时,通过聚合顺序结构来确定候选项目集的支持计数。SETM算法具有与AIS算法相同的缺点。另一个缺点是,对于每个候选项目集,其条目数量与其支持值一样多。计算流程如下:

  1. 候选项集将在数据库被扫描时动态生成,但在传递结束时进行计数。
  2. 新的候选项集的生成方式与AIS算法相同,但是生成事务的TID与候选项集保存在顺序结构中。如下图所示。
  3. 在传递结束时,通过排序和聚合(sorting and aggregating)这个顺序结构来确定候选项集的支持数。

首先生成候选集{1}{2}{3}{5},支持度分别为2,3,3,3。下一步生产两个候选项集{1,3}{1,4}….{2,5},对应的TID2进行排序获得c2.进行聚合操作获得c3,发现有{1,3,4}{2,3,5}{1,3,5},{2,3,5}为最大项集。

Apriori Algorithm

Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。

基本思想:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样;然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。

AprioriTid Algorithm

AprioriTid算法对Apriori算法做了调整,它的特点是在第一次遍历数据库D之后,就不再使用数据库来计算支持度,而是用集合Ck来完成。

基本思想:跟Apriori算法的步骤基本相同,只是在第一次通过之后,数据库不用于计算候选项集;生成另一个集合C’,其中每个成员具有每个事务的TID以及该事务中存在的大项集,这个集用于计算每个候选项集。

FP-Growth Algorithm

又称FP-tree算法,是在不使用候选代的情况下查找频繁项集的另一种方法,从而提高了性能。其核心是使用名为频繁模式树(FP-tree)的特殊数据结构,保留了项集关联信息。

FP树是一种存储数据的树结构,如下图所示,每一路分支表示数据集的一个项集,数字表示该元素在某分支中出现的次数。

算法过程如下:

  1. 构建FP树
    • 遍历数据集获得每个元素项的出现次数,去掉不满足最小支持度的元素项
    • 读入每个项集并将其添加到一条已存在的路径中,若该路径不存在,则创建一条新路径(每条路径是一个无序集合)
  2. 从FP树中挖掘频繁项集
    • 从FP树中获得条件模式基
    • 利用条件模式基构建相应元素的条件FP树,迭代直到树包含一个元素项为止

未来发展与挑战

关联规则挖掘在数据挖掘领域具有广泛的应用前景,但同时也面临着一些挑战。未来的发展方向和挑战包括:

  1. 大数据处理:随着数据规模的增加,传统的关联规则挖掘算法在处理能力和效率方面面临挑战。未来的研究需要关注大数据处理技术,以提高算法的处理能力和效率。
  2. 多源数据集成:多源数据集成是关联规则挖掘中的一大挑战,因为不同数据源之间可能存在格式、质量、语义等差异。未来的研究需要关注多源数据集成技术,以提高关联规则挖掘的准确性和可靠性。
  3. 异构数据处理:异构数据是指不同类型的数据(如文本、图像、音频等)。未来的研究需要关注异构数据处理技术,以挖掘这些数据中的关联规则。
  4. 私密和安全:随着数据保护和隐私问题的重视,关联规则挖掘需要关注数据的私密和安全。未来的研究需要关注数据掩码、数据脱敏等技术,以保护数据的安全和隐私。
  5. 智能推荐系统:关联规则挖掘可以应用于智能推荐系统,为用户提供个性化的推荐。未来的研究需要关注智能推荐系统的发展,以提高推荐系统的准确性和用户体验。

方法比较

ref:
https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=d4058d9f3f66c53ddea776c974fbd740afd994b4
https://www.jiqizhixin.com/graph/technologies/d44f694a-2363-4fd1-93d8-a77983bff15c
https://www.163.com/dy/article/FD5U7JV60528OOR6.html
https://zhuanlan.zhihu.com/p/62919869
https://iopscience.iop.org/article/10.1088/1757-899X/1099/1/012032/pdf

关键元素结构化思考(BEST:Basic Elements Structured Thinking)常见以下方法:

用人渠道3B模型

  • Buy 外部招聘
  • Build 内部培养
  • Borrow 人力外包

360评估角度

  • 自己评
  • 上司评
  • 下属评
  • 同事评

4种读书方法

  • 不求甚解
  • 观其大略
  • 熟读精思
  • 主题阅读

4种市场竞争结构

  • 完全竞争
  • 垄断竞争
  • 寡头垄断
  • 完全垄断

4种组织文化

  • 部落文化
  • 创新文化
  • 市场文化
  • 等级文化

解决冲突4种办法

  • 竞争
  • 包容
  • 妥协
  • 合作

4种教养方式

  • 权威型
  • 专断型
  • 放纵型
  • 忽视型

6大写作冲突类型

  • 人对人
  • 人对技术
  • 人对自然
  • 人对超自然
  • 人对社会
  • 人对自我

6种领导风格

  • 指令型
  • 愿景型
  • 亲和型
  • 民主型
  • 领跑型
  • 辅导型

企业业务结构

  • 核心业务
  • 成长业务
  • 新型业务

职场关系摸型

  • 职业共同体
  • 利益共同体
  • 事业共同体
  • 命运共同体

复盘4步法

  • 回顾目标
  • 评估结果
  • 分析原因
  • 总结经验

马斯洛需求理论

  • 自我实现
  • 尊重需求
  • 社交归属需求
  • 安全需求
  • 生理需求

项目管理生命周期

  • 启动
  • 规划
  • 执行
  • 监控
  • 关闭

6sigma改进流程

  • 定义
  • 测量
  • 分析
  • 改进
  • 控制

教育目标

  • 记忆
  • 理解
  • 应用
  • 分析
  • 评价
  • 创造

时间管理矩阵

  • 重要
  • 紧急

阿里员工评价矩阵

波士顿矩阵

三环理论

杨三角

子绝四

  • 勿意
  • 勿必
  • 勿固
  • 勿我

营销4P

  • Product 产品
  • Price 价格
  • Place 渠道
  • Promotion 促销

PDCA

  • Plan 计划
  • Do 执行
  • Check 检查
  • Act 行动

人才管理

设计四原则

  • 对齐
  • 对比
  • 亲密
  • 重复

购买行为AIDA法则

  • Attention 注意
  • Interest 兴趣
  • Desire 欲望
  • Action 行动

企业文化洋葱模型

目标管理SMART法则

  • Specific 具体
  • Measurable 可测量
  • Attainable 可实现
  • Relevant 相关
  • Time-bound 时限

演讲5元素

  • 金句
  • 案例
  • 数据
  • 比方
  • 幽默

波特5力

  • 现有竞争者竞争的能力
  • 潜在竞争者进入的能力
  • 替代品的替代能力
  • 供应商议价能力
  • 买家议价能力

高效能人士的7个习惯

社群运营三近一反

  • 地域相近
  • 年龄相近
  • 兴趣相近
  • 性别相反

林彪打仗四快一慢

  • 向敌进军要快
  • 攻击准备要快
  • 扩张战果要快
  • 追击要快
  • 发起总攻要慢

麦肯锡信任公式

$$
信任=\frac{自制能力 \times 可靠性 \times 亲近程度}{自我利益取向}
$$

稻盛和夫人生成功公式

$$
人生成功=思维方式 \times 能力 \times 热情
$$

团队业绩公式

$$
销售业绩=线索数量 \times 漏斗各级转化率 \times 平均客单价
$$

SCP模型

  • Specific 具体细节
  • Compare 比较
  • emPower 赋能于人

3V/4V模型

  • Visual 视觉 55%
  • Volcal 听觉 38%
  • Verbal 语言 7%
  • (Value 价值)

55387模型

见3V

WOOP模型

  • Wish 愿望
  • Outcome 产出
  • Obstacle 障碍
  • Plan 计划

OKR模型

  • Objective
  • Key result

5W2H模型

  • Why 为什么做
  • What 做什么
  • Who 谁来做
  • When 何时做
  • Where 何地做
  • How 怎么做
  • How much 多少钱

SWOT模型

  • S (strengths)是优势
  • W (weaknesses)是劣势
  • O (opportunities)是机会
  • T (threats)是威胁

PEST/PESTEL模型

  • 政治(Political)
  • 经济(Economic)
  • 社会(Social)
  • 技术(Technological)
  • 环境因素(Environmental)
  • 法律因素(Legal)

明确问题

  1. motivation (case)
  2. 任务的具体输入输出
  3. 服务对象
  4. 服务场景

对应intro,要有故事来支撑

总结现有解决方案

  1. 传统经典解决方案,有哪几大类
  2. 最新/最火/最好的方案是哪一类、那几个

对应related works,快速入门可以看一些review文章

总结最近三年方案的工作内容

  1. benchmark、数据集
  2. 挑战有哪些
  3. contribution都是怎么写的
  4. 创新集中在哪些方面

对应related works,增加理解,需要对近几年的文章精读

确定研究框架

  1. 挑战
  2. 算法与创新点
  3. contribution设计
  4. 实验设计

关键在于算法与创新点设计,需要对前一部分2、3、4有深入理解,结合实际数据或场景需求

整体框架

下图展示了用于下载和处理常见网络爬虫数据快照的整个pipline。
首先下载所有WET文件并分组保存为二进制文件,然后计算所有段落的哈希。
接着独立处理WET文件的每个文档:使用二进制文件对段落进行语言识别并计算语言模型困惑度从而删除重复数据。
最后按语言和困惑度分数将文档重新分组为json文件。

数据获取和预处理

Common Crawl每月都会发布通过随机浏览和采样URL获得的网络快照。每个网页都有不同的可用格式:原始(WARC)、UTF-8文本(WET)和元数据(WAT)。

  • WARC(Web ARChive):它是一种用于存储和传输Web资源(例如HTML页面,图像和视频文件等)的文件格式。 WARC文件通常包含HTTP响应和元数据,用于记录Web爬虫收集的信息。
  • WAT(Web Archive Transformation):它是一种元数据文件格式,用于描述WARC文件中记录的Web内容。 WAT文件通常包含URL,域名和其他有关记录的元数据信息。
  • WET(Web Extraction Toolkit):它是一种将HTML页面转换为文本格式的文件格式。 WET文件通常包含从HTML页面中提取的文本内容,但不包括图像和其他资源。

特点:1. 每月快照之间几乎没有内容重叠。2. 完整的数据包由8年来收集的数PB的数据组成。3. 网页是从整个网站上无限制地抓取的,包含有许多不同的语言。4. 文本的质量也有很大的差异。

每个快照包含 20 到 30TB 的未压缩纯文本,相当于大约 30 亿个网页(例如,2019 年 2 月的快照包含 24TB 的数据)。可以独立下载和处理每个快照。对于每个快照,将 WET 文件重新分组为每个 5GB 的shard。
这些shards被保存到JSON文件中,其中一个条目对应一个网页。

去重

包括删除快照中不同网页中的重复段落,因为它们占文本的 70%。
首先通过将所有字符小写、用占位符(即 0)替换数字并删除所有 Unicode 标点符号和重音符号来标准化每个段落。
然后,重复数据删除通过两个独立的步骤完成。
首先,对于每个shard,我们计算每个段落的哈希码并将它们保存到二进制文件中。我们使用规范化段落的 SHA-1 的前 64 位作为密钥。
然后,我们通过将每个shard与所有二进制文件或其子集进行比较来消除重复数据。

这些步骤对于每个shard来说都是独立的,因此可以进行分布式。除了删除网络副本之外,此步骤还删除了许多样板文件,例如导航菜单、cookie 警告和联系信息。
特别是,它从其他语言的网页中删除了大量的英语内容。
这使得我们pipline的下一步的语言识别更加强大。

语言识别

包括按语言拆分数据。
这里使用来自 fastText ,改语言分类器在Wikipedia,Tatoeba和SETimes上进行了训练。
它使用字符 n-gram 作为特征,并使用分层softmax。
它支持 176 种语言,并在 [0, 1] 范围内为每种语言输出分数。它在单个 CPU 内核上每秒处理 1k 个文档。
对于每个网页,我们计算出最可能的语言和相应的分类器分数。如果该分数高于0.5,我们将文档分类为相应的语言。
否则语言没有明确标识,我们丢弃相应的页面。

基于语言模型的质量过滤

至此仍然存在内容质量低下的文档。
过滤掉这些样本的一种方法是计算网页与目标域(例如维基百科)的相似度分数。
此处建议使用在目标领域训练的语言模型的困惑度作为质量得分。

更准确地说,对于每种语言,根据目标域的数据训练一个tokenizer和语言模型。
这里使用 KenLM 库中实现的 5-gram Kneser-Ney 模型,因为它可以高效地处理大量数据。
然后,对数据集中的每个页面进行tokenization,并使用语言模型计算每个段落的困惑度。
困惑度越低,数据越接近目标域。
在此步骤结束时,每种语言被分平均地分为头、中、尾三个部分,对应于困惑度分数。

进一步过滤

通过维基百科参考的页面和随机抽样的页面,训练一个MLP作为discriminator,来判断输入的页面是否为维基百科参考页面。
训练完成后通过改判别器丢弃一部分非参考页面。

reference:
Wenzek, Guillaume, Marie-Anne Lachaux, Alexis Conneau, Vishrav Chaudhary, Francisco Guzmán, Armand Joulin, and Edouard Grave. “CCNet: Extracting high quality monolingual datasets from web crawl data.” arXiv preprint arXiv:1911.00359 (2019).
https://www.datalearner.com/blog/1051682313146748

references:
https://www.v7labs.com/blog/neural-networks-activation-functions#:~:text=An%20Activation%20Function%20decides%20whether,prediction%20using%20simpler%20mathematical%20operations.
https://blog.csdn.net/weixin_45134475/article/details/123672283
https://zhuanlan.zhihu.com/p/92412922

Sigmoid

$\sigma(x) = \frac{1}{1+e^{-x}}$

Tanh

$tanh(x) = \frac{1-e^{-2x}}{1+e^{-2x}}$

ReLU

$ReLU(x)=\left\lbrace\begin{array}{cll}
x & , & x \ge 0 \\
0 & , & x < 0
\end{array}\right.$

$ReLU(x) = \max(0, x)$

Leaky ReLU

$ReLU(x)=\left\lbrace\begin{array}{cll}
x & , & x \ge 0 \\
0.1x & , & x < 0
\end{array}\right.$

$ReLU(x) = \max(0.1x, x)$

ELU

$ELU(x)=\left\lbrace\begin{array}{cll}
x & , & x \ge 0 \\
\alpha(e^x-1) & , & x < 0
\end{array}\right.$

Swish

$swish(x) = x*sigmoid(x) =\frac{x}{1+e^{-x}}$

Maxout

$max(z_1, z_2, …)$

Softmax

$softmax(z_i) = \frac{e^{z_i}}{\sum_j e^{z_j}}$

通过mac自带的磁盘工具调整虚拟磁盘大小会报错,但是可以通过命令行调整。

如将Hello.dmg调整为7GB:

1
hdiutil resize -size 7g Hello.dmg

将YOURNOTEBOOKNAME替换为需要转换的文件名称,运行以下命令即可

1
jupyter nbconvert --to script YOURNOTEBOOKNAME.ipynb

如果使用了anaconda环境,且未将其设置为默认环境的话,可以在jupyter命令前补充安装路径。

以安装路径为“~/opt/anaconda3”为例:

1
~/opt/anaconda3/bin/jupyter nbconvert --to script YOURNOTEBOOKNAME.ipynb

向量表示

量子计算的基本单位是量子比特,量子比特用向量 $|\psi\rangle$ (狄拉克Dirac符号)来描述。

基态: $|g\rangle=|1\rangle=\left[ \begin{matrix} 0 \\ 1 \end{matrix} \right]$

激发态: $∣e\rangle=|0\rangle=\left[ \begin{matrix} 1 \\ 0 \end{matrix} \right]$

在量子理论中,描述量子态的向量称为态矢,态矢分为左矢和右矢。相同描述对象的左矢和右矢互为转置共轭。

pyqpanda中,dagger()函数可用于对逻辑门进行转置共轭操作

右失(ket): $|\psi\rangle=\left[ \begin{matrix} c_1 & c_2 & \cdots & c_n \end{matrix} \right]^T=\left[ \begin{matrix} c_1 \\ c_2 \\ \vdots \\ c_n \end{matrix} \right]$

左失(bra): $\langle\psi|=\left[ \begin{matrix} c_1^* & c_2^* & \cdots & c_n^* \end{matrix} \right]$

并不是任意的二维向量都能用来描述一个qubit的状态,描述量子态的向量的模长必须为1,所谓向量的模长定义如下:

​ $M(\alpha) = \sqrt{|a_{1}|^{2} + |a_{2}|^{2} + … + |a_{n}|^{2}}$

量子比特各维度的平方为量子处于该状态的概率。

向量计算

对于一组向量 $|u_1\rangle, |u_2\rangle, \cdots, |u_n\rangle$ 张成(spanning)的 $n$ 维空间 $C^n$ ,空间中的任意向量可以表示为: $|v\rangle=\sum_i x_i u_i$ ,这个集合 ${|u_1\rangle, |u_2\rangle, \cdots, |u_n\rangle}$ 就称为 $C^n$ 的基(basis)。

内积

在 $C^n$ 上的内积表示为(注意 $a_i^*$ 为 $a_i$ 的共轭!):

$\langle \alpha | \beta \rangle = (|\alpha\rangle, |\beta\rangle) = ((a_1, \cdots ,a_n),(b_1, \cdots, b_n)) = \sum_{i=1}^{n}a_i^*b_i$

可以看做 $\langle \alpha|$ 共轭转置后得到的 $1 \times n$ 的矩阵与 $| \beta \rangle$ 构成的 $n \times 1$ 的矩阵的积,内积的结果是一个值。

外积

外积 $| \alpha \rangle \langle \beta |$ 可以看做 $\langle \alpha|$ 的 $n \times 1$ 的矩阵与 $| \beta \rangle$ 共轭转置后构成的 $1 \times n$ 的矩阵的积,外积的结果是一个矩阵!

张量积

向量 $|\alpha\rangle$ 、 $|\beta\rangle$ 在 $C^n$ 、 $C^m$ 中的张量积为 $C^{n\times m}$ 中的向量: $|\alpha\rangle\otimes|\beta\rangle=|\alpha\rangle|\beta\rangle=|\alpha\beta\rangle$ ,计算方法为:

$\left[ \begin{matrix} a_1 \\ a_2 \end{matrix} \right]\times\left[ \begin{matrix} b_1 \\ b_2 \end{matrix} \right] = \left[ \begin{matrix} a_1 b_1 \\ a_1 b_2 \\ a_2 b_1 \\ a_2 b_2 \end{matrix} \right]$

常用算子(常见量子逻辑门)矩阵形式

单比特量子逻辑门

当单比特量子逻辑门作用于量子比特时,为门在前比特在后进行矩阵相乘,进而改变比特状态。

其中:

  • $I$ 门不改变比特状态
  • $Hadamard$ 门可以使量子比特进入混沌态,即激发与否的概率均为一半
  • $Pauli-X$ 会使量子状态翻转
  • 量子的状态改变通常通过旋转实现

多比特量子逻辑门

当多比特量子逻辑门作用于多个量子比特时,为门在前,多个量子比特的张量积在后,进行矩阵相乘。

量子线路图

基本约定

在关系图中,每条实线都描述一个量子比特,更常见地是描述一个量子比特寄存器。按照约定,最上面那根线是量子比特寄存器0,其余的按顺序标记。根据描述,上面的示例线路作用于两个量子比特(或等效为作用于两个寄存器,每个寄存器由一个量子比特组成)。作用于一个或多个量子比特寄存器的门用一个框表示。例如,符号

量子门按时间顺序排列,最左侧的门是应用于量子比特的第一个门。 也就是说,如果你将线描述为包含量子态,那么这些线将按图中从左到右的顺序带着量子态通过每个门。 也就是说

是酉矩阵 $CBA$ 。矩阵乘法遵守相反的约定,即最先应用最右侧的矩阵。不过,在量子线路图中,最先应用的是最左侧的门。这种差异有时可能会导致混淆,因此有必要记下线性代数表示法和量子关系图之间的这一明显差异。

受控门

多量子比特量子线路图中内置的另一个构造是控制。量子单个受控门表示为 $\Lambda(G)$ ,其中单个量子比特的值控制 $G$ 的应用。要理解该受控门的操作,可查看下面的示例,它是一个乘积态输入 $\Lambda(G)(\alpha|0\rangle+\beta|1\rangle)|\psi\rangle=\alpha|0\rangle|\psi\rangle+\alpha|1\rangle G|\psi\rangle$ 。也就是说,当且仅当控制量子比特采用值时,该受控门才对包含 $\phi$ 的寄存器应用 $G$ 。通常,我们在线路图中将这种受控操作描述为

在这里,黑色圆圈表示门受控的量子位,垂直线表示当控制量子比特采用值1时应用的酉操作。对于 $G=X$ 和 $G=Z$ 的特殊情况,我们引入了以下表示法来描述门的受控版本(请注意,受控 $X$ 门是 $CNOT$ 门):

测量运算符

在线路图中直观呈现的剩余操作是测量。测量采用量子比特寄存器、对其进行测量,然后以经典信息的形式输出结果。测量操作由计量符号表示,它始终将输入看做是一个量子比特寄存器(表示为实线),将输出看做是经典信息(表示为双线)。具体来说,这种子线路如下所示:

References:
https://blog.csdn.net/si_ying/article/details/108303988
https://pyqpanda-toturial.readthedocs.io/
https://docs.microsoft.com/zh-cn/azure/quantum/concepts-circuits
https://www.cxyzjd.com/article/qq_43391414/118766778
https://swardsman.github.io/learning-q-sharp/