大模型论文:Language Models are Unsupervised Multitask Learners(GPT2)

大模型论文:Language Models are Unsupervised Multitask Learners(GPT2)

文章地址:https://storage.prod.researchhub.com/uploads/papers/2020/06/01/language-models.pdf

摘要

自然语言处理任务,例如问答、机器翻译、阅读理解和摘要,通常是通过对特定任务的数据集进行监督学习来实现的。我们展示了,语言模型在没有任何显式监督的情况下,仅通过训练一个名为 WebText 的包含数百万网页的新数据集,就开始学会这些任务。

当模型以“文档 + 问题”的形式进行输入时,生成的回答在 CoQA 数据集上达到了 55 的 F1 分数 —— 这一成绩相当于或超过了四个基线系统中的三个的表现,而无需使用 127,000 多个训练样本。

语言模型的容量对于实现零样本任务迁移(zero-shot task transfer)至关重要,增加模型容量会以对数线性方式提升各种任务的表现。我们最大的模型 GPT-2 是一个具有 15 亿参数的 Transformer,它在 8 个语言建模数据集中的 7 个上,在零样本设置下达到了最先进的表现,但仍未完全拟合 WebText 数据。

该模型生成的样本文本体现了这些改进,并且内容连贯、段落清晰。这些发现表明,构建能从自然演示中学习完成任务的语言处理系统,是一个非常有前景的方向。


模型背景

1、背景和挑战:

当前的机器学习系统通过大量数据、强大的模型和监督学习,能够高效地完成某些特定任务。然而,这些系统在面对数据分布的变化时表现出不稳定性,难以处理来自不同数据源或新的任务类型的输入。这些系统通常只能在特定任务中表现良好,缺乏跨任务的泛化能力。

2、现有方法的限制:

为了训练这些模型,通常的做法是为每个任务手动收集和标注大量数据,然后训练模型进行任务。虽然这种方法能有效推动“狭义专家”系统的发展,但仍存在许多问题,特别是对于复杂且多样化的任务,现有方法的表现不尽如人意。例如,标题生成模型、图像分类系统和阅读理解系统在面对多样化的输入时,往往难以维持稳定和高效的表现。

3、从单一任务到多任务学习的转变:

为了克服这种局限性,研究人员开始探索多任务学习的方向。多任务学习是通过同时训练多个任务来提高模型的泛化能力。然而,现有的多任务学习方法仍处于起步阶段,通常依赖大量的训练对,而这对于构建广泛应用的系统而言仍然困难重重。

4、预训练与迁移学习的结合:

在自然语言处理领域,结合预训练和监督微调的方法已经取得了显著成果。通过在一个大的数据集上进行预训练,然后在具体任务上进行微调,模型能够迁移并应用到新的任务中。最近的研究表明,使用自注意力机制的模型(如Transformer)已经能够取得更高效的迁移效果,无需依赖任务特定的架构。

5、零样本学习的潜力:

本文的一个重要创新是展示了语言模型能够在“零样本”设置下执行多种任务,无需任何额外的监督学习或架构修改。这意味着,通过训练一个通用的语言模型,可以直接在新的任务中获得竞争力的表现,甚至在某些任务上达到最先进的水平。


方法介绍

  • 一切的基础在于语言建模。这种建模方式视语言为符号序列,目标是学习这些符号序列的联合分布,而这种联合概率可以分解为逐个预测下一个词的条件概率。Transformer 等架构的出现极大提升了这种预测能力
    p ( x ) = ∏ i = 1 n p ( s i ∣ s 1 , … , s i − 1 ) p(x) = \prod_{i=1}^{n} p(s_i \mid s_1, \dots, s_{i-1}) p(x)=i=1np(sis1,,si1)

  • 传统任务建模是“给定输入,预测输出”,但为了让模型泛化到多个任务,我们需要“给定输入+任务类型,预测输出”。例如:

    • 翻译任务:(translate to french, english text, french text)
    • 阅读理解任务:(answer the question, document, question, answer)

    这将不同任务统一成语言格式的输入输出序列,使得模型通过学习语言结构就能学会任务

  • 本质上,语言建模任务本身就可以隐式包含监督目标。如果目标词序列中包含任务和输入信息,模型就可以在没有显式监督标签的前提下学会任务。这是利用语言建模进行任务迁移和泛化的关键突破口,作者得出结论:只要模型足够大(capacity 足够),它将能够被动学习自然语言中的任务模式,从而在没有额外标签的情况下执行多种任务

  • 文章的最终目标是验证这种基于语言建模的“无监督多任务学习”是否成立——即能否在 zero-shot 的前提下完成各种任务

