深度学习之transformer
embedding
什么是Embedding?
Embedding(嵌入)是拓扑学里面的词,在深度学习领域经常和Manifold(流形)搭配使用。可以用几个例子来说明,比如三维空间的球体是一个二维流形嵌入在三维空间(2D manifold embedded in 3D space)。之所以说他是一个二维流形,是因为球上的任意一个点只需要用一个二维的经纬度来表达就可以了。又比如一个二维空间的旋转矩阵是2x2的矩阵,其实只需要一个角度就能表达了,这就是一个一维流形嵌入在2x2的矩阵空间。
什么是深度学习里的Embedding?
这个概念在深度学习领域最原初的切入点是所谓的Manifold Hypothesis(流形假设)。流形假设是指“自然的原始数据是低维的流形嵌入于(embedded in)原始数据所在的高维空间”。那么,深度学习的任务就是把高维原始数据(图像,句子)映射到低维流形,使得高维的原始数据被映射到低维流形之后变得可分,而这个映射就叫嵌入(Embedding)。比如Word Embedding,就是把单词组成的句子映射到一个表征向量。但后来不知咋回事,开始把低维流形的表征向量叫做Embedding,其实是一种误用。。。如果按照现在深度学习界通用的理解(其实是偏离了原意的),Embedding就是从原始数据提取出来的Feature,也就是那个通过神经网络映射之后的低维向量。
具体可参考:Neural Networks, Manifolds, and Topology
softmax函数
softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是
更形象的如下图表示:
softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标!
具体参考:Softmax 函数的特点和作用是什么?
Dim
DIM 是Dimension
的简写,用來定义变量等。