Stable Diffusion XL之核心基础内容

Stable Diffusion XL之核心基础内容

  • 一. Stable Diffusion XL核心基础内容
    • 1.1 Stable Diffusion XL的主要优化
    • 1.2 SDXL整体架构初识
    • 1.3 VAE模型
      • 1.VAE基本介绍
      • 2. VAE基本模型结构
      • 3.VAE的训练
    • 1.4 U-Net模型(Base部分)
      • 1. 十四个基本模块概述
      • 2. SDXL_Spatial Transformer_X模块
      • 3. CrossAttention模块细节
    • 1.5 CLIP Text Encoder模型
    • 1.6 Refiner模型
  • 二. Stable Diffusion XL训练技巧和细节
    • 2.1 图像尺寸条件化
    • 2.2 图像裁剪参数条件化
    • 2.3 多尺度训练
    • 2.4 使用Offset Noise

一. Stable Diffusion XL核心基础内容

1.1 Stable Diffusion XL的主要优化

与Stable Diffusion 1.x-2.x相比,Stable Diffusion XL主要进行如下的优化:

  1. 对Stable Diffusion 1.x-2.x的U-Net,VAE,CLIP Text Encoder三大核心模型都做了改进。
  2. 增加一个独立的基于Latent的Refiner模型,也是一个扩散模型,用来提升生成图像的精细化程度。
  3. 设计了很多训练Tricks,包括图像尺寸条件化策略、图像裁剪参数条件化策略以及多尺度训练策略等。
  4. 先发布Stable Diffusion XL 0.9测试版本,基于用户的使用体验和图片生成的反馈情况,针对性增加数据集和使用RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)技术优化训练后,推出了Stable Diffusion XL 1.0正式版。

1.2 SDXL整体架构初识

Stable Diffusion XL是一个二阶段的级联扩散模型(Latent Diffusion Model),包括Base模型和Refiner模型
其中,Base模型的主要工作和Stable Diffusion 1.x-2.x一致,具备文生图(txt2img)、图生图(img2img)、图像inpainting等能力。在Base模型之后,级联了Refiner模型,对Base模型生成的图像Latent特征进行精细化提升,其本质上是在做图生图的工作。

  • SDXL Base模型由U-Net、VAE以及CLIP Text Encoder(两个)三个模块组成,
  • SDXL Refiner模型同样由U-Net、VAE和CLIP Text Encoder(一个)三个模块组成
    在这里插入图片描述

1.3 VAE模型

1.VAE基本介绍

Stable Diffusion XL依旧是基于Latent的扩散模型,所以VAE的Encoder和Decoder结构依旧是Stable Diffusion XL高效提取图像Latent特征和图像像素级重建的关键一招。

  • 当输入是图片时,SDXL和SD一样,首先会使用VAE的Encoder结构将输入图像转换为Latent特征,然后U-Net不断对Latent特征进行优化,最后使用VAE的Decoder结构将Latent特征重建出像素级图像。除了提取Latent特征和图像的像素级重建外,VAE还可以改进生成图像中的高频细节,小物体特征和整体图像色彩。

  • 当Stable Diffusion XL的输入是文字时,这时我们不需要VAE的Encoder结构,只需要Decoder进行图像重建。

Stable Diffusion XL使用了和之前Stable Diffusion系列一样的VAE结构(KL-f8),但在训练中选择了更大的Batch-Size(256 vs 9),并且对模型进行指数滑动平均操作(EMA,exponential moving average),EMA对模型的参数做平均,从而提高性能并增加模型鲁棒性。

2. VAE基本模型结构

在这里插入图片描述
SDXL VAE模型中有三个基础组件

  • GSC组件:GroupNorm+SiLU+Conv
  • Downsample组件:Padding+Conv
  • Upsample组件:Interpolate+Conv

同时SDXL VAE模型还有两个核心组件:ResNetBlock模块和SelfAttention模型,两个模块的结构如上图所示。

SDXL VAE Encoder部分包含了三个DownBlock模块、一个ResNetBlock模块以及一个MidBlock模块,将输入图像压缩到Latent空间,转换成为Gaussian Distribution。

而VAE Decoder部分正好相反,其输入Latent空间特征,并重建成为像素级图像作为输出。其包含了三个UpBlock模块、一个ResNetBlock模块以及一个MidBlock模块。

