主线为 Jimmy Ba 及 Geoffrey Hinton 等人的文章“Using Fast Weights to Attend to the Recent Past”。标题译过来还挺拗口~

摘要

直到最近,人工神经网络的研究主要受限于仅包含下面两类因素的系统:表示当前或最近输入的神经活动;从输入,输出和回报函数中学得的权重。且并没什么好理由用这些限制。突触具有许多不同时间尺度的动态特性,这表明人工神经网络可能有益于比活动变化更为缓慢,但比一般的权重变化更快的因素。以往对过去应用注意力之类被证有助于序列到序列模型。“快速的权重”用于存储最近的瞬时记忆,且神经上合理地应用注意力。用快速的权重使我们不必复制和保存神经活动的模式。

1 简介

一般典型的循环神经网络有两类不同的记忆(短时记忆和长时记忆),它们有非常不同的时间尺度,容量和计算规则。隐含活动向量作为每个时间步都更新的短时记忆,它保存着当前被处理的序列。该记忆的容量为O(H)O(H),其中HH为隐含单元的数目。长时记忆转换当前时间步的输入与过去不同时间步的隐含活动向量为下一时间步的隐含活动向量,且权重矩阵中会保存一个预测输出的向量,该权重矩阵连接隐含权重至自身,输入和输出。这些权重矩阵一般在序列尾部更新,且它们的容量为O(H2)+O(IH)+O(HO)O(H^2)+O(IH)+O(HO),其中II和OO为输入单元与输出单元的数目。

长短时记忆网络为一类更为复杂的RNN,它更善于发现长程的结构,主要有两个原因:首先,每个时间步上,它们计算隐含活动向量的增量,而不是重新计算所有的隐含活动向量(假设LSTM的记忆门都设为11)。这使得隐含状态中的信息能保存得更长。其次,门会缩放权重的影响,而隐含活动可决定门的状态。通过输入或经过门的隐含活动,乘法操作可动态调整有效的权重。然而,LSTM仍受限于短时记忆容量,因为保存当前序列的过去的短时记忆容量为O(H)O(H)。

一些研究者表明神经网络可有益于第三种形式的记忆,它比一般的神经活动有更高的存储容量,但比一般的“慢”权重有更快的动态特性。该记忆可针对当前序列的过去保存信息,使该信息能在未耗尽隐含活动的记忆容量的同时影响当前过程。

尽管有力的生理学依据表明存在其它形式的记忆,且有明显的需计算它的理由。然而意外的是,直到最近,循环网络中其它形式的记忆几乎没有研究。

2 瞬时记忆可能不被存为神经活动的生理学依据

处理诸如工作记忆,注意力和启动(priming)的过程的时间跨度为100ms至几分钟。无动态吸引子状态的神经激活调整这些过程会过慢,而长时的突触可塑性机制生效过快。人工神经网络通常侧重研究在激活的动态特性中保持瞬时状态的方法,而激活的动态特性可能与大脑通过短时的突触可塑性机制来保持瞬时状态的依据不一致。

大脑应用各种中间时间尺度上的短时可塑性机制。例如,去极化的轴突终末中残余的钙离子[Ca2+][Ca^{2+}]促进短时记忆,而突触前神经递质会抑制短时记忆。短时时间尺度上涉及依赖尖峰-时间的可塑性。所有这些可塑性机制都是针对突触的。因此,使用容量为O(H2)O(H^2)的记忆要比一般的循环人工神经网络和长短时记忆具有的O(H)O(H)的记忆容量来建模更加精确。

3 快速的联想记忆(Fast Associative Memory)

19世纪70年代和19世纪80年代时的神经网络研究的主要关注点之一为记忆不是以某种方式来复制和保留神经活动的模式。相反,当需要存储在关联网络的权重中的信息时,神经活动的模式会被重建,且完全相同的权重能够保存很多不同的记忆。一个具有N2N^2个权重的自联想记忆只能保存NN个实数向量,其中每个实数向量有NN个元素。使用的存储规则决定能够多么逼近这个上界。Hopfield 网络用一个简单的一次性的外积存储规则,实现大约保存0.15N0.15N个二值向量的容量,其中每个二值向量要求有log(N)log(N)位的权重。用迭代的误差修正可更有效地利用权重,学得的权重可根据所有其它位来恢复模式的每一位。但对我们而言,与一个简单的非迭代的存储规则相比,最大化容量并不重要。所以,快速权重衰减迅速,外积规则将用于保存快速权重中的隐含活动向量。RNN中一般的权重将被称为慢权重,它们是通过对目标函数作随机梯度下降学到的权重,而目标函数考虑的是慢权重的变化将引起快速关联记忆自动保存的变化。

