基于fpga的自适应滤波器
关于自适应滤波器的fpga实现,对于想学数字滤波器的和fpga的同学来说非常好基于FPGA的自适应滤波器设计摘要数字滤波器较模拟滤波器相比,具有信噪比髙,过渡带性能好,髙可靠性及可扩展性,设计灵活方便的优势,应用范围越米越广。随着专用数字信号处理芯片的发展,数字滤波器的可实现性能以及处理速度得到了极大的提升,FPGA(现场可编程门阵列)作为一种新型数字信号处理芯片,具有数字信号处理速度快、数据并行处理并且利用硬件编程语言直接进行硬件设计等特点,自适应滤波器的FPGA设计以及优化方法,是目前的一个研究热点。本文对自适应滤波器进行 Matlab仿真,以对其结构特性以及运算特点进行了解,利用 Matlab生成测试信号与FPGA仿真软件 Modelsim进行联合设计以及行为仿貞,采用 Altera公司的 Cyclone IV系列芯片EP4CE15F17C8为载体的开发板进行设计仿真,在设计过程中,充分利用FPGA可以并行处理以及快速的数字信号处理的特点进行针对性的结构设计。在此基础上做了以下工作。在充分了解滤波器,自适应横向滤波器,自适应陷波滤波器以及FFT变换原理的基础上,选择并搭建∫设计平台,在目前自适应横向滤波器的FPGA设计的研究基础上,采用模块化的设计方法,单独设计可重复调用的串行FR滤波模块以及串行LMS杖值更新模块,对两种模块的设计以及综合分别进行了设计以及仿真实验,通过并行调川两种不同模块,每种调用四个的方式设计一个16阶的滤波器为例来阐述模块化设计方法,并设计32阶64阶分别与仝串行以及仝并行设计方式的处理速率以及逻辑资源调用进行比较,结果说明运算速率与并行调用模块数量成正比,远快于全串行结构的设计方式,并且对于64阶仝并行系统来说,极大的减少了硬件资源的消万方数据耗,提髙了设计灵活性。在此设计的基础上,针对传统自适应陷波滤波器的滤波频夲固定不变的缺陷,提出了一种频域变换法检测噪声特征频夲,并可以根据特征噪声频率实时改变陷波频率的滤波器设计方法,为了减小设计复杂性,研究了符号LMS自适应陷波器算法,通过 Matlab仿真实验选取符号的特征变量。并对噪声信号提取算法进行了介绍和设计仿真,最终设计出根据噪声频率自动调节陷波中心频率的自适应陷波滤波器,并对滤波器性能进行了 Modelsim仿真研究,自适应陷波器具有能有效的滤除对应频的单频噪声信号,并且根据噪声的频率特性自动调节滤波频率的特点。针对两种自适应滤波器的FPGA设计,体现了FPGA在自适应滤波器设计时灵活性以及针对性,两种不同类型的自适应滤波器,可以分别适用于普通数字滤波器无法有效发挥作用的场合,同时本文的设计方法对其它类型数字信号处理系统的FPGA实现具有一定参考价值关键词:现场可编程门阵列,自适应横向滤波器,模坎化设计,自适应陷波器万方数据DESIGN OF ADAPTIVE FILTER BASED ON FPGAABSTRaCTCompared with analog filter, digital filter has the advantages of high signalto noise ratio, good performance of transition zone, high reliability andexpansibility, flexible and convenient design and application With developmentof special digital signal processing chip, digital filter Can achieve performanceand processing speed has been greatly improved, the realization of the use of thebetter performance of digital chip design more complex filter, so that the adaptivefilter realization and application become possible, FPGA (field programmablegate array) is a new type of digital signal processing chip, with parallel processingof data and Can use hardware programming language directly the characteristicsof the hardware design, is currently a hot research topic for study of adaptive filteris implemented on FPgaThe matlab simulation of the adaptive filter to understand the characteristicsof the structure and opcration characteristics, and the use of Matlab generatingtest signals and FPGA simulation software Modelsim joint behavior simulation ofFPGa design, then to Altera cyclone Iv series chip ep4cel5f17c8 as the carrierof the development board for simulation design. in the design process, make fulluse of FPGa parallel processing and fast digital signal processing for structuraldesign On this basis, the following work has been doneThe filter needed to fully understand, adaptive transversal filter, adaptivenotch filter and Fft transform based on the principle of selection and build adesign platform, first in the basic research of current FPGA adaptive transversalfilter realization, using modular design method, the structure is divided into singleand serial FiR filter module serial LMS weight update module, the design of thetwo modules and integrated were designed, and simulation experiments, through万方数据the parallel call two different modules, each call the four way to design a 1 6 orderfilter as an example to illustrate the modular design method, and design of 32order and 64 order respectively with serial and the processing rate parallel designmethods and logic resources call were compared. The results show that theoperation rate and parallel call module is proportional to the number, far faster Inthe whole serial design mode, and for the 64 order all parallel system, greatlyimprove the design flexibility, reduce the consumption of hardware resourcesAfter the design on this basis, the traditional adaptive trapped wave filter, filterfrequency fixed defects, put forward a method of frequency domain transformdetection noise characteristic frequency, and can change in real time accordingto the characteristics of noise frequency trapped wave frequency filter designmethods, in order to reduce the design complexity and the sign LMs adaptivenotch filter algorithm, the characteristic variables of the symbol is determinedthrough the simulation experiment of Matlab. And the noise signal extractionalgorithm are introduced and the simulation design, the final design according tofrequency noise automatically adjust the trapped wave frequency adaptive notchfilter, and on the performance of the filters were Modelsim simulation researchthe adaptive notch filter has CaN effectively filter on the frequency of the singlefrequency noise signal, and does not affect the characteristics of waveforms usefulFor the fpga design of two based on the lms adaptive algorithm of filterreflecting the FPGa in the adaptive filter design flexibility and uniqueness, twodifferent types of adaptive filter can be respectively applicable to ordinarydigital filter Can not effectively play the role of occasions, also the designmethod of other types of digital signal processing system based on FPGaimplementation has a certain reference valueKEY WORDS: FPGA, Adaptive transversal filter, Modular design, Adaptivenotch filter万方数据目录摘要ABSTRACT··,··*···第·章绪论…1.1研究目的与意义1.1.1数字滤波器简介·················+··*····+··········*···:··.*····…···*········:··+*·········1.1.2基于FPGA的自适应滤波器研究意义·“中,非2国内外研究现状1.2.1自适应滤波器研究现状122自适应滤波器的FPGA实现研究现状·······申中···申1.3课题的主要研究内谷··B申61.3.1课题的主要工作1.3.2课题的研究实现方案…4本章小结第二章自适应陷波滤波器的原理以及实验平台2.自适应滤波器理论介绍·····中中·········中·中·"中··中·中····中····申2.1.1IR与FIR滤波器简介2.12LMS算法原理132.1.3自适应陷波器的原理15214FFT变换的原理··p··中··中··,和p申·和中中····中·申22设计平台介绍2022.1自适应滤波器的设计平台20222自适应陷波滤波器接2223本章小结24第三章自适应横向滤波器的FPGA实现..273.1自适应滤波器的 Matlab仿真研究…····中中中申·中申···申申p中申·中申··申p申中273.1.1自适应滤波器的功能仿真研究273.2自适应滤波器的滤波收敛性能研究方法…83.1.3自适应滤波器的收敛性能研究….30万方数据3.2自适应滤波器的FPGA模块化设计333.2.1自适应滤波器FPGA模块化设计原理333.22FIR串行模块的设计申·中p申申,申申申·申和中p申申非申·p;申p申·非申·申新申中和申p申和·申·申P申申·申申申p申p343.2.3LMS串行模块的设计35324自适应滤波器多级处理结构整体设计363.2.5结构特性分析393.3木章小结···非中中非第四章自适应陷波滤波器的FPGA设计41符号LMS算法的梯度特征值选择及系统结构设计.414.1.1符号LMS算法的梯度特征值选择4141.2FIR自适应陷波滤波器系统结构设计42噪声信号分析以及参考信号频率值提取……1464.2.1FFT变换的功能464.2.2FFT变换的参数介绍42.3 FFT IP核的调试以及功能测试……4842.4特征噪声频率提取算法.…43自适应陷波模块的设计非··申申中431自适应波器的 Matlab仿真43.2自适应陷波器FPGA设计时的数据截取方法554.3.3白适应陷波器模块的FPGA设计56434自适应陷波器的整体设计6044采用频域变换法自适应陷波器滤除工频噪声.44.1提高系统实时性的方法6144.2模拟与实验验证45木章小结·········65第五章总结与展望DD67参考文献致谢75攻读学位期间发表的学术论文目录77ⅤI万方数据太原理工大学硕上饼究生学位论文第一章绪论1.1研究目的与意义滤波器从1917年发明以米,已经有近一个世纪的发展史1,滤波器的发明也极大的推进了电了器件以及通信的发展。计算机技术以及集成电路的技术的发展又使滤波器产生飞跃式的发展,各科数字电路以及模拟开关电路元件体积越来越小,密度越来越高,直接催生了集成芯片式RC有源滤波器,开关电容滤波器以及数字滤波器。使滤波器的应用范围再一次扩大,不仅仅在通信领域,在医学,电气,图像处理等领域也起到了举足轻重的作用。1.1.1数字滤波器简介数字滤波器作为数字信号处理的一部分,是随着计算机以及数字器件的发展而发展起来的一门比较新的技术,尤其近几年来,数字处理芯片以及数字信号处理技术的发展使得数字滤波器的优点越米越突出,现代数字滤波器可以轻易实现将过渡带缩短到Iz以內,这点是模拟滤波器无法达到的性能指标。数字滤波器比模拟滤波器还有更优越的信噪比、可靠性以及灵活性和可扩展性,并且随着数字集成电路的发展,制作成本将会越来越低S。目前使用比较多的滤波器设计方法分别是无限冲击响应(IR)以及有限冲击响应(FR)波器,其屮由于FR滤波器可以很容易实现具有严格线性相位结构的滤波器,而IR滤波器要达到严格线性相位结构必须经过仝通网终线性相位矫正从而大大增加滤波器的阶数。FR滤波器由于其冲击响应有限,所以是个稳定系统。并且没有反馈环节,有利于其在使件上实现。所以FR滤波器以其独有的优势应用于线性相位结构的系统屮。近几年米,随着RLS以及LMS自适应算法的提出S,很多专家学者提出了利用自适应算法在数字系统上设计自适应滤波器,使滤波器的性能更加灵活,并且在对滤波器有特殊滤波要求的场合使用門,例如自适应陷波器常用在电气设备中滤除工频干扰而对其余频率信号几乎完全不产生影响,以及在通道失配屮采用自适应滤波原理进行矫正12,有些系统可以采用自适应算法达到抵消噪声千扰3,这些都是常规滤波器无法达万方数据基于FPGA的自适应滤波器设计到的性能指标。LMS算法以其简单的特性,可以在多和数字芯片上进行设计。尤其在FPGA上实现各种自适应滤波器14,是目前针对自适应滤波器方面的一个研究方向。1.1.2基于FPGA的自适应滤波器研究意义FIR与IR滤波器都是数字滤波器,即在数字系统上实现滤波器功能,而数字系统又分为软件数字系统实现以及硬件数字系统实现,软件数字系统实现最常用的例如使用MEATLAB或者 Labview进行编程实现15,其优点是可以自如的调节信号字长以及滤波步长,可以达到很高的精度,并且可以综合其它的处理功能为一体。缺点是接口比较单,必须接外置的采集卡,需要以计算机为载休休积往往很大。并且对信号的处理速度在相同糸件下要比硬件实现的滤波器系统要慢,并不能达到很好的实吋性,实际应用中只适用于屮、少量的数据后期分析以及对成本以及实时性要求不高的一些系统使用16。哽件芯片实现的数字滤波器实吋性要比PC杋软件好,并且硬件载体也比较多,如单片机、ARM类芯片,和专门用于数字信号处理的DSP芯片上均可以实现滤波器功能,但是其运算均为串行运算,(现场可编程门阵列)FPGA作为·种可编辑器件,不仅能实现上述所有芯片的功能,在资源配置合理的情况下,还能进行处理馍垬多重并行调用,即在个芯片上实现多个基本芯片同时处理的功能8,从而达到特别优异的数字信号处理功能,目前在图像处理等需要实时对大量数字信号进行滤波处理的领域,FPGA已经成为款不可或缺的芯片。但硬件设计数字滤波器的时候,山于数字滤波器的特殊性,在设计数字滤波器的时候,并没有现成的标准公式,这造成了很多数字滤波器并不能完全直接在硬件系统上实现,例如,FR数字滤波器,必须先利用软件工具得出FIR滤波器的各延迟抽头系数才能进行硬件设计,所以设计FIR滤波器的时候,是离不开计算机系统的,但是设计好的滤波器,可以脱离软件系统进行使用。由亍FR滤波器的本质就是一个标准的乘加运算集,恰好可以利用分布式算法实砚FIR滤波器,分布式算法的每个乘法运算屮必须有一个乘数为常数,这又与FPGA的基本逻辑单元査找表的功能相适应,利用査找表结构可以进行个常数乘数与·个变量相乘的运算,这样在实现FIR滤波器的时候,利用分布式算法,可以实现不使用或仅使用少量乘法器资源即可完成FR滤波器结构设计,FPGA的设计结构刚好与FIR滤波器的万方数据
- 2021-05-06下载
- 积分:1
受限波尔兹曼机(Restricted Boltzmann Machines)介绍
RBM在深度学习(deep learning)算法中有着非常重要的应用,本文介绍了RBM的基本概念,并介绍了几种有代表性的算法。作者西安交大张春霞,姬楠楠,王冠伟。山国武技亡文在线应用的热潮。理论方面,RBM的CD快速学习算法促进了研究者们对随机近似理论、基于能量的模型、未归一化的统计模型的研究⑧。应用方面,RBM目前已被成功地应用于不同的机器学习问题⑨-14,如分炎、回归、降维、高维时闾序列建模、图像特征提取、协同过滤等等。2006年, Hinton等人[15提出了一种深度信念网终( Deep Belief Nets,DBN),并给出了该模型的一个髙效学习算法。这个算法成为了其后至今深度学习算法的主要框架。在该算法中,个DBN模型被视为由若干个RBM堆叠在起,训练时可通过由低到高逐层训练这些RBM来实现:(1)底部RBM以原始输入数据训练;(2)将底部RBM抽取的特征作为顶部RBM的输入训练;(3)过程(1)和(2)可以重复来训练所需要的尽可能多的层数。由于RBM可以通过CD快速训练,这一框架绕过了直接从整体上训练DBN的高复杂度,从而将其化简为对多个RBM的训练冋题。 Hinton建议,经过这种方式训练后,叮以再通过传统的全局学习算法(如反向传播算法)对网络进行微调,从而使模型收敛到局部最优点。这种学习算法,本质上等同于先通过逐层RBM训练将模型的参数初始化为较优的值,再通过少量的传统学习算法进一步训练。这样一来,不仅解决了模型训练速度慢的问题,大量试验结果也表明,这种方式能够产生非常好的参数初始值,从而大大提升了模型的建模能力。自此,机器学习领域又产生了一个新的研究方向-深度学习( Deep learning)[1618],明确提出了面向人工智能的机器学习算法的设计目标。当前,以RBM为基本构成模块的DBN模型被认为是最有效的深度学习算法之一。鉴于RBM在深度学习领域中占据的核心位置以及其本身的良好性质,为了给RBM的初学者提供入门指导,同时为设计与之相关的新算法提供参考,本文将对RBM进行较为系统的介绍,详细阐述其基本模型、具有代表性的快速学习算法、参数设置、评估方法及其变形算法,最后对RBM在未来值得硏究的方向进行探讨。本文后续内容安排如下:第1节介绍受限波尔兹曼机RBM的基本模型,第2节详细阐述当前训练RBM的快速学习算法,第3节讨论RBM的参数设置,第4节给出评价RBM优劣的方法,第5节简单介绍几种具有代表性的RBM变形算法,第6是总结与展望,主要探讨RBM在未米值得研究的方向。1受限波尔兹曼机RBM的基本模型RBM也可以被视为一个无向图 undirected graph)模型,如图2所示。v为可见层,用于表示观测数据,h为隐层,可视为一些特征提取器( feature detectors),W为两层之间的连接权重。 Welling19指出,RBM中的隐单兀和可见单元可以为任意的指数族单元(即给定隐单元(可见单元,可见单元(隐单元)的分布可以为任意的指数族分布),如 softmax单元、高斯单元、泊松单元等等。这里,为了讨论方便起见,我们假设所有的可见单元和隐单元均为二值变量,即V,j,v∈{0,1},h;∈{0,1}如果一个RBM有m个可见单元和m个隐单元,用向量v和h分别表示可见单元和隐单元的状态。其中,v;表示第个可见单元的状态,h表示第个隐单元的状态。那么,对于一组给定的状国武技论义在线隐层h可见层v图2:RBM的图模型表示,层内单元之间无连接态(v,h,RBM作为一个系统所具备的能量定义为∑a"2-∑bh-∑∑上式中,O={Wn,a,b}是RBM的参数,它们均为实数。其中,W表示可见单元;与隐单元j之间的连接权重,;表小可见单元的煸置(bias),b;表小隐单元j的偏置。当参数确定时,基于该能量函数,我们可以得到(v,h)的联合概率分布,E(v, ho)P(v, h0Z(0)=∑e-E(v, h ez(6)(2其中z(0)为归一化因子(也称为配分函数, partition function)时于一个实际问题,我们最关心的是由RBM所定义的关于观测数据v的分布P(ve),即联合概率分布P(v,h)的边际分布,也称为似然函数( likelihood functionP(v8∑E(v, h 0)3)Z(0为了确定该分布,需要计算归一化因子z(),这需要2n+m次计算。因此,即使通过训练可以得到模型的参数W,α和b,我们仍旧无法有效地计算由这些参数所确定的分布。但是,由RBM的特殊结构(即层间有连接,层内无连接)可知:当给定可见单元的状态时,各隐单元的激活状态之间是条件独立的。此时,第j个隐单元的激活概率为P(h=1v,O)=o(+∑W其中,O(x)1+exp(-a)为 sigmoid激活函数由于RBM的结构是对称的,当给定隐单元的状态时,各可见单元的激活状态之间也是条件独立的,即第i个可见单元的激活概率为11)=o(a+∑Wh1国武技论义在线2基于对比散度的RBM快速学习算法学习RBM的任务是求出参数θ的值,以拟合给定的训练数据。参数0可以通过最大化RBM在训练集(偎设包含T个样本)上的对数似然函数学习得到,即A=arg max C(0)=arg max>log(6为了获得最优参数θ^,我们可以使用随札梯度上升法( stochastic gradient ascent)求C(6)=∑1lgP(vθ)的最大值。其中,关键步骤是计算logP(v()关于各个模型参数的偏导数由于c(O)=∑ log p(vo)=∑og∑Pv"),het=1∑1pBw,b∑pE(,hO)-lg∑∑oxp-E(,h)令0表示6中的某个参数,则对数似然函数关于的梯度为OC、、8(og>expl-E(v(t),h)-10e∑∑∑ep-E(v,hO)exp[-e(vo,ho) d(E(vo),h0))(Σ h exp[-E(v,hO>∑8+E(-E(v,h)06∑0(-E(v(0,hl(-E(v,h6)S06P(hv(t),0)P(v, h0)其中,()P表示求关于分布P的数学期望。P(hv),)表示在可见单元限定为已知的训练样本v()时,隐层的概率分布,故式()中的前一项比较容易计算。P(v,h0)表示可见单元与隐单元的联合分布,由于归一化因子z(θ)的存在,该分布很难获取,导致我们无法直接计算式(8)中的第二项,只能通过一些采样方法(如Gibs釆样)获取其近似值。值得指出的是,在最大化似然函数的过程中,为了加快计算速度,上述偏导数在每一迭代步中的计算一般只基于部分而非所有的训练样本进行,关丁这部分内容我们将在后面讨论RBM的参数设置时详细阐述。下面,假设只有一个训练样本,我们分别用“data”和“modl”来简记P(hv(),6)和P(v,h)这两个概率分布,则对数似然函数关于连接权重W、可见层单元的偏置a和隐层单山国科技论文在线元的偏置b;的偏导数分别为alog P(v8ihi idata -(ihi,modelalog P(v 0)datai ) modela log P(v 8=(hi)data(hi model2.1RBM中的 Gibbs采样Gibs采样( Gibbs sanpling)[20是一种基于马尔可夫链蒙特卡罗( Markov chain monteCarlo,MCMC)策略的采样方法。对于一个K维随机向量X=(X1,X2,……,Xk),假设我们无法求得关于X的联合分布P(X),但我们知道给定X的其他分量时,其第k个分量Xk的条件分布,即P(Xk|Xk),Xk-(X1,X2,…,Kk-1,Xk+1,…,Xk)。那么,我们可以从X的一个任意状态(比如{c1(0),x2(0),…,xk(O))开始,利用上述条件分布,迭代地对其分量依次采样,随着采样次数的增加,随机变量[r1(m),x2(m),…,xk(n)]的概率分布将以n的几何级数的速度收敛于X的联合概率分布P(X)。换句话说,我们可以在未知联合概率分布P(X)的条件下对其进行样。基于RBM模型的对称结构,以及其中神经元状态的条件独立性,我们可以使用 Gibbs采样方法得到服从RBM定义的分布的随机样本。在RBM中进行k步吉布斯采样的具体算法为:用一个训练样本(或可见层的任何随机化状态)初始化可见层的状态v,交替进行如下采样:ho w P(h vo), V1 P(v ho),h1 n P(hv1),P(vhP(v hk)在采样步数k足够大的情况下,我们可以得到服从RBM所定义的分布的样本。此外,使用Gib样我们也可以得到式(8)中第二项的一个近似。22基于对比散度的快速学习算法尽管利用吉布斯采样我们可以得到对数似然函数关于未知参数梯度的近似,但通常情况下需要使用较大的采样步数,这使得RBM的训练效率仍旧不高,尤其是当观测数据的特征维数较高时。2002年, Hinton7提出了RBM的一个快速学习算法,即对比散度( Contrastive DivergenceCD)。与吉布斯采样不同, Hinton指出当使用训练数据初始化vo时,我们仅需要使用k(通常k=1)步吉布斯采样使可以得到足够好的近似。在CD算法一开始,可见单元的状态被设置成个训练样本,并利用式(4)计算所有隐层单元的二值状态。在所有隐层单元的状态确定之后,根据式(5)来确定第个可见单元v;取值为1的概率,进而产生可见层的一个重构 reconstruction)国武技论义在线这样,在使用随杋悌度上升法最大化对数似然函数在训练数据上的值时,各参数的更新准则为△Wx=(vh;)ata-(vhrecondata这里,是学习率( (learning rate),{}reon表示一步重构后模型定义的分布在RBM中,可见单元数一般等于训练数据的特征维数,而隐单元数需要事先给定。为了与前文记号致,假设可见单元数和隐单元数分别为和m。令W表示可见层与隐层间的连接权重矩阵(m×m阶),a(n维列向量)和b(m维列向量分别表示可见层与隐层的偏置向量。RBM的基于CID的快速学习算法主要步骤可描述如下输入:一个训练样本xo;隐层单元个数灬m;学习率e;最大训练周期T●输出:连接权重矩阵W、可见层的偏置向量a、隐层的偏置向量b.·训练阶段初始化:令可见层单元的初始状态v1=x0;W、a和b为随机的较小数值。For t=1.2TFor j=1,2,…,m(对所有隐单元)计算P(h1=11),即P(h1;=1v1)=0(b+∑,从条件分布P(h1v)中抽取h∈{0,1}EndFor上ori=1,2,……,m(对所有可见单元计算P1h1,即P(v2=1h1)=0(a+∑,Wh1);从条件分布P(v2h1)中抽取v2∈{0,1}EndOForj=1.2,…,m(对所有隐单元)计算P(h2=1v2),即P(h2y=1lv2)=a(b;+∑;2:W7);Endfor按下式更新各个参数W←W+∈(P(h1.=1v1)lv2)V2);a←-a+((v1-v2);+c(P(h1=1v1)-P(h=1)v2)山国科技论文在线Endfor算法1.RBⅥ的基于CD的快速学习算法主要步骤在上述算法中,记号P(hk.=1|vk)(k=1,2)是m维列向量,其第个元素为P(h;=1vk)尽管上述基于CD的学习算法是针对RBM的可见单元和隐层单元均为二值变量的情形提出的,但很容易推广到可见层单元为高斯变量、可见层和隐层单元均为高斯变量等其他情形,关于这方面的研究具体可参见[2125此外,还有一些研究者在CD算法的基础上,对其作了进一步改进。例如, Tieleman②26提出了持续对比散度( Persistent contrastive divergence,PCD)算法,该算法与CD的区别在于首先,PCD不再使用训练数据初始化CD算法中的 Gibbs采样的马氏链;其次,PCD算法中的学习率较小且不断衰减。根据随机近似理论,尽管每次更新参数后模型都发生了改变(每次对于W,a和b的更新,RBM定义的分布都会发生改变),但由于学习率较小且不断衰减,则可认为那条马氏链产生的负样本是由当前RBM定义的分布的一个近似分布米样而来Tieleman和 Hinton[27进一步改进了PCD算法,他们通过引入一组辅助参数以加快PCD中的马氏链的混合率,提出了快速持续对比散度( Fast Persistent Contrastive Divergence,FPCD)算法。关于RBM的学习算法,除了上述提到的基于CD的一些方法之外,还有最大化拟似然函数( maximum pseudo- likelihood)、比率匹配方法 (ratio matching)等,有兴趣的读者可参阅[28]查找关于RBM学习算法比较详细的阐述。3RBM的参数设置RBM的训练通常是基于CD的方法(即算法1)进行的,但如何设置其中的些参数(如隐单元个数、学习率、参数的初始值等),是需要有一定经验的。近来,已有部分研究结果②29,30表明:对于特定的数据集和RBM结构,如果参数设置不合适,RBM将很难对真正的数据分布正确建模。因此,对实际使用者(尤其是初学者)米说,了解RBM中参数设置的一般规则是非常重要的。根据 Hinton{23]提供的建议以及我们进行数值试验所获部分经验,对RBM中的参数设置可参考以下规则。小批量数据及其容量对于连接权重、可见层和隐层偏置的更新,虽然可以基于一个训练样本进行(类似于在线学习的方式),但计算量将很大。将训练集事先分成包含几|或几百个样本的小批量数据(mini- batches)进行计算将更高效,这主要是可以利用图形处珥器GPU( graphicProcessing Unit)或 Matlab屮矩阵之间相乘运算的优势。同时,为了避免在小批量数据的样本容量发生改变时,学习率也必须做相应的修改,通常的做法是在参数的更新过程中,使用参数的平均梯度(即总梯度除以数据容量),即B(t+1(t+1)=0(+∑alog P(v(t)aB06t′=Bt+1这里,B表示小批量数据的容量,其值不应设得太大。B=1表示参数更新以在线学习的方式进行,而B一T则表示传统的批处理方式。一股而言,若训练集是包含来自不同类(具有同等概山国武技亡文在线率)的样本,理想的B应为总类数、使得每批数据屮都包含来自每个类的一个样本,以减小悌度估计的抽样误差。对于其他数据集.则可先随机化训练样本的次序,再将其分为容量为10的倍数的小批量数据。学习率学习率若过大,将导致重构误差急剧增加,权重也会变得异常大。设置学习率的一般做法是先做权重更新和权重的直方图,令权重更新量为权重的10-3倍左右。如果有一个单元的输入值很大,则权重更新应再小些,因为同·方向上较多小的波动很容易改变梯度的符号。相反地,对于偏置,其权重更新可以大一些。权重和偏置的初始值一般地、连接权重W可初始化为来自正态分布N(0,0.01)的随机数,隐单元的偏置b初始化为0。对于第讠个可见单元,其偏置az通常初始化为logP/(1-p),其中γ;表示训练样本中第讠个特征处于激活状态所占的比率。如果不这样做,在学习的早期阶段,RBM会利用隐单元使得第个特征以概率p处于激活状态。动量学习率学习率e的选择至关重要.ξ大收敛速度快,但过大可能引起算法不稳定;c小可避免不稳定情况的出现,但收敛速度较慢。为克服这一矛盾,一种具有代表性的思想是在参数更新式中增加动量项 momentum),使本次参数值修改的方向不完全由当前样本下的似然函数梯度方向决定,而采用上一次参数值修改方向与本次梯度方向的组合。在某些情况下,这可以避免算法过早地收敛到局部最优点。以连接权重参数W为例,其更新公式为W(+D)kw(t)aL(t)其中k为动量项学习率。开始时,k可设为0.5,在重构误差处于平稳增加状态时,k可取为0.9权衰减使用权衰减( weight- decay)策略的主要目的是避免学习过程出现过拟合( overfitting)现象,一般做法是在正常的梯度项后额外增加一项,以对较大的参数值作出惩罚。最简单的罚函数是2函数(M/2)>∑,W,即所有权重参数的平方和的1/2乘上一个正则化系数入入在RBM中又称为权损失( weight-cost)。重要的是,惩罚项关于权重参数的梯度必须乘上学习率,否则.学习率的改变将导致优化的目标函数也发生改变。在RBM中,若使用L2罚函数,贝权损失系数的取值可以取介于001与0.0001之间的任意值。值得指出的是,权衰减策略只需应用于连接权重参数W上,可见层和隐层偏置不需使用,因为它们不人可能导致过拟合。并且在某些情况下,偏置的值还必须较大才行隐单元个数如果我们关心的主要目标是避免过拟合而不是计算复杂度,则可以先估算一下用个好的模型描述一个数据所需的比特数,月其乘上训练集容量。基于所得的数,选择比其低个数量级的值作为隐元个数。如果训练数据是高度冗氽的(比如数据集容量非常大),则可以使用更少些的隐元。以上讨论的是RBM中的一些常用的参数设置,针对一个实际问题,应使用什么类型的可见单元和隐单元,在其中如何加入稀疏性使得隐单元只在少数情况下处于激活状态等问题的讨论,可参见文[23,31]山国科技论文在线4RBM的评估算法对于一个已经学习得到或正在学习中的RBM,应通过何种指标评价其优劣呢?显然,最简单的指标就是该RBM在训练数据上的似然度C()=∑1logP(v(()。但是,C(0)的计算涉及到归一化常数(),而这个值是无法通过数学方法直接解析得到的,但我们又不可能枚举RBM的所有状态。因此,只能采用近似方法对RBM进行评估。4.1重构误差所谓“重构误差”( reconstruction error),就是以训练数据作为初始状态,根据RBM的分布进行一次 Gibbs采样后所获样本与原数据的差异(一般用一范数或二范数来评估)Error=0初始化误差for all y(),t∈{1,2,…,T}do%对每个训练样本y(进行以下计算h N P(v()%对隐层采样ⅴ~P(h%对可见层采样Error=Eror+‖v-v)‖%累计当前误差end forreturn上mOP%返回总误差算法2.重构误差的计算.重构误差能够在一定程度上反映RBM对训练数据的似然度,不过并不完全可靠[23。但总的来说,重构误差的计算十分简单,因此在实践中非常有用。4.2退火式重要性采样退火式重要性采样”( Annealed Importance Sampling,AIS)图2是目前比较主流的RBM评估方法。它的想法非常直接,就是利用蒙特卡岁方法估计RBM对数据的似然度。只不过没有使用MCMC,而是通过一种叫做“重要性采样”( Importance Sampling)[20的算法进行逼近。这种算法的优点在于:当目标分布十分陡峭时,不直接对其进行采样,而是引入另一个简单的分布,在这个简单的分布上采样。然后,利用采样所获样本和两个分布之间的关系对原分布上的均值进行估算。“重要性抽样”的基本思想如下:假设我们要计算某个分布P4(x)的归一化常数ZA,那么,我们可以引入另一个状态空间相同,但更容易采样的分布PB(x),并且事先知道它的归化常数zB。这时,只要能计算出zA/zB的值,我们就可以算出原分布的归一化常数ZA。假
- 2020-12-04下载
- 积分:1