----0648今天还是醒的挺早的,4点50就起床了。在犹豫是去看比赛,还是把老师的课听完。因为还是很想看无监督学习和强化学习的,最后决定先看课叭。
看了姜成翰助教关于预训练模型中遇到问题的讲解。
一共讲了两个问题,以及相应解决方法:
1、数据量小,模型难以fine-tune的问题
2、参数量过大问题
其中我产生了两个问题:
1、promt-tuning和fine-tuning有什么不同?
大体来说,原来是多加了标签进行下游任务,调整预训练模型。
现在是通过设计需要做的下游任务,来调整预训练模型。
相比之下,我认为前者更加暴力;而后者更多地用了原来预训练模型中本来就有的语言信息,因为被预测出来的值也是原来的语言信息。但是具体构建上的每一步就需要仔细研究。
参考资料:https://blog.csdn.net/BAAIBeijing/article/details/121005830
下载了一篇关于prompt tuning的综述https://arxiv.org/pdf/2107.13586.pdf
本需要预训练模型根据下游任务调整的形式,被替换成了调整下游任务以适应预训练模型的方法,成为一种预训练-精调的新形式。
当模型选择好之后,为了使当前的Prompt框架(framework)能够支撑更多的下游任务,可以考虑进行范式的拓展,例如,将之前的Single-Prompt设计拓展成Multi-Prompt,使模型能够更加灵活地解决更多的下游任务。
2、进入预训练模型之前的embedding是什么?–更改问题描述—BERT模型的输入是什么?
查这个问题的时候,又get到一篇综述《Pre-trained Models for Natural Language Processing: A Survey》,但这个知乎本身好像并没有解决我的问题。
参考资料:https://zhuanlan.zhihu.com/p/145718017
大概看懂了bert训练的时候输入的向量有词向量、段向量(学习句子关系)、位置向量(transformer本身不能学习位置信息)。
参考资料:https://blog.csdn.net/yangfengling1023/article/details/91954116
但是真正用bert做任务的时候的输入是什么呢?
看到一篇实战代码,但估计网上有很多,先知乎收藏一下叭。
机器之心写的fine-tune实战文章,但是还是没有解决我的问题。https://www.jiqizhixin.com/articles/2018-11-23-15
看到这张图,感觉明白一点了。
input是由文字转换成的上文提到的三个embedding。分别token embeddings+segment embeddings+positional embeddings.
这篇资料比较好:
https://www.cnblogs.com/d0main/p/10447853.html
Segment Embeddings 层只有两种向量表示。前一个向量是把0赋给第一个句子中的各个token, 后一个向量是把1赋给第二个句子中的各个token。如果输入仅仅只有一个句子,那么它的segment embedding就是全0。
鹅鹅鹅又看了一下自己的讲义,发现那个embedding layer好像是在bert里面的。
有2个enlightenings:
1、最后的预训练模型导致的安全问题可以进一步研究。
2、下载了一篇与小样本多任务有关的最新论文,和比赛有关系。
----0739总结查完问题了,去收拾个宿舍,然后吃饭。有点想了解知识蒸馏。发现老师的助教有讲解!!还看到了GNN!!!
不过还是先看老师的正课叭!一会看异常检测啦!!!
------0902看完了VAE,有点困。接了水,洗了脸,泡了杯咖啡,不困了。看了一会Explainable AI,想先总结一下VAE。
本来期待看无监督学习,后来发现老师只讲了VAE。
具体关系是VAE是无监督学习的一种,可以用作异常检测,也可以用在很多其他地方,因为可以编码嘛!比如说embedding,压缩或者其中有一小点介绍entanglement,如果可以把自编码的东西解开,那么就可以分别利用。这种自编码的逻辑其实就是我昨天受到cycle gan所启发而想到的,哈哈哈!!别人早都想过了!!!这种自编码之所以能够实现,应该是本来很复杂的数据其实可以化为比较简单的东西,所以这种东西也可以还原回去。
老师还单开了异常检测的课程,我也非常感兴趣,因为之前做了电诈嘛。也思考了一下为什么一般异常检测都是无监督学习。因为异常检测的样本量很少呀,就跟没有一样。咳咳…
–0908继续看explainable AI了。今天还想看强化学习呢。
看explainable AI将数据处理时,提到可视化,用降维,我就去收藏老师降维的视频了。然后顺便看到老师其实很早以前也讲过传统ml的内容,打算有时间都看看!!!
2016的learning map。这图太感人了!!!什么是structured learning呢——输入和输出都是结构化的数据
–1003看完了exlainable AI。主要是从AI的可解释性讲解,分为local和globa,分别为解释具体的一个待测物和解释模型的侧重点。
local里面讲了(integrated) gradient和盖住的方法。
global讲了 probing,visualization和lime的方法。
去接杯水,休息一下。
----1014继续看!!!
------10:56看完了attack。讲的是神经网络安全,也是和安全相关的。分为攻击和防御。攻击方面分为黑箱(未知参数,也不是很难)和白箱(已知参数)。防御方面分为主动(训练时,adversarial training)和被动(后期)。最近英文、中文、数字都写不对,尤其是英文单词。今天看完强化学习,要好好休息一段了!!!
----1059看看adaption有多少,少的话,先去吃饭,吃饭的时候给看了。老师的课并不长,但是边上推荐的助教的课加起来也有一个小时。那么,至少把老师的课看了哦。
—1354去洗了澡,也看了老师讲的adaption,在听助教讲的adaption。
里面讲到adaption使用在source domain有很多标记数据;target domain标记数据比较少,是一种迁移学习,主要的目的就是把target domain的分布投影到source domain。所以第一种做法就是基于统计的一些方法;第二种方法是基于对抗网络的。
然后我就产生了一个问题:对抗网络一般用在什么场景呢?
还有一个之前的问题,也记录下来吧:残差网络的优缺点是什么?
现在最后检查一遍论文,没问题就交了。
1411纠结地检查了半天!鹅鹅鹅!!!等待一下结果。
1416可以听强化学习啦!!!!!!!!
1453看了一会,有点困,就趴了一会。应该是睡着了,脑子里不断闪如DL的术语哈哈哈哈!
现在继续看!
-------1654看了前两节强化学习。大概了解了一下,打算休息了。先去吃个饭。强化学习有Actor和env两个角色。我们要训练的是Actor的网络。但是reward和环境的observation都有不确定性,actor本身的行为也是有随机性的,所以最终的return不能作为损失函数。
所以只能采取policy strategy,一轮一轮的训练,对每个行为进行打分,定义要不要让机器做【具体打分细节需考虑到不能短视&&过于靠后的reward和之前的action无关&&reward的值是相对的,需要标准化同时减某个数值,这个我不太理解。】;通过cross-entropy来计算损失。
总之,先这样,接下来就好好复习之前看的老师的课程,并且准备英语比赛、考试、&&大数据竞赛了、毕设答辩了。
先去吃饭、拿快递。
--------2008改完了人脸识别的bug,录了屏给老师发了过去。吃饭的时候看了一部分知识蒸馏,其实是模型压缩的一部分。现在在犹豫是做比赛还是学英语。先把一直想看的learning map看了。
这图真的是太强了。
尤其是这个蓝色的是scenario、task、method。
scenario是场景,分为监督学习(有标签);无监督学习(没有正确答案);强化学习(不知道正确答案);迁移学习(大部分有标签,小部分没标签,二者分布不完全一样);半监督学习(不清楚)
task是任务,分为回归、分类、结构化学习
method是方法,分为线性模型和非线性模型,有传统的非线性和深度学习。
—2036任务和老师交接完了,打算看看catti了!!明天再看模型。