训练数据集

  • 以往的大多数语言模型训练工作都基于单一领域的文本,比如新闻文章、维基百科或小说书籍。本文的做法则强调构建尽可能大且多样化的数据集,以收集来自尽可能多领域和语境下的自然语言任务示例

  • 现有的一些数据集存在问题,比如网页抓取数据 Common Crawl,数据质量问题也非常严重,在研究常识推理任务时大量文档“内容几乎无法理解”

  • 本文构建了一个新的网页抓取数据集,强调文档质量。为此,本文仅抓取了经过人工筛选/推荐的网页。人工全面筛选网页代价极高,因此采用了 Reddit 作为起点 —— 抓取所有 Reddit 用户推荐(至少获得 3 karma)的链接。最终的数据集被称为 WebText,包含了这些 4500 万个链接中提取的文本子集。使用 Dragnet和 Newspaper1 两种内容抽取器,从 HTML 页面中提取正文文本。

  • 经过去重和启发式清洗后,最终得到约 800 万个文档,共计约 40 GB 文本数据。本文移除了所有维基百科文档,以避免和常见评估任务中的训练数据产生重叠。

  • WebText 训练集中发现的英语到法语和法语到英语翻译的自然发生的演示示例

    在这里插入图片描述

输入表示

‘’一个通用的语言模型应该能够为任意字符串计算概率(或生成该字符串)‘’

  • 当前的大规模语言模型在预处理上通常包括小写转换、分词、词表外(OOV)标记等,这些步骤限制了模型可处理的字符串范围,虽然直接将 Unicode 字符串处理为 UTF-8 字节序列在理论上是优雅的,但目前的字节级语言模型在像 One Billion Word Benchmark 这类大规模数据集上性能不如词级模型。

  • Byte Pair Encoding (BPE) 是一种折中方案,介于字符级与词级之间。它能将频繁的符号序列作为整体词处理,稀有序列则逐字符处理。尽管名字中有“字节”,但主流 BPE 实现实际上是基于 Unicode 码点而非字节。如果要处理所有 Unicode 字符串,这将导致初始词汇表超过 13 万个符号,这远超 BPE 常用的 32,000 到 64,000 的词汇规模。而使用字节级 BPE,初始词汇表只需 256(所有字节)。但如果直接对字节序列应用 BPE,由于其贪心的频率启发式策略,会产生很多变体词,例如:dogdog.dog!dog? 都会占用不同词位,造成词汇空间浪费。

  • 为避免这一点,本文禁止 BPE 在不同字符类别之间合并(如字母与标点),但允许空格作为例外。这种做法大大提高了压缩效率,同时仅带来极小的词碎片问题。这种输入表示方式结合了词级模型的经验优势与字节级模型的通用性。由于该方法能为任意 Unicode 字符串赋予概率,因此我们可以在任何数据集上评估模型,而无需考虑预处理、分词或词汇表差异。

  • 字节级模型:字节级模型将文本数据转换为 UTF-8 编码的字节序列(每个字符由 1~4 个字节组成),并直接对这些字节进行建模,模型的输入不是“词”或“字”,而是:

    文本:"Hello 你好"
    字节序列:[72, 101, 108, 108, 111, 32, 228, 189, 160]
    

模型结构(Model)

  • 本文采用基于 Transformer架构的语言模型。其整体结构大体遵循 OpenAI GPT 模型(GPT1,2018),但进行了如下修改:

    1. Layer Normalization从原本的子模块输出移至输入端,类似于预激活残差网络。
    2. 在最后一个 自注意力模块(Self-attention block) 之后加入了一个额外的 LayerNorm。
    3. 使用了一种改进的初始化方式,以适应深层模型中残差路径上的累积效应。具体地,残差层的初始化权重按 1 N \frac{1}{\sqrt{N}} N 1 缩放( N N N 是残差层数)。
    4. 词汇表扩展为 50,257 个 token
    5. 上下文窗口从 512 tokens 扩展到 1024 tokens
    6. 训练时使用 更大的 batch size:512
  • WebText 语言模型在多个 NLP 任务上的零样本表现,随模型规模增长而变化

    在这里插入图片描述

