自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 【行为型模式】访问者模式

访问者模式定义封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于其内部各个元素的新操作。对象行为型模式访问者模式的优缺点优点1.符合单一职责原则;2.优秀的扩展性,允许对组合结构加入新的操作,而无需改变结构本身。;3.灵活性。缺点1.具体元素对访问者公布细节,违反了迪米特原则;2.具体元素变更比较困难;3.违反了依赖倒置原则,依赖了具体类,没有依赖抽象。适用环境1.对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作;

2024-04-23 14:53:42 409

原创 【行为型模式】备忘录模式

备忘录模式定义又称之为快照模式(Snapshop Pattern)或者令牌模式(Token Pattern),是指在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,这样我们就可以在需要的时候将该对象恢复到原先保存的状态了。对象行为型备忘录模式有两个目标储存系统关键对象的重要状态;维护关键对象的封装。备忘录模式的优缺点优点1.将被储存的状态放在外面,不要和关键对象混在一起,这可以帮助维护内聚;2.提供了容易实现的恢复能力;3.保持关键对象的数据封装。

2024-04-23 14:27:02 679

原创 【行为型模式】中介者模式

中介者模式定义用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式。对象行为型模式中介者模式的优缺点优点1.简化了对象之间的交互;2.将各同事解耦;3.减少子类生成;4.可以简化各同事类的设计和实现。缺点在具体中介者类中包含了同事之间的交互细节,可能会导致具体中介者类非常复杂,使得系统难以维护。适用环境1.系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱且难以理解;

2024-04-23 14:13:32 704

原创 【结构型模型】享元模式

享元模式定义又叫蝇量模式,运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式。对象结构型模式享元模式的设计一个关键的地方是先要区分内部状态和外部状态内部状态:存储在享元对象内部并且不会随环境改变而改变的状态,内部状态可以共享(例如:字符的内容)外部状态:随环境改变而改变的、不可以共享的状态。

2024-04-23 13:48:45 873

原创 【行为型模式】解释器模式

解释器模式定义给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。类行为型解释器模式的优缺点优点1.将每一个语法规则表示成一个类,方便于实现语言;2.因为语法由许多类表示,所以你可以轻易地改变或扩展此语言;3.通过在类结构中加入新的方法,可以在解释的同时增加新的行为,例如打印格式的美化或者进行复杂的程序验证。缺点。

2024-04-23 13:19:08 946

原创 【行为型模式】责任链模式

责任链模式定义-意图使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。发送请求的客户端并不知道链上的哪个对象会处理这个请求,这使得系统在不影响客户端的情况下动态的组织和分配责任。对象行为型职责链可以是一条直线、一个环链或者是一个树结构的一部分。责任链模式的优缺点优点1.降低了对象之间的耦合度。该模式使得一个对象无须知道到底是哪一个对象处理其请求以及链的结构,发送者和接收者也无须拥有对方的明确信息;

2024-04-23 12:54:37 865

原创 【结构型模式】桥接模式

桥接模式定义通过将实现和抽象放在两个不同的类层次中而使它们可以独立改变。不只改变你的实现,也改变你的抽象。对象结构型桥接模式的优缺点优点1.将实现予以解耦,让它和界面之间不再永久绑定;2.抽象和实现可以独立扩展,不会影响到对方;3.对于“具体的抽象类”所做的改变,不会影响到客户。缺点增加了复杂度。适用场景适合使用在需要跨越多个平台的图形和窗口系统上;当需要用不同的方式改变接口和实现时,桥接模式很好用。//抽象化角色//扩展抽象化角色@Override。

2024-04-23 12:37:00 370

原创 【行为型模式】状态模式

状态模式的定义:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。对象行为型)策略模式和状态模式是双胞胎,在出生时才分开。策略模式是围绕可以互换的算法来创建成功业务的。状态模式走的是更崇高的路,它通过改变对象内部的状态来帮助对象控制自己的行为。状态模式的优缺点优点1.可以将不同的状态隔离;2.每个状态都是一个单独的类;3.可以将各种状态的转换逻辑 , 分布到状态的子类中 ,减少相互依赖;4.增加新状态操作简单。缺点。

