深度学习周报(10.20~10.26)

目录

摘要

Abstract

[1 论文阅读](#1 论文阅读)

[1.1 文章背景](#1.1 文章背景)

[1.2 方法](#1.2 方法)

[1.3 实验结果分析](#1.3 实验结果分析)

[2 量子傅里叶变换](#2 量子傅里叶变换)

[2.1 傅里叶变换](#2.1 傅里叶变换)

[2.2 量子傅里叶变换](#2.2 量子傅里叶变换)

[3 总结](#3 总结)


摘要

本周首先阅读了《Improving Language Understanding by Generative Pre-Training》这篇论文,了解了其背景、方法与实验结果;其次回顾了傅里叶变换的知识,并在离散傅里叶变换的基础上学习了量子傅里叶变换,了解了其电路结构与具体步骤,认识了受控旋转门,并对哈达玛门有了更进一步的了解。

Abstract

This week, I first read the paper "Improving Language Understanding by Generative Pre-Training," gaining an understanding of its background, methodology, and experimental results. Subsequently, I reviewed knowledge of Fourier Transform and, building on the discrete Fourier transform, studied the Quantum Fourier Transform. I learned about its circuit structure and specific steps, became familiar with controlled rotation gates, and deepened my understanding of the Hadamard gate.

1 论文阅读

本周研读了GPT的奠基之作,即《Improving Language Understanding by Generative Pre-Training》。该论文由OpenAI团队于2018年发布,首次提出了"生成式预训练+判别式微调"的两阶段框架,为后续大语言模型的发展奠定了重要基础。

1.1 文章背景

论文旨在应对自然语言理解任务中的一个核心挑战,即大多数深度学习方法严重依赖大量人工标注数据,而标注过程通常耗时费力、成本高昂。虽然利用无标注数据以无监督方式学习高质量表征可显著提升模型性能,但从无标注文本中提取超越词级别的有效信息面临两大关键难题。首先,学界尚未明确何种优化目标最有利于学习具备良好迁移能力的文本表征;其次,对于如何将这些习得的表征高效迁移至下游目标任务,目前仍缺乏共识性的最佳实践。

针对上述问题,论文提出了一种结合无监督预训练与有监督微调的半监督学习范式。该框架的核心价值在于,通过充分利用海量无标注文本进行预训练,显著降低对特定任务标注数据的依赖,并赋予模型通用的语言理解能力,从而能够快速适配多种不同类型的下游任务。本文的主要创新点体现在三个方面:首先是开创性地提出了"生成式预训练+判别式微调"的两阶段训练框架;其次是首次将纯解码器架构的Transformer(Decoder-only)成功应用于语言模型的预训练过程,这一选择使其在捕捉长距离依赖和实现高效知识迁移方面展现出显著优势;最后是设计了一套灵活的任务特定输入变换方法,使得同一预训练模型能够以极小的架构改动适配多样化的任务需求,实现了通用性与适应性的有效统一。

1.2 方法

实验使用包含七千多本类型多样的未出版书籍 BooksCorpus 数据集(Bert也有使用)。与 1B Word Benchmark(由Google在2013年创建的大规模语言建模数据集,包含大约10亿个词元)相比,两者规模虽然相似,但 BooksCorpus 包含长段的连续文本,保留了文档级连贯性, 1B Word Benchmark则在句子层面上被打乱,破坏了长程结构,故选用前者有利于学习长距离依赖关系。

其具体流程分为两个阶段,无监督预训练以及有监督微调。

在无监督预训练阶段,它的目标是使用仅解码器的Transformer架构作为语言模型以最大化序列的似然函数,

它不是在计算或最大化整个序列 P 的联合概率,而是在计算在给定所有前文词元的条件下,逐个预测当前词元的条件概率的累加。

在有监督微调阶段,它的目标是将预训练模型适配到带有标签的下游任务。它会将预训练模型的输出输入一个新增的线性输出层,以预测任务标签,并使用任务特定数据进行端到端微调。此外,较为关键的一点是,它会额外引入一个语言建模损失函数,即辅助语言模型目标(后简称辅助目标)来增强泛化能力,在论文中,辅助目标直接复用了预训练阶段的核心语言建模任务

1.3 实验结果分析

对于迁移层数的影响,实验发现,模型性能会随着迁移层数的增加而单调提升,这表明,预训练模型的每一层都包含了对于解决下游任务有用的信息。另外每个 transformer 层在 MultiNLI 上完全传输时都高达9%的进一步优势。

对于zero-shot behaviors(零样本行为),实验设计了一系列启发式方法,将分类、问答等判别式任务转化为语言模型任务,例如,对于问答任务(RACE),会将文档、问题与每个答案拼接,计算整个序列的概率,选取概率最高的。随着预训练的进行,模型在所有任务上的零样本性能稳定且持续增长,这证明了预训练的价值。另外,与LSTM相比,Transformer的零样本性能更稳定、方差更小。

p.s. 零样本行为即模型不接触特定任务标注数据,直接使用预训练知识解决问题。

消融实验验证,若使用 LSTM 而非 transformer 架构平均得分将会下降5.6;而若仅使用 transformer 架构,不进行预训练,而是直接在有监督的目标任务上进行训练,会影响所有任务的性能,与完整模型相比下降14.8%。另外对于辅助目标,较大的数据集受益较为明显,较小的则不然。

2 量子傅里叶变换

2.1 傅里叶变换

傅里叶变换是以法国数学家约瑟夫·傅里叶(Jean-Baptiste Joseph Fourier,1768-1830)命名的。傅里叶在19世纪初研究热传导问题时发现,任何周期函数都可以用一系列正弦和余弦函数构成的级数进行表示(即傅里叶级数)。这一发现最初遭到了拉格朗日等数学家的质疑,但最终被证明是正确的,并成为了现代信号处理、物理学和工程学的基石。

一个周期函数能够展开成傅里叶级数需要满足以下条件(狄利克雷条件)。首先,在一个周期内,函数连续或只有有限个第一类间断点(左右极限都存在);其次,在一个周期内,函数的极值点个数有限。实际上,大多数工程中遇到的周期信号都满足这些条件。假设 f(t) 是一个满足上述条件,且周期为 T 的周期函数,则其傅里叶级数展开为:

其中, 是基波角频率(基频);则分别由以下公式给出:

p.s. 基波是最基本的振动模式,对应最低频率;谐波的频率为基波整数倍的更高频振动;角频率描述的则是旋转或振动的"角速度"。

傅里叶变换就是当周期 T 趋于无穷大时,基频趋于零,频率间隔消失,周期函数就变成了非周期函数。此时,傅里叶级数中的离散频率 变成连续频率 ,求和变成积分,从而得到傅里叶变换:

其中,,这是欧拉公式的应用。

它的核心价值在于提供了一种全新的视角来理解复杂信号,在通常的视角下(时域视角,信号与时间),主要是观察信号如何随时间变化,看到的可能是一条非常复杂、混乱的波形;而在傅里叶的视角下(频域视角,振幅与频率),会分析信号包含哪些频率成分及其强度。通俗一点讲,假设有一杯由橙汁、苹果汁和葡萄汁混合而成的果汁,时域视角下只会感受到复杂的味道,而频域视角下能告诉你这杯混合果汁里包含了多少橙汁、多少苹果汁与多少葡萄汁。这种视角转换在许多领域产生了革命性影响,使我们能够解决在时域中看似无解的问题。

前面所述傅里叶变换的公式是对于连续时间信号 f(t) 而言的, 是一个复函数,通常称为频谱,包含了信号的幅度和相位信息;而从 也可以恢复得到时域信号 f(t),这种变换被称为逆傅里叶变换,公式如下:

在数字信号处理中,信号是离散的,因此使用离散傅里叶变换(Discrete Froier Transform,DFT),其定义为,对于长度为 N 的离散序列,有:

其逆离散傅里叶变换(IDFT)为:

除此之外,在1965年,Cooley和Tukey提出了快速傅里叶变换(FFT),它不是一种新的变换,而是计算DFT的高效算法,它利用了DFT计算中的对称性和周期性,将计算复杂度从 降低到了

傅里叶变换的主要应用包括信号处理(音频处理和通信系统)、图像处理(图像压缩、滤波和分析)等,在医学上能够应用于磁共振成像(MRI)、CT与生物信号分析(比如心电图),同时在物理学中的电磁学、光学和量子力学中也有所应用。

2.2 量子傅里叶变换

量子傅里叶变换(Quantum Fourier Transform, QFT)是离散傅里叶变换在量子计算中的推广,它作用于一个量子寄存器的基态上,是许多量子算法(如Shor算法)的关键步骤。

对于n个量子比特的系统(),QFT将计算基态 映射为:

更一般地,对于任意量子态:

它与与经典离散傅里叶变换的区别在于:DFT的输入输出均是长度为 N 的向量,它通过序列运算直接读取结果,没有内在并存性;而QFT的输入是 n 个量子比特的量子态,通过量子门操作与概率性测量获得结果,输出是经过变换的量子态,其内在并存性是它能够实现指数级加速的根本原因。

DFT的计算复杂度是 ,如果应用FFT则能够降低到 ,而QFT只需要 的计算复杂度。

QFT电路主要使用哈达玛门(H)与受控旋转门(),后者定义如下:

当控制量子比特处于 状态时,目标量子比特保持不变;当控制量子比特处于 状态时,则对目标量子比特应用特定的相位旋转。

p.s. 上述受控旋转门使用了特定的旋转角度,对应的受控版本就是 。而最基本的受控旋转门是受控相位门,其矩阵表示为:

其电路结构如下所示:

具体步骤如下:

首先,对第一个量子比特应用 H 门,然后受控于其他比特应用受控旋转门(即 等),比如根据第二个量子比特来决定是否应用

然后,对第二个量子比特应用H门,然后受控于后续比特应用旋转门,并以此类推,直至对最后一个量子比特应用完H门

最后,根据具体情况应用比特顺序反转,以调整输出量子比特的顺序,使其与输入顺序保持一致或符合特定约定。例如,如果QFT作为更大量子算法(比如shor算法)的子程序,或者需要直接测量并解释结果时,则需要进行应用;如果输出直接用于后续量子操作,或者是应用在某些专门利用反转顺序的算法中时,则不需要。

以3量子比特为例,处理第一个量子比特的过程如下:

3 总结

本周首先阅读了GPT的奠基性论文,后续考虑对该系列论文进行深入了解,思考之间的关联,改进以及不足;其次学习了量子傅里叶变换,了解了它相比离散傅里叶变换的优势,下周打算学习相位估计算法,为后面shor算法的学习打好基础。

相关推荐
学传打活4 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续3)
微信公众平台·1024程序员节·汉字·昆仑正义文化
学传打活10 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
fangzhanpeng16817 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心20 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552725 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055271 个月前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝1 个月前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055271 个月前
Java图像处理实战指南
人工智能·1024程序员节
u0103055271 个月前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u0103055271 个月前
Java实用类应用精讲
人工智能·1024程序员节