深度学习Conditional Generation by RNN & Attention的原理和方法(李宏毅视频课笔记)_condition生成方式 cross attention(3)

写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1.2.2 Machine Translation

原理类似,即使用一个RNN文字信息转化为vector,然后在另一个RNN的每一个结点都输入这个vector:
在这里插入图片描述
可以将左边的RNN视为一个Encoder(编码器),右边的RNN视为一个Decoder(解码器),这两者是一起训练的。这也是Sequence to Sequence learning的想法:
在这里插入图片描述

1.2.3 Chat-bot(聊天机器人)

对于聊天机器人来说,这件事可能会是更困难的。因为除了要回答上一句话,还要关注聊天过程中其他说过的话,不然就会出现重复的情况。可以设计一种双层的Encoder,一层用于将说过的话编码,一层用于将对方刚刚的话编码,两者混合编码之后再丢入Decoder中:
在这里插入图片描述

2 Attention

Attention简而言之就是Dynamic Conditional Generation(动态的条件生成)。刚刚的做法是每一个时间点都接入相同的vector,但是可以使的每一个时间点接入不同的vector。这样做有什么好处呢?比如当你的input很复杂,无法用一个vector来描述。如果每次都是参考整个句子的vector,可能会使得多余的信息影响当前输出的训练,比如输出的“machine”仅参考“机器”会训练的更好:
在这里插入图片描述

2.1 Machine Translation(Attention-based Model)

机器翻译使用attention这件事怎么做呢?首先使用输入“机器学习”到一个RNN中,每一个字都可以在RNN的Hidden Layer的output获得一个vector。接下来有个初始的向量

z

0

z^0

z0,将这个

z

0

z^0

z0和

h

1

h^1

h1进行match配对产生一个匹配度的描述

a

0

1

a^1_0

a01​:
在这里插入图片描述
这个match可以自定义,可以使用cosine或者一个小的NN模型,使得输出为一个scalar数值,这个match可以和整个模型一起learn:
在这里插入图片描述
得到了4个

α

0

1

α

0

2

α

0

3

α

0

4

\begin{array}{llll}\alpha_{0}^{1} & \alpha_{0}^{2} & \alpha_{0}^{3} & \alpha_{0}^{4}\end{array}

α01​​α02​​α03​​α04​​,再经过一层softmax(不是必要的)之后,得到

α

^

0

1

α

^

0

2

α

^

0

3

α

^

0

4

\begin{array}{cccc}\hat{\alpha}_{0}^{1} & \hat{\alpha}_{0}^{2} & \hat{\alpha}_{0}^{3} & \hat{\alpha}_{0}^{4}\end{array}

α01​​α02​​α03​​α04​​使得这些值的和为1。根据这4个值,可以得到

c

0

=

α

^

0

i

h

i

=

0.5

h

1

0.5

h

2

\begin{aligned} c^{0} &=\sum \hat{\alpha}_{0}^{i} h^{i} =0.5 h^{1}+0.5 h^{2} \end{aligned}

c0​=∑α^0i​hi=0.5h1+0.5h2​,将其作为Decoder Input,得到“machine”的输出(因为权值较大)。
在这里插入图片描述
使用

z

1

z^1

z1重复刚刚的操作:
在这里插入图片描述
这个过程一直持续,直到停止。

2.2 Speech Recognition

在这里插入图片描述

2.3 Image Caption Generation(Attention-based Model)

那么image怎么加上attention-base model呢?可以用一组vector来描述一张图片,将CNN的filter前的矩阵当作z0,然后将filter的输出做weight sum,得到红色的vector,然后输入到RNN的Decoder就可以得到z1,也可以输出word1。以此类推。
在这里插入图片描述实验可以表明在产生相应词汇的时候机器注意的点是不同的:
在这里插入图片描述

2.4 Memory Network

在这个上面做attention,最常用在阅读理解上面。Document中有很多句子的vector,然后将提出的问题也处理为一个vector。同样的使得q和x进行match得到a,求weight sum,作为Extracted Information和问题一起丢进DNN中,就可以获得Answer。这整个模型是可以一起训练的:
在这里插入图片描述
还有一个更复杂的版本,将Document中的句子转换成两种不同的向量,也就是拿去和q进行match的向量和Extracted Information中使用的向量不一样,这样能有更好的结果。补充一点:最后的Extracted Information可以拿去和q相加作为新的问题输入,这叫做Hopping:
在这里插入图片描述
一个更复杂的版本。使用两层的vector,计算attention,再计算weight sum,再传到下一层vector,最后再使用DNN:
在这里插入图片描述

2.5 Neural Turing Machine(神经图灵机)

一般的做法是在Memory上面做attention,这个可以根据match score修改存在Memory里面的内容。不只是读Memory,也可以写Memory。

如下图,是现有一个初始的attention(蓝色),计算的结果是

r

0

r^0

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

😝朋友们如果有需要的话,可以联系领取~

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

2️⃣视频配套工具&国内外网安书籍、文档
① 工具

② 视频

image1

③ 书籍

image2

资源较为敏感,未展示全面,需要的最下面获取

在这里插入图片描述在这里插入图片描述

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值