come on! 雅思考试两千多块钱的报名费,你只会用 clean up, oh my god! 让考官怎么给你高分? ok, 我 们先看一下这个词, 它的英式发音 declutter 美式发音 declutter declutter 我 比较偏向美式 alright。 我 们在雅思口语的 part one 当中呢,就可以用这个词来做一个高分的回答。我们可以说,嗯, my room's not always spotless so every season i declutter my desk and wardrobe it instantly makes a space feel fresher and productive and i asked the 口语 part to。 描述一个好习惯的时候,我们可以说, i form the habit of digital decluttering every sunday, i delete unused apps and organize my photo gallery this simple routine really reduces my stress and boost productivity all right。 学会了吗?这就是 declutter 的 两种用法,它比你的这个 clean up 要更加的精准,它更加的时髦,让你的答案就从简单的打扫变成升级为一个精神的整理。 all right! 这个雅思考官不给高分都很难的。 okay, so next time try to use declutter all right stop using clean up bye bye。
粉丝1.1万获赞2.1万


今天咱们用大白话聊聊 v i t, 也就是 vision transformer, 别被它这个高大上的名字糊住哈,其实它也不难,我把它原始论文当中最重要的一张图贴到这里。 如果你看过我讲 bird 那 期短视频,我相信你大概一定知道 v i t。 是 怎么回事了。我们都知道传统的卷积神经网络,通过卷积计算提取图片的特征, 这种卷积计算凭借局部链接、权重共享,还有平移不变性,用较少的参数量,通过堆叠多个卷基层,逐层去提取图片的特征。 网络越深,提取的特征呢,也就越高级。 v i t 则是换了一个思路,用语言模型来解决图片特征提取和图片分类的,我们看看它是怎么回事哈。假设我们有一张图片,我们把这张图片分成若干个单元格, 假设图片的分辨率呢,是二二四乘以二二四的,我们画出十四个乘十四个单元格,那么此时单元格的总数就是十四乘十四等于一百九十六个单元格, 每个单元格呢,就是十六像素乘以十六像素的。由于彩色图片是由 rgb 三个通道构成的,那么每个单元格的数据量就是三乘以十六乘以十六等于七百六十八。 一、看到七百六十八这个数,看过我 bird 那 几短视频的同学,一定要有似曾相识的感觉。我再给大家一些提示哈,这里的七百六十八,大家就可以把它当做 bird 模型的每个 token 的 词嵌入的维度。换句话说,每个网格的图片就相当于一个 token。 这里的一百九十六呢,大家就可以看作是我们输入到 word 模型里的句子,也就是序列的长度。然后我们把来自 rgb 三个通道的数值展平为一个七百六十八维的向量。 七百六十八维太多了,没法画,我就画成了三维的了哈,大家理解这个意思就行。好了,我们巩固一下哈。一张图片分成了若干个十六个像素乘以十六个像素的单元格, 每个单元格展平为一个七百六十八维的向量,也就是说每个单元格的图片这里都叫做一个 patch, 也就是块。 每个 patch 都可以用一个七百六十八维的向量来表示,并且我们有一百九十六个七百六十八维的向量 v i t 的 第一步就是把一百九十六个七百六十八维的向量分别进行一次向量投影计算, 其实就是经过一个简单的全连接神经网络,这个全连接网络的形状呢,就是输入是七百六十八个神经单元,输出呢则是 d 维的。在 v i t base 模型当中,这个 d 也是七百六十八维的,所以经过这个向量的计算后,输出的每个向量的形状呢,都是不变的。 这一步的操作叫做 patch embeds, 也就是块儿嵌入。大家可以理解为,这里就是我们处理自然语言时,给每个单词,也就是每个 token 进行的词嵌入。然后关键的一步来了哈, 我们要在这一百九十六个七百六十八维的向量的开头的位置,再加入一个七百六十八维的向量。 这个项链就是类似 bert 里的那个 class token, 也就是 cls 特别标记的那个项链。哎,讲到这儿,绝大部分同学应该都猜到了 v i t 要干什么了, 我们接着看哈,还是和 bert 一 样,给每个 patch, 也就是每个块再生成一个位置嵌入项链, 然后用位置嵌入向量与块向量相加,就得到了我们最终要输入到模型里的嵌入数据了。还记得吗?在 bt 里,这些数据就是一个一个 token, 但是在 v i t 里,它是一个一个 patch, 也就是一个一个块儿, 这里总数也变成了一百九十七了哈,因为我们前面增加了一个 cls 块,就像 birth 一 样,我们把数据输入到 v i t 里。 v i t base 版本一共有十二个编码器层,经过这十二个编码器层的逐层计算, 我们只需要关注第一个,也就是 cls token 所对应的那个输出向量,它也是一乘以一百六十八为的向量哈,然后把它输入到一个轻量的 mlp 头里。这个 mlp 头很简单,就是一个两层的全连接网络而已, 只不过中间的激活函数它用的是格鲁而已。这个 m l p 的 输出值的维度对应的就是图片分类的类别数,比如图片数据集对应一千个类别,这里呢就是一千, 然后再经过一个 softmax 函数,计算一千个类别的概率,概率最大的那个类别就是这张图片里的最终类别。比如这张图片里是只猫,那么这个图片的类别就是猫, 怎么样? v i t 是 不是和我们讲的 bird 简直一模一样?它们之间不同的地方仅仅在于输入的数据从文本序列的每一个 token 变成了一个个图片的块而已。所以,如果我们将 bird 和 v i t 进行了一个类比, 那么原始图片就相当于要输入给 bird 的 文本,图片分块就相当于给文本进行分词,现行投影计算呢,就相当于词嵌入计算。哎, 现在同学们已经对 v i t。 在 做什么有了很深的了解了。没错,和传统的 c n n 相比, c n n 的 感受也是通过堆叠多个卷基层逐渐扩大的, 在网络的深处才能看到完整的原始图片的完整特征。但是 v i t 借着 transformer 的 编码器架构,在第一层就接收到了整张图片全部区域的嵌入数据,所以 v i t。 在 第一层就获得了图片的大局感受也。 另外呢,就是 c n 的 不同卷积盒学习不同的特征,都是局部特征, v i t 则可以通过注意力计算,动态地把全部位置的特征都学习到,并且可以动态组合不同位置的特征,对整张图片的理解就更加的完整。 这就是 vision transformer 的 全部了,是不是很强大? vision transformer 虽然很强大,但是呢,它也有它的问题,就是它的计算量比一般的 cnn 高出了好几十倍, v i t 辣质版本甚至高出了至少三百倍的计算量,而且训练的时间更长。 所以 v i t 后来的 swing 和 p v t 等改进版本都是围绕如何降低计算量和计算复杂度的角度进行模型的优化和升级的。 但是 v i t 本身推动了计算机视觉领域的范式的转变,模型架构的统一,为多模态大模型提供了新的可能。好了, v i t 咱们就讲完了,大家有什么不懂不明白的地方评论区告诉我哈,我帮大家一一解答,咱们下期视频见。
