GAN,VAE和流模型的原理(以流模型为主)
GAN,VAE和流模型的原理(以流模型为主)
2025/02/26 以便自己查看
生成式神经网络
生成式神经网络是一种以生成与被提供的数据集相似的新数据为目的的人工神经网络。它试图构建一种模型分布\(p_{model}\),使其尽可能接近原始数据分布\(p_{data}\)。由于不依赖其他标签数据,生成式模型往往是无监督学习。
特别的,生成式模型也可以预测在\(y\)条件下\(x\)的分布\(P(x|y)\),比如要求一个用于生成水果图像的模型生成一个苹果:\(P(\text{水果}|\text{苹果})\)。
对于数据的集合\(\mathbf{X}\),生成式神经网络理想的损失函数是模型分布和数据分布之间的似然函数:
\[
\begin{align} \mathcal{L}(model(\theta) \mid \mathbf{X})= \prod_{x
\in \mathbf{X}} p_{model(\theta)}(x)\end{align}
\]
似然函数是模型可调节参数\(\theta\)的函数,用于衡量模型分布对数据分布的拟合程度,所 ...
J05 同步
J05 同步
一、进程和线程基础
进程
由操作系统创建,用于运行程序,可使多个进程以“假实时”并行方式运行。
选择器负责将处理器资源分配给进程。
通过共享页面完成进程之间通信。
进程的状态:
状态(États):
Actif(活动状态):表示进程正在CPU上运行。
Prêt(就绪状态):进程已准备好运行,但正在等待CPU的分配。
Bloqué(阻塞状态):进程由于等待某些事件(例如I/O操作或资源可用性)而无法运行。
状态转换事件:
Création(创建):一个新的进程被创建,通常是由操作系统或一个已有的进程创建的。
Suppression(删除):进程被终止并从系统中移除。
Fin du
quantum(时间片结束):进程的时间片用完,操作系统将CPU分配给其他进程。
Demande d’entrée/sortie ou de
ressource(请求输入/输出或资源):进程请求某些资源或I/O操作,进入阻塞状态。
Fin d’entrée/sortie ou ressource
disponible(输入/ ...
J04 测试
J04 测试
验证与确认 (Vérification
et Validation)
验证 (Vérification)
确认我们是否正确地制作了产品。
软件是否符合其规格说明?
确认 (Validation)
确认我们是否制作了正确的产品。
软件是否满足用户需求?
验证方法 (Méthodes de
vérification)
检查 (Inspection)
静态测试,包括规格说明和代码的审查。
测试 (Test)
动态测试,通过输入数据运行代码。
符号验证 (Vérification symbolique)
抽象执行,生成输入数据或验证特定点(如代码覆盖、计算精度等)。
形式验证 (Vérification formelle)
基于证明或模型检测(Model Checking)。
为什么要测试?(Pourquoi tester
?)
研究表明,设计阶段修复错误的成本与生产阶段相比,成本比为
1:100。
在开发 NASA 卫星嵌入式软件时,测试占开发预算的
...
J03.5 质量 qualité
J03.5 质量 qualité
SOLID
单一职责原则(SRP: Single Responsibility
Principle)
开闭原则(OCP: Open/Closed Principle)
里氏替换原则(LSP: Liskov Substitution
Principle)
接口隔离原则(ISP: Interface Segregation
Principle)
依赖反转原则(DIP: Dependency Inversion
Principle)
SRP:单一职责原则
一个类(一个函数、一个方法)应该只承担一个职责。
每个职责的变更会引发类的修改(规范的变动)。
一个承担多重职责的类会导致职责之间的耦合。
OCP:开闭原则(Open/Closed Principle)
一个模块(类、包)应对扩展开放,对修改关闭:
对扩展开放:模块可以通过新行为扩展。
对修改关闭:这些扩展不需要修改已有代码。
使用面向对象机制:组合、继承、抽象类、接口等。
根据以下需求识别开闭点:
客户的可扩展性需求。
...
J03 Java基础 04:补充
J03 Java基础 04:补充
Java修饰符
访问控制修饰符
访问控制修饰符用于控制类、方法、变量等的访问权限。
修饰符
同类
同包
子类
其他包
private
✅
❌
❌
❌
无修饰符
✅
✅
❌
❌
protected
✅
✅
✅
❌
public
✅
✅
✅
✅
类级别修饰符
final
表示类不能被继承:
12final class Example {}
abstract
表示类是抽象类,不能实例化,必须由子类实现:
1234abstract class Example { abstract void display();}
strictfp
用于限制浮点运算精度,确保结果一致(跨平台):
12strictfp class Example {}
方法级别修饰符
final
方法不能被重写:
1234class Example { ...
J03 Java基础 03:集合框架
J03 Java基础 03:集合框架
集合框架
Java 集合框架(Java Collections Framework, JCF) 是 Java
提供的一套标准化 API,用于处理集合(Collection)类的数据结构。
Java 集合框架包含以下几个核心部分:
接口(Interfaces):定义了集合的基本行为规范,即上图黄色部分。
实现类(Implementations):为接口提供具体实现,即上图蓝色和紫色部分。
工具类(Utility
Classes):提供对集合的操作支持,如排序、查找等。
在使用时,接口是不能直接实现的,需要使用具体的类实现。
collection接口
collection接口是所有集合类的跟接口,可以使用集合类的6种方式实现。
例如学生成绩储存的例子:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546public class StudentScoreManager { pub ...
J03 Java基础 02:面向对象
J03 Java基础 02:面向对象
Java类
类是一组对象的描述,一个对象是其类的示例。
类和对象和引用
一个简单的类可以如下定义:
1234public class Complex{ public double real; public double imag;}
这个类用实部和虚部两个属性描述了复数。
我们可以使用new
来实现一个对象:complex c = new Complex()
。由于我们没有在类中定义构造方法,程序会按照默认的构造方法,以默认值初始黄两个双精度浮点数。
在上一条语句中,c
是对象的一个引用而不是对象本身。可以通过对象的引用访问public
属性。
类的方法
接下来,我们可以给类增加一些方法。基于面向对象的思想,我们不应该直接访问类的属性,类应该提供一些接口,来帮助我们获取和设置属性。
123456789101112131415161718192021222324public class Complex { private double real; // 实部 priv ...
J03 Java基础 01:基本语法
J03 Java基础 01:基本语法
概述
Java由Sun
Microsystems于1995年开发(后被Oracle收购),语法源自C++,最初设计用于交互式电视,随后用于在浏览器中执行代码,是最广泛使用的编程语言之一。
不同语言的工作方式
Python
12345def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1)
解释器通过读取和执行代码,将指令翻译为二进制代码,并请求处理器执行相应的操作。
编译语言(C, C++)
123456int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }
源代码通过编译器翻译为等效的二进制代码,并直接在处理器上执行。
虚拟机语言(Java)
12345678public class Math { ...
J02 统一建模语言 UML
J02 统一建模语言 UML
简介
概述
统一建模语言(Unified Modeling Language, UML)是一种计算机建模语言
以图形化的符号表示系统的结构与行为
由对象管理组织(OMG)制定的标准语言,支持多种建模工具,同时具备良好的可扩展性
语言的定义
UML 作为一种语言,由以下部分组成:
基本元素:包括词汇和构造元素,是语言的基本构建块。
抽象语法:定义如何从现有元素中构造新元素的规则。
具体语法:定义元素的呈现方式(例如符号或标记)。
语义:为基本元素和构造元素赋予意义,这些语义可以是正式的或非正式的。
模型与图表
模型:一个包含建模元素的集合,用于描述系统的特定方面。
图表:模型的子集,通过图形表示选定的建模元素。图表聚焦于模型的某一特定视角,但并不完整表示模型本身。
建模元素的关系:建模元素可以出现在零个、一个或多个图表中。删除图表中的元素不等于从模型中移除该元素。
建模元素的组织
包(Paquetage):一种管理建模元素的组织机制,适用于结构实体、行为实体及其他包的管理。
包之 ...
J01 引言:面向对象和程序设计
J01 引言:面向对象和程序设计
在一年之前学过一次面向对象的程序设计,上次课程侧重于编程,这次可能会更加侧重一些面向对象和程序设计方法一些,当然,如果课程涉及的话。
软件工程
软件工程是设计conception和实施mise en œuvres软件产品与程序的一系列活动,旨在合理化rationnaliser软件的生产和维护production et son suivi。
软件工程包括指定spécifier、开发développer和演化软件faire évoluer的所有活动,同时需要运用方法méthode、技术technique、工具outil并考虑成本coût。
开发流程
领域建模 Modélisation du domaine:
例如企业或业务背景建模,独立于特定软件。
近似于本体论(Ontology)。
需求表达/需求工程
Expression des besoins / ingénierie des exigences:
功能需求FP:系统必须提供的服务。
非功能需求FC:运行限制条件。
使用不同场景或用例描 ...