与神经图灵机,神经堆栈或记忆网络假定的记忆类型相比,快速关联记忆有下面几个优势。首先,我们一点也不清楚真正的大脑是如何在这些模型中应用更为奇特的结构,如神经图灵机中的磁带(tape)。然而我们清楚大脑能够应用具有适当动态特性的突触中的快速关联记忆。其次,快速关联记忆中无需决定何时何处写入或读取记忆。快速记忆一直更新,且写入叠加在每个突触的快速变化强度相同的部分。每个时间步上输入变化时,三个信息来源决定新隐含状态的转换:经过慢的输入-输出权重的新输入CC,经过慢的转换权重WW的上一时间步的隐含状态WW和通过快速权重的最近时间步的隐含状态向量AA。新的隐含状态上前两个信息来源的影响可被一次性计算,且对于一个短暂的迭代的沉降过程(快速权重可影响新的隐含状态),该影响为其保持一个持续的边界条件。假设快速权重指数衰减,此时迭代的沉降过程中,隐含向量上快速权重的影响是提供一个额外的输入,该输入与所有最近的隐含活动向量的和成正比,最近的隐含活动向量为最近的隐含向量与当前隐含活动向量的标量积。隐含向量出现多久前的指数引起的衰减率加权该和的每项。所以,快速权重表现得像对近过去的一种关注,但当前隐含向量与早期隐含向量的标量积,而非神经机器翻译模型中用到的单独的参数化计算,来决定关注的强度。

很多人将“attention”译为注意力。这里,如果“attention to the recent past”直译为“对近过去的注意”,本宝宝感觉还是有点生硬,所以不妨改为关注。

快速权重矩阵的更新规则AA,仅用衰减率λ\lambda乘以当前的快速权重,并加上当前隐含状态向量h(t)h(t)的外积,对该外积再乘以学习率η\eta:

A(t+1)=λA(t)+ηh(t)h(t)T

A(t+1)=\lambda A(t)+\eta h(t)h(t)^T

下一时间步上的隐含活动向量h(t+1)h(t+1)分两步计算。输入向量x(t)x(t)和以前的隐含向量h(t)h(t)的联合影响来决定“初级”向量h0(t+1)h_0(t+1):h0(t+1)=f(Wh(t)+Cx(t))h_0(t+1)=f(Wh(t)+Cx(t)),其中WW和CC为慢的权重矩阵,且f(.)f(.)为隐含单元用到的非线性函数。接着,用初级向量来初始化一个“内循环”的迭代过程,该过程运行SS步,并逐步改变隐含状态至h(t+1)=hS(t+1)h(t+1)=h_S(t+1):

hs+1(t+1)=f([Wh(t)+Cx(t)]+A(t)hs(t+1))

h_{s+1}(t+1)=f([Wh(t)+Cx(t)]+A(t)h_s(t+1))

其中,[.][.]中的项为持续的边界条件。真实的神经网络中,可通过快速变化的突触应用AA,但计算机模拟时所用的序列比hh的维数具有更少的时间步,AA将不会满秩,且不用计算整个快速权重矩阵AA,计算项A(t)hs(t+1)A(t)h_s(t+1)会更有效。假设在序列的开头AA为0,

=========A(t)λA(t−1)+ηh(t−1)h(t−1)Tλ(λA(t−2)+ηh(t−2)h(t−2)T)+ηh(t−1)h(t−1)Tλ2A(t−2)+ηλh(t−2)h(t−2)T+ηh(t−1)h(t−1)Tλ2(λA(t−3)+ηh(t−3)h(t−3)T)+ηλh(t−2)h(t−2)T+ηh(t−1)h(t−1)Tλ3A(t−3)+ηλ2h(t−3)h(t−3)T+ηλh(t−2)h(t−2)T+ηh(t−1)h(t−1)T...λt−1A(1)+ηλt−2h(1)h(1)T+...+ηλh(t−2)h(t−2)T+ηh(t−1)h(t−1)T0+ηλt−2h(1)h(1)T+...+ηλh(t−2)h(t−2)T+ηh(t−1)h(t−1)Tη∑τ=1τ=tλt−τ−1h(τ)h(τ)T