2024-04-22 16:57:29 420

原创 【行为型模型】迭代器模式

迭代器模式定义提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。把游走的任务放在送代器上,而不是聚合上。这样简化了聚含的接口和实现,也让责任各得其所。对象行为型迭代器模式的优缺点优点1.访问一个聚合对象的内容而无须暴露它的内部表示;2.遍历任务交由迭代器完成,这简化了聚合类;3.它支持以不同方式遍历一个聚合,甚至可以自定义迭代器的子类以支持新的遍历;4.增加新的聚合类和迭代器类都很方便,无须修改原有代码;5.封装性良好,为遍历不同的聚合结构提供一个统一的接口;

2024-04-22 16:20:35 1004

原创 【行为型模式】模板方法模式

模板方法模式定义在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。类对象型模式模板方法中的基本方法是实现算法的各个步骤,是模板方法的组成部分。基本方法又可以分为三种:抽象方法:抽象方法就是在抽象类中声明并由子类实现的方法;具体方法:具体方法可以由抽象类实现,或者由子类覆盖实现;钩子方法:钩子方法可以由抽象类实现,子类可以加以扩展。

2024-04-18 21:22:31 529

原创 【行为型模式】命令模式

命令模式的定义将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。对象行为型命令模式优缺点优点1.类间解耦:调用者角色与接收者角色之间没有任何依赖关系,调用者实现功能时只需调用Command 抽象类的execute方法就可以,不需要了解到底是哪个接收者执行。2.可扩展性:Command的子类可以非常容易地扩展,而调用者Invoker和高层次的模块Client不产生严 重的代码耦合。

2024-04-18 20:34:12 722

原创 【创建型模式】原型模式

原型(Prototype)模式的定义:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。对象创建型工作原理将一个原型对象传给要发动创建的对象(即客户端对象),这个要发动创建的对象通过请求原型对象复制自己来实现创建过程。创建新对象(也称克隆对象)的工厂就是原型类自身,工厂方法由负责复制原型对象的克隆方法来实现。

2024-04-18 15:41:50 1185

原创 【创建型模式】单例模式

单例模式的定义又叫单件模式,确保一个类只有一个实例,并提供一个全局访问点。要点1.某个类只能有一个实例;2.必须自行创建这个实例;3.必须自行向整个系统提供这个实例。单例模式的优缺点优点:1.提供了对唯一实例的受控访问2.可以节约系统资源,提高系统的性能3.允许可变数目的实例(多例类)缺点:1. 全局变量:单例模式实质上就是全局变量。全局变量可能会被误修改,而且调试困难;2. 并发问题:在多线程环境下,如果没有正确地处理,可能会导致多个实例被创建;

2024-04-18 15:11:48 755

原创 【创建型模式】建造者模式

建造者模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同得表示。(对象创建型模式)。建造者模式分析1.将客户端与包含多个部件得复杂对象得创建过程分离,客户端无需知道复杂对象得内部组成部分与装配方式,只需要知道所需建造者得类型即可;2.关注如何逐步创建一个复杂得对象,不同得建造者定义了不同得创建过程。建造者模式的优缺点优点1.客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象;

2024-04-18 14:57:03 948

原创 【创建型模式】抽象工厂模式

抽象工厂模式定义提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。模式动机1.当系统提供的工厂生产的具体产品并不是一个简单的对象,而是多个位于不同产品等级结构、属于不同类型的具体产品时就可以使用抽象工厂模式;2.抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的一种形式。抽象工厂:一个工厂可以生产一系列(一族产品),极大减少了工厂类的数量。又叫做工具模式:抽象工厂模式中的具体工厂不只是创建一种产品,她负责一族产品;

2024-04-18 14:05:56 885

原创 【创建型模式】工厂方法模式