3.VAE的训练

损失函数方面,使用了久经考验的生成领域“交叉熵”—感知损失(perceptual loss)以及L1回归损失来约束VAE的训练过程。
Stable Diffusion XL的VAE是从头开始训练的。

  • SD-VAE 2.x,SD-VAE 1.x,SDXL-VAE模型结构是一样的

  • 不同点在于SD-VAE 2.x是基于SD-VAE 1.x微调训练了Decoder部分,同时保持Encoder部分权重不变,使他们有相同的Latent特征分布,所以SD 1.x和SD 2.x的VAE模型是互相兼容的。而SDXL-VAE是重新从头开始训练的,所以其Latent特征分布与之前的两者不同。

  • 由于Latent特征分布产生了变化,SDXL VAE的缩放系数也产生了变化。VAE在将Latent特征送入U-Net之前,需要对Latent特征进行缩放让其标准差尽量为1,之前的Stable Diffusion系列采用的缩放系数为0.18215,由于Stable Diffusion XL的VAE进行了全面的重训练,所以缩放系数重新设置为0.13025。

注意:由于缩放系数的改变,Stable Diffusion XL VAE模型与之前的Stable Diffusion系列并不兼容。

与此同时,与Stable Diffusion一样,VAE模型在Stable Diffusion XL中除了能进行图像压缩和图像重建的工作外,通过切换不同微调训练版本的VAE模型,能够改变生成图片的细节与整体颜色(更改生成图像的颜色表现,类似于色彩滤镜)。

1.4 U-Net模型(Base部分)

1. 十四个基本模块概述

在这里插入图片描述
上图中包含Stable Diffusion XL Base U-Net的十四个基本模块:

1. GSC模块:Stable Diffusion Base XL U-Net中的最小组件之一,由GroupNorm+SiLU+Conv三者组成。
2. DownSample模块:Stable Diffusion Base XL U-Net中的下采样组件,使用了Conv(kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))进行采下采样。
3. UpSample模块:Stable Diffusion Base XL U-Net中的上采样组件,由插值算法(nearest)+Conv组成。
4. ResNetBlock模块:借鉴ResNet模型的“残差结构”,让网络能够构建的更深的同时,将Time Embedding信息嵌入模型。
5. CrossAttention模块:将文本的语义信息与图像的语义信息进行Attention机制,增强输入文本Prompt对生成图片的控制。
6. SelfAttention模块:SelfAttention模块的整体结构与CrossAttention模块相同,这是输入全部都是图像信息,不再输入文本信息。
7. FeedForward模块:Attention机制中的经典模块,由GeGlU+Dropout+Linear组成。
8. BasicTransformer Block模块:由LayerNorm+SelfAttention+CrossAttention+FeedForward组成,是多重Attention机制的级联,并且每个Attention机制都是一个“残差结构”。通过加深网络和多Attention机制,大幅增强模型的学习能力与图文的匹配能力。
9. SDXL_Spatial Transformer_X模块:由GroupNorm+Linear+X个BasicTransformer Block+Linear构成,同时ResNet模型的“残差结构”依旧没有缺席。
10. SDXL_DownBlock模块:由ResNetBlock+ResNetBlock+DownSample组成。
11. SDXL_UpBlock_X模块:由X个ResNetBlock模块组成。
12. CrossAttnDownBlock_X_K模块:是Stable Diffusion XL Base U-Net中Encoder部分的主要模块,由K个(ResNetBlock模块+SDXL_Spatial Transformer_X模块)+DownSample模块组成。
13. CrossAttnUpBlock_X_K模块:是Stable Diffusion XL Base U-Net中Decoder部分的主要模块,由K个(ResNetBlock模块+SDXL_Spatial Transformer_X模块)+UpSample模块组成。
14. CrossAttnMidBlock模块:是Stable Diffusion XL Base U-Net中Encoder和ecoder连接的部分,由ResNetBlock+SDXL_Spatial Transformer_10+ResNetBlock组成。
在这里插入图片描述
Stable Diffusion XL,U-Net模型(Base部分)参数量就增加到2.6B,参数量增加幅度达到了3倍左右

整个新的SDXL Base U-Net设计思想也让SDXL的Base出图分辨率提升至1024x1024。在参数保持一致的情况下,Stable Diffusion XL生成图片的耗时只比Stable Diffusion多了20%-30%之间,这个拥有2.6B参数量的模型已经足够伟大。

