- 博客(76)
- 收藏
- 关注
原创 HQDec:基于高质量解码器的自监督单目深度估计-2023-TCSVT
论文地址:https://ieeexplore.ieee.org/abstract/document/10243139。
2023-10-10 20:18:36 9111 1
原创 CbwLoss:高效解决动态场景下以及弱纹理下单目深度估计问题(2023-TITS)
该损失函数提高了算法对动态场景以及弱纹理场景的鲁棒性。
2023-09-10 23:29:44 9381 1
原创 将ppa.launchpad.net换成中科大源
将文件中http://ppa.launchpad.net替换为https://launchpad.proxy.ustclug.org,如下所示:
2024-09-30 21:14:12 113
原创 可解释性机器学习中的局部解释
可解释性机器学习可以被分成两大类,第一大类叫做局部的解释,第二大类叫做全局的 解释,如图 1 所示。局部的解释是,比如有一个图像分类器,输入一张图片,它会判断出 是一只猫,机器要回答问题是为什么它觉得这张图片是一只猫。根据某一张图片来回答问题, 这个叫做局部的解释。还有另外一类,称为全局解释。其指还没有给分类器任何图片,而直接 问对一个分类器而言,什么样的图片叫做猫。我们并不是针对任何一张特定的图片来进行分 析,我们是想要知道有一个模型它里面有一些参数的时候,对这些参数而言什么样的东西叫 作
2024-09-15 16:03:09 920
原创 可解释性机器学习的目标
这个实验是这样,在哈佛大学图书馆的打印机经常会有很多人都排队要印东西,这个时候 如果有一个人跟他前面的人说拜托请让我先印5页,这个时候你觉得这个人会答应吗?但这个时候你只要把刚才问话的方法稍微改一下,你说拜托请让 我先印,因为我赶时间,他是不是真的赶时间没人知道,但是当你说你有一个理由所以你要先 印的时候,这个时候接受的程度变成94%。神奇的事情是,就算你的理由稍微改一下,比如 说请让我先印因为我需要先印,仅仅是这个样子接受的程度也变成93%。我们要了解模型的一切,我们要知道 它到底是怎么做出一个决断的。
2024-09-12 08:12:24 426
原创 决策树模型的可解释性
其实不是的,它是一个树状的结构, 那我们可以想像一下,如果特征非常地多,得到决策树就会非常地复杂,就很难去解释它了。所以复杂的决策树也有可能是一个黑盒 子,它也有可能是一个非常地复杂的模型,所以我们也不能够一味地去使用决策树。很多同学都会说,这个打Kaggle 比赛的时候,深度学习不是最好用的,决策树才是最好用的,决策树才是Kaggle比赛的常胜 将军。一棵决策树可以凭借着每一个 节点的问题和答案知道它是怎么做出最终的判断的,但当你有一片森林的时候,你就很难知 道说这一片森林是怎么做出最终的判断的。
2024-09-11 23:31:58 305
原创 可解释性人工智能(eXplainable Artificial Intelligence,XAI)
举例来 说,假设我们都采用线性模型,它的解释的能力是比较强的,我们可以轻易地知道根据一个 线性模型里面的每一个特征的权重,知道线性的模型在做什么事。机器学习未来也会被用在医疗诊断上,但医疗诊断是人命关天的事情,如果机器学习的 模型只是一个黑箱,不会给出诊断的理由的话,那我们又要怎么相信它做出的是正确的判断 呢。现在也有人想把机器学习的模型用在法律上,比如说帮助法官判案,比如一个犯人能不 能够被假释,但是我们怎么知道机器学习的模型它是公正的呢,它是不是有种族歧视的问题 呢。旁边的人就会欢呼,给它胡萝卜吃。
2024-09-11 23:24:35 465
原创 终身学习的主要解法
对于这种方式,基本的思想 就是每一个参数对我们过去学过的任务的重要性程度是不同的,因此在学习新的任务时,我们尽量不要动那些对过去任务很重要的参数,而是去学一些其他的对新任务比较重要的参数。其实有一种简单的控制变量的方法,就是移动或改变某个参数,如图2所示,我们移 动θb 1 时会发现在一定范围内损失值都是很小的,即接近最优的参数,那么我们就可以认为这 个参数在一定范围可变,相应的重要性参数b1就可以很小,即这个参数对旧任务来说不是很 重要,反之像θb 2 这种不能随意移动的参数对应的重要性参数就必须很大。
2024-09-11 23:21:37 812
原创 终身学习之评估方法
如图1 所示,任务一就 是常规的手写数字识别,任务二其实还是手写数字识别,但只是把每一个数字用某一种特定 的规则打乱,称之为排列,这种算是比较难的,还有更简单的就是把数字右转一次。具体的评估方式如图2所示,首先有一排任务,并且有一个随机初始化的参数,用在 这T 个任务上,得到对应的准确率。然后让模型先学第一个任务,然后在所有任务上分别测 一次准确率,即R1,1,...,R1,T,依此类推。直到学完所有的任务,得到一个准确率的表格,来 评估终身学习的结果。图1 评估终身学习的准确率表格。
2024-09-10 23:28:05 205
原创 终身学习(LifeLong Learning,LLL)
我们先训一个比较简单的网络来做第一个手写数字识别任务,然后再做任务二,任务一 上的准确率是90%,此时就算没有训过任务二,在任务二上也已经有了96%的准确率,可以 说迁移得非常好,说明能够解决任务一,相应地也能解决任务二。但其实这种多任务学习会有这样一个问题,加上我 们需要学习的任务不再是简简单单的二十个,而是一千个,那么我们在学第一千个任务的时 候,按照这个逻辑还得把前面九百九十九个任务的数据放在一起训练,这样需要的时间是比 较久的。而且随着要学习的任务越来越多,所需要 的训练时间也会越来越长。
2024-09-10 23:22:09 646
原创 元学习之应用案例
在元学习里,如果我们要教机器能 够做N类别K样例分类,那意味着说我们需要准备很多的N类别K样例下的分类任务当做 训练的任务,这样机器才能够学到N类别K样例的算法。同理,我们可以制造出20类别5样例的分类任务,这个任务里 面每一个类别都有5个样例,然后我们可以把这个任务当做训练数据,让机器学习到20类别 5 样例的分类算法。如果我们要去制造一个N类别K样例的任务,那么就是 从这些训练任务的字符里面先随机采样N个字符,然后这N个字符每个字符再去采样K个 样例,集合起来就得到一个训练的任务。
2024-09-10 22:58:06 394
原创 元学习之模型诊断元学习(model-agnosticmeta-learning,MAML)
但是也有文献有相反的结论,比如比较有干扰噪声的这些样本应该给它 比较小的权重,这些样例如果比较接近分类边界线,可能代表它比较有噪声干扰,代表它可能 标签本身就标错了,或者分类是不合理的等等,也许就应该给这些样本比较小的权重。如果在元学习中我们学习的是网络的架构,讲网络架构当作ϕ的 话,那我们就是在做NAS。具体来讲,我们一样有好几个任务的 数据,并且把这些好几个任务的数据通通放在一起,然后接下来我们同样可以找到一个好的 初始化参数,然后再把这个好的初始化参数用在测试的任务上,这就是多任务学习。
2024-09-10 22:51:41 1654
原创 ubuntu24.01 利用samba(SMB)实现不同系统文件共享
其中 username 表示能够访问共享文件的用户名。6 创建 Samba 用户。并按照提示设置访问密码。
2024-09-09 14:19:35 416
原创 元学习与机器学习
在元学习里面,我们要测试的不是一个分类表现的好坏,而是一个学习算法的表现的好 坏,所以在元学习里面为跨任务的测试。举例来说,在机器学习上 面你会害怕训练数据上可能会有过拟合的问题,那在元学习里面也有可能会有过拟合的问题, 比如机器学习到了一个学习算法,这个学习算法在训练任务上做得很好,面对一个新的测试 的任务反而会做得不好,所以元学习也有可能有过拟合的问题。那在机器学习里面,我们需要手动设置一个学习算法,而在元学习里面,我们是有一系列 的训练任务,所以我们也将元学习中的学习算法部分的学习称为跨任务学习。
2024-09-07 08:04:06 655
原创 元学习之如何学习
在元学习里面,我们通常会考虑要 让机器自己学习网络的架构,让机器自己学习初始化的参数,让机器自己决定学习率等等,我 们期待它们是可以通过学习算法被学出来的,而不是像机器学习一样我们人为设定的。如果这个分类是好的,那就代表 我们的L的规则是好的,反之如果这个分类是不好的,就代表说这个学习算法是不好的。最后,元学习的第三个任务就是要找一个学习算法,即找一个ϕ让损失越小越好。这个问题是因为我们的训练单位是任务,所以可以用训练的任务里面的测试数据,训练的任 务里面的测试数据是可以在元学习的训练的过程中被使用到的。
2024-09-06 23:54:09 915
原创 元学习(meta learning)(一)
这个函数我们用F 来表示它,不同于普通的机器学习算法的输入一张图 片,元学习的函数F 是一个数据集,这个数据集里面有很多的训练数据。我们其实也可以直接学习这个F 函数,对应于我们在机器学习里面介绍的三个步 骤,在元学习里,其实我们要找的也是一个函数,只是这个函数跟机器学习一般要找函数不一 样。实际上没有什么好方法来调这些超参,今天工业界最常拿来解决调整超参数的 方法是买很多张GPU,然后一次训练多个模型,有的训练不起来、训练效果比较差的话就输 入掉,最后只看那些可以训练的比较好的模型会得到什么样的性能。
2024-09-06 23:47:54 263
原创 循环生成对抗网络 Cycle GAN
所以在Cycle GAN中我们有三个网络,第一个生成器的工作是把x转成y,第二个生 成器的工作是要把y 还原回原来的x,另一个判别器的工作仍然是要看第一个生成器的输出 像不像是y域的图,如图2所示。另外,同样的想法可以做无 监督的翻译,例如收集一堆英文的句子,同时收集一堆中文的句子,没有任何成对的数据,用 Cycle GAN 硬做,机器就可以学会把中文翻成英文了。在训练cycleGAN 的时候,其实可以同时做另外一个方向的训练,也就是把橙色的生成器给它y域的图片,让 它产生x域的图片。
2024-09-06 23:40:02 1121
原创 条件生成模型 (conditional generation)
比如,给GAN房屋的设计图,然后让 生成器直接把房屋产生出来,或者给它黑白的图片然后让它把颜色着上,或者给它素描的图, 让它把它变成实景实物,再或者给它白天的图片,让它变成晚上的图片,给它起雾的图片,让 它变成没有雾的图片等等。那这个就是条件型生成的应用,文字变图像。但是这样的方法没办法真的解条件型的GAN的问题,因为如果我们只有训练这个判别 器,只会将y当做输入的话,那生成器会学到的东西就是,只要产生出来的图片y好,但是跟 输入完全没有任何关系,因为对生成器来说它只要产生清晰的图片就可以骗过判别器了。
2024-09-06 00:31:23 922
原创 GAN生成器好坏之评价方法
具体来讲,如 果什么图片输入到图像分类系统中的输出都是第二种类别,那代表说每一张图片也许都很像, 也就代表输出的多样性是不够的,那如果另外一个案例不同张图片丢进去,它的输出分布都 不一样,那就代表说多样性是够的。你的产生出来的数据,只有真实数据的一部分,单纯看产生出来的数据, 你可能会觉得还不错,而且分布的这个多样性也够,但你不知道真实数据的多样性的分布其 实是更大的。模 式崩塌是指在训练GAN的过程中遇到的一个状况,假设如图2蓝色的星星是真正的数据 的分布,红色的星星是GAN的模型的分布。
2024-09-06 00:25:14 1244
原创 训练 GAN 之技巧
我们来思考下,假设我们改变了解码器的参数,这个生成器,也就是解码器的参数, 有一点小小的变化的时候,到底对判别器的输出有什么样的影响。我们回到刚才的讨论,假设输出的分布只有小小的变化,并且在取最大值的时候,或者 说在找分数最大那个词元的时候,你会发现分数最大的那个词元是没有改变的。里面的技巧比如说要用SeqGAN-Step的技 术,并且将训练批大小设置的很大,要上千,然后要用强化学习的方法,要改一下强化学习的 参数,同时加一些正则化等等技巧,就可以从真的把GAN训练起来,然后让它来产生序列。
2024-09-04 23:54:37 1120
原创 WGAN 算法
因为要进行 MinMax 操作,所以 GAN 是很不好训练的。我们接下来介绍一个 GAN 训练的小技巧,就是著名的Wasserstein GAN(Wasserstein Generative Adversarial Network)。在讲这个之前,我们分析下JS散度有什么问题。首先,JS散度的两个输入PG 和Pdata 之间的重叠部分往往非常少。这个其实也是可以预料到的,我们从不同的角度来看: 图片其实是高维空间里低维的流形,因为在高维空间中随便采样一个点,它通常都没有办法 构成一个人物的头
2024-09-04 23:43:18 1267
原创 生成对抗网络(GAN)
我们再举一个一维的简单例子说明PG和Pdata,我们假设生成器的输入是一个一维的向 量,如图1的橙色曲线,生成器的输出也是一维的向量,如图1的绿色曲线,真正的数 据同样是一个一维的向量,它的分布用蓝色曲线来表示。我们训练的结果是希望两个分布PG 和Pdata 越接近越好,即图片中的公式所示,表达的是这两个分布之间的差异,我们可以将其视 为两个分布间的某种距离,如果这个距离越大,就代表这两个分布越不像;对于连续的差异例如KL散度和JS散度是很复杂的,在实际离散的数据中,我们或许无 法计算其对应的积分。
2024-09-04 23:29:06 819
原创 生成模型之训练
训练的第一步是固定生成器,只训 练判别器。因为生成器的初始参数是随机初始化的,所以它什么都没有学习到,输入一系列采 样得到的向量给它,它的输出肯定都是些随机、混乱的图片,就像是坏掉的老式电视收不到信 号时的花屏一样,与真实的动漫头像完全不同。因为假设要输出的分数越大 越好,那我们完全可以直接调整最后的输出层,改变一下偏差值设为很大的值,那输出的得分 就会很高,但是完全达不到我们想要的效果。这里判别器是固定的,它只需要给更“真”的图片更高的分数即可,生成器训练的目标就是 让图片更加真实,也就是提高分数。
2024-09-04 00:19:07 659
原创 生成模型之判别器
首先, 第一代生成器的参数几乎是完全随机的,所以它根本就不知道要怎么画动漫人物,所以其画出 来的东西就是一些莫名其妙的噪音。那判别器学习的目标是成功分辨生成器输出的动漫图片。判别器从本质来说与生成器一样也是神经网络,是由我们自 己设计的,可以用卷积神经网络,也可以用Transformer,只要能够产生出我们要的输入输出 即可。GAN 最早出现在14年的一篇文章中,其作者把生成器和判别器当作是敌人,并且生成 器和判别器中间有一个对抗的关系,所以就用了一个“对抗”这个单词,当然这只是一个拟人化 的说法而已。
2024-09-04 00:09:27 271
原创 生成模型之生成器
当输入的向量z 不同的时候,生成器的输出就会跟着改变,所以我们从正态分布中采样出不同的z,得到的输 出y 也就会不同,动漫人脸照片也不同。要得到这样的训 练数据很简单,只需要在玩小精灵的同时进行录制,就可以训练我们的网络,只要让网络的输 出y,与我们的真实图像越接近越好。如果我们使用前几章介绍的基于监督学习的训练方法,我们得到的结果可 能会是的十分模糊的甚至游戏中的角色消失、出现残影的,如图 3所示。当我们在训练的时候,对于一条向左转的训练数据,网络得到的指示就 是要学会游戏角色向左转的输出。
2024-09-04 00:04:23 924
原创 注意力机制(Attention mechanism)(中篇)
这个任务并不是很容易,举个 例子,现在有一个句子:Isawasaw,这句话的意思是我看到一个锯子,第二个saw是名词 锯子。所以机器要知道,第一个saw是个动词,第二个saw是名词,每一个输入的词汇都要有一个对应的输出的词性。如果是社交网络,给定一个社交网络, 模型要决定每一个节点有什么样的特性,比如某个人会不会买某个商品,这样我们才知道要 不要推荐某个商品给他。模型的输入是一组向量,它可以是文字,可以是语音,可以是图。真正的语音识别输入一句话,输出一段文字,其实也是 一个序列到序列的任务。
2024-09-01 23:22:36 424
原创 注意力机制(Attention mechanism)(上篇)
总之,一段声音信号就是用一串向量来表示,而因为每一个窗口,他们往右移都是移动 10 毫秒,所以一秒钟的声音信号有 100 个向量,所以一分钟的声音信号就有这个 100 乘以 60,就有 6000 个向量。如果把一个句子里面的每一个词汇都描述成一个向量,用向 量来表示,模型的输入就是一个向量序列,而且该向量序列的大小每次都不一样(句子的长度 不一样,向量序列的大小就不一样)。如 果把一个分子当做是模型的输入,每一个分子可以看作是一个图,分子上面的每一个球就是 一个原子,每个原子就是一个向量。
2024-09-01 18:21:01 461
原创 网络压缩之动态计算(dynamic computation)
在训练的时候,就把所有的情况一起考虑,然后所有的情况都得到一个输出, 所有的输出都去跟标准答案计算距离,要让所有的距离都越小越好就结束了。确实可以用我刚才讲的训 练方法,就是每一层接出来做训练,然后把所有接出来的结果去跟标准答案算距离,最小化所 有接出来的结果跟标准答案的距离,确实可以用这个方法达到动态的深度,但是其实它不是 一个最好的方法。有时候就算计算资源比较很充 足,但是对一些简单的图片,如果可以用比较少的层,得到需要的结果,其实也就够了,这样 就可以省下一些计算资源去做其他的事情。
2024-09-01 17:25:14 879
原创 网络压缩之稀疏模型设计
左下角的这 18 个数值,把一般的卷积拆成深度卷积加 点卷积的时候,就可以看成是把一层的网络拆解成两层的网络,其原理跟低秩近似是一样的, 把一层拆成两层,这个时候它对于参数的需求反而是减少了,这个是有关网络架构(network architecture)的设计。深度卷积的滤波器 是没有厚度的,它的滤波器是没有厚度的,所以深度卷积所有的滤波器加起来的参数量只有 k×k×I 而已,跟一般的卷积里面的一个滤波器的参数量是一样的。假设要输出O个通道,就要有O个1×1的卷积,所以点卷积的总参数量是I×O。
2024-09-01 16:34:15 735
原创 网络压缩之知识蒸馏(knowledge distillation)
比如教师的输出可能是看到这张图片1的分数是0.7,7的分数是0.2,9 这个数字的分 数是0.1 等等。教师网络不一定要是单一的巨大网络,它甚至可以是多个网络的集成,训练多个模型,输 出的结果就是多个模型,投票的结果就结束了。假设温度接近无穷大,这样所有的类别的分数就变得差不 多,学生网络也学不到东西了,因此T 又是另外一个超参数,它就跟学习率一样,这个是我 们在做知识蒸馏的时候要调的参数。知识蒸馏的概念是 一样的,因为直接训练一个小的网络,没有小的网络根据大的网络来学习结果要来得 好。
2024-09-01 11:17:06 711
原创 网络压缩之参数量化(parameter quantization)
用二值网络的时候,给了网络比较大的限制,给网络容量(networkcapacity) 比较大的限制,它比较不容易过拟合,所以用二值权重反而可以达到防止过拟合的效果。这样的好处平均起来,储存数据需要的位的数量就变少了,所以这个就是哈夫曼编 码,所以可以用这些技巧来压缩参数,让我们储存每一个参数的时候需要的空间比较小,最终 可以压缩到只拿一个位来存每一个参数。权重聚类是需要在训练的时候就考虑的。训练的量化可当做是损失的其中一个环节,直接塞到训练的 过程中,让训练的过程中达到参数有权重聚类的效果。
2024-08-31 22:23:30 512
原创 网络压缩之网络剪枝(network pruning)
网络剪枝(network pruning)就是要把网络里面的一些参数剪掉。剪枝就是修剪的意思,把网络里面的一些参数剪掉。为什么可以把网络里面的一些参数剪 掉呢?这么大的网络里面有很多很多的参数,每一个参数不一定都有在做事。参数这么多的 时候,也许很多参数只是在划水,什么事也没有做。这些没有做的参数放在那边,就只是占空 间而已,浪费计算资源而已。为何就把它们剪掉呢?所以网络剪枝就是把一个大的网络中没 有用的那些参数把它找出来,把它扔掉。人刚出生的时候,脑袋是空空的,神经元跟神经元间 没什么连接
2024-08-31 21:24:29 1020
原创 迁移学习之领域泛化
领 域泛化可又分成两种情况。如图1(a)所示,比如要做猫狗的分类器,训练数据里面有真实的猫跟狗 的照片、素描的猫跟狗的照片、水彩画的猫跟狗的照片,期待因为训练数据有多个领域,模型 可以学到如何弥平领域间的差异。另外一种情况如 图1(b)所示,训练数据只有一个领域,而测试数据有多种不同的领域。虽然只有一个 领域的数据,但可以想个数据增强的方法去产生多个领域的数据,具体可参考论文“Learning to Learn Single Domain Generalization”。
2024-08-31 21:01:53 657
原创 迁移学习之领域自适应(domain adaptation)
比如有一堆有标注的训练数据,这些数 据来自源领域,用这些数据训练出一个模型,这个模型可以用在不一样的领域。在训练的时 候,我们必须要对测试数据所在的目标领域有一些了解。随着了解的程度不同,领域自适应的方法也不同。如果目标领域上有一大堆有标签的数 据,这种情况其实不需要做领域自适应,直接用目标领域的数据训练。如果目标领域上有一点 有标签的数据,这种情况可以用领域自适应,可以用这些有标注的数据微调在源领域上训练 出来的模型。这边的微调跟BERT的微调很像,已经有一个在源领域上
2024-08-31 11:17:36 1027
原创 迁移学习之领域偏移(domain shift)
MNIST 数据集中的数字是黑白的,MNIST-M 数据集中的数字是彩色的,如果在MNIST 数据集上训练,在MNIST-M数据集上测试,正确率只有52.25%。比如在训练数据上面,可能每一个数字出现的概率 都是一样的,但是在测试数据上面,可能每一个数字输出的概率是不一样的,有可能某一个 数字它输出的概率特别大,这也是有可能的。对于领域自适应,训练数据是一个领域,测试数据是另外一个领域,要把某一个领域上学到的信息用到另 外一个领域,领域自适应侧重于解决特征空间与类别空间一致,但特征分布不一致的问题。
2024-08-31 00:12:39 498
原创 扩散模型(Diffusion Model)
Midjourney、Stable Diffusion 或 DALL-E 的数据往往来自 于LAION,LAION 有 58.5 亿张的图片,所以难怪今天这一些模型可以产生这么好的结果, LAION 有一个搜索的Demo的平台,里面内容很全面,比如猫的图片,它不是只有猫的图片 跟英文文字的对应,还有跟中文、英文的对应。训练的部分要怎么改呢,如图8所示,每一张图片都有一段文字,所以先把这张图片做 完扩散过程以后,在训练的时候,不只要给噪声预测器加入噪声后的图片,还有现在步骤的 ID,多给一个就是文字的输入。
2024-08-29 23:29:05 1083
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人