总结

1. WebText 的创建思路:

传统语言模型训练依赖单一语料,如 Wikipedia,而 WebText 尝试模拟“真实互联网语言环境”,利用 Reddit 的社交推荐机制(3 karma 门槛)实现“半自动高质量筛选”。这是一种近似“人类兴趣驱动”的筛选方法,避免了模型过拟合某些任务或文本类型。


2. 输入表示策略的突破:
  • 普通模型受限于词表和预处理方法。
  • 字节级模型通用但性能差。
  • 他们通过改进的 BPE 变体结合了两者优势:兼顾压缩效率、泛化能力和字符保留完整性,对低资源或多语言任务尤其关键。

3. 架构优化重点:
  • 残差连接初始化和 LayerNorm 的调整,提高了模型的稳定性与训练效率。
  • 更大词表 + 更长上下文窗口,显著提升理解长文段能力。
  • 这些设计让模型能支持更复杂的任务输入,如“问答+文档+答案”等复杂结构。

实验

  • 本文训练并测试了四个语言模型(LM),规模呈对数均匀分布。所有模型都基于 WebText 数据集训练,并进行 perplexity 调优模型架构总结如下表所示:

    在这里插入图片描述

  • 最小的模型与原始 GPT 相当,第二小的模型等效于 BERT中的最大模型。最大的模型称为 GPT-2,其参数数量是 GPT 的十倍以上。每个模型的学习率均通过在 WebText 中 5% 的保留集(held-out sample)上手动调整,以获得最佳困惑度(perplexity)。所有模型在 WebText 上仍存在欠拟合,且保留集困惑度随着训练时间增加尚未达到最优

  • 下面对常用的几个任务进行实验

困惑度(Perplexity)是语言模型中最常用的评估指标之一,用来衡量模型对语言序列预测的“困惑程度”或“不确定性”。它本质上反映的是模型在预测下一个词(或字符、字节)时的平均不确定性。数值越低,说明模型越“自信”、越擅长预测;数值越高,说明模型越“困惑”。

1、 语言建模(Language Modeling)

  • 首先研究 WebText 语言模型在其主要训练任务语言建模上的表现。由于模型在字节级上操作,不依赖有损预处理或分词,可以在任意语言建模基准上直接评估它。评估方式是:计算一个数据集在 WebText LM 下的对数概率,并除以该数据集的单位数量(如字符、字节或单词)
  • 由于许多数据集与 WebText 存在风格差异(如使用标准化文本、分词、标点断开、缩写、句子顺序打乱等),模型在这些测试集上通常会面临分布外预测(out-of-distribution)挑战。特别地,符号 <UNK> 在 WebText 中极其稀有(在 400 亿字节中仅出现 26 次),因此我们使用可逆 de-tokenizer 来移除这些预处理残留,以实现简单的领域适应

在这里插入图片描述

  • WebText 模型在多个数据集和任务间迁移能力强。在 zero-shot 设置下,8 个任务中有 7 个任务上达成当前最优。在 One Billion Word Benchmark上,模型仍显著落后,主要是因为该数据集较大且预处理极端(如句子级打乱),使得语言的长距离结构信息被破坏。

2、儿童图书测试(Children’s Book Test, CBT)

  • CBT用于评估语言模型在不同词类别(如命名实体、名词、动词、介词)上的表现。它是一种自动化 cloze 测试,任务是从 10 个候选项中选择正确的被遮盖词。

  • 本文复现了原始论文中的方法,对每个选项和句子剩余部分联合计算概率,并选出概率最高者。如下图所示,随着模型规模增加,准确率稳定上升,接近人类表现。

    在这里插入图片描述

  • 经过分析发现测试集之一《丛林奇谈》与 WebText 有重叠,因此报告无重叠的验证集结果。GPT-2 达到了新的 SOTA 水平:

    • 名词类准确率:93.3%
    • 命名实体准确率:89.1%

    同时,本文使用 de-tokenizer 移除了 CBT 中的 PTB 风格分词伪影,以提升质量

