机器学习,神经网络中,自注意力跟卷积神经网络之间有什么样的差异或者关联?

如图 6.38a 所示,如果用自注意力来处理一张图像,假设红色框内的"1"是要考虑的像素,它会产生查询,其他像素产生

图 6.37 使用自注意力处理图像

。在做内积的时候,考虑的不是一个小的范围,而是整张图像的信息。如图 6.38b 所示,在

做卷积神经网络的时候,卷积神经网络会"画"出一个++感受野(receptive field)++ ,每一个滤波

器(filter),每一个神经元,只考虑感受野范围里面的信息。所以如果我们比较卷积神经网络

跟自注意力会发现,卷积神经网络可以看作是一种简化版的自注意力 ,因为在做卷积神经网
络的时候,只考虑感受野里面的信息。而在做自注意力的时候,会考虑整张图像的信息。在卷

积神经网络里面,我们要划定感受野。每一个神经元只考虑感受野里面的信息,而感受野的

大小是人决定的。而用自注意力去找出相关的像素,就好像是感受野是自动被学出来的,网
络自己决定感受野的形状
。网络决定说以这个像素为中心,哪些像素是真正需要考虑的,哪

些像素是相关的,所以感受野的范围不再是人工划定,而是让机器自己学出来。关于自注意

力跟卷积神经网络的关系,读者可以读论文 "On the Relationship between Self-attention and

Convolutional Layers",这篇论文里面会用数学的方式严谨地告诉我们,卷积神经网络就是自

注意力的特例。

图 6.38 自注意力和卷积神经网络的区别

自注意力只要设定合适的参数,就可以做到跟卷积神经网络一模一样的事情。卷积神经网络的函数集(function set)与自注意力的函数集的关系如图 6.39 所示。所以自注意力是更

灵活的卷积神经网络,而卷积神经网络是受限制的自注意力。自注意力只要通过某些设计、某

些限制就会变成卷积神经网络。

图 6.39 卷积神经网络的函数集与自注意力的函数集的关系

既然卷积神经网络是自注意力的一个子集,说明自注意力更灵活。++更灵活的模型需要更
多的数据。++ 如果数据不够,就有可能过拟合。而比较有限制的模型,它适合在数据少的时候使

用,它可能比较不会过拟合。如果限制设的好,也会有不错的结果。谷歌的论文 "An Image

is Worth 16x16 Words: Transformers for Image Recognition at Scale" 把自注意力应用在图

像上面,把一张图像拆成 16 × 16 个图像块(patch),它把每一个图像块就想像成是一个字

(word)。因为一般自注意力比较常用在自然语言处理上面,所以我们可以想像每一个图像块

就是一个字。如图 6.40 所示,横轴是训练的图像的量,对谷歌来说用的所谓的数据量比较少,

也是我们没有办法用的数据量。这边有 1000 万张图,是数据量比较小的设置(setting),数

据量比较大的设置呢,有 3 亿张图像。在这个实验里面,自注意力是浅蓝色的这一条线,卷

积神经网络是深灰色的这条线。随着数据量越来越多,自注意力的结果越来越好。最终在数据

量最多的时候,自注意力可以超过卷积神经网络,但在数据量少的时候,卷积神经网络是可以

比自注意力得到更好的结果的。自注意力的弹性比较大,所以需要比较多的训练数据,训练

数据少的时候就会过拟合。而卷积神经网络的弹性比较小,在训练数据少的时候结果比较好。

但训练数据多的时候,它没有办法从更大量的训练数据得到好处。这就是自注意力跟卷积神

经网络的比较。

下一篇:自注意力与循环神经网络对比

来源:李宏毅深度学习教程笔记 LeeDL_Tutorial_v.1.1.1.pdf 132M Page131-133

https://github.com/datawhalechina/leedl-tutorial

相关推荐
简简单单做算法6 小时前
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
神经网络·机器学习·人脸识别·dnn·grnn·pnn·orl人脸库
B站计算机毕业设计超人8 小时前
计算机毕业设计Python+卷积神经网络CNN交通标志识别 机器学习 深度学习 爬虫 数据可视化 人工智能 模型训练
图像处理·python·深度学习·机器学习·cnn·tensorflow·卷积神经网络
IT古董10 小时前
【人工智能】Python常用库-Scikit-learn常用方法教程
人工智能·python·机器学习·scikit-learn
qq_1893704910 小时前
鸢尾花植物的结构认识和Python中scikit-learn工具包的安装
python·机器学习·scikit-learn
Mr.谢尔比12 小时前
李宏毅机器学习课程知识点摘要(6-13集)
人工智能·pytorch·深度学习·神经网络·机器学习·计算机视觉
sp_fyf_202412 小时前
【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法
人工智能·深度学习·机器学习·语言模型·数据挖掘·学习方法
橙子小哥的代码世界13 小时前
【大模型】从零样本到少样本学习:一文读懂 Zero-shot、One-shot 和 Few-shot 的核心原理与应用!
深度学习·神经网络·自然语言处理·tensorflow·sklearn
魍魉198814 小时前
神经网络的数学——一个完整的例子
神经网络·决策树·机器学习
IT古董15 小时前
【人工智能】Python常用库-TensorFlow常用方法教程
人工智能·python·机器学习·tensorflow
L_cl15 小时前
NLP 2、机器学习简介
人工智能·机器学习·自然语言处理