\begin{align} &A(t)\\ =&\lambda A(t-1)+\eta h(t-1)h(t-1)^T\\ =&\lambda \left( \lambda A(t-2) + \eta h(t-2)h(t-2)^T \right)+\eta h(t-1)h(t-1)^T\\ =&\lambda^2A(t-2)+\eta \lambda h(t-2)h(t-2)^T+\eta h(t-1)h(t-1)^T\\ =&\lambda^2\left( \lambda A(t-3)+\eta h(t-3)h(t-3)^T\right)+\eta \lambda h(t-2)h(t-2)^T+\eta h(t-1)h(t-1)^T\\ =&\lambda^3 A(t-3)+\eta \lambda^2 h(t-3)h(t-3)^T+\eta \lambda h(t-2)h(t-2)^T+\eta h(t-1)h(t-1)^T\\ =&...\\ =&\lambda ^{t-1}A(1)+\eta \lambda^{t-2}h(1)h(1)^T+...+\eta \lambda h(t-2)h(t-2)^T+\eta h(t-1)h(t-1)^T\\ =&0+\eta \lambda^{t-2}h(1)h(1)^T+...+\eta \lambda h(t-2)h(t-2)^T+\eta h(t-1)h(t-1)^T\\ =&\eta \sum_{\tau=1}^{\tau=t}\lambda^{t-\tau-1}h(\tau)h(\tau)^T\\ \end{align}

原文中的快速权重矩阵:

A(t)=η∑τ=1τ=tλt−τh(τ)h(τ)T

A(t)=\eta \sum_{\tau=1}^{\tau=t}\lambda^{t-\tau}h(\tau)h(\tau)^T
虽推导的结果与原文不一致,Jimmy 先森本来可能是想推A(t+1)A(t+1),因为后面原文提到的当前时间步是指时间步t+1t+1。但个人觉得,由于λ\lambda是衰减率,衰减率本身是可调整的参数。换句话说,假设λm1=λm+12\lambda_1^m=\lambda_2^{m+1}。实际应用时,只要两个衰减率设置合理,使用哪个都没有关系~

A(t)hs+1(t+1)=η∑τ=1τ=tλt−τ−1h(τ)[h(τ)Ths(t+1)]

A(t)h_{s+1}(t+1)=\eta \sum_{\tau=1}^{\tau=t}\lambda ^{t-\tau-1}h(\tau)[h(\tau)^Th_s(t+1)]
方括号中的项仅是迭代的内循环中,过去的隐含状态向量 h(τ)h(\tau)与当前时间步的隐含状态向量 hs(t+1)h_s(t+1)的标量积。所以,当前时间步的隐含向量经过衰减因子加权,然后与过去的隐含向量们作标量积。内循环的每次迭代,快速权重矩阵等价于关注与该标量积成正比的过去的隐含向量。此时,更加关注过去的隐含状态,这些过去的隐含状态设法吸引当前的隐含状态。

用快速权重矩阵和比较一系列保存的隐含状态向量之间的等价有助于计算机模拟。使得训练时,必须放弃使用小块(mini-batches)时,不用因此引起巨大损失的情况下,可去发现用快速权重完成了什么。乍一看,不能够用小块,因为每个序列有不同的快速权重矩阵;但比较一系列保存的隐含向量可使用小块。

3.1 层归一化的快速权重

快速关联记忆的潜在问题是两个隐含向量的标量积可能会消失或爆炸,这取决于隐含向量的模。最近,层的归一化在稳定RNNs中的隐含动态特性和减少训练时间上显得非常有效。特定时间步上,累加所有循环单元的输入得到一个向量,对该向量做层的归一化。层的归一化使用该向量每个元素的均值和标准差,来重居中和重缩放那些累加后的向量。然后,应用非线性前,包括一个针对神经元学到的偏置和增益。对快速关联记忆使用层的归一化:

hs+1(t+1)=f(LN[Wh(t)+Cx(t)+A(t)hs(t+1)])

h_{s+1}(t+1)=f(LN[Wh(t)+Cx(t)+A(t)h_s(t+1)])

方括号的位置与前面不同,个人觉得后面的更为正确。所以,不知为何持续的边界条件会有这样的考虑。

