This week the paper 《Recurrent neural network regularization》 has studied and analyzed, and this paper was published at ICLR「International Conference on Learning Representations」in 2015.The technology in the paper is not the latest one, but it is definitely a technology worth learning.unfortunately, I don’t know much about RNN, so I am only half aware of the paper. But the core idea can be extracted was used for the Dropout technology in LSTMs to solve the overfitting problem in the network. At the same time, I briefly learned GNN technology, which is a different technology from CNN about image processing.Finally, I also learned the relevant technology of RNN.
本周论文《递归神经网络正则化》进行了研究分析,这篇论文发表在2015年的ICLR(学习表征国际会议)上,论文中的技术不是最新的,但也是值得学习的技术,可惜我对RNN(LSTM)了解不多,所以对这篇论文的了解只有一半。但可以提取的核心思想是用于LSTM中的Dropout技术来解决网络中的过拟合问题。同时,我简要地学习了GNN技术,这是与CNN关于图像处理的不同技术。最后,我还学习了RNN的相关技术。
本篇论文的内容其实不是很懂,因为本周还在研究经典RNN模型,对LSTM一知半解,所以本篇论文知识学习其思想和创新点。(但阅读之后发现不到创新点,本论文对我作用不大)
本文的重点内容也就是集中在这个模块,分别是Long-short term memory units和Regularization with Dropout。
下面公式中,用下标表示时间步,用上标表示层。所有的状态都是n维的。
RNN可以描述为:将先前的状态通过确定性转换转换成当前隐层的状态。确定性状态转换函数如下所示:
LSTM能够记住之前的信息,这些信息被存储在记忆单元(memory cells)中,这些记忆单元可以表示为c,尽管LSTM在连接结构和激活函数上有所区别,但是都有存储单元来长时间的存储信息。LSTM的函数表示如下:
LSTM记忆单元的图示如下:
Dropout正则化的思想为:在每次训练的时候,让神经元以一定的概率失活,这样就可以打破神经元之间的相互依赖性,这个神经元学习到的特征不再与固定的输入有关,而是随机的,迫使网络学习到一些更加鲁棒的特征。一般来说,选择的Dropout率为0.5,因为这样随机性最强。
在本文中,通过在LSTM中引入Dropout机制从而减少网络的过拟合问题。正则化的多层RNN结构如下图所示,虚线箭头表示在其中应用了dropout的连接,实线表示在其中没有应用dropout的连接。
引入Dropout机制的函数表示为:
引入Dropout机制后,则是把上图标红部分进行了修改,这部分就是Dropout操作,D是将其参数的随机子集设置为零的dropout运算符。Dropout运算符破坏了unit所携带的信息,迫使它们更加健壮地执行其中间计算。同时,我们不想删除unit中的所有信息。这些unit记住过去许多时间步长发生的事件,这一点尤其重要。图3显示了在我们实现dropout的过程中,信息如何从时间步t-2发生的事件流向时间步t + 2的预测。我们可以看到,dropout操作者完全破坏了信息L+1次,并且该数目与信息所遍历的时间步长无关。标准dropout会干扰循环连接,这使得LSTM很难学会长时间存储信息。通过不在循环连接上使用dropout,LSTM可以从dropout正则化中受益,而不会牺牲其宝贵的记忆能力。
其中粗线显示了LSTM中信息流的典型路径。信息受dropout L + 1次的影响,其中L为网络深度。
———————————————————————————————————
最后是实验部分,就是一些改进数据,就是不展示了。
本文在LSTM网络中引入了Dropout机制,使Dropout机制在RNNs中发挥了较大的作用,结果表明,在LSTM中加入Dropout机制能提高网络的范化能力,降低过拟合。(本人想法:实验数据的确显示了Dropout机制在RNNs的确解决了网络中的过拟合(overfitting) 问题,但没有展现出他的Dropout和其他人的Dropout的差别在哪,也许是位置的不一样,收获不大,也有可能是对LSTM的理解不到位,我水平低而已)
欧几里得空间:常见的表格2维的欧几里得数据,RGB图像数据是三维欧几里得数据,长宽两个维度加一个颜色/通道维度;如果再加上batch,就是四维。
非欧几里得数据(non-Euclidean):没有上下左右,没有顺序,没有坐标参考点,难以用方方正正的(grid-like)矩阵/张量表示。
非欧数据的场景很多,如:计算机网络,病毒传播路径,交通运输网络(地铁网络),食物链,说到家谱,(生物)神经网络,基因控制网络,分子结构,知识图谱,推荐系统,论文引用网络等等。这些场景的非欧数据用图(Graph)来表达是最合适的,但是,经典的深度学习网络(ANN,CNN,RNN)却难以处理这些非欧数据,于是,图神经网络(GNN)应运而生。
与CNN和RNN类似,图节点的特征表达仍是非欧数据机器学习的关键任务之一,虽然有些传统的利用领域知识定义手工特征的方法,但从数据中自动学习特征,实现端到端的预测仍是大家希望的共同目标。
非欧数据比欧几里得数据的结构复杂,由于节点的位置可以移动,但图还是原来的图,试图使用一个卷积核在图上“卷”是行不通的。同时,节点数量也可能发生变化,比如新增或删除一个节点,导致与深度学习模型的输入维度上不匹配。
并且图的节点是没有顺序的,同一个图可以有多个顺序计划(Order plan),要求置换不变性(Permutation Invariance,图的节点进行置换),而不是CNN的平移不变性(Translational Invariance)和旋转不变性。下图显示了同一个图的两个不同的顺序计划,导致了不同邻接矩阵,直接卷积的话,将导致不同的结果,显然是行不通的。
所以我们希望训练一个函数 f ,输入一个图,输出该图所有节点的嵌入向量。同时要求:在图中比较临近的节点,所对应的向量之间的距离也比较近。
具体到某一个图的节点 u ,训练一个神经网络,对应于下图中的函数f ,该神经网络以图的节点u 作为输入,输出 u 的 d 维特征表达,这种将节点转变为向量的方法被称为Node2Vec。
对于从图的节点映射到向量表达的映射,有一定要求:在图中比较相似的两个节点 u,v,函数ENC将节点 u 和 v 映射到(低维的) 维嵌入空间的向量 Zu 和 Zv 也应该比较接近,两个向量之间的相似性可用余弦(cosine)相似度 Zu (转置)·Zv来表示(已归一化为单位向量)。
实在没搞懂。以后要用的时候在学习了。
https://www.bilibili.com/video/BV1e5411K7oW/?spm_id_from=333.337.search-card.all.click&vd_source=3fdb7d7b80a3c674b0e837aab3dd7aa1
one hot是比较常用的文本特征特征提取的方法。one-hot编码,又称“独热编码”。其实就是用N位状态寄存器编码N个状态,每个状态都有独立的寄存器位。
one-hot在特征提取上属于词袋模型(bag of words),假设语料库中有三句话:
~我爱中国
~爸爸妈妈爱我
~爸爸妈妈爱中国
首先,将语料库中的每句话分成单词,并编号:
1:我 2:爱 3:爸爸 4:妈妈 5:中国
然后,用one-hot对每句话提取特征向量,也就是在句子中出现了单词的,就在下面状态写成1,没有出现就写0:
所以最终得到的每句话的特征向量就是:
我爱中国 -> 1,1,0,0,1
爸爸妈妈爱我 -> 1,1,1,1,0
爸爸妈妈爱中国 -> 0,1,1,1,1
那么这样做的优点和缺点都有什么?
优点:
(1) 解决了 分类器不好处理离散数据 的问题。
a. 欧式空间。在回归,分类,聚类等机器学习算法中,特征之间距离计算 或 相似度计算是非常重要的,而我们常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。
b. one-hot 编码。使用 one-hot 编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值 就 对应欧式空间的某个点。将离散型特征使用 one-hot 编码,确实会让特征之间的距离计算更加合理。
(2) 在一定程度上也起到了 扩充特征 的作用。
缺点:
(1) 它是一个词袋模型,不考虑词与词之间的顺序(文本中词的顺序信息也是很重要的);
(2) 它假设词与词相互独立(在大多数情况下,词与词是相互影响的);
(3) 它得到的特征是离散稀疏的 (这个问题最严重)。
————————————————————————————————————————————
embedding简单地说,就是把一个东西映射到一个向量 x。如果两个东西很像,那么得到的向量 x1 和 x2 的欧式距离很小。
Embeddin就是用一个数值向量“表示”一个对象(Object)的方法,这里说的对象可以是一个词、一个物品,也可以是一部电影等等。一个物品能被向量表示,是因为这个向量跟其他物品向量之间的距离反映了这些物品的相似性。更进一步来说,两个向量间的距离向量甚至能够反映它们之间的关系。
上图是 Google 著名的论文 Word2vec 中的例子,它利用 Word2vec 这个模型把单词映射到了高维空间中,左图从 king 到 queen 的向量和从 man 到 woman 的向量,无论从方向还是尺度来说它们都异常接近。这说明词 Embedding 向量间的运算能够揭示词之间的性别关系。比如 woman 这个词的词向量可以用下面的运算得出:
Embedding(woman)=Embedding(man)+[Embedding(queen)-Embedding(king)]
标准神经网络满足不了以下需求
首先有这么一个问题,根据上下文填词:
我 昨天 上学 迟到 了 ,老师 批评 了 ____。
很明显这里应该填 我 。
但这是人类思维联系上下文后做的判断,那么如果是机器要完成填空呢,首先我们得教会机器联系上下文,但是用上几周学习的全连接神经网络或者卷积神经网络是难于实现的。因为它们只能对当前空间以及当前空间附近的特征进行提取,比如 上学 的前后词是 昨天 和 迟到 ,而 空格 的前面一个词是 了 ,这是不能通过前一个词推出答案的,于是必须想一个模型可以联系上下文的。
我 爱 中国
我 爱 爸爸 妈妈
把第一句输入神经网络中,需要用到三个输入端口,但如果换成第二句话就需要四个输入端口了,只能重新再建一组神经模型。所以需要弹性输入输出。
句子: 我 爱 中国,我 爱 爸爸 妈妈
性质:称谓 动作 国家,称谓 动作 称谓 称谓
在前面的句子中,识别到 我 的性质是称谓,但无法共享到第二句中的 我 ,只能重新识别。所以需要共享不同位置上学到的特征。
以下都是需要体现时序上的“前因后果”的情况:
在这些例子中,DNN和CNN都是难以实现的,训练样本的输入和输出是比较的确定的。因为训练样本输入是连续的序列,且序列的长短不一,比如基于时间的序列:一段段连续的语音,一段段连续的手写文字。这些序列比较长,且长度不一,比较难直接的拆分成一个个独立的样本来通过DNN/CNN进行训练。
所以RNN横空出世!!!!!!!
首先要了解一下最基本的单层网络,它的结构如下图所示:
输入是x,经过变换Wx+b和激活函数f,得到输出y。
为了建模序列问题,RNN引入了隐状态h(hidden state)的概念,隐状态h可以对序列形的数据提取特征,接着再转换为输出。
先从h1的计算开始看:
a)圆圈或方块表示的是向量。
b)一个箭头就表示对该向量做一次变换。如上图中h0和x1分别有一个箭头连接,就表示对h0和x1各做了一次变换。
c)x1、x2、x3、x4表示输入神经网络中的序列形,如:语音处理。此时,x1、x2、x3……是每帧的声音信号。
然后就是继续用 上一层的输出h(t-1)乘上权重W + 本层的序列形Xt乘上权重U + 偏差b。在计算时,每一步使用的参数U、W、b都是一样的,也就是说每个步骤的参数都是共享的,这是RNN的重要特点。只画出序列长度为4的情况,实际上,这个可以根据输入序列形的长度计无限地持续计算下去。
我们目前的RNN还没有输出,得到输出值的方法就是直接通过h进行计算:
正如之前所说,一个箭头就表示对对应的向量做一次类似于f(Wx+b)的变换,这里的这个箭头就表示对h1用SoftMax进行一次变换,得到输出y1。剩下的输出类似进行。
最后计算也就两条公式:
注意:
OK!大功告成!这就是最经典的RNN结构,是x1, x2, …xn,输出为y1, y2, …yn,也就是说,输入和输出序列必须要是等长的。
RNN反向传播算法的思路和DNN是一样的,即通过梯度下降法一轮轮的迭代,得到合适的RNN模型参数U,W,V,b,c。由于我们是基于时间反向传播,所以RNN的反向传播有时也叫做BPTT(back-propagation through time)。当然这里的BPTT和DNN也有很大的不同点,即这里所有的U,W,V,b,c在序列的各个位置是共享的,反向传播时我们更新的是相同的参数。
BPTT算法是针对循环层的训练算法,它的基本原理和BP算法是一样的,也包含同样的三个步骤:
最后再用随机梯度下降算法更新权重。
但数学公式没有完全理解,所以先点到即止。
总而言之,本周的论文收获不大,没有耳目一新的感觉。还有对GNN简要的学习了一下,了解了GNN和RNN和CNN之间的差别,GNN主要是处理图像的。最后是RNN部分,RNN是一个循环的神经网络,有时序性,可以存储每一层处理后的结果,但是实现RNN的底层数学逻辑还没有弄懂,下周还会继续推。