3、LAMBADA

  • LAMBADA 数据集用于测试系统建模文本中长距离依赖的能力。任务是预测句子的最后一个词,而这些句子通常需要至少 50 个词的上下文信息,才能被人类成功预测。GPT-2 将该任务上的困惑度(perplexity)从 99.8降至 8.6,准确率从 19%提升至 52.66%。但错误分析显示,GPT-2 预测的大多数词虽然是语法上合理的延续词,却不是句子的真实结尾词。这表明 GPT-2 没有意识到“所预测词必须是句末词”这一隐含规则。通过添加停用词过滤器,准确率可进一步提升至 63.24%,比之前最优方法还提高了 4%。

  • 要点总结:

    • LAMBADA 是一个理解句子整体结构的重要 benchmark。

    • GPT-2 在语言建模指标上(如困惑度)取得了突破性进展,但在“理解任务规则”方面仍有缺陷。

    • 加入额外约束(如“必须是句末词”或过滤停用词)有助于提升性能。

4、Winograd Schema Challenge

  • Winograd Schema 挑战评估系统进行常识推理和歧义消解的能力。任务是基于语境判断指代词所指的实体。Trinh(2018)证明了语言模型能通过概率预测实现良好的性能。本文遵循他们的方法,在下图中用全分与部分分两种方式可视化性能

在这里插入图片描述

  • GPT-2 能处理歧义性语言,展现出一定的常识理解能力,但由于样本数量较少,结论需要谨慎解读

5、阅读理解(Reading Comprehension)

  • CoQA是一个对话式问答数据集,来自 7 个不同领域,包括自然语言对话中的问题和答案。该任务考察模型是否能理解上下文并回答上下文相关的问题(如 “Why?”)。
  • GPT-2 在未进行任何监督训练的情况下,直接使用贪心解码,在开发集上取得 55 F1 分数,与 4 个基准系统中的 3 个持平或超越(这些系统使用了 127,000+ 手工标注数据进行训练)。尽管 GPT-2 的表现令人惊艳,但其答案中仍存在启发式错误,如将回答限制为“文中提到的名字”来回应 who 类问题。即仍存在“检索式回答”偏好,说明它更擅长识别已有信息,而非深度推理

6、文本摘要(Summarization)

  • 本文在 CNN/Daily Mail 数据集上测试 GPT-2 的摘要能力。通过在文章后添加提示 “TL;DR:” 并用 Top-k 随机采样(k=2)生成 100 个 token,总结为前三个句子。

  • 生成的摘要结构合理,但存在细节混乱或偏向文章结尾的问题。例如将事故车数量或标志位置搞错。ROUGE-1/2/L 分数略优于“随机选三句”方法,但低于经典摘要系统。若移除 “TL;DR:” 提示,则分数下降 6.4,说明 GPT-2 确实能“理解任务提示”。

  • 这说明GPT-2 具有一定抽象性与结构化摘要能力,添加任务提示(prompt)可显著提升表现,说明模型学会了**“提示控制行为”**

    在这里插入图片描述

7、翻译(Translation)

  • 我们测试 GPT-2 是否学会了翻译任务。通过提供训练格式为:

    english sentence = french sentence
    

    并以类似 prompt 形式开始预测,GPT-2 可在 WMT-14 英法测试集上取得:

    • 英→法:5 BLEU(略低于简单词典替换方法)
    • 法→英:11.5 BLEU(显著优于多种无监督基线)

    但仍远低于当前最优系统(33.5 BLEU,Artetxe et al., 2019)。这令人惊讶,因为 WebText 明确过滤了非英语网页

    经检测,仅有 10MB 法语数据进入 WebText,比常规法语训练语料小 500 倍。

  • 总结:

    • GPT-2 展现出初步翻译能力,尽管训练时几乎没见过目标语言。
    • 借助 prompt,模型能“理解”任务需求。
    • 强大的英文语言建模能力可以部分迁移到翻译任务

8、问答(Question Answering)

  • 为了评估 GPT-2 能否“记住”或“检索”知识,本文使用 Natural Questions数据集作为测试。GPT-2 仅正确回答 4.1% 的问题,但这已比简单基线(如返回最多见回答)高出 5.3 倍。最小模型准确率甚至不超过 1%。在 GPT-2 最有信心的前 1% 问题中,准确率达 63.1%,说明其置信度校准良好。但整体表现(4.1%)仍远不及开放问答系统(30-50%)。

    在这里插入图片描述

  • 总结:

    • GPT-2 在未检索的前提下直接生成答案,是极具挑战的任务。
    • 它的知识“储存在参数中”,但仍不足以应对大规模事实问答。
    • 高置信度预测表现好,提示有望借助置信度进行“选择性回答”。

9、总结

