- 博客(43)
- 收藏
- 关注
原创 答题mmm
CBBBBBCCDCABABCDABCDACABCDABCDABDBCBCABCABCDBCABCDABCDABCBCDABDABCDABCDABCDABCDABCDABCABCDABCABCABCDABCCD。
2025-04-28 17:55:14
155
原创 faster rcnn中的dataloader代码逻辑
ratio_list_batch: 将ratio_list按照batchsize切分并让batch内ratio对齐(1右对齐,穿过1对齐到1)从小带大排列的index是ratio_index(np int数据), 重排后得到ratio_list(np float, 0.5--2.0之间)修改im_info[0],[1]为batchaspectalign最新图大小,将裁剪后的图像作为padding_data(3*h*w)返回。将裁剪后的ration(float)组合成ratio_list'''
2024-10-18 20:02:00
344
1
原创 python的两个路径
sys.path[0]指的是脚本所在目录,用于import包导入--》导致import包的时候下层包内的py文件相互导入只能使用相对导入方式,因为绝对导入是基于sys.path[0]的。假如脚本中执行f=open('a.txt'),这里的相对路径'a.txt'也是相对于os.getcwd()在命令行中运行python的时候,命令行所在位置是os.getcwd(),bash是操作系统相关组件。xxx/python.exe(解释器位置) sdsd/xx/xx.py(文件位置)
2024-10-17 21:25:48
870
原创 关于转置卷积和膨胀卷积
转置卷积=图像上采样,使用covtransposed的时候要注意padding stride,kernel这些参数都是逆着思考的,从哪里卷积下来的,就输入这些参数。膨胀卷积就是增大了dialtion,dilation默认为1,核之间元素的间距为1,膨胀卷积目的是为了增大感受野。关于膨胀卷积的格栅效应可以继续学习。
2024-10-17 15:58:15
184
原创 detectron2中build_data_loader源码分析
dataset = get_detection_dataset_dicts(('xxx',), True, 0, None)#获得上面的list of dict。dataset = MapDataset(dataset, mapper)#就是将每一个item取出来后过一个mapper得到结果。dataset = DatasetFromList(dataset, copy=False) #啥也没干。,除此之外height,width什么的都没变,T.AugInput自成一类。
2024-10-16 23:24:07
496
原创 detectron2/layers源码笔记
FrozenBatchNorm2d中提供了两个有力的对batchnorm进行frozen和解frozen的函数,并且只需要接收model,会递归地对模型中的batchnorm部分进行变换。nonzero_tuple, #nonzero_tuple(x)得到tuple of 每个维度的索引。shapes_to_tensor, #等价于torch.as_tensor()
2024-10-07 00:37:02
358
原创 detectron2/data/catalog.py源码笔记
metadata.get(key, default=None) #相当于matadata.key,找不到返回default。metadata=Metadata(a=b, c=d) #types.SimpleNamespace的初始化方式。MetadataCatalog.get(name) #用于获取名为name的metadata,如果没有就创建一个。DatasetCatalog.get(name) #返回函数调用结果return func()
2024-10-06 21:07:01
448
原创 计算机存储概念(程序员对内存的抽象仅仅是寻址)
RAM就是数组:存取所有单元速度一样,通过晶体管实现,都属于易失性存储器,分为Static RAM和Dynamic RAM,正常开机状态下,DRAM中的电荷会逐渐泄露,读取操作也会影响电荷,需要随时刷新保证信息不丢失;SRAM就很稳定,只要电脑不断电,数据就不会丢,当然,断电也废。内存(DRAM),Cache(SRAM),SSD(新型架构,未知),HDD(DAM:direct access memory介于随机存取和顺序存储之间,先随机存取到固定区域然后顺序存储,磁盘头转动,扇区磁道啥的)
2024-09-14 22:05:52
465
原创 reinforcement learning(利用亲身经历的经验去学习)优化目标为长期收益,优化方法为每动一下都给一个评价
上面的iteration中每轮只update一次θ参数,即收集的1个episode的data只用于当前智能体参数更新,因为新的智能体在面对相同环境的时候可能采取不同以往的action,因此需要使用新的actor自己的experience数据进行训练,上一个episode那些数据不符合它可能产生的经历,这就是on-policy。off-policy是训练的actor和与环境互动的actor是不同的,即利用别人的经验来进行训练。适合任务:人类可能也不知道具体的label,只知道好坏。
2024-08-31 00:42:17
505
原创 Life long learning
保存上一个task的少量训练资料,以在新的task每次调整梯度的时候都可以回头算一下上一个task此时的梯度,然后将新旧梯度结合(新梯度为主,这种方法有点像作弊,直接就在进行multi-task learning了,但是区别是它只用上一个task一点点资料来计算个梯度)现象:一个model进行multi-task learning做的还可以,说明模型是可以同时学会多个任务的,但是如果训练过程是1个task 1个task的顺序进行,模型就会发生灾难性的遗忘现象,只会做刚学完的task。
2024-08-29 22:14:59
218
原创 各种learning
-下图中最右边是最easy的情况,也是pretrain-fine tune范式,感觉和自监督学习也比较像,还可以叫few-shot learning。1.domain adaptation =domain shift(测试集和训练集还是比较像的情况,现实中可能会遇上,因为情况多,总体感觉也是个垃圾)few-shot learning:有时候指in-context learning,有时候指真正的few-shot learning。--autoencoder也属于自监督学习,可以利用低维向量进行下游任务。
2024-08-29 12:31:43
213
原创 adversarial attack与explainable AI
攻击噪声只发生在特定方向上,即model本身还是有一定的robust的,但是不是绝对robust罢了,VAE想创造一个绝对robust的model,但是图像本身的维度过高,几乎总会有方向可以被attack成功,即绝对robust是不现实的。被动防御:不再调整model参数,在model前加上一个filter network用于平滑图像,抑制图像攻击效果(因为攻击信号Δx的方向是很特殊的,大部分噪声其实都不会破解model,只有特定的噪声方向才会attack成功)所以简单的平滑就可以防御住大部分攻击。
2024-08-28 15:09:51
497
原创 LHY2021-HW04
mel, speaker = zip(*batch)#将batch list解包,mel是batch中的tensor叠一起形成的tuple,speaker是id叠一起的tuple#mel: (tensor1,tensor2,tensor3....tensor_batchsize)dataset[0]:第0个演讲者的第1段音频,dataset[1]:第0个演讲者的第2段音频....dataset[]:所有演讲者的所有音频 (音频,speaker id),并在较短的张量后面填充 0,使得所有张量在。
2024-08-25 11:38:46
299
原创 1.大语言模型如何从专才走向通才2.GPT4的核心是可以写并执行代码,还可以接受文件读取并应用于代码中(比如中文字资料包),完全是个工程师了
就相当于是init_weight初始化model参数,让模型有一组好的权重,而不是随机权重(self-supervised learning),这个时候的模型并不受控,给他输入一些文字,他就不受控的一直输出下去了,因为网上的文字资料也没有教他如何“回答”问题。比如gpt4会自己写程序并执行,上面的算数例子无法通过文字接龙给出答案,但是可以调用程序运行得到正确结果,所以大语言模型可以经常写程序,保证输出的正确性。第一阶段训练了好的参数作为基石,碰巧源于人类的梯度下降法会在附近找参数。
2024-08-02 22:45:17
449
原创 计算机组成原理---机器中的数字表示
计算机保存的都是补码,所以减法改变减数为加上相反数的补码,只做两件事1.全部取反+1 或2.从右往左第一个1的左边全部取反(针对减数)2.都是取结果一部分(余数/整数部分),使用另一部分(商/小数部分)继续下一步迭代。2.从右往左找到第一个1,从这里的左边一个开始,都按位取反即可(正数的补码和负数的补码之间转)1.正数补码全部位取反, +1, 得到相应负数的补码;定点小数也以补码形式储存,定点小数和整数的原码反码补码变换方式完全一样。计算补码快速方法:(正数原码=反码=补码,与负数补码之间)
2024-07-31 16:37:18
382
原创 关于logging(这玩意封装的层次感很强,能解构破译出来)
logging分为5个level, 控制台默认的logging level是warning,即只会输出warning级别以上的logging,低级别的不会显示/输出。一个logger可以有多个handler,logger有自己的level,消息传给logger,然后继续平行传给多个handler处理。logging是为了记录程序动态过程,理解程序过程,降低调试难度。如果创建了handler没有设置level就默认是0,即接收一切。logging.DEBUG是10,level都是int。
2024-07-26 00:51:51
203
原创 优化例子12
低秩矩阵恢复问题:只到矩阵中的一些元素值,不知道剩下的,想复原全体元素。:使用核范数代替rank(原问题不好求解)此问题NP难,于是求解。
2024-07-25 20:56:59
218
原创 关于高斯分布
高斯分布的截面是椭圆/圆,决定于协方差矩阵∑的特征值,如果特征值都相等就是圆,不相等就是椭圆,各个轴长为根号λ,轴方向即∑的特征向量们。高斯分布的协方差矩阵如果是对角的,那么这个椭圆/圆就是摆正的,因为对角矩阵的特征向量们就是ei。各向同性的高斯分布:协方差矩阵为对角的,且对角元相同,即∑=λI。利用该定理,可以秒得边缘概率分布,也是高斯,只要找出A即可。利用该定理,也可以秒出条件概率分布,也是高斯。任何协方差矩阵都是半正定的,与高斯分布无关。当给出高斯分布pdf的时候要求∑正定,即。
2024-07-25 16:26:04
615
原创 速通diffusion model
1.training过程中每张图会被随机分配一个t步,然后一次加入t步的噪声,再一次经过noise predicter得到基础噪声epsilon,得到还原图像。直接给出上述算法原理:(training图中的q(x0)表示图片库,每一次repeat取一个x0即clean image)3.扩散过程:一步到位,直接相当于加入t次噪声(因为直接加入t次噪声后和一次一次加入噪声后按照下面的变换公式是同分布的)2.生成图片过程:sample一个noise,然后经过T步,代sampling中的公式。
2024-07-25 12:39:21
206
原创 VAE,EMA完结
EMA就是个影子模型(直接看是线性叠加,按照事件展开就是exponential的了),跟着模型梯度更新的权重一起变,防止模型参数受到噪声影响太大,但是不参与模型训练梯度下降过程。需要在model中记住那一层的激活值,所以添加到self.a1/a2/a3中(一般正常情况下一直是x=blabla(x))VAE就是稳定版鲁棒版的AE,让中间地带的图像符合我们的想象(叠加)EMA是一种通用技术,可以用于一切模型,简称“影子模型”VAE model是一种固定的架构,和CNN一样简单。
2024-07-23 17:22:14
430
原创 关于BERT和embedding
hidden = hidden.detach()让hidden忘掉了他是从哪里计算得来的,于是再使用hidden进行运算,hidden就会被当作新的独立变量,它的祖先也就得不到梯度更新了。答:通过向很长时间以前的时刻传递梯度)困惑度的物理意义:困惑度表示“概率的倒数”(正确标签对应的概率倒数),也可以解释为分叉度,即有几个分叉选择。梯度消失/爆炸的原因:2.反向传播每个时间RNN层中的梯度都乘以相同的权重矩阵,于是爆炸/消失。负采样:对负例样本进行采样:比如一个+,100个-,代替一个+,999999个-
2024-06-15 14:29:10
705
原创 概率论拾遗
Y))#直接应用此公式条件住一个随机变量,进行接下来的计算即可。Xi为采样的iid随机变量 无偏估计:统计量的期望=欲估计的真值。条件期望仅限于形式化公式,用于解决多个随机变量存在时的期望问题求解,即。的解g(Y)=E(X|Y) 即最佳逼近函数即已知数据为条件下的条件期望。使用常数a逼近随机变量,EX为最佳逼近,最佳逼近的误差为Var(X)Y是已有数据,寻找一个函数g,来让g(Y)逼近X。该式为频率学派下的分解,θ为常数,估计Xi的方差,也是无偏估计。估计Xi的均值,是无偏估计。
2024-06-11 22:29:00
477
原创 点集常识与测度常识
由于开集和闭集的对偶性之:R上的开集总可以写成可数不相交开区间的并,那么闭集也总可以写成可数不相交闭区间的交。勒贝格测度有了一些要求,于是淘汰了一些集合,幸运的是,外侧度为0的集合都没有被淘汰。外测度已经非常好了,对于常识中的任何区间,有理数集的外测度都是我们想要的结果。可测集的运算:余集,有限交并差仍为可测集(有限的情况怎么玩都是可测集)集合的下极限集合就是某项之后,每次都出现的点的集合。紧集的定义只用了开集的概念,使用的不是开区间。集合的上极限集合就是无穷次出现的点的集合。
2024-06-09 11:28:57
1601
原创 矩阵级数与函数
1.计算归纳A^k=?...)A即可 只需要计算数项级数作为矩阵前的系数。3.利用最小多项式,求f(x)/m(x)的余多项式r(x),求r(A)即可。jordan标准型时函数直接作用到jordan块上。2.只要矩阵可以对角化即可(jordan也可)(任意矩阵A, B不满足指数上的流动规则)定义1:各个cell的数项级数绝对收敛。收敛(任意范数均等价)满足基本的欧拉公式关系。函数直接作用到特征值上。
2024-06-06 16:05:02
587
原创 Latex入门
left和\right:是为了让括号大一点,足以把内部内容括起来,当只有一侧需要括号时,由于匹配需要同时使用\left和\right,在不使用的一侧后加上.即可。${xxxxx}$ 里的{}可以保证让公式内容在同一行。displayed math mode: $$开始,$$结束,公式独占一整行,且居中显示。\sqrt[3]{2}表示3次根号2。inline math mode:$开始mode,$结束mode。根号要带{}:\sqrt{2}分数:\frac{2}{3}
2024-06-05 12:11:58
583
原创 矩阵常识与jordan标准型
1.换基过渡矩阵,坐标变换公式[y1, y2, y3] = [x1, x2, x3]C #y为新基,x为旧基,注意y1对应于C中的一列新坐标=旧坐标2.线性变换的矩阵表示,在不同基下的矩阵表示。
2024-06-05 11:39:17
1700
原创 广义逆矩阵
集合是所有的解,但这仍是不完全的,还可以引入自由变量Y。利用上述方程可将最小二乘问题转化为普通的方程组求解问题。求解矩阵方程:矩阵方程完全由{1}逆决定。1.2.方程组解集均为所有最小二乘解集。注:没有表明任意,存在的均按照任意理解。AXB=D方程有解,通解如下,通解中。于是,最小范数的最小二乘解为。的解集=A{1,4}集合。的解集=A{1,3}集合。
2024-06-02 10:46:03
374
1
原创 矩阵的特征值估计
max R(x) = max λ min R(x) = min λ (针对实对称阵成立,所有向量都可以向标准正交特征向量组投影,向量x的R(x)为各个特征向量分量对应的特征值的加权平均,以投影系数的平方为权重)特征值的隔离:利用相似矩阵具有相同特征值,求相似矩阵的盖尔圆,利用对角阵作P等效于调节盖尔圆半径,使不同盖尔圆不相交。更强的盖尔圆定理:矩阵的特征值λ在矩阵的第i行盖尔圆中,i为特征向量x中最大模元素index。:矩阵的盖尔圆以最大连通分量为单元,连通分量里有几个盖尔圆,就有几个特征值。
2024-05-31 11:14:15
1666
原创 矩阵分解技术
形如,逆矩阵加负号也算:单位下三角,对角阵,单位上三角:单位下三角,上三角:下三角,单位上三角:下三角,上三角计算:Gauss消元打洞,先求出Doolittle分解,再化为其他L矩阵记录打洞系数:与主元之比U矩阵为打洞剩余物n-1阶顺序主子式!=0只用到倍加的Gauss消元唯一LDU分解唯一Doolittle/Crout分解可逆矩阵可LU分解n-1阶顺序主子式!=0(顺序主子式均不为0)上链可逆矩阵A,则必存在置换阵P使PA的n个顺序主子式非0,可进行PA=LU。
2024-05-29 12:13:44
2457
1
原创 概率图模型
算法:枚举隐变量以计算argmax P(data, hidden)观察到的数据是外在的,完全受hidden variable决定。算法思想和MLE很像。
2024-05-28 23:45:55
140
原创 【无标题】
贝叶斯派:data背后概率分布的参数Θ也是一个概率分布,给出Θ的先验分布,获得data后计算Θ的后验分布。张志华机器学习导论讲频率学派;统计机器学习讲贝叶斯数学。github上notes很全面。频率派:概率分布的参数Θ是一个常数,使用极大似然估计法求出。林轩田基石理论精彩,技法SVM精彩。GMM,HMM, CRF都是概率图模型。两派都认为数据背后有一个概率分布。频率学派最后都落到了优化问题上。频率派---统计机器学习。贝叶斯派---概率图模型。贝叶斯学派最后都在求积分。
2024-05-28 22:11:16
136
原创 关于auto encoder
auto encoder 可以看作是一种自监督学习/pretrain通过对无标签数据的复原游戏,让网络尽可能学习到数据的本质分布。将高维向量的本质信息抽取出来,起到一种降维作用。在后续的下游任务中使用embedding后的feature即可低维feature的好处:1.更接近本质信息 2.模型训练只需要更少量数据核心思想是:压缩即智能,压缩即本质。
2024-05-27 23:49:43
235
原创 关于研究生选题
4.80%文章只看标题,14看标题和摘要,5看标题摘要论文,1搞懂全部细节 自己过滤/利用资源过滤/survey/report。2.研究者花费超过一半的时间阅读文献,哪怕到了博四也至少50%时间阅读文献,剩下50%科研。3.michael jordan阅读经典著作。只需要读20%的文章就可以得到80%的信息。1.导师最重要的就是选题。
2024-05-27 23:48:36
155
原创 关于EM算法(Expectation Maximization)
EM算法想解决的问题:手里有一堆sample data,但是data的部分信息缺失,称这部分丢失的信息为隐变量(隐变量是真实存在的客观信息,只是因丢失而不被知道),同时产生这些data的distribution含有未知参数。助力理解的小例子:z后验取1/-1概率均为1/2 手头的data为(1,2) 则可以认为完整数据为0.5个((1,2), 1)和0.5个((1, 2), -1),此时的似然函数也就分裂成了两个,需要对他们求期望。X表示data,Z表示隐变量, θ表示概率分布的参数。
2024-05-27 00:37:30
430
原创 关于hopfield网络,boltzmann机
hopfield网络是一个动态系统,每一个时刻随机选择一个神经元,并更新该神经元,直至神经元系统达到稳态,即所有神经元不再更新为止,神经元的更新方法如下,神经元只取值0/1。hopfiled网络的权重参数需要经过训练,训练的过程就是将记忆模式嵌入网络的过程,找到一个合适的权重使网络记住该模式(如图像),即perturb后能够自动复原。hopfield网络的串扰问题:当记忆模式过多时,不同模式互相干扰,网络就会混淆,无法还原出记忆内容,如下图。为了解决这一问题,玻尔兹曼机应运而生。
2024-05-26 22:48:45
428
原创 ML HW2 总结
1.defaultdict(int)返回一个字典,称为默认字典,假如访问字典中不存在的key,此时的value默认为0,且将该key-0自动加入字典中。
2024-05-26 22:11:09
240
原创 python closure, first-class function, decorator
print_h1仍然保持着对tag变量的访问,这种现象叫闭包。把函数当成object,可以作为函数参数/返回值等。decorator就是改变函数的行为,附加一些功能。decorator的实现基于closure。html_tag函数已经结束调用,但是。
2024-05-26 22:10:05
295
原创 关于BERT和self supervised learning
1.使用self supervised learning(pretrain) 进行填词游戏和判断两个句子是否连接游戏的训练。T5是google预训练出的一个encoder decoder model(BERT只是encoder model)通过进行填词游戏的训练,BERT可以学习到词义,因此BERT是优秀的word embedding 模型。2.之后在具体的下游任务上fine tune,进行有监督训练。google使用了各式各样的游戏进行预训练,包括删字还原,打乱顺序还原等。
2024-05-26 22:08:39
267
原创 关于encoder decoder model(seq2seq)的演进
传统的机器翻译(seq2seq)任务使用encoder-decoder架构,演化成了现在基于attention的transformer架构encoder: 输入sequence,输出一个context vectorencoder decoder都使用RNN(LSTM)实现如果源语言输入序列比较长,这种结构会导致固定长度的context vector,可能无法存储全部的语义信息,而注意力机制的提出则解决了这个问题。
2024-05-26 13:31:28
465
原创 ML HW1 总结
每一个epoch训练结束后在验证集上进行测试,若验证集上loss低于之前的验证集loss,则保存当下模型参数,否则继续训练,直到early_stop_cnt轮后,模型在验证集上loss仍然没有更低的表现,则终止训练。4.generator的意义是方便的由函数逻辑产生iterator,核心在于“简便”的iterator,就是generator。3.DATASET逻辑:外部csv文件==》numpy处理==》转换为pytorch。模型训练==》模型测试==》预测结果==》转回numpy==》写入csv文件。
2024-05-21 08:49:32
195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