学习目标:
学习内容:
- Vision Transformer论文
- ViTGAN论文
- 深度学习中的卷积神经网络
学习时间:
10.24-10.28
学习产出:
一、Vision Transformer
1、patch embedding:例如输入图片大小为224x224,将图片分为固定大小的patch,patch大小为16x16,则每张图像会生成224x224/16x16=196个patch,即输入序列长度为196,每个patch维度16x16x3=768,线性投射层的维度为768xN (N=768),因此输入通过线性投射层之后的维度依然为196x768,即一共有196个token,每个token的维度是768。这里还需要加上一个特殊字符cls,因此最终的维度是197x768。由此将视觉问题转化为seq2seq问题。 2、positional encoding:ViT同样需要加入位置编码,位置编码可以理解为一张表,表一共有N行,N的大小和输入序列长度相同,每一行代表一个向量,向量的维度和输入序列embedding的维度相同(768)。 3、LN/multi-head attention/LN:LN输出维度依然是197x768。多头自注意力时,先将输入映射到q,k,v,如果只有一个头,qkv的维度都是197x768,如果有12个头(768/12=64),则qkv的维度是197x64,一共有12组qkv,最后再将12组qkv的输出拼接起来,输出维度是197x768,然后再过一层LN,维度依然是197x768。 4、MLP:将维度放大再缩小回去,197x768放大为197x3072,再缩小变为197x768 一个block之后维度依然和输入相同,都是197x768,因此可以堆叠多个block。最后会将特殊字符cls对应的输出 z L 0 作为encoder的最终输出 ,代表最终的image presentation(另一种做法是不加cls字符,对所有的tokens的输出做一个平均)
二、ViTGAN
三、深度学习
学习了吴恩达的卷积神经网络,了解了卷积神经网络的具体过程;学习了一些经典的网络,如LeNet-5、AlexNet、残差网络、Inception网络;学习了人脸检测及识别的过程以及YOLO算法的原理。 卷积神经网络:卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一 。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络 。
- AlexNet:
输入一张 227×227×3 的图片(原文中使用的图像是224×224×3),第一层使用 96 个 11×11 的过滤器,stride为 4,因此尺寸缩小到 55×55。然后用一个 3×3 的过滤器构建最大池化层,过滤器尺寸𝑓 = 3,stride为 2,卷积层尺寸缩小为 27×27×96。接着再执行一个 5×5 的same卷积,进行padding 之后,输出是 27×27×256。然后进行最大池化,尺寸缩小到 13×13。再执行一次 same 卷积,变为13×13×384,再做一次 same 卷积后使用256个过滤器再做一次同样的操作,使尺寸变为13x13x256 最后再进行一次最大池化,尺寸缩小到 6×6×256。6×6×256 等于 9216,将其展开为 9216 个 单元,然后进行全连接。最后使用softmax函数输出识别的结果,看它究竟是 1000 个可能的对象中的哪一个。 - Siamese 网络:将两个输入feed进入两个神经网络(Network1 and Network2),这两个神经网络分别将输入映射到新的空间,形成输入在新的空间中的表示。通过Loss的计算,评价两个输入的相似度。
输入两个图片,第一张输入network1,第二张输入network2(两个网络参数相同),然后得到一个不同的 128 维的向量(编号 3),这个向量代表第二个图片,将第二张图片的编码叫做f(x2)(x(1)和x(2)代表两个输入图片),然后定义𝑑,将x(1)和x(2)的距离定义为这两幅图片的编码之差的范数, 如果d小于某个阈值𝜏,那么这时就能预测这两张图片是同一个人。
|