简单工厂模式又叫做静态工厂方法模式。目的:定义一个用于创建对象的接口。实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。简单工厂模式基本实现流程1.具体产品类:将需要创建的各种不同产品对象的相关代码封装到具体产品类中;2.抽象产品类:将具体产品类公共的代码进行抽象和提取后封装在一个抽象产品类中;3.工厂类:提供一个工厂类用于创建各种产品,在工厂中提供一个创建产品的工厂方法,该方法可以根据所传入参数的不同创建不同的具体产品对象。4.

2024-04-17 19:59:09 1161

原创 【结构型模式】代理模式

代理模式的定义-意图:给某一个对象提供一个代理或占位符,并由代理对象来控制来原对象的访问(对象结构型模式)。某个客户端不能直接操作到某个对象,但又必须和那个对象有所互动。代理模式分析1.引入一个新的代理对象;2.代理对象在客户端对象和目标之间起到中介的作用;3.去掉客户不能看到的内容服务或者增添客户需要的额外的新服务。几种代理模式类型1.保护代理(Ptotect Proxy):控制对一个对象的访问,可以给不同的用户提供不同级别的使用权限;2.缓冲代理(CacheProxy)

2024-04-17 15:43:13 736

原创 【结构型模式】外观模式

外观模式定义与意图外观类为复杂的子系统提供了一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。(对象结构型模式)外观模式的特点:1.又叫做门面模式;2.是迪米特法则的一种具体实现;3.通过引入一个新的外观角色来降低原有系统的复杂度,同时降低客户类与子系统的耦合度;4.所指的子系统是一个广义的概念,它可以是一个类,一个功能模块,系统的一个组成或者一个完整的系统。外观模式分析:1.一个客户类需要喝多个业务类交互,而这些需要交互的业务类经常会作为一个整体出现。

2024-04-17 14:26:09 1100

原创 【结构型模式】组合模式

组合模式的定义与意图将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。(对象结构型)组合模式分析1.当容器对象的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理;2.由于容器对象和叶子对象在功能上的区别,在使用这些对象的代码中必须有区别地对待容器对象和叶子对象,而实际上大多数情况下客户端希望一致地处理它们,因为对于这些对象的区别对待将会使程序非常复杂。

2024-04-17 14:04:18 711 1

原创 【结构型模式】适配器模式

适配器模式的定义-意图将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。(对象结构模式->对象适配器/类结构模式->类适配器)适配器模式包含三个角色:目标(Target)角色、适配者(Adaptee)角色和适配器(Adapter)角色。根据Adapter角色的实现不同,可分为类适配器和对象适配器。类适配器模式(继承也是泛化实现):适配器角色对于被适配角色的适配是通过继承完成的还是通过组合来完成的。

2024-04-17 13:37:43 980

原创 【结构型模式】装饰器模式

装饰器模式(装饰者模式)定义装饰器模式动态地将责任附加到对象上。若要拓展功能,装饰者提供了比继承更有弹性地替代方案。(对象结构型模型)通俗点来说:动态的给一个对象增加一些额外的职责。就扩展功能而言,装饰模式提供了一种比使用子类更加灵活的替代方案。利用继承来达到“类型匹配”1.装饰者与被装饰对象有相同地超类型;2.可以用一个或多个装饰者包装一个对象;3.既然装饰者与被装饰对象有相同地超类型,所以在任何需要原始对象(被包装地)的场合,可以用装饰过的兑现代替它;

2024-04-16 19:43:20 1141

原创 【行为型模式】策略模式

策略模式(又叫政策Policy模式),属于对象行为模式下的:Strategy类提供了可插入式(Pluggable)算法的实现方案。策略模式的定义-意图:定义一系列算法,将每一个算法封装起来,并让它们互相替换。策略模式让算法可以独立于使用它的客户变化。模式策略的优缺点优点1.提供了对开闭(开时针对扩展功能是开放的,闭对修改功能是关闭的)原则的完美支持,用户可以在不修改原有系统的基础上选择算法或行为,也可以灵活地增加新的算法或行为;2.提供了管理相关的算法族的办法;

2024-04-16 18:30:35 1045

原创 【行为型模式】观察者模式