其中,LN[.]LN[.]表示层的归一化。发现内循环的每次迭代上用层的归一化,使得快速关联记忆比选择学习率和衰减的超参数更加鲁棒。本文剩余部分,用层的归一化和外积学习规则来训练快速权重模型。此时,除非另有说明,快速学习率设为0.50.5,且衰减率设为0.950.95。

4 实验结果

为表明快速关联记忆的有效性,首先研究关联检索和MNIST分类问题。将快速权重模型与一般的RNNs和LSTM变种比较。然后在面部表情识别任务中使用快速权重,采用一个快速关联记忆模型来保存某一粒度水平上的结果,同时在更精细粒度水平上检查序列的细节。验证集上网格搜索来选择实验的超参数。用128128大小的小块和Adam优化器来训练所有的模型。训练方案与超参数设定的描述见附录。最后,快速权重也能有效应用于具有记忆的增强学习智能体。

4.1 关联检索

提出的保存与恢复瞬时记忆的方法首先对一些小任务效果不错。考虑一个任务,一个序列中出现多个键值(key-value)对。序列的末尾出现其中一个键,模型要预测与该键瞬时关联的值。所用的字符串包括英文字母和数字0−90-9。从英文字母表中不放回地随机采样字母来创建训练序列。先采样第一个键。然后采样单个数字作为关联该键的值。生成KK个键值对组成的一个序列后,从KK个不同的字母中随机选择一个字母作为查询值的输入,且网络需预测关联的数字。这样的字符串与目标的示例如下:

其中,??是用于分开键值对和查询的标记。生成100,000100,000个训练样本,10,00010,000个验证样本和20,00020,000个测试样本。为解决该任务,在键与值按顺序出现后,一般的RNN最终的隐含活动会在某种程度上保存所有的键值对。这对仅用慢的权重的模型是个极大的挑战。

该实验用一个单循环层的神经网络。循环网络在每个时间步上处理输入序列的一个字母。输入字符先转换成一个100100维的嵌入向量,然后将输入送入循环层。序列末端循环层的输出再送入另一个100100个ReLUs的隐含层,最后经过Softmax层输出。用快速关联记忆扩展ReLU RNN,并与相同结构的LSTM模型比较。尽管原LSTMs没有显式的长时记忆容量,近期有工作添加复杂的关联记忆来扩展LSTMs。本实验比较了快速关联记忆与LSTM的两个变种。

图22和表11显示,当循环单元的数目很小时,快速关联记忆的表现明显好过具有相同数目的循环单元的LSTMs。我们假设快速关联记忆可使RNN更有效地利用循环单元,且实验结果与该假设一致。除了更高的检索准确度,具有快速权重的模型也比LSTM模型更快收敛。

4.2 综合视觉注意力模型中的瞥见(integrating glimpses)

为避免大家生疏,后面“attention model”译为常听到的“注意力模型”。

尽管卷积神经网络有诸多的成功,但它们的计算代价高,且学到的表示难以解释。最近的研究显示视觉注意力模型可克服卷积网络的某些限制。我们可以通过查看模型注视的位置来理解方法用了什么信号。并且,视觉注意力模型能有选择地关注视觉空间重要的部分,并避免进一步处理很多背景混乱。本节,视觉注意力模型用快速权重来保存物体的局部,尽管用到的有限的瞥见集合并不对应物体的自然局部。

给定输入图像,视觉注意力模型在图像的区域上计算瞥见序列。模型不仅决定下一时间步注视哪里,而且在模型的记忆中记住已看到的信息,使得模型能够在之后正确分类。视觉注意力模型可在很大的静态输入图像中寻找多个物体并正确分类,但学到的瞥见策略却过于简单:视觉注意力模型仅用单尺度的瞥见,且它们往往以固定的方式扫描整个图像。人眼的运动和眼球固定要远远复杂。不同尺度上关注整个物体不同局部的能力使人类在很多不同尺度上的网络权重中可应用完全相同的知识,但它要求某些形式的瞬时记忆,这些记忆使网络能在一系列的瞥见中综合所发现的内容。增加模型记忆最近的瞥见有助于视觉注意力模型发现不平凡的瞥见策略。因为快速权重能保存序列中所有的瞥见信息,所以,可摆脱隐含活动向量来学习如何巧妙地综合视觉信息,并为最终的分类器检索合适的记忆内容。