总结表:GPT-2 在各任务中的表现
任务评估指标GPT-2 表现(Zero-shot)备注
LAMBADAPerplexity/Acc8.6 PPL / 52.7% → 63.2%加约束显著提升
WinogradAccuracy70.7%高于 SOTA,任务样本少
阅读理解 CoQAF155接近或超越多数有监督系统
摘要 CNN/DMROUGE 1,2,L稍优于 random-3有提示时表现显著更好
翻译 WMT-14BLEU5(英→法),11.5(法→英)英文强大建模能力迁移带动
问答 NQAccuracy4.1%(全体),63.1%(Top1%)记忆能力弱但置信度校准好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/901036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式ID生成方案的深度解析与Java实现

在分布式系统中&#xff0c;生成全局唯一的ID是一项核心需求&#xff0c;广泛应用于订单编号、用户信息、日志追踪等场景。分布式ID不仅需要保证全局唯一性&#xff0c;还要满足高性能、高可用性以及一定的可读性要求。本文将深入探讨分布式ID的概念、设计要点、常见生成方案&a…

记 etcd 无法在docker-compose.yml启动后无法映射数据库目录的问题

1、将etcd 单独提取 Dockerfile&#xff0c;指定配置文件和数据目录 #镜像 FROM bitnami/etcd:3.5.11 #名称 ENV name"etcd" #重启 ENV restart"always" #运行无权限 ENV ALLOW_NONE_AUTHENTICATION"yes" #端口 EXPOSE 2379 2380 #管理员权限才…

怎样才不算干扰球·棒球1号位

在棒球运动中&#xff0c;"干扰球"&#xff08;Interference&#xff09;是指球员或场外人员非法影响了比赛的正常进行。以下情况通常 不构成干扰&#xff0c;属于合法行为或无需判罚&#xff1a; 1. 击跑员&#xff08;Batter-Runner&#xff09;合法跑垒 跑垒限制…

PyTorch实现多输入输出通道的卷积操作

本文通过代码示例详细讲解如何在PyTorch中实现多输入通道和多输出通道的卷积运算&#xff0c;并对比传统卷积与1x1卷积的实现差异。 1. 多输入通道互相关运算 当输入包含多个通道时&#xff0c;卷积核需要对每个通道分别进行互相关运算&#xff0c;最后将结果相加。以下是实现…

深入解析 MySQL 中的日期时间函数:DATE_FORMAT 与时间查询优化、DATE_ADD、CONCAT

深入解析 MySQL 中的日期时间函数&#xff1a;DATE_FORMAT 与时间查询优化 在数据库管理和应用开发中&#xff0c;日期和时间的处理是不可或缺的一部分。MySQL 提供了多种日期和时间函数来满足不同的需求&#xff0c;其中DATE_FORMAT函数以其强大的日期格式化能力&#xff0c;…

SSH配置优化:提升本地内网Linux服务器远程连接速度与稳定性

文章目录 引言一. 理解SSH连接过程与影响因素二. 服务器端SSH配置优化三. 客户端SSH配置优化四. 高级技巧五. 内网穿透突破公网IP限制总结 引言 SSH (Secure Shell) 是一种网络协议&#xff0c;用于加密的网络服务&#xff0c;常用于远程登录和管理Linux服务器。对于本地内网的…

BERT - MLM 和 NSP

本节代码将实现BERT模型的两个主要预训练任务&#xff1a;掩码语言模型&#xff08;Masked Language Model, MLM&#xff09; 和 下一句预测&#xff08;Next Sentence Prediction, NSP&#xff09;。 1. create_nsp_dataset 函数 这个函数用于生成NSP任务的数据集。 def cr…

“实时滚动”插件:一个简单的基于vue.js的无缝滚动

1、参考连接&#xff1a; 安装 | vue-seamless-scroll 2、使用步骤&#xff1a; 第一步&#xff1a;安装 yarn add vue-seamless-scroll 第二步&#xff1a;引入 import vueSeamlessScroll from vue-seamless-scroll/src 第三步&#xff1a;注册 components: { vueSeamless…

【蓝桥杯】赛前练习

1. 排序 import os import sysn=int(input()) data=list(map(int,input().split(" "))) data.sort() for d in data:print(d,end=" ") print() for d in data[::-1]:print(d,end=" ")2. 走迷宫BFS import os import sys from collections import…

pyTorch-迁移学习-学习率衰减-四种天气图片多分类问题

