- 项目内容梳理
- 项目内容
本次实验对生物神经元在推理时的脉冲行为进行了仿真。改进了脉冲神经网络结构,提出了新的优化算法,侧重于信息表达方式、学习信息流动两个角度,实现了对生物神经系统的结构模拟;推导出了仿真系统和真实神经元行为的差异函数,基于此在图像分类任务下进行训练,从而调整神经元脉冲分布以逼近真实分布,研究了生物神经系统在推理时每个神经元的脉冲行为及其分布规律。
作为人工神经元的重要参照物,生物神经元的行为得到了广泛研究。以人工神经网络对其仿真是目前广泛使用的方案,但基于反向传播[](Back Propagation, BP)的人工神经网络(Artificial Neural Network, ANN),如CNNs[][]、RNNs[]、Transformer[]等虽部分角度上较好模拟了生物神经元行为,如卷积核与视锥细胞的相似性、长短记忆网络对人脑记忆力机制的考虑、Attention[]对注意力机制的实现等,但仍和生物神经元在信息表达方式和学习信息传递上有较大差异。脉冲神经网络[](Spiking Neural Network, SNNs)虽改变了神经元间信息表达形式,更接近真实生物神经元机理,但由于其不可微等性质,反向传播等常见优化策略难以在其应用,因此SNNs的性能一直难以提升,并且训练繁琐。本文提出了一种学习策略,将其应用于SNNs,实现了对生物神经系统的仿真建模。在MNIST和CIFAR10[]上的测试证实,本次建模不仅是一次成功的生物脉冲神经系统仿真,并且具有较高的精度和实用价值。
- 完成的工作
本次实验主要完成的工作有:
·提出了仿真系统和真实神经元的行为差异计算方法;
·提出并实现了一种适用于脉冲神经网络的优化算法;
·改进了脉冲神经元,搭建了脉冲神经网络;
·在MNIST、CIFAR10上进行测试,分别取得了97%和78%的测试准确率;
·在MNIST上击败了同结构非脉冲使用BP的人工神经网络;
·侧重神经元工作方式、学习信息流动,对生物神经系统成功仿真与建模;
·统计了训练后仿真系统内神经元行为分布,提出了脉冲数值概率分布函数。
- 相关工作
首先介绍相关算法以便后续对模型的描述。
- 反向传播
误差反向传播算法于上世纪末诞生,通过梯度传递误差信息,是当下神经网络最广泛使用的训练手段。
使用BP的神经网络(BP神经网络)中参数的更新幅度取决于网络输出误差对于此参数的导数。由于深度神经网络常以多隐藏层串联的形式出现,因此第i层网络的梯度可由第i+1层网络的相关梯度加工而来,即:
(2-1)
式中,L代表网络的输出损失值,为第i层网络参数。为第i层网络输出,也是第i+1层网络的输入,因此L对的梯度需在第i+1层计算。正因如此,无论多深的网络结构都可以使用BP,从输出端开始将梯度信息逐层传递,直至输入端。
由于精度高、收敛快,BP是当下ANNs主流训练手段,但其前向-反向两种信号的信息流动方式在生物神经元中并无可信服的存在依据,但仍可能在神经元内部存在类似机制。
- FF算法
BP算法虽然精度高、收敛快,但其不支持不可微结构,难以在SNNs上使用,并且与生物神经系统具有较大出入。例如在视觉通路中,神经元之间的信息流动是一个环路,从感受器的信号传递到神经系统深处,之后经过一个循环又传递回感受器[][],这与BP算法的前向-反向的信息流动方式具有较大差异。
FF算法[]在神经网络结构基础上,通过对隐藏层输出增益或负增益,使真、假数据(positive & negative)在隐藏层输出向量长度两极化进行学习。这种真、假数据对比的学习模式中,每一层神经网络的学习信息不再由输出端导数反向传播而来,而由当前真、假数据的对比而来。
图1 BP和FF的训练模式对比
对于每一层全连接层的输出向量,全连接层要尽可能让真数据对应的输出向量长(或短),假数据对应的向量要尽可能短(或长)。通过比较,每一层全连接层都可为自己找到学习信息,这样神经元就可以在计算完自己的输出之后就立即对自己进行优化,不需要再通过反向传播获得梯度形式的误差信息。
FF中使用的一种目标函数:
(2-2)
其中,是隐藏层输出,是logistic函数(Sigmoid)[],是一个阈值,通常被设为0。j=1,2...N,N是向量维度。Sigmoid使得若使得输出向量变长,只需要令p(positive)趋近于1。
为避免当前隐藏层的参数改变对下一隐藏层的学习产生影响,每一层的输出都要进行标准化再向后传递,这样每一层输入的向量长度都是相同的,促使下一隐藏层重新学习辨别真假的方法。
对于真假数据的选取,FF提出了多种方案,对于无监督类型,真数据可以是MNIST中的照片,而假数据由两张不同照片通过mask合并得到;对于有监督类型,可以将每个照片的前10个像素替换成标签,这样隐藏层可以将标签和图片一起运算,通过标签和照片是否相符可以判断照片的真假,其中标签与图片一致的为真数据,否则为假数据,如图3所示。其中左图为真数据,右图为假数据。无监督类型适合更大规模的模型,促使它们尽可能多地提取特征,而有监督模式对于解决特定任务能收获更高的准确率,只需提取相关特征。
图2 FF中的mask方式
图3 FF中一种替换像素的有监督模式
FF这种逐层训练的模式去掉了反向流动的梯度信息,更符合真实生物神经系统的运作方式,但其在实验中的准确率远低于BP,因此本次实验不打算使用FF对SNNs进行训练,但仍参考了其学习信息流动的方式。
- 逐层训练
除FF外,其它逐层训练的一些细节也值得我们借鉴。
逐层训练思想由Hinton[]、Bengio[]等较早提出,最初是用来训练DBN或是作为一种避免网络加深带来的梯度问题的贪婪的逐层预训练策略,每当训练完一层网络之后再利用当前层的输出训练下一层,从而有效避免反向传播中的梯度爆炸等问题。
在近几年一些研究中,另一些逐层训练的模式[][]体现了优于整体训练的性能。它们通过对最小规模的网络进行增添新单元,逐步扩大网络规模,以此获得性能保障前提下参数尽可能少的网络,从而有效避免过拟合[]。在这种策略中,一个带有若干隐藏层的神经网络并不是一步构建出来的,而是通过在最基础的版本(不含有隐藏层)上不断重复添加神经元和隐藏层,逐步构建出来的。每当插入一个新单元时,以训练好的其他层的输出作为输入,通过最大化中间类和总协方差矩阵的比值来扩大网络内部表示的可分性[14]或是通过对比隐藏层输出和上一隐藏层输出进行优化。
上述两类方案中,有两点值得我们注意。首先,它们均已被证实为有效,说明不通过反向传播就可以实现对神经元的参数更新;其次,在它们之中均可不进行大规模的反向传播,只需要局部参数更新,说明学习信息的获取可以在局部获取。
然而,由于目的不同,上述方案并不适合应用于生物神经系统的仿真。首先,每一层的训练需等上一层不再收敛再进行,这延长了训练周期,并且和生物神经系统不一致;其次,上述方案中每一层学习信息的获取途径要么针对DBN等特殊结构,要么需要对网络内部表示进行细致分析[14][15],抽象且复杂,不利于在SNNs上开展。
尽管如此,这些逐层策略仍有三个细节值得注意:首先,每个单元的训练可以不同步,每一个新加入的单元都需要进行训练,而在此之前已存在的单元已进行过训练;其次,每一次训练可以只对局部网络参数进行更新;最后,在一些逐层策略中网络可让自己的内部表达对于不同输入尽量可分,即不同类样本在隐藏层的表示应有显著区别。
FF也具有这三个细节:首先是训练不同步:每个隐藏层在运算完当前前向传播阶段之后就可以立刻进行参数调整,这时下一隐藏层的前向传播阶段还没有开始,自然也就没有进行参数更新;其次是局部更新,在FF中不同层的优化只改变了自己的参数,没有直接跨层调整参数;最后是可分性,由于真数据被增益,假数据被负增益,内部表示在被向两极化调整,因此存在扩大可分性的操作。
- LIF模型
LIF(Leaky-Integrated and Fire)模型[]是一种常见的脉冲神经网络,由于其较为精简地对H-H(Hodgkin-Huxley)电路模型进行了数字仿真,因此得到了广泛的使用,如图像文字识别[]、图像分类[]等,均取得了较好的结果。
- H模型是对乌贼的神经元进行研究得出的模型,通过电路对其进行描述。
图4 H-H电路模型
通过电路可以计算出H-H模型的数学表达式,但由于其过于复杂,对一个神经元可以建模,但难以建立大量协调工作的神经元以形成神经系统。
LIF是一种对H-H的简化,尽量通过线性关系描述H-H中曲率较小的函数关系式。在LIF中,不同层之间神经元的信息传递由脉冲实现,每当一个神经元的电位v高于阈值vth,便释放一个脉冲I形成神经冲动:
(2-3)
之后,神经元的电位需恢复至静息电位vrst:
(2-4)
神经元电位v变化取决于传入神经元的脉冲I:
(2-5)
其中,是一个时间常量。
为实现计算机数字建模,现将其离散化,有:
(2-6)
由于LIF不可微,因此无法使用反向传播,只能利用其它算法进行优化,如模仿生物神经元长短时抑制(spike-timing-dependent plasticity, STDP)[]、将训练好的ANNs转换为SNNs、伪梯度[]等。
本次实验采用了LIF这种利用脉冲信号传递信息的,与生物神经系统较为贴近的神经元结构,同时提出了一种适用于LIF的学习策略。
- C302
C302是2017年OpenWorm对秀丽隐杆菌线虫的成功建模[],通过对线虫全部302个神经元进行数学建模,包括运动系统、控制系统等,实现了对线虫这一真实生物体的建模。建模出的线虫可以在虚拟环境中自主运动,具有捕食等行为,但由于其神经元的参数是经测量得到的,既不能更深入帮助了解生物神经元机制,又难以在其中体现出学习等行为,因此本次建模不采用其技术,但不可否认其里程碑式成果。
图5 c302线虫及其神经元连接
- 本文方法
- 梯度预测学习策略
隐藏层的输出是抽象的,人们很难直接通过它看出误差。本文考虑对BP公式中L对梯度进行近似,L在神经网络中是关于的函数,是关于的函数,故式(2-1)可重写为:
(3-1)
要近似出L对的梯度,可通过近似实现。代表的是在第i层之后所有结构以为输入计算出的结果的误差。若引入一个计算模型,使其与损失函数配合完成对误差的近似计算,即可达到预先的目标。
设计一个辅助输出模块(AOM),将其施加于每一个隐藏层之后,结合损失函数,近似原网络中当前隐藏层之后的所有运算的误差。这种近似对网络的可微性没有要求,可由下式描述:
(3-2)
式中,表示当前层AOM的运算损失与AOM参数,是常数小量。
引入AOM的主要目的是实现对信息的传播机制进行调控,因此AOM的具体结构可以不加限制,全连接层或卷积层等均可;AOM的输入是当前隐藏层的输出,AOM的输出可以是任何有利于帮助隐藏层学习的形式,比如物体类别的概率分布或对序列的预测等。对AOM的输出进行误差计算,可以近似得到。
AOM的参数与隐藏层参数一并更新:
(3-3)
式中,G可为任何参数更新策略,为学习率。
事实上,这种基于AOM的前向训练方法相比BP更加具有生物相似性。生物神经系统中视觉通路自上而下的连接(top-down connections)由信息循环流动实现而非反向传播。人工神经网络中对应生物神经元深处输出的上层输出是网络对样本标签的估计,因此可由样本标签近似。用样本标签通过AOM训练底层网络就近似是利用了最顶层网络的前向传播输出,实现了通过信息循环流动传递误差信息。
各隐藏层输出同时传递给当前层AOM和下一隐藏层;当前层AOM预测出整体网络最终输出,通过损失函数如交叉熵,计算损失,更新AOM和隐藏层参数。与此同时,下一层可与当前层并行执行上述操作。
Algorithm 1: Training_with_AOM |
1 Start 2 For each batch: 3 ********** 8 End 9 End 10 Stop |
这种目标函数调整因引入了可学习的参数从而相比FF更加灵活。FF中目标函数为h平方和或是绝对值和,因此目标函数对h的梯度只取决于h本身,利用信息有限。使用上式时,目标函数对h的梯度一部分取决于F中学习过的参数,利用的信息更充分。
此外,各隐藏层不需要储存信息等待反向传播,可以节省内存和并行运算。
图6 带AOM的网络结构
- 梯度预测与改进版LIF
由于生物神经元动作电位并非一成不变,而是与受到刺激大小呈正相关,因此改变脉冲I为:
(3-4)
看似这个式子已经消除了LIF的不可微,但由于释放脉冲之后神经元电位需骤降为静息电位,因此LIF仍然不可微,不能使用BP。
每个神经元电位变化取决于输入神经元传递来的脉冲,但生物神经元中连接只在相邻神经元间形成,因此规定每个神经元至多与前层相邻9个神经元相邻,使用3x3的卷积核作为基础结构:
(3-5)
其中,为当前层坐标为a,b的神经元对输入脉冲的感应,为前层坐标为m,n的神经元输出的脉冲。
深处神经元的输出为对输入样本的精确分析,因此使用样本标签近似掉深处神经元循环流回浅层神经元的信息y。同时,每一层的神经元需要面向深层传来的信息进行优化,因此使用一个全连接结构的AOM对每层神经元每个时刻的电位进行处理:
(3-6)
之后通过深处传来的信息y计算当前层信息的误差:
(3-7)
其中,F可以为任何距离。这个误差可以通过梯度修正神经元对前层脉冲的敏感权重:
(3-8)
为减少计算量以及消除不可微成分,上式可以近似为:
(3-9)
- 脉冲神经系统建模
首先,总结生物神经系统的工作模式。每个神经元收到与其连接的神经元输入的脉冲,之后通过脉冲计算出自己的电位改变量,更新电位,若电位超过阈值,对与其相连的神经元输出脉冲信号,并将自己的电位恢复为静息电位。在处理完当前信号后,当更深处的神经元输出的更为精确的信息经过一个循环,重新流回当前神经元时,神经元接收到这个信号,需要调整自己之前的脉冲释放策略,使其与深处神经元的输出更加和谐。
现在,主要从神经元工作模式、学习信息传递两方面对上述脉冲神经系统进行建模。神经元使用本章第2节提到的改进型LIF,在精简化H-H模型的基础上引入了刺激对动作电位的影响,更加贴近真实生物神经元工作机理。
图7 神经元电位变化。(a)生物神经元原理图。(b)LIF仿真效果。
学习信息传递方面使用本文提出的基于AOM的梯度预测方法,使用全连接结构的局部小型神经网络对深处神经元传递来的信息进行处理,预测出与当前网络形成同构的ANN网络在BP中可以得到的梯度。
对于真实大脑中类似反向传播的神经元学习策略,有两点值得注意。首先,没有可信服的证据表明神经元中存在反向传播这种和前向传播传递不同种类信号的工作模式;其次,大脑中存在一种循环结构,来自更深处的输出经过循环会回到最初输入端,这也正是许多人工神经网络类似工作模式的开发灵感。
本次建模为上述可以提供一种仿真方案。来自更深处的输出由于涉及到的参数更多,它有能力表现得比当下层更加准确,因此更深层的输出可以是当下层的一种优化依据。来自更深处的输出可由样本真实标签近似代替,因为那代表了所有层AOM共同收敛的方向。在一些真实标签不明确的应用环境下,比如真实大脑中的神经元活动,这种来自更深处的输出无法由标签近似,但仍可以通过循环真正地被输送到最初输入端,也就是说在这种模式下AOM的输出将不再拿去和标签比较,而是和来自更深处神经元的输出进行比较,或是其与标签的加权平均。相似的算法在强化学习的Q-Learning[]中已经可以表现出强大的自我学习性能,在玻尔兹曼机[]上也有很成功的使用。
图8 SF/CF中的类脑循环机制
图8中展示了SF和CF中数据循环流动的一种实现。当数据流到最深处时,深处网络的输出再流回到初始端,当作其学习的依据。在实际应用时,最深处流回初始端的数据可以由原始输入的标签代替,因为那是深处层输出的一个收敛目标。
本次建模总流程如下。
Algorithm 2: Simulation for Spiking Neural System |
1 Start 2 For each batch: 3 For each Layer and each time: 4 ************** 11 End 12 End 13 Stop |
- 系统间内部行为差异计算
搭建好神经元仿真模型后,需要研究推理时神经元行为a的分布,需要调整模型参数使神经元行为符合推理时状态。
规定神经元行为与神经系统输入x相关,且仿真模型应为真实情况下的一个近似:
(3-10)
其中,是仿真系统参数。
规定系统输入x、系统行为a、系统输出y满足如下流程,并规定从a到y与x无关,并且为常量,即有什么样的行为就有什么样的输出,与系统无关。
图9 系统流程
因此有:
(3-11)
(3-12)
(3-13)
为优化参数,对其进行求导,有:
(3-14)
即,系统中参数对神经元行为的影响与其对系统输出的影响呈正比,因此缩小仿真系统与真实生物神经系统的行为差异就是在缩小仿真模型和生物的输出差异,因此系统间内部行为差异等价于系统间输出差异:
(3-15)
由最大似然系统输出概率分布可以得到相同结果。
因此,可以通过最小化仿真系统和生物的输出差异来最小化仿真系统内部神经元和生物神经元的行为差异。即可以通过对仿真系统进行人类标注的有监督训练,来获得对人类神经元的行为仿真。
- 实验
- 数据集
MNIST由60000张手写数字的黑白照片组成,背景单一,图案清晰,常被用来测试新模型。
CIFAR10是一个广泛应用于试验图像处理模型性能的数据集,包含5万张训练集和1万张测试集。每张照片由RGB三通道每通道32个像素组成,包含卡车,青蛙,飞机等10种物体的其中一个作为主体图案,和一个较为复杂的背景。鉴于其较为复杂的背景,k-means[],全连接层网络等算法或结构均不能取得较高的准确率,而基于卷积的一系列模型[]往往能表现出较好的性能。
- 参数设定
针对MNIST使用了全连接结构,共4层神经元,每层个数分别为128、128、64、10。最后10个神经元的电位经Softmax处理后代表输入样本在10个类别上的概率分布。
每个神经元接收到前一层神经元的脉冲信息后,加权求和得到电位改变量,改变当前电位,将电位交给AOM计算误差,之后计算输出脉冲,传递给下一层。
由于权重是可学习的,因此可以舍去,包含在根据前层神经元计算电位改变量的权重上。
每张图像在网络中停留7个时刻,用以模拟生物在一个时间段内盯着一张图像看。其中最后一个时刻最后层神经元的输出为最终预测结果,用于模拟生物最终识别结论。
针对CIFAR10使用了ResNet结构。每个残差块进行了改进,添加了Dropout用于仿真真实神经元的信息磨损的同时可以降低过拟合。与此同时,加入了Batch-Normalization用于提高训练速率。由于算力不足,每张图像在网络中停留的时间仅为5个时间步。
图10 使用的残差块结构以及整个网络结构示意图
需要注意的是,每个神经元的输入不仅包含前一层神经元的输出,还包含前一时刻当前神经元的电位。由于同时考虑了时域信息以及空域信息,脉冲结构的神经网络可以传递更多的信息,有能力比静止的CNNs做得更好。
- 结果与讨论
- MNIST
在MNIST数据集上最终得到了97.2的测试准确率,已经超过了同结构ANN(全连接的Relu网络)的性能。本次实验还测试了一些其它常见结构的性能,展示如下。其中,LIFA(LIF based on AOM)为本次模型。
表1 MNIST性能
模型 | 训练准确率 | 测试准确率 |
LIFA | 0.97 | 0.97 |
ANN | 0.96 | 0.95 |
Logistic | 0.92 | 0.91 |
图11 LIFA在MNIST上的训练曲线与同结构ANN对比
可见,由于LIF在时域和空域上均有信息传递,其性能在低噪声的MNIST上已经超过了同结构ANN,并且其收敛速率也超过同结构ANN,达到了使用BP的CNNs水平。
-
- CIFAR10
在CIFAR10上的测试准确率最终达到了78%,略低于同结构ANN版ResNet的81%。
表2 CIFAR10结果
模型 | 训练准确率 | 测试准确率 |
LIFA | 82% | 78% |
ResNet | 84% | 81% |
图12 LIFA在CIFAR10上的训练曲线
-
- 仿真系统内部神经元行为
训练出的神经网络中神经元在不同时刻、位置、样本会有不同的分布情况,不同层的神经元在不同时刻对不同输入会有不同脉冲分布。测试集中三个样本对应的部分神经元脉冲情况如下,可见浅层神经元在时域上较为稳定,其分布主要取决于输入。较深处神经元则有较大波动,主要取决于网络对输入的理解。样本b的第7层可以看出,网络对输入的理解随观察时间逐渐稳定,而遇到复杂输入如样本c时,网络的理解始终难以稳定,符合生物行为。
图13 神经元脉冲分布情况
此外,同一层不同通道的神经元脉冲对于同意样本在不同时刻也会有不同分布情况,具体如下,其中每一时刻每一小格代表一个通道。
图14 同一样本下第4层神经元在不同时刻不同通道的脉冲分布
为研究神经元分布情况,首先统计各神经元是否产生脉冲,计算释放了脉冲的神经元在所有神经元中占比。其次统计不同层释放脉冲的方差。结果如下。
表3 脉冲分布情况
layer | 1 | 2 | 3 | 4 | 5 | 6 |
spiked | 18% | 13% | 9% | 15% | 21% | 9% |
var | 4.11 | 7.6 | 8.24 | 8.37 | 14.10 | 20.86 |
可见,各层脉冲占比均较小,说明整体网络内部表示较为稀疏,符合生物学统计规律[];并且波动随层数变深而增加,说明越深处越能随输入而变化。
统计激活神经元中脉冲数值在各区间的频率,除以区间长度得到对脉冲分布概率密度函数的估计,并分别和同方差下的高斯分布、逻辑斯蒂分布对比,结果如下。
图15 脉冲分布和其它分布对比。(a)第1层.(b)2.(c)3.(d)4.(e)5.(f)6.
可见,脉冲数值的分布多数情况下介于高斯分布和逻辑斯蒂分布之间,经过RANSAC和最小二乘拟合,最终得到神经元脉冲数值分布情况f。
(4-1)
(4-2)
其中,超参数和和层数l满足:
(4-3)
(4-4)
总体分布如下图所示。
图16 脉冲大小的概率分布函数
根据概率密度函数进行脉冲模拟抽样,用逻辑斯蒂函数的反函数和高斯分布模拟神经元脉冲数值分布抽样:
(4-5)
其中,l为层数,满足均匀分布,N满足高斯分布,为当前层释放脉冲概率,如表3所示,结果如下。
图17 脉冲抽样模拟
- 局限性以及未来工作
本次实验虽实现了对生物神经元间脉冲式信息传递方式以及神经系统中循环流动的信息,并且在MNIST上击败了同结构ANN,但在CIFAR10数据集上仍具有一定的差异,造成这一点可能因有如下原因。
-
- 图像信息表达方式
脉冲神经网络中信息是脉冲信号组成,而图像信息是由一系列静止的实数组成,需转化为脉冲才可输入到SNNs中。常见的转化方式可分为可学习型和固定型,其中后者通过特定算法生成,如N-MNIST数据集。为简化实验步骤,本次实验使用的是可学习型,令第一层神经网络输入图像,将图像考虑为其输入的脉冲,输出加工好的脉冲。
由于涉及到了图像-脉冲信号的转化,通过适用于ANNs的数据集对SNNs进行性能评估是否公平一直是备受讨论的问题;其次,由于使用了可学习型转换方式,并且采用了梯度这一近似优化策略,因此始终存在转化损失,降低精度。
未来可在N-MNIST等脉冲信号数据集上进行测试。
-
- 静止信息
由于SNNs相比ANNs多了时域这一信息传递途径,因此其信息传递率高。但是由于是时域信息,SNNs更适合序列任务,也正因如此当下SNNs的应用主要集中于语音识别等自然语言任务。
未来可在序列任务上进行测试。
-
- 生物神经元
由于ANNs采用了较强的数学形式表达,因此其在特定任务下的性能有能力超过生物智能。由于本次实验是对生物神经元的仿真,具有生物性质,因此图像分类精确度或许难以击败同结构的ANNs。
生物的视觉输入往往并非静止图像,而是视频。即使对一个生物布置图像识别任务,其也会有主动观察细节等行为,令自己的视觉输入为聚焦于目标图像的图像序列。在本次实验中输入的图像序列中每一帧都相同,或许磨灭了生物神经元的动态特性。
-
- 算力不足
在CIFAR10上取得超过90%准确率的网络参数均远超过本次实验使用的网络参数,此外,由于显存不足,本次实验一个batch无法超过400,而batch的增大可以显著提高模型精度。
- 参考文献