深度学习随笔
一、SPP的作用
解决了训练CNN需要输入图像尺寸一致的问题。
一个CNN可看作由卷积、池化、全连接层组成,由于全连接层的权重矩阵是一个固定值,因此输入全连接层的特征图的维度也必须固定。
SPP利用多尺度思想解决了上述问题,使得神经网络的训练过程由图1变为图2,即输入图像的尺寸可以不一样,不再受到限制。
图1 原有神经网络训练过程
图2 带SPP的神经网络训练过程
SPP的思想就是利用多个不同尺度的池化层进行特征的提取,融合成一个21维的向量输入至全连接层。
图3 SPP网络结构
二、Attention原理
将SourceSourceSource中的构成元素想象成是由一系列的<Key,Value><Key,Value><Key,Value>数据对构成,此时给定TargetTargetTarget中的某个元素QueryQueryQuery,通过计算QueryQueryQuery和各个KeyKeyKey的相似性或者相关性,得到每个KeyKeyKey对应ValueValueValue的权重系数,然后对ValueValueValue进行加权求和,即得到了最终的AttentionAttentionAttention数值。所以本质上AttentionAttentionAttention机制是对SourceSourceSource中元素的ValueValueValue值进行加权求和,而QueryQueryQuery和KeyKeyKey用来计算对应ValueValueValue的权重系数。即可以将其本质思想改写为如下公式:
Attention(Query,Source)=∑i=1LxSimilarity(Query,Keyi)∗ValueiAttention(Query,Source)=\\sum_{i=1}^{L_{x}}Similarity(Query,Key_{i})*Value_{i}Attention(Query,Source)=i=1∑LxSimilarity(Query,Keyi)∗Valuei
三、向量内积
向量内积又叫向量点乘,公式如下:
a⃗⋅c⃗=∥a⃗∥×∥c⃗∥×cosθ\\vec{a}\\cdot \\vec{c}=\\parallel\\vec{a}\\parallel\\times \\parallel\\vec{c}\\parallel \\times cos \\thetaa⋅c=∥a∥×∥c∥×cosθ
四、Transformer中的Scaled Dot-Product Attention
公式如下:
Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(\\frac{QK^{T}}{\\sqrt{d_{k}}})VAttention(Q,K,V)=softmax(dkQKT)V
对一组key-value对和n个query,可以使用两次矩阵乘法,并行的计算里面的每个元素。