目录 1.导包 2.加载数据、拼接训练、测试数据的文件夹路径 3.数据预处理 3.1 transforms.Compose数据转化 3.2分类存储的图片数据创建dataloader torchvision.datasets.ImageFolder torch.utils.data.DataLoader 4.加载预训练好的模型(迁移学习) 4.1固定、修改预训练…

第十四届蓝桥杯大赛软件赛国赛Python大学B组题解

文章目录 弹珠堆放划分偶串交易账本背包问题翻转最大阶梯最长回文前后缀贸易航线困局 弹珠堆放 递推式 a i a i − 1 i a_ia_{i-1}i ai​ai−1​i&#xff0c; n 20230610 n20230610 n20230610非常小&#xff0c;直接模拟 答案等于 494 494 494 划分 因为总和为 1 e 6 1e6…

Python 和 JavaScript两种语言的相似部分-由DeepSeek产生

Python 和 JavaScript 作为两种流行的编程语言&#xff0c;虽然在设计目标和应用场景上有差异&#xff08;Python 偏向后端和脚本&#xff0c;JavaScript 偏向前端和动态交互&#xff09;&#xff0c;但它们的语法存在许多相似之处。以下是两者在语法上的主要共同点及对比&…

改善 Maven 的依赖性

大家好&#xff0c;这里是架构资源栈&#xff01;点击上方关注&#xff0c;添加“星标”&#xff0c;一起学习大厂前沿架构&#xff01; 建议使用mvn dependency:analyze命令来摆脱已声明但未使用的依赖项&#xff1a; 还有另一个用例&#xff0c; mvn dependency:analyze 它可…

【SQL】子查询详解(附例题)

子查询 子查询的表示形式为&#xff1a;(SELECT 语句)&#xff0c;它是IN、EXISTS等运算符的运算数&#xff0c;它也出现于FROM子句和VALUES子句。包含子查询的查询叫做嵌套查询。嵌套查询分为相关嵌套查询和不想关嵌套查询 WHERE子句中的子查询 比较运算符 子查询的结果是…

Stable Diffusion 扩展知识实操整合

本文的例子都是基于秋叶整合包打开的webui实现的 一、ADetailer——改善人脸扭曲、恶心 After detailer插件可以自动检测生成图片的人脸&#xff0c;针对人脸自动上蒙版&#xff0c;自动进行重绘&#xff0c;整个流程一气呵成&#xff0c;因此可以避免许多重复的操作。除此之…

freertos内存管理简要概述

概述 内存管理的重要性 在嵌入式系统中&#xff0c;内存资源通常是有限的。合理的内存管理可以确保系统高效、稳定地运行&#xff0c;避免因内存泄漏、碎片化等问题导致系统崩溃或性能下降。FreeRTOS 的内存管理机制有助于开发者灵活地分配和释放内存&#xff0c;提高内存利用…

按规则批量修改文件扩展名、删除扩展名或添加扩展名

文件的扩展名是多种多样的&#xff0c;有些不同文件的扩展名之间相互是可以直接转换的。我们工作当中最常见的就是 doc 与 docx、xls 与 xlsx、jpg 与 jpeg、html 与 htm 等等&#xff0c;这些格式在大部分场景下都是可以相互转换 能直接兼容的。我们今天要介绍的就是如何按照一…

热门面试题第15天|最大二叉树 合并二叉树 验证二叉搜索树 二叉搜索树中的搜索

654.最大二叉树 力扣题目地址(opens new window) 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大…

MySQL学习笔记7【InnoDB】

Innodb 1. 架构 1.1 内存部分 buffer pool 缓冲池是主存中的第一个区域&#xff0c;里面可以缓存磁盘上经常操作的真实数据&#xff0c;在执行增删查改操作时&#xff0c;先操作缓冲池中的数据&#xff0c;然后以一定频率刷新到磁盘&#xff0c;这样操作明显提升了速度。 …

RNN、LSTM、GRU汇总

RNN、LSTM、GRU汇总 0、论文汇总1.RNN论文2、LSTM论文3、GRU4、其他汇总 1、发展史2、配置和架构1.配置2.架构 3、基本结构1.神经元2.RNN1. **RNN和前馈网络区别&#xff1a;**2. 计算公式&#xff1a;3. **梯度消失:**4. **RNN类型**:&#xff08;查看发展史&#xff09;5. **…