一个对象的状态或行为的变化将导致其他对象的状态或行为也发生改变,他们之间将产生联动。观察者模式1.定义了对象之间一种一对多的依赖关系,让一个对象的改变能够影响其他对象。2.发生改变的对象称为观察目标,被通知的对象成为观察者。3.一个观察目标可以对应多个观察者。别名:发布-订阅(Public/subscribe)模式,模型-视图(Model/View)模式,源-监听器(Source/Listener)模式,从属者(Dependents)模式。

2024-04-16 15:42:44 1220

原创 面向对象设计模式之概念

又叫做最少知识原则(LKP),每一个软件单位对其他的单位都只是最少的知识,而且局限于那些与本单位密切相关的软件。(也叫最少知道原则,为了模块间低耦合)

2024-04-16 15:03:10 1571 2

原创 【李沐论文精读】多模态论文串讲(上)和(下)精读

在多模态学习之前都是Oscar或者Uniter等这些工作,他们的缺陷都是因为里面用了一个Object Detection的模型去做视觉特征的抽取,太慢且太贵了。所以在出来之后,ViLT的作者就想到可以把vision部分用Vision Transformer去代,就一个Embedding层,这样一来大大简化了模型结构。,是ICML21的工作)CLIP。

2024-03-17 14:15:39 1039

原创 【李沐论文精读】CLIP改进工作串讲精读

LSeg、GroupViT、ViLD、GLIP、GLIPv2、CLIPPasso、CLIP4Clip、Action CLIP

2024-03-14 16:42:05 1028

原创 【李沐论文精读】ViLT精读

ViLT也是一个极其简单的视觉-文本多模态的框架。其最主要贡献:就是把多模态学习框架中的目标检测,也就是论文中反复强调的Region Feature(区域性特征)直接拿掉了。这个操作简直算是神来之笔,因为它极大地简化了视觉模态特征的抽取过程,大大提高了模型的推理速度,可称之为多模态领域一个里程碑式的工作。

2024-03-12 16:27:12 1003

原创 【李沐论文精读】CLIP精读

是一种基于对比文本-图像对的预训练方法。CLIP用文本作为监督信号来训练可迁移的视觉模型,使得最终模型的zero-shot效果堪比ResNet50,泛化性非常好。CLIP算是在跨模态训练无监督中的开创性工作,作者在开头梳理了现在vision上的训练方式,从有监督的训练,到弱监督训练,再到最终的无监督训练。这样训练的好处在于可以避免的有监督的 categorical label的限制,具有zero-shot性质,极大的提升了模型的实用性能。CLIP 最大的贡献就是打破了之前固定种类标签的范式。

2024-03-12 12:15:35 900

原创 【李沐论文精读】GPT、GPT-2和GPT-3论文精读

zero-shot例子(这就可以看到ChatGPT雏形了):

2024-03-07 16:24:50 2684

原创 【李沐论文精读】BERT精读

BERT(BEncoderRTransformer,双向Transformer编码器)。与最近的语言表示模型(ELMo,GPT)不同,BERT的所有层旨在通过联合训练左右上下文的方式从未标注文本中预训练深层的双向表征。BERT是基于EMLo和GPT(单向的Transformer编码器)的。BERT:设计用来训练深的双向表示,使用没有标号的数据,再联合左右的上下文信息。

2024-03-06 17:40:20 933

原创 【李沐论文精读】GAN精读

什么是GAN?GANGenerative adversarial network,生成对抗网络),它由生成器G(Generator Neural Network)和判别器D(Discriminator Neural Network)组成,生成器G负责生成样本,判别器D负责判断生成器生成的样本是否为真。生成器要尽可能迷惑判别器,而判别器要尽可能区分生成器生成的样本和真实样本。生成器G从给定噪声中(一般是指均匀分布或者正态分布)采样来合成数据,判别器D用于判别样本是真实样本还是G生成的样本。

2024-03-05 20:19:29 1277

原创 【李沐论文精读】Transformer精读