为明确验证更大的记忆容量有益于基于注意力的视觉模型。按如下方式简化学习过程:首先,提供一个预定义的瞥见控制信号,使模型明白往哪里关注,而不是通过增强学习来学习控制策略。其次,引入另一个信号至记忆单元,使模型明白何时保存瞥见信息。因需同时学习策略网络和分类器,一个典型的视觉注意力模型很复杂,且效果差异大。简化的学习过程使我们分清哪些改进的效果来自于用快速权重来记忆近过去。

考虑一个简单的循环视觉注意力模型,该模型与之前实验用到的RNN的结构相似。它并未预测往哪儿关注,而是给出一个长度固定的位置序列:用两个相邻尺度递归地将静态输入图像分成44个不重合的子图像。44个粗粒度的区域被下采样为7∗77*7大小,单个序列中出现的7∗77*7大小的子图像,如下图。注意两个瞥见尺度形成了视觉空间中两个不同级的层。为成功解决该任务,注意力模型需从不同的尺度来综合瞥见信息。这里的解决方案是用模型的隐含状态来同时保存和综合不同尺度的瞥见。更有效的解决方案是当从更精细的尺度上处理瞥见时,用临时“缓存”来保存所有未完成的瞥见计算。一旦在更精细尺度上的计算完成,从“缓存”中“弹出”以前的结果,可综合得到的结果与更粗粒度的尺度上的局部结果。因此,快速权重,可充当为保存局部结果的一个神经上合理的“缓存”。接着,相同模型的慢的权重可专心去综合同一尺度上的瞥见,因为所有瞥见尺度会共享慢的权重。尽管这里仅表明在单一层保存快速权重,但该模型应该可以在一系列相同的快速权重上保存不同层的局部结果。

蓝框部分指出同一尺度上,视觉注意力模型应该往哪儿关注。此时,慢的权重起作用。
绿框部分指出粗粒度的尺度上的局部图像(半脸)与细粒度的尺度上的局部图像(左耳)的综合过程。A(t)A(t)保存的是从粗粒度到细粒度的注意力转换权重。具体地,假设绿框中输入为表示半脸的隐含状态,输出为表示左耳的隐含状态。那么,A(t)A(t)保存的是将注意力从较大区域集中到较小区域的转换权重。
上图仅显示了11个A(t)A(t)的转换结果,多个相同的A(t)A(t)按图11的方式连接,可获得更加深入的注意力。

在MINIST手写数字数据集上评估多层视觉注意力模型。MNIST是衡量很多其它技术的一个备受研究的问题。它包含1010类手写数字0−90-9。该任务是预测单个大致归一化的28∗2828*28的手写数字图像的类标签。既然如此,瞥见序列可包含2424个7∗77*7的块。

比较带快速关联记忆的ReLU RNN与获得相同瞥见序列的LSTM,见表22。结果再次表明,当隐含单元数目有限时,快速权重相比于其它模型有显著的提高。当增加记忆容量时,多层快速关联记忆的分类准确度持续高于LSTM。

与综合瞥见序列的模型不同,卷积神经网络同时处理所有的瞥见,并用隐含的层保存所有的中间计算结果。将视觉注意力模型瞥见到的图像块用于一个33层的卷积网络并与快速权重比较,表明了快速权重的有效性。从表22可看出,无需任何生物上不合理的权重共享,具有快速权重的多层模型与卷积网络模型达到相似的效果。

4.3 面部表情识别

为进一步研究多层视觉注意力模型中使用快速权重的好处,在CMU Multi-PIE 面部数据库上实现面部表情识别。配准眼部和鼻子的基准点来预处理数据集,下采样后得到48∗4848*48的灰度图像。整个数据集包含从不同观察点拍摄的1515张照片,每个视角都会考虑光照,表情,身份和拍照条件。仅用33个中间相机拍摄的图像(视角为−15o,0o和15o-15^o,0^o和15^o),因为从更极端的视角无法辨别面部表情。最终的数据集包含超过100,000100,000张图像。训练集包含317317个身份,而测试集包含2020个身份。