在SDXL U-Net的Encoder结构中,包含了两个CrossAttnDownBlock结构和一个SDXL_DownBlock结构;在Decoder结构中,包含了两个CrossAttnUpBlock结构和一个SDXL_UpBlock结构;与此同时,Encoder和Decoder中间存在Skip Connection,进行信息的传递与融合。

2. SDXL_Spatial Transformer_X模块

增加的**SDXL_Spatial Transformer_X模块(主要包含Self Attention + Cross Attention + FeedForward)**数量占新增参数量的主要部分,上表中已经用红色框圈出。U-Net的Encoder和Decoder结构也从原来的4stage改成3stage([1,1,1,1] -> [0,2,10]),说明SDXL只使用两次下采样和上采样,而之前的SD系列模型都是三次下采样和上采样。

比起Stable DiffusionV1/2,Stable Diffusion XL在第一个stage中不再使用Spatial Transformer Blocks,而在第二和第三个stage中大量增加了Spatial Transformer Blocks(分别是2和10),那么这样设计有什么好处呢?

  • 首先,在第一个stage中不使用SDXL_Spatial Transformer_X模块,可以明显减少显存占用和计算量
  • 然后在第二和第三个stage这两个维度较小的feature map上使用数量较多的SDXL_Spatial Transformer_X模块,能在大幅提升模型整体性能(学习能力和表达能力)的同时,优化了计算成本
    从上面讲到的十四个基本模块中可以看到,BasicTransformer Block模块是整个框架的基石,由SelfAttention,CrossAttention和FeedForward三个组件构成,并且使用了循环残差模式,让SDXL Base U-Net不仅可以设计的更深,同时也具备更强的文本特征和图像体征的学习能力。

3. CrossAttention模块细节

Stable Diffusion XL中的Text Condition信息由两个Text Encoder提供(OpenCLIP ViT-bigG和OpenAI CLIP ViT-L),通过Cross Attention组件嵌入,作为K Matrix和V Matrix。与此同时,图片的Latent Feature作为Q Matrix

但是大家知道Text Condition是三维的,而Latent Feature是四维的,那它们是怎么进行Attention机制的呢?

其实在每次进行Attention机制前,我们需要将Latent Feature从[batch_size,channels,height,width]转换到[batch_size,height*width,channels] ,这样就变成了三维特征,就能够和Text Condition做CrossAttention操作。

在完成CrossAttention操作后,我们再将Latent Feature从[batch_size,height*width,channels]转换到[batch_size,channels,height,width] ,这样就又重新回到原来的维度。

还有一点是Text Condition如何跟latent Feature大小保持一致呢?因为latent embedding不同位置的H和W是不一样的,但是Text Condition是从文本中提取的,其H和W是固定的。这里在CorssAttention模块中有一个非常巧妙的点,那就是在不同特征做Attention操作前,使用Linear层将不同的特征的尺寸大小对齐。

1.5 CLIP Text Encoder模型

CLIP模型主要包含Text Encoder和Image Encoder两个模块,在Stable Diffusion XL中,和之前的Stable Diffusion系列一样,只使用Text Encoder模块从文本信息中提取Text Embeddings。

不过Stable Diffusion XL与之前的系列相比,使用了两个CLIP Text Encoder,分别是OpenCLIP ViT-bigG(1.39G)和OpenAI CLIP ViT-L(246M),从而大大增强了Stable Diffusion XL对文本的提取和理解能力。

1.6 Refiner模型

Stable Diffusion XL开始使用级联策略,在U-Net(Base)之后,级联Refiner模型,进一步提升生成图像的细节特征与整体质量。

由于已经有U-Net(Base)模型生成了图像的Latent特征,所以Refiner模型的主要工作是在Latent特征进行小噪声去除和细节质量提升。

在这里插入图片描述
Refiner模型和Base模型一样是基于Latent的扩散模型,也采用了Encoder-Decoder结构,和U-Net兼容同一个VAE模型,不过Refiner模型的Text Encoder只使用了OpenCLIP ViT-bigG。
在这里插入图片描述
在Stable Diffusion XL推理阶段,输入一个prompt,通过VAE和U-Net(Base)模型生成Latent特征,接着给这个Latent特征加一定的噪音,在此基础上,再使用Refiner模型进行去噪,以提升图像的整体质量与局部细节。