主流的序列转换(sequence transduction)模型都是基于复杂的循环或卷积神经网络,这个模型包含一个编码器(encoder)和一个解码器(decoder)。具有最好性能的模型在编码和解码之间通过一个注意力机制链接编解码器。我们提出了一个新的简单网络架构——基于attention 的Transformer。其仅仅是基于注意力机制,而完全不需要之前的循环或卷积。在两个机器翻译任务上的实验BLEU 表明,该模型具有更好的性能,同时并行度更好,并且训练时间更少。(泛化到其它任务效果也不错)

2024-03-05 15:07:49 997

原创 【李沐论文精读】Resnet精读

深度神经网络的优点:可以加很多层把网络变得特别深,然后不同程度的层会得到不同等级的feature,比如低级的视觉特征或者是高级的语义特征。但是学一个好的网络,就是简简单单的把所有网络堆在一起就行了吗?如果这样,网络做深就行了。提出问题:随着网络越来越深,梯度就会出现爆炸或者消失深入讲述了深度增加了之后精度也会变差 下面这张图就对应了上一张图的简笔画。残差连接如何处理输入和输出的形状是不同的情况implementation中讲了实验的一些细节A. pad补0,使维度一致;B. 维度不一致的时候,使其映射到统一

2024-03-04 14:31:01 922

原创 15.OCR

Photo OCR:照片 光学字符识别(photo optical character recognition)如何实现OCR?这样的步骤就成为了机器学习流水线。

2023-06-26 11:31:48 439

原创 14.处理大数据集

假设你正在使用梯度下降来训练一个线性回归模型当m个样本的m很大时,求和计算量太大了。这种梯度下降算法有另外一个名字叫做批量梯度下降(batch gradient desent)。这种算法每次迭代需要使用全量训练集,直到算法收敛。随机梯度下降算法对每个数据分开处理,对一个数据更新所有的参数。梯度下降算法是在每次更新参数的时候,需要计算所有数据。对比下来SGD(随机梯度下降)的速度要快一些,不过收敛性可能没GD(梯度下降)好。

2023-06-20 15:34:55 509

原创 13.推荐系统

例如一个电影推荐系统,一共有n个用户,m个电影,每部电影都有一定的特征,例如爱情片的比例、动作片的比例。n个用户对看过的电影进行评分,推荐系统如何给用户推荐新电影,预测用户对新电影的评分?预测一个给电影打分的系统。则推荐系统的问题是:给出了和数据,然后去查找那些没有被评级的电影并试图预测这些电影的评价星级。

2023-06-19 20:02:29 286

原创 12.异常检测

假设有一个数据集,其中有m个样本,从,假设它们都是实数。参数估计就是:猜测这些样本来自一个高斯分布的总体,每个样本服从高斯分布(),通过给定的数据集能够估算出和。(极大似然估计)其中可以替换成。

2023-06-12 21:33:47 593 1

原创 11.无监督学习之主成分分析

降维的两种应用:一是数据压缩;二是可视化数据。

2023-06-09 20:21:17 1096

原创 10.无监督学习之K-means算法

监督学习:我们有一些列标签,然后用假设函数去拟合它无监督学习:给出的数据不带任何标签。对于无监督学习来说,需要做的就是将数据输入到算法中,让算法找到一些隐含在数据中的结构,通过图中的这些数据,能通过算法找到一个结果就是这个数据集中的点可以分成两组分开的点集(簇)。这种能分出来的簇的算法被称为聚类算法。

2023-06-08 11:31:20 400

原创 9. 支持向量机(SVM)

在逻辑回归中做一些小改动变成支持向量机。如果观察逻辑回归的代价函数,会发现每个样本(x,y)都会为总的代价函数增加如下图这一项。因此对于总的代价函数,我们通常对所有的训练样本从第1项到第m项进行求和。图中的这一表达式就代表每个单独的训练样本对逻辑回归的总体目标函数所作的贡献。本部分就是把逻辑回归中的损失函数变为更简单的cost1、cost0,经过变换形成了SVM的代价函数。支持向量机在逻辑回归的基础上简化了代价函数,逻辑回归使用正则项来权衡θ的大小,以此解决过拟合的问题。

2023-06-07 15:10:10 726

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除