给定输入面部图像,目标是将每个人的面部表情分为66类:平静的,微笑的,惊讶的,斜视的,恶心的,尖叫的。该任务比MNIST更有挑战性。该数据集不仅标签数目不平衡,一些表情(诸如恶心与斜视)也难以区分。在不同光照条件和视角来泛化模型。与MNIST一样,使用多层注意力模型,该模型包含200200个隐含单元。模型按顺序来在两个不同的尺度上关注不重合的12∗1212*12的块,共有2424次瞥见。类似地,设计一个具有12∗1212*12感受野的两层卷积网络。

从表33可看出,多层快速权重模型明白何时保存信息,效果要好过LSTM和IRNN,与前面MNIST的实验结果一致。然而,卷积网络在该近正脸数据集上表现优于多层注意力模型。我们认为卷积网络在处理的每层同时结合所有的信息,其中的权重共享与结构工程使卷积网络在该任务上泛化性更好。使用固定和预先设定的策略来确定模型往哪儿看,消除了多层注意力模型的一个主要的潜在优势:模型可在忽略大多数不相关细节的同时,在更高分辨率上处理更多的细节。为实现该优势,需结合快速权重与复杂策略的学习。

4.4 具有记忆的智能体(agents)

有监督学习中不同的记忆与注意力被广泛研究。增强学习中学习长程依赖的模型却少有关注。

“Catch”游戏上来比较不同的记忆结构,但仅观察游戏的局部图像。游戏运行在N∗NN*N大小的二值像素组成的屏幕上,每个片段包含MM帧。每帧开头,单个像素(代表球)出现在某列的第一行,且智能体控制最后一行的两个像素(代表挡板)。观察到一帧后,智能体使挡板静止或左右移动一个像素。小球每帧下降一个像素。当小球到达最后一行时,游戏结束;当挡板碰到小球时,智能体的回报加11,否则减11。可直接观察游戏的全局图像,但要求智能体移动挡板至小球所在的列。每MM帧后清空智能体的观测,使该任务仅局部可观察。解决该游戏的局部版本,要求记录MM帧后挡板和小球的位置,并用保存的信息来移动挡板至正确的位置。

“打砖块”游戏的局部观测实验。

用最近提出的异步的动作评价方法,在不同局部图像大小的局部观测任务上用三类记忆来训练智能体。33个智能体包括ReLU RNN,LSTM和快速权重的RNN。图55在两个游戏变种(N=16,M=3N=16,M=3和N=24,M=5N=24,M=5)上不同智能体的学习过程。用到快速权重结构表示策略的智能体比用ReLU RNN或LSTM表示策略的智能体学得更快。快速权重获得的提高在要求记忆的更大游戏版本上效果更好。

5 结论

本文对机器学习的贡献是引入一种机制使RNNs在不同任务上的表现更好。该机制吸引隐含单元的每个新状态至最近的状态,最近的状态正比于当前状态的标量积。层的归一化使这种注意力网络表现更好。这种对近过去关注的形式,类似于近期机器翻译中大幅提高序列到序列的RNNs的注意力机制。

本文对计算神经科学和认知科学有有趣的暗示。人类能对整个序列和序列内的嵌入分句,或对一个复杂物体和该物体的主要部分,递归使用相同的知识和处理的结构。该能力被长期用于争议神经网络不善于建模更高层的认知能力。对近过去的关联记忆应用快速权重,显示如何脱离神经元的状态来递归使用神经网络连接中的知识。这克服了模型仅能通过复制和保存神经活动向量来实现递归这一异议,该模型在生物学上也不可行。

小结

文章整体感觉写得很仓促,但有很棒的观点,深度学习相关文章中的一股清流。实验部分并未在公共数据集的性能上花多少心思,但已达到实验目的。且与卷积网络和视觉注意力网络的研究角度明显不同。佩服~ ԅ(¯﹃¯ԅ)

