生成式模型理解之DDPM
注:涉及大量概率论中的数学推导,不对其推导过程做详细解释,只说明结果的意义是什么
DDPM是什么?
一种生成模型,其核心思想是通过逐步将噪声添加到数据中,学习如何去噪以恢复原始数据。
先讲一下生成式模型
目标
生成出与现实中的数据/我们给出的训练集类似的数据
通用思想
真实的数据(图像、音频等)的分布可能十分复杂,并不方便我们用一个数学模型去描述,也就不能做出好的生成任务。
与此同时,一些简单的分布(高斯、二项)在数学上已经有很完备的理论和工具去描述、处理。于是生成式模型的核心思想就变为,找到把现实数据处理成简单分布,并且能够从简单的分布还原出数据的一套方法。
例如,VAE和Flow模型的latent space中就是标准高斯分布。而在Diffusion Models也是如此,我们通过不断添加微小的高斯噪声,使原始分布逐渐趋近于标准高斯分布。(为什么一直加噪声就趋向N(0,1)的原因后面说)
优化目标(设计Loss的源头)
训练目标是使得生成出的数据X的分布与真实数据的分布越接近越好。
θ:网络的参数
PθP_\thetaPθ:网络生成出的分布
PdataP_{data}Pda ...
WHU网安22-23学年编译原理真题
前言
自你武网安脱离计院以来,某些课程的期末考试往年卷就像机密文件一样,从在不官方公开,《编译原理》亦是如此。
考前,老师通常会发两张计算机学院的往年卷,表示咱的考试题型虽然和计院不一样,但涉及的知识点都是那些。话虽然确实是这么说的,但仍会给学生们带来不安感。
在2023年6月15日的下午,笔者在《编译原理》的考试中花了一个小时出头做完了试卷(获得了96分的好成绩/doge)。看着手边的试卷和可以带走的草稿纸(因为是半开卷,可以带一张纸进来),觉得闲着也是闲着,不如抄一份试卷原题,如果能造福后人也是一桩美事。
建议做过几套计院卷子之后再来看,b站上有专门将武大计院编译原理考试做题的视频
第一题
用上下文无关文法描述语言 L1={anbm∣n≥m≥1}L_1=\{a^nb^m | n \geq m\geq1\}L1={anbm∣n≥m≥1}
第二题
(1) 用正规表达式表达“所有以a开头,b结尾,由a、b构成的串”
(2) 画出其NFA(非确定有穷自动机)状态转换图
(3) 求以上NFA的最小DFA
(4) 自动机识别串"aabab"的过程
第三题
文法 ...
信安数基实践-模m原根
原始问题
给定任意一个正整数m(>1)m(>1)m(>1),编程解决以下问题:
判断是否存在模 mmm 的原根
如果存在
给出模 mmm 的所有原根
基于原根生成正整数 mmm 的简化剩余系
基础知识
指数和原根
设 m>1m > 1m>1 是整数,aaa 是与 mmm 互素的正整数,根据欧拉定理,有 aφ(m)≡1(mod m)a^{\varphi(m)}\equiv1(mod\ m)aφ(m)≡1(mod m)
其中φ(m)\varphi(m)φ(m)(Eular函数)表示从1到 m−1m-1m−1 中与 mmm 互素的数的个数
而使得 ae≡1(mod m)a^e \equiv 1(mod \ m)ae≡1(mod m) 成立的最小正整数 eee ,叫做 a对模m的指数
如果这个时候,恰好有 e=φ(m)e = \varphi(m)e=φ(m),那么称 aaa 为模m的原根
谁要看定义啊喂
咳咳,其实简单来说就是
当 aφ(m)≡1(mod m)a^{\varphi(m)}\equiv1(mod\ m)aφ(m)≡1(mod m) ...
单调队列算法
题目
对于一个长度为 n 的数组,有长度为 m(m ≤ n)的滑动窗口,要求滑动到每一个点时,窗口区域内的最(大/小)值。
解题
如果使用暴力,在每一段之内求max,那么时间复杂度为O(m*n)
而使用单调队列算法,可以在O(n)内解决该问题
数据结构
算法维护了一个下标对应的元素单调增减的队列(是的,q里存的是数组下标)
求最小值时要求单调递增;求最大值时则要求单调递减(是不是有点反直觉)
核心思想(我理解的)是判断元素是否有成为最值的潜力
以上题目的解题代码和注释如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546if __name__ == '__main__': # 读取 数组长度n 窗口长度k n, k = map(int, input().split()) # 读取 输入的数组啊 a = list(map(int, input().split())) # 下面我们先来求最小值 # 维护一个单调队列 ...
Acwing.3451题解
题目:3451.字符串排序II
编写一个程序,将输入字符串中的字符按如下规则排序。
规则 1:英文字母从 A 到 Z 排列,不区分大小写。如,输入:Type 输出:epTy。
规则 2:同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入:BabA 输出:aABb。
规则 3:非英文字母的其它字符保持原来的位置。如,输入:By?e 输出:Be?y。
输入格式
输入包含多组测试数据。
每组数据占一行,包含一个字符串。
输出格式
每组数据输出一行结果,为按要求排序后的字符串。
数据范围
字符串长度不超过 10001000,
每个输入最多包含 100100 组数据。
输入样例:
1A Famous Saying: Much Ado About Nothing (2012/8).
输出样例:
1A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
算法思路
本题为排序问题
根据题目要求,我们可以将字符分为两种:
大/小写字母
其他字符(包括空格)
对于大/小写字母:
由于题目要求目标字符串中,英文字母按字典序升序排列,即:
str ...