二. Stable Diffusion XL训练技巧和细节

Stable Diffusion XL在训练阶段提出了很多Tricks,包括图像尺寸条件化策略,图像裁剪参数条件化以及多尺度训练。这些Tricks都有很好的通用性和迁移性,能普惠其他的生成式模型。

2.1 图像尺寸条件化

Stable Diffusion的训练过程:
主要分成两个阶段,一个是在256x256的图像尺寸上进行预训练,然后在512x512的图像尺寸上继续训练。

而这两个阶段的训练过程都要对最小图像尺寸进行约束。第一阶段中,会将尺寸小于256x256的图像舍弃;同样的,在第二阶段,会将尺寸小于512x512的图像筛除。这样的约束会导致训练数据中的大量数据被丢弃,从而很可能导致模型性能和泛化性的降低。
传统解决方式:
针对上述数据集利用率的问题,常规思路可以借助超分模型将尺寸过小的图像放大。但是面对对于图像尺寸过小的场景,目前的超分模型可能会在对图像超分的同时会引入一些噪声伪影,影响模型的训练,导致生成一些模糊的图像。
Stable Diffusion XL解决方式:
Stable Diffusion XL为了在解决数据集利用率问题的同时不引入噪声伪影,将U-Net(Base)模型与原始图像分辨率相关联,核心思想是将输入图像的原始高度和宽度作为额外的条件嵌入U-Net模型中,表示为 C ( s i z e ) = ( h e i g h t , w i d t h ) C_(size) = (height, width) C(size)=(height,width)
。height和width都使用傅里叶特征编码进行独立嵌入,然后将特征concat后加在Time Embedding上,将图像尺寸引入训练过程。这样以来,模型在训练过程中能够学习到图像的原始分辨率信息,从而在推理生成阶段更好地适应不同尺寸的图像生成,而不会产生噪声伪影的问题。

2.2 图像裁剪参数条件化

Stable Diffusion预处理图像
Stable Diffusion系列模型,由于需要输入固定的图像尺寸用作训练,很多数据在预处理阶段会被裁剪。生成式模型中典型的预处理方式是先调整图像尺寸,使得最短边与目标尺寸匹配,然后再沿较长边对图像进行随机裁剪或者中心裁剪。虽然裁剪是一种数据增强方法,但是训练中对图像裁剪导致的图像特征丢失,可能会导致模型在图像生成阶段出现不符合训练数据分布的特征。

其实之前NovelAI就发现了这个问题,并提出了基于分桶(Ratio Bucketing)的多尺度训练策略,其主要思想是先将训练数据集按照不同的长宽比(aspect ratio)进行分桶(buckets)。在训练过程中,每次在buckets中随机选择一个bucket并从中采样Batch个数据进行训练。将数据集进行分桶可以大量较少裁剪图像的操作,并且能让模型学习多尺度的生成能力;但相对应的,预处理成本大大增加,特别是数据量级较大的情况下。

并且尽管数据分桶成功解决了数据裁剪导致的负面影响,但如果能确保数据裁剪不把负面影响引入生成过程中,裁剪这种数据增强方法依旧能给模型增强泛化性能。
Stable Diffusion XL图像裁剪参数条件化策略
Stable Diffusion XL使用了一种简单而有效的条件化方法,即图像裁剪参数条件化策略。其主要思想是在加载数据时,将左上角的裁剪坐标通过傅里叶编码并嵌入U-Net(Base)模型中,并与原始图像尺寸一起作为额外的条件嵌入U-Net模型,从而在训练过程中让模型学习到对“图像裁剪”的认识。
在这里插入图片描述

2.3 多尺度训练

Stable Diffusion XL采用了多尺度训练策略,这个在传统深度学习时代头牌模型YOLO系列中常用的增强模型鲁棒性与泛化性策略,终于在AIGC领域应用并固化了,并且Stable Diffusion XL在多尺度的技术上,增加了分桶策略

Stable Diffusion XL首先在256x256和512x512的图像尺寸上分别预训练600000步和200000步(batch size = 2048),总的数据量约等于 (600000 + 200000) x 2048 = 16.384亿。