使用快速权重来关注最近的过去相关推荐

  1. LSTM之父重提30年前的「快速权重存储系统」:线性Transformer只是它的一种变体...

    作者|陈萍.维度 来源|机器之心 来自瑞士人工智能实验室.亚琛工业大学的研究者建立了线性(核)注意力与快速权重存储系统之间的内在联系,并提出更新规则,在合成检索问题.机器翻译.语言模型等实验上性能优越 ...

  2. 微营销怎么加人,教你快速引流8大招数

    第一招  贴吧变相引流术 送泰迪宝宝,引女性粉丝,首先看图,这是内群一学员在贴吧引流的一个小案例,就是这样一个简单的帖子,13天就为他带来了两个微信号近8000个微信粉丝,一个号3700多,一个号42 ...

  3. 【OpenCV 例程200篇】77. OpenCV 实现快速傅里叶变换

    [OpenCV 完整例程]77. OpenCV 实现快速傅里叶变换 欢迎关注 『OpenCV 完整例程 100 篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更 ...

  4. wpsa4排版_如何用WPS快速排版

    小伙伴们可能对wps不太熟悉,那么接下来,我们跟随小编一起走进wps快速排版的世界. 一.应用"段落重排"功能 当我们用wps2000调用其他文本文档(如帮助文件或从网上下载的文档 ...

  5. 如何用VBA快速批量提取多个工作表名称?

    工作中,我们有时会需要将多个工作表Sheet的名称提取出来,制作成一个目录 如果一个一个去复制粘贴,效率肯定是很低的,如果Sheet数量很多,会严重影响我们的工作进度,那该如何处理呢? 我们可以用VB ...

  6. 重庆市公需科目快速学习方法

    学习地址: 重庆人社培训网 学习方法: 一.登录/注册 没有绑定手机的话可以点击下方首次登录,绑定手机号码之后可以通过验证码的方式登录 二.学习 1.点击公需科目进入公需科目列表 2.点击购买,需要先 ...

  7. 抖音快速涨粉需要注意的七大事项

    注册抖音账号,注意以下几点你获得的账号权重就要比别人高很多. 首先,注册账号时建议用手机流量注册,不要在用的人很多的wifi 下去注册. 第二,手机机型推荐使用近两年的新款式,不要使用太便宜的手机.很 ...

  8. “三巨头”联合发布万字长文,深度学习将通往何方?

    来源:数据实战派本文约7800字,建议阅读10+分钟 本文回顾近年来深度学习的基本概念和一些突破性成就,描述深度学习的起源,以及讨论一些未来的挑战. 人工神经网络的研究源于以下观察:人类智能来自于高度 ...

  9. Hinton,Lecun和Bengio三巨头联手再发万字长文:深度学习的昨天、今天和明天

    来源:ACM 编辑:Priscilla Emil 转自:新智元 2018年,ACM(国际计算机学会)决定将计算机领域的最高奖项图灵奖颁给Yoshua Bengio.Yann LeCun 和 Geoff ...

最新文章

  1. jQuery 加法计算 使用+号即强转类型
  2. 汇编: and,or逻辑运算指令
  3. Node.js webpack中url-loader处理图片路径
  4. vue中通过数据双向绑定给video标签的src赋值,只有第一次有效,怎么解决?
  5. 爆牙齿的世界杯日记(小组末轮AB组)
  6. 前后端交互json字符串
  7. SCVMM 2012 R2运维管理九之:添加非信任的Hyper-v主机和群集
  8. orm对象关系映射演练 一行就是一个对象
  9. MIX08,迎来Silverlight2的新时代
  10. db2 9.7 64位_2020年使用2016年的第一代9.7英寸 Ipad pro?
  11. 遍历map时删除不需要的元素方法
  12. 【Java从0到架构师】SpringBoot - MyBatis
  13. 2018.11.02 洛谷P2661 信息传递(拓扑排序+搜索)
  14. C# WinForm开发系列 - ComboBox
  15. 【STM32H7的DSP教程】第13章 DSP快速计算函数-三角函数和平方根
  16. 华为荣耀路由器虚拟服务器,荣耀路由器怎么设置?
  17. 企业应要求SaaS云服务商提供的三类安全措施
  18. AFNetwork 2.0在请求时报错code=-1016 和 3840
  19. C#使用西门子S7 协议读写PLC DB块
  20. 【Linux】linux的网络配置(动态IP与静态IP)

热门文章

  1. 宕机事件为何频发?云原生时代,需要什么样的运维保障体系?
  2. 《AutoCAD 2016中文版从入门到精通》——第2章 简单二维绘制命令2.1 直线类命令...
  3. 考研全真模拟试题卷及往年真题卷附答案
  4. orm 对象关系映射
  5. 传感器CE认证法规要求与流程
  6. <<平凡的世界>>读后感
  7. Google Maps地图查询系统
  8. 水仙花数的判断C语言,+最终代码优化
  9. fabric2.3.2 test-network测试网络搭建 超详细步骤
  10. 锐易特软件,参展SOA标准国际论坛