关于深度学习局部视野与全局视野的一些思考
关于深度学习局部视野与全局视野的一些思考最近,我在学习一个基于Transformer的网络模型时,注意到了一些局部特性和全局特性的概念。引发了一些疑问:
[*]为什么说CNN只能看到局部地区,而transformer能看到全局地区?
[*]什么是token? 对于图像中又指代什么?
[*]一个卷积核只看它覆盖的小地区(patch),无法直接“看到”整张图。 但卷积核划过整幅图,为什么说只看到局部特性?
[*]CNN通过堆了多层,比如三层 3×3 卷积,来扩大感受野 ,为什么堆积多层就会提高感受野?
[*]关于全局语义增强后的图像特性序列, 这些特性是体现在数值上的改变么?
[*]encoder,decoder做了什么?
第一个问题:为什么说CNN只能看到局部地区,而transformer能看到全局地区?
我们都知道,CNN是通过卷积核来提取图像特性的,直观上来看,最让人注意到的就是通过卷积之后图像变小了,这就像是将一个大的图像压缩成一个小的特性图,我之前更多关注的是,如许做降低了盘算压力。
现在来明白为什么说CNN只能看到局部地区,如果有一个33大小的卷积核,以步长为1的方式划过整幅图像。在效果图中,第一次卷积的效果只跟它看到的33像素大小的地区有关。这就有点像盲人摸象,有个盲人去摸大象来判断是什么样子的。第一次摸到鼻子,就说大象像一条蛇,第二次摸到耳朵,就说大象有两个翅膀,大概会飞。以下图为例,效果图中的5,4,5,5这四次卷积得到的特性效果是相对独立的。
而在transformer中,通过将5,4,5,5并排展开成序列,通过注意力机制,就是为了使相对独立的效果块与其他效果块相互比力,加权来建立接洽。通过这种方式,我们以为transformer看到了全局地区,可以或许学习全局的特性。
https://i-blog.csdnimg.cn/direct/1d8f9b5b49084875a6b0ab176428ae88.webp
第二个问题:什么是token? 对于图像中又指代什么?
在语言笔墨模型中,token代表一个单词,而在图像中,token代表图像的一个个切块(patch),就比如256256的图像,通过一串卷积后得到了16161024特性图。 此中1616特性图中的每个像素值,都代表着对应于图像的一个个小切块(patch),这个小切块是卷积看到的地区。每个 token 对应的是图像上的一个小地区的位置,并且它的值就是这个地区的特性向量(1024维)
第三个问题:一个卷积核只看它覆盖的小地区(patch),无法直接“看到”整张图。 但卷积核划过整幅图,为什么说只看到局部特性?
虽然卷积核确实会划过整幅图像,但每次滑动只关注一个3*3的小地区,输出的一个数值(向量),仅代表这个小地区的特性;虽然划过了整幅图,但每个输出值只跟那一小块地区有关,有接洽。
第四个问题:CNN通过堆了多层,比如三层 3×3 卷积,来扩大感受野 ,为什么堆积多层就会提高感受野?
感受野(Receptive Field)指的是 输出特性图中某一个神经元在输入图像中所“望见”的地区大小。
用直白一点的话说:一个输出位置能“看到”输入图像的多大范围。
假设有一个 3×3 的卷积核,它在输入图像上滑动,那么这个卷积核一次只看输入图像的 一个 3×3 小块,所以,输出特性图中的每个点,感受野就是 3×3。当利用连续堆叠的三层3*3卷积(无池化,步幅为1,padding为1),来看它是怎么让感受野变大的。
第1层:输出的每个像向来自输入的 3×3 地区→ 感受野是 3×3
第2层:它的输入是上一层的输出。上一层的输出的每个点“看到”3×3 → 所以这一层的卷积核,其着实最初输入图像上“看”到了 5×5 的地区。
第3层:继续类推,它的输出每个点能“看到”上层输入中的 3×3→ 上层输入的每个点又看到 5×5→ 终极这个输出的每个点可以看到原图中的 7×7 地区。
堆叠多层卷积层,相称于在原图上间接建立了更大范围的信息融合路径,从而扩大感受野,让模型能提取更“全局”的信息。这里大胆推测CNN网络的发展为了叠加多层,就是为了扩大感受野。
但对于transformer来说,他不用履历艰难的堆叠来一点点扩大感受野,通过自注意力及交叉注意力就能获得包含全局信息的特性。
第四个问题:关于全局语义增强后的图像特性序列, 这些特性是体现在数值上的改变么?
全局语义增强后的图像特性序列通常体现在数值上的改变。具体来说,图像的每个特性向量(通常是卷积网络中的输出)表现了图像的某个局部地区的信息。在通过全局语义增强时,这些特性向量会根据全局信息(比如整个图像的上下文、长程依赖等)进行调解或更新。这些改变可以是通过以下方式进行的:
特性加权:全局语义增强方法大概会通过某种机制(比如自注意力机制)对每个特性加权,使得某些特性在增强后变得更加突出,或者根据其与全局上下文的关系进行调解。这种加权操纵会改变特性向量中的数值。
上下文信息融合:通过思量图像中远离当前地区的信息,特性向量会融入更多的上下文信息。这种信息融合使得本来局部的特性可以或许获得更多全局信息的影响,进而改变其数值表现。
特性变换:例如通过变换网络(如 Transformer、图卷积等)进行的操纵,大概通过非线性函数或者线性映射来调解特性数值,使得它们更能代表图像中的全局语义信息。
因此,经过全局语义增强后,每个特性的数值通常会有所变化,反映出该特性与全局语义的关系增强或调解。这种数值变化有助于更好地捕捉图像中的高条理语义信息,提升后续任务(如分类、目标检测、分割等)的性能。
encoder,decoder做了什么?
简单说,encoder,decoder都是通过query,key,value;注意力机制来完成的。encoder更多的是为了输出包含全局信息的value.
而decoder,会根据query信息,生成与query信息反应猛烈的对应value值,通过解码value值,就可以得到预测的效果。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]