接着Stable Diffusion XL在1024x1024的图像尺寸上采用多尺度方案来进行微调,并将数据分成不同纵横比的桶(bucket),并且尽可能保持每个桶的像素数接近1024×1024,同时相邻的bucket之间height或者width一般相差64像素左右,Stable Diffusion XL的具体分桶情况如下图所示:
在这里插入图片描述

其中Aspect Ratio = Height / Width,表示高宽比。

在训练过程中,一个Batch从一个桶里的图像采样,并且我们在每个训练步骤中在不同的桶大小之间交替切换。除此之外,aspect ratio也会作为条件嵌入到U-Net(Base)模型中,让模型能够更好地学习到“多尺度特征”。完成了多尺度微调后,Stable Diffusion XL就可以进行不同aspect ratio的AI绘画了,不过推荐生成尺寸的base为1024x1024。

2.4 使用Offset Noise

在SDXL进行微调时,使用了Offset Noise操作,能够让SDXL生成的图像有更高的色彩自由度(纯黑或者纯白背景的图像)。SD v1和SD v2一般只能生成中等亮度的图片,即生成平均值相对接近 0.5 的图像(全黑图像为 0,全白图像为 1),之所以会出现这个问题,是因为SD模型训练和推理过程的不一致造成的

SD模型在训练中进行noise scheduler流程并不能将图像完全变成随机高斯噪声,但是推理过程中,SD模型是从一个随机高斯噪声开始生成的,因此就会存在训练与推理的噪声处理过程不一致。

Offset Noise操作是解决这个问题的一种直观并且有效的方法,我们只需要在SD模型的微调训练时,把额外在从高斯分布中采样的偏置噪声引入图片添加噪声的过程中,这样就对图像的色彩均值造成了破坏,从而提高了SDXL生成图像的"泛化性能"

感谢
https://zhuanlan.zhihu.com/p/643420260

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

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

相关文章

SwiftUI Release 引入的辅助焦点管理

