FMT 与 子集(逆)卷积】的更多相关文章

本文参考了 Dance of Faith 大佬的博客 我们定义集合并卷积 \[ h_{S} = \sum_{L \subseteq S}^{} \sum_{R \subseteq S}^{} [L \cup R = S] f_{L} * g_{R} \] 最暴力的时候只能 \(O(4^n)\) 完成,进行 一些优化 可以在 \(O(3^n)\) 内完成,当然我们可以在 \(O(n 2^n)\) 利用 \(FMT\) 或者 \(FWT\) 内快速处理. \(FMT\) 原理更好理解,就介绍此种方式…
FMT 和 子集卷积 FMT 给定数列 $ a_{0\dots 2^{k}-1} $ 求 $ b $ 满足 $ b_{s} = \sum_{i\in s} a_i $ 实现方法很简单, for( i in 0 to n-1 ) for( j in 0 to 2^n-1) if( j & ( 1 << i ) ) a[j] += a[j ^ ( 1 << i )] 然后称为 $ B = \text{FMT}(A) $ ,快速莫比乌斯变换 想要还原也很简单,把代码反着写: fo…
1.首先先定义进行卷积的参数: 输入特征图为高宽一样的Hin*Hin大小的x 卷积核大小kernel_size 步长stride padding填充数(填充0) 输出特征图为Hout*Hout大小的y 计算式子为: Hout =  floor( Hin + 2*padding - kernel_size / stride) + 1 2.然后实现上面的卷积的转置卷积 定义其参数为: 输入特征图为高宽一样的Hout*Hout大小的y 卷积核大小kernel_size 步长stride padding…
目录 @0 - 参考资料@ @1 - 异或卷积概念及性质@ @2 - 快速沃尔什正变换(异或)@ @3 - 快速沃尔什逆变换(异或)@ @4 - 与卷积.或卷积@ @5 - 参考代码实现@ @6 - 关于 FMT(快速莫比乌斯变换)@ @7 - 例题与应用@ @dp 优化@ @子集卷积@ @卷积逆运算@ @0 - 参考资料@ yyb 的讲解(FWT) popoqqq 的讲解(FWT) zjp 的讲解(FMT) Dance-Of-Faith 的讲解(FMT) @1 - 异或卷积概念及性质@ 现在已…
目录 信号, 集合, 多项式, 以及卷积性变换 卷积 卷积性变换 傅里叶变换与信号 引入: 信号分析 变换的基础: 复数 傅里叶变换 离散傅里叶变换 FFT 与多项式 \(n\) 次单位复根 消去引理, 折半引理与求和引理 重新定义 多项式的表示 快速傅里叶变换FFT 通过 FFT 在单位复数根处插值 FFT的速度优化与迭代实现 炸精现场与 NTT 原根 NTT 任意模数 NTT 卷积状物体与分治 FFT FWT 与位运算卷积 FWT 与 \(\text{or}\) 卷积 FWT 与 \(\te…
很裸的子集反演模板题,套上一些莫名其妙的外衣. 先预处理每个集合是否合法,再作显然的状压DP.然后发现可以写成子集反演的形式,直接套模板即可. 子集反演可以看这里. 子集反演的过程就是多设一维代表集合大小,再FMT处理集合并卷积. 然而我的FMT常数过大,而并卷积又可以用FWT实现,于是就写FWT了.(实际上就三行的区别) #include<cstdio> #include<algorithm> #include<cstring> #define rep(i,l,r)…
写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT 后来做了 HDU 4035 终于会了.... 感谢 雕哥的帮助 !!! 题意 #2542. 「PKUWC 2018」随机游走 题解 原本的模型好像我不会那个暴力dp .... 就是直接统计点集中最后经过的点的期望 , 也就是点集中到所有点步数最大值的期望 . (也许可以列方程高斯消元 ? 似乎没分)…
网上解释 作者:张萌链接:https://www.zhihu.com/question/43609045/answer/120266511来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一句话解释:逆卷积相对于卷积在神经网络结构的正向和反向传播中做相反的运算. 逆卷积(Deconvolution)比较容易引起误会,转置卷积(Transposed Convolution)是一个更为合适的叫法. 举个栗子: 4x4的输入,卷积Kernel为3x3, 没有Padding…
上采样(upsampling)一般包括2种方式: Resize,如双线性插值直接缩放,类似于图像缩放,概念可见最邻近插值算法和双线性插值算法——图像缩放 Deconvolution,也叫Transposed Convolution,可见逆卷积的详细解释ConvTranspose2d(fractionally-strided convolutions) 第二种方法如何用pytorch实现可见上面的链接 这里想要介绍的是如何使用pytorch实现第一种方法: 有两个模块都支持该上采样的实现,一个是t…
深度卷积生成对抗网络(DCGAN) ---- 生成 MNIST 手写图片 1.基本原理 生成对抗网络(GAN)由2个重要的部分构成: 生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是"骗过"判别器 判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的"假数据" 训练过程 固定判别器,让生成器不断生成假数据,给判别器判别,开始生成器很弱,但是随着不断的训练,生成器不断提升,最终骗过判别器.此时判别器…
使用GAN生成图像必不可少的层就是上采样,其中最常用的就是转置卷积(Transposed Convolution).如果把卷积操作转换为矩阵乘法的形式,转置卷积实际上就是将其中的矩阵进行转置,从而产生逆向的效果.所谓效果仅仅在于特征图的形状,也就是说,如果卷积将特征图从形状a映射到形状b,其对应的转置卷积就是从形状b映射回形状a,而其中的值并不一一对应,是不可逆的.另外,不要把逆卷积(Deconvolution)和转置卷积混淆,逆卷积的目标在于构建输入特征图的稀疏编码(Sparse coding…
题解 学习一个全世界人都会只有我不会的东西 子集变换! 难道我要把这题当板子讲?等等这题好像是板...WC出板题好刺激啊= = 假装我们都做过HAOI2015的FMT题,我们都知道一些FMT怎么解决或卷积的理论(似乎FMT本质就是FWT的或卷积方式) 子集变换是什么呢,就是把FMT带一个多项式 什么意思呢,就是我们需要 \(h_{S} = \sum_{T \subseteq S} g_{T}f_{S - T}\) 算h,怎么算,显然或卷积不成立啊,因为可能有交集 那么考虑到\(|S| + |S…
大概就是做点题. 先列一下要做的题目列表,从\(UOJ\)上找的. 129寿司晚宴 348州区划分 370滑稽树上滑稽果 457数树 22外星人 37主旋律 300吉夫特 196线段树 311积劳成疾 量子态的棋盘(咕咕咕) 题目交流通道(咕咕咕) 1.寿司晚宴 这个题还是不错的,之前学长讲过一次. 不过不记得了.还是被根号算法教做人了. 首先数据范围是500. 考虑这里面的质因子个数有多少个. 事实上很多,早就超过了20个. 而考虑\(\sqrt{n}\)以下的最多有多少个呢? 事实上只有\(…
参考:https://blog.csdn.net/qq_41368247/article/details/86626446 使用前提:stride > 1 补充:same卷积操作 是通过padding使得卷积之后输出的特征图大小保持不变(相对于输入特征图),不代表得到的输出特征图的大小与输入特征图的大小完全相同,而是他们之间的比例保持为 输入特征图大小/输出特征图大小 = stride 举例: 比如输入特征图为6*6,stride=2, kernel_size = 3, 所以进行same卷机操作…
https://pytorch.org/docs/stable/nn.html 1)卷积层 class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True) 二维卷积层, 输入的尺度是(N, Cin,H,W),输出尺度(N,Cout,Hout,Wout)的计算方式: 说明 stride: 控制相关系数的计算步长 dilation:…
参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码,下面是本人的笔记 本章介绍的nn模块是构建与autograd之上的神经网络模块 除了nn外还会介绍神经网络中常用的工具,比如优化器optim.初始化init等 1.nn.Module torch的核心数据结构是Module,它是一个抽象的概念,既可以表示神经网络中的某个层,也可以表示一个包含很多层的神经网络 在实际使用中,最常见的做法是继承nn.Modu…
题目大意 给定一个\(n\)个点的无向图,对于每种 \(n\) 个点的划分\(\{S_1,S_2,\ldots,S_k\}\),定义它是合法的,当且仅当每个点都在其中的一个集合中且对于任何的\(i\in[1,k]\),点集\(S_i\)非空,且导出子图不存在欧拉回路. 给定数组\(w_i\),求对于所有合法的划分\(\{s_1,s_2,\ldots,s_k\}\),下面的式子之和 \[ {(\prod_{i=1}^k\frac{\sum_{x\in S_i}w_x}{\sum_{j=1}^i\s…
目录 1. SRCNN 1.1. Contribution 1.2. Inspiration 1.3. Network 1.3.1. Pre-processing 1.3.2. Patch extraction and representation 1.3.3. Non-linear mapping 1.3.4. Reconstruction 1.4. Story 1.5. Further Learning 2. FSRCNN 2.1. 亮点 2.2. Improvement 2.3. Anal…
学习总结于国立台湾大学 :李宏毅老师 WGAN前作:Towards Principled Methods for Training Generative Adversarial Networks  WGAN:  Wasserstein GAN  Improved WGAN:  Improved Training of Wasserstein GANs  本文outline 一句话介绍WGAN: Using Earth Mover’s Distance to evaluate two distri…
二十三(Convolution和Pooling练习)  三十八(Stacked CNN简单介绍) 三十六(关于构建深度卷积SAE网络的一点困惑) 五十(Deconvolution Network简单理解) 五十一(CNN的反向求导及练习)   Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction中提到的一个实验 作者认为加噪声用处不大,且max-pooling功能特别强大,大到像作者说的那样有了max-po…
[CF914G]Sum the Fibonacci 题解:给你一个长度为n的数组s.定义五元组(a,b,c,d,e)是合法的当且仅当: 1. $1\le a,b,c,d,e\le n$2. $(s_a|s_b) \& s_c \& (s_d $^$ s_e)=2^i$,i是某个整数3. $s_a \& s_b=0$ 求$\sum f(s_a|s_b) * f(s_c) * f(s_d $^$ s_e)$,f是斐波那契数列,对于所有合法的五元组(a,b,c,d,e).答案模$10^9…
背景 SSD算法在检测小目标时精度并不高,本文是在在SSD的基础上做出一些改进,引入卷积层,能综合上下文信息,提高模型性能. 理解 Q1:DSSD和SSD的区别有哪些? (1)SSD是一层一层下采样,然后分别在这些feature map上进行预测:而DSSD则是在后面加入了很多的Deconvolution Module,通过逆卷积算法feature map上采样,然后与前面的feature map通过点积产生新的feature map,包含上下文的信息. (2)除了逆卷积操作,DSSD还引入了新…
链表作为最基本的数据结构,它不仅仅在实际应用中有着非常重要的作用,而且也是程序员面试笔试必考的内容. 详情请Google吧. 1.如何实现链表的逆序 就地逆序 package main import ( "fmt" _ "fmt" _ "github.com/ha666/golibs" ."github.com/isdamir/gotype" //引入定义的数据结构 ) //带头结点的逆序 func Reverse(node…
RefineDet 一.相关背景 中科院自动化所最新成果,CVPR 2018 <Single-Shot Refinement Neural Network for Object Detection> 在VOC2007测试集上,图像输入512*512时,map为81.8%,速度为24fps. 论文链接:https://arxiv.org/abs/1711.06897 二.主要思想 1.单阶段框架用于目标检测,由两个相互连接模块组成:ARM和ODM: 2.设计了TCB来传输ARM特征,来处理更具挑…
前言:研究卷积神经网络,把阅读到的一些文献经典的部分翻译一下,写成博客,代码后续给出,不足之处还请大家指出. 本文来自:tony-tan.com Github:github.com/Tony-Tan 大型卷积神经网络在图片分类上很成功,然而我们不知道他为什么能表现的如此不错,或者如何提高. #Abstract: In this paper we address both issues. We introduce a novel visualization technique that gives…
Description 你有一个随机数生成器,它会以一定的概率生成[0,2^N-1]中的数,每一个数的概率是由序列A给定的,Pi=Ai/sum(Ai) 现在有一个初始为0的数X,每一轮随机生成一个数v,将X变成X xor v 求X变成0~2^N-1的期望轮数 答案对998244353取模 N<=18,Ai<=1000 Solution 不妨反过来做,f[i]为i到0的期望轮数,显然等价 易得i>0, \[f[i]=1+\sum f[i\ xor\ j]p[j]\] 1移到左边来 \[f[…
原文地址:https://blog.csdn.net/Sakura55/article/details/81514828 1.GAN 先来看看公式:             GAN网络主要由两个网络构成,生成网络G和辨别网络D,生成模型G的思想是将一个噪声包装成一个逼真的样本,判别模型D则需要判断送入的样本是真实的还是假的样本,即共同进步的过程,辨别模型D对样本的判别能力不断上升,生成模型G的造假能力也不断上升!              需要注意的是,生成模型G的输入是服从-1~1均匀分布的随…
数据结构 稀疏数组 package main import "fmt" /* 稀疏数组 案例:五子棋存盘与复盘 节省存储空间 */ type ValNode struct { row int //行 col int //列 val int //值 } //原始数组实现 func normalArray() { ][]int chessMap[][] = //黑子 chessMap[][] = //白子 //输出 for _, v := range chessMap { for _, v…
0802_转载-nn 模块中的网络层介绍 目录 一.写在前面 二.卷积运算与卷积层 2.1 1d 2d 3d 卷积示意 2.2 nn.Conv2d 2.3 转置卷积 三.池化层 四.线性层 五.激活函数层 六.总结 pytorch完整教程目录:https://www.cnblogs.com/nickchen121/p/14662511.html 一.写在前面 疫情在家的这段时间,想系统的学习一遍 Pytorch 基础知识,因为我发现虽然直接 Pytorch 实战上手比较快,但是关于一些内部的原理…
前言:yyb神仙的博客 FWT 基本思路:将多项式变成点值表达,点值相乘之后再逆变换回来得到特定形式的卷积: 多项式的次数界都为\(2^n\)的形式,\(A_0\)定义为前一半多项式(下标二进制第一位为\(0\)),\(A_1\)同理定义: \((A,B)\)表示多项式\(A\)和\(B\)的直接拼接,FWT的结果都是一个点值表达,相乘表示点值相乘: 下面这些变换都满足线性,记\(n\)为二进制位数,复杂度:\(O(n\times 2^n)\): or卷积 形式: \[ (A|B)_{k} =…