文章目录 前言使用 FocusState 属性包装器高级技巧:专用辅助技术可聚焦字段的高级用法优化体验运行截图总结 前言 SwiftUI Release 引入了强大的新功能,其中之一是辅助焦点管理。 这个新功能使得在SwiftUI中处理辅助技术(如 VoiceOver 和 S…

百度谷歌301强引蜘蛛池效果怎么样

301强引蜘蛛池效果怎么样 本文 虚良SEO 原创,转载保留链接!网址:百度谷歌301强引蜘蛛池效果怎么样 - 虚良SEO 随着搜索引擎优化(SEO)技术的发展,越来越多的网站开始采用蜘蛛池技术来提高网站的排名和流量。…

关于Kubernetes-v1.23.6-资源调度-StatefulSet-OnDelete当删除的时候才更新

前面提到的普通的滚动更新,都是修改完sts立即就会发生更新操作 而还有一种更新的策略为, OnDelete,即只有在 pod 被删除时会进行更新操作 还是先看一下web这个sts的当前更新策略如下: 这里我们修改,更新策略&#xf…

【创作纪念日】1024回忆录

不知不觉中,从创作第一篇文章到现在,已经1024天了,两年多的时间里,已经从硕士到博士了,1024,对于程序员来说,是个特别的数字吧,在此回忆与记录一下这些美好的经历吧。 缘起 很早以前…

UE5C++学习(四)--- SaveGame类存储和加载数据

上一篇说到使用数据表读取数据,如果我开始玩游戏之后,被怪物打了失去了一部分血量,这个时候我想退出游戏,当我再次进入的时候,希望仍然保持被怪物打之后的血量,而不是重新读取了数据表,这个时候…

【动态规划】【数学方法】Leetcode 343. 整数拆分

【动态规划】【数学方法】Leetcode 343. 整数拆分 解法 动态规划解法 数学 每次拆成n个3,如果剩下是4,则保留4,然后相乘 ---------------🎈🎈343. 整数拆分 题目链接🎈🎈------------------- …

重构销售话术和知识库,容联云找到了大模型的“钉子”

科技云报道原创。 从ChatGPT诞生起,大模型在营销、客服等场景的落地就被予以众望。然而在经历了一年多的“百模大战”洗礼之后,人们发现无论是算力成本还是内容生成的安全合规问题,都让大模型很难直接应用于机器与人对话的实际业务中。 这其…

常用的苹果应用商店上架工具推荐

摘要 移动应用app上架是开发者关注的重要环节,但常常会面临审核不通过等问题。为帮助开发者顺利完成上架工作,各种辅助工具应运而生。本文探讨移动应用app上架原理、常见辅助工具功能及其作用,最终指出合理使用工具的重要性。 引言 移动应…

牛客题霸-SQL篇(刷题记录三)

本文基于前段时间学习总结的 MySQL 相关的查询语法,在牛客网找了相应的 MySQL 题目进行练习,以便加强对于 MySQL 查询语法的理解和应用。 由于涉及到的数据库表较多,因此本文不再展示,只提供 MySQL 代码与示例输出。 以下内容是…

git stash代码pop stash后误删找回

如题,git stash了代码,点了pop stash后,revert了改动。是可以找回的。 操作步骤: 使用 git stash pop 其实并没有真正地将文件删掉的,而是删除引用而已,因此我们可以使用 git fsck 命令进行找回&#xff…

php 快速入门(一)

一、配置系统环境 1.1 安装软件 1、安装php的开发软件:phpstorm 在这个软件中写代码 2、安装php的运行软件:phpstduy 写好的php程序需要放到phpstduy中,用户才能访问和测试 安装过程注意事项:安装的路径中不能有空格和中文字符&…

彻底理解 IO 多路复用!

在讲解该技术之前,我们需要预习一下文件以及文件描述符。 什么是文件 程序员使用I/O最终都逃不过文件这个概念。 在Linux世界中文件是一个很简单的概念,作为程序员我们只需要将其理解为一个N byte的序列就可以了: b1, b2, b3, b4, ......…

基于视图能力的县域治理视频基座数字化、智慧化解决方案

一、方案背景 县域治理方案是我国地方治理体系的重要组成部分,对于促进县域经济社会发展、维护社会稳定、推进全面深化改革具有重要意义。随着科技的不断进步,视频监管已经成为了现代社会治理的重要手段之一。县域治理视频监管方案是通过视频监控、数据…

C语言中常用的文件操作

本文将介绍常用的关于文件操作函数,如fopen,fclose,fread,fwrite,feek,ftell,rewind以及feof和ferror等文件操作操作函数,还介绍一些用于所有输入输出流的函数如fgetc,fputc,fgets,fputs,fprintf,fscanf等函数,还介绍了sscanf,sprintf函数,fe…

【Java扫盲篇】String、String Buffer和String Builder的区别

你在面试时,面试官让你讲讲String String Buffer String Builder的区别,你是否能流畅的、完整的叙述出他们三者的区别? ✍先说结论 相同点: 他们的底层都是由char数组实现的。不同点: String对象一旦创建,是不能修…

基于STM32温室智能监测控制系统设计

**单片机设计介绍,基于STM32温室智能监测控制系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于STM32的温室智能监测控制系统设计是一个综合性的项目,旨在实现对温室内环境参数的实时监测和控制…

2024年14款国内外主流低代码开发平台对比:总有一款适合您!

低代码开发平台是一种更偏向于赋能技术人员的工具,它允许开发人员通过将可视代码块拖放到工作流中来创建应用程序,从而以最少的手工编码快速设计应用程序。 市场中有非常多的低代码开发平台,令人眼花缭乱。应当选哪个低代码开发平台&#xf…

12 完全分布式搭建-SSH免密登录

配置 ssh (1)基本语法 ssh 另一台电脑的 IP 地址 (2)ssh 连接时出现 Host key verification failed 的解决方法 [ytmaster~]$ ssh slave01 ➢ 如果出现如下内容 Are you sure you want to continue connecting (yes/no)…

代码随想录算法训练营Day36|LC435 无重叠区间LC763 划分字母区间LC56 合并区间

一句话总结:都是和昨天的用最少箭引爆气球类似的题。 原题链接:435 无重叠区间 计数不重叠的区间的个数,然后用总长度减去这个值即可。 class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals, (a,…

2.4 比较检验 机器学习

目录 常见比较检验方法 总述 2.4.1 假设检验 2.4.2 交叉验证T检验 2.4.3 McNemar 检验 接我们的上一篇《性能度量》,那么我们在某种度量下取得评估结果后,是否可以直接比较以评判优劣呢?实际上是不可以的。因为我们第一,测试…