log(6为了获得最优参数θ^,我们可以使用随札梯度上升法(stochasticgradientascent)求C(6)=∑1lgP(vθ)的最大值。其中,关键步骤是计算logP(v()关于各个模型参数的偏导数由于c(O)=∑logp(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))(Σhexp[-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;的偏导数分别为alogP(v8ihiidata-(ihi,modelalogP(v0)datai)modelalogP(v8=(hi)data(himodel2.1RBM中的Gibbs采样Gibs采样(Gibbssanpling)[20是一种基于马尔可夫链蒙特卡罗(MarkovchainmonteCarlo,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,交替进行如下采样:howP(hvo),V1P(vho),h1nP(hv1),P(vhP(vhk)在采样步数k足够大的情况下,我们可以得到服从RBM所定义的分布的样本。此外,使用Gib样我们也可以得到式(8)中第二项的一个近似。22基于对比散度的快速学习算法尽管利用吉布斯采样我们可以得到对数似然函数关于未知参数梯度的近似,但通常情况下需要使用较大的采样步数,这使得RBM的训练效率仍旧不高,尤其是当观测数据的特征维数较高时。2002年,Hinton7提出了RBM的一个快速学习算法,即对比散度(ContrastiveDivergenceCD)。与吉布斯采样不同,Hinton指出当使用训练数据初始化vo时,我们仅需要使用k(通常k=1)步吉布斯采样使可以得到足够好的近似。在CD算法一开始,可见单元的状态被设置成个训练样本,并利用式(4)计算所有隐层单元的二值状态。在所有隐层单元的状态确定之后,根据式(5)来确定第个可见单元v;取值为1的概率,进而产生可见层的一个重构reconstruction)国武技论义在线这样,在使用随杋悌度上升法最大化对数似然函数在训练数据上的值时,各参数的更新准则为△Wx=(vh;)ata-(vhrecondata这里,是学习率((learningrate),{}reon表示一步重构后模型定义的分布在RBM中,可见单元数一般等于训练数据的特征维数,而隐单元数需要事先给定。为了与前文记号致,假设可见单元数和隐单元数分别为和m。令W表示可见层与隐层间的连接权重矩阵(m×m阶),a(n维列向量)和b(m维列向量分别表示可见层与隐层的偏置向量。RBM的基于CID的快速学习算法主要步骤可描述如下输入:一个训练样本xo;隐层单元个数灬m;学习率e;最大训练周期T●输出:连接权重矩阵W、可见层的偏置向量a、隐层的偏置向量b.·训练阶段初始化:令可见层单元的初始状态v1=x0;W、a和b为随机的较小数值。Fort=1.2TForj=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提出了持续对比散度(Persistentcontrastivedivergence,PCD)算法,该算法与CD的区别在于首先,PCD不再使用训练数据初始化CD算法中的Gibbs采样的马氏链;其次,PCD算法中的学习率较小且不断衰减。根据随机近似理论,尽管每次更新参数后模型都发生了改变(每次对于W,a和b的更新,RBM定义的分布都会发生改变),但由于学习率较小且不断衰减,则可认为那条马氏链产生的负样本是由当前RBM定义的分布的一个近似分布米样而来Tieleman和Hinton[27进一步改进了PCD算法,他们通过引入一组辅助参数以加快PCD中的马氏链的混合率,提出了快速持续对比散度(FastPersistentContrastiveDivergence,FPCD)算法。关于RBM的学习算法,除了上述提到的基于CD的一些方法之外,还有最大化拟似然函数(maximumpseudo-likelihood)、比率匹配方法(ratiomatching)等,有兴趣的读者可参阅[28]查找关于RBM学习算法比较详细的阐述。3RBM的参数设置RBM的训练通常是基于CD的方法(即算法1)进行的,但如何设置其中的些参数(如隐单元个数、学习率、参数的初始值等),是需要有一定经验的。近来,已有部分研究结果②29,30表明:对于特定的数据集和RBM结构,如果参数设置不合适,RBM将很难对真正的数据分布正确建模。因此,对实际使用者(尤其是初学者)米说,了解RBM中参数设置的一般规则是非常重要的。根据Hinton{23]提供的建议以及我们进行数值试验所获部分经验,对RBM中的参数设置可参考以下规则。小批量数据及其容量对于连接权重、可见层和隐层偏置的更新,虽然可以基于一个训练样本进行(类似于在线学习的方式),但计算量将很大。将训练集事先分成包含几|或几百个样本的小批量数据(mini-batches)进行计算将更高效,这主要是可以利用图形处珥器GPU(graphicProcessingUnit)或Matlab屮矩阵之间相乘运算的优势。同时,为了避免在小批量数据的样本容量发生改变时,学习率也必须做相应的修改,通常的做法是在参数的更新过程中,使用参数的平均梯度(即总梯度除以数据容量),即B(t+1(t+1)=0(+∑alogP(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重构误差所谓“重构误差”(reconstructionerror),就是以训练数据作为初始状态,根据RBM的分布进行一次Gibbs采样后所获样本与原数据的差异(一般用一范数或二范数来评估)Error=0初始化误差forally(),t∈{1,2,…,T}do%对每个训练样本y(进行以下计算hNP(v()%对隐层采样ⅴ~P(h%对可见层采样Error=Eror+‖v-v)‖%累计当前误差endforreturn上mOP%返回总误差算法2.重构误差的计算.重构误差能够在一定程度上反映RBM对训练数据的似然度,不过并不完全可靠[23。但总的来说,重构误差的计算十分简单,因此在实践中非常有用。4.2退火式重要性采样退火式重要性采样”(AnnealedImportanceSampling,AIS)图2是目前比较主流的RBM评估方法。它的想法非常直接,就是利用蒙特卡岁方法估计RBM对数据的似然度。只不过没有使用MCMC,而是通过一种叫做“重要性采样”(ImportanceSampling)[20的算法进行逼近。这种算法的优点在于:当目标分布十分陡峭时,不直接对其进行采样,而是引入另一个简单的分布,在这个简单的分布上采样。然后,利用采样所获样本和两个分布之间的关系对原分布上的均值进行估算。“重要性抽样”的基本思想如下:假设我们要计算某个分布P4(x)的归一化常数ZA,那么,我们可以引入另一个状态空间相同,但更容易采样的分布PB(x),并且事先知道它的归化常数zB。这时,只要能计算出zA/zB的值,我们就可以算出原分布的归一化常数ZA。假-IMDN开发者社群-imdn.cn">
log(6为了获得最优参数θ^,我们可以使用随札梯度上升法(stochasticgradientascent)求C(6)=∑1lgP(vθ)的最大值。其中,关键步骤是计算logP(v()关于各个模型参数的偏导数由于c(O)=∑logp(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))(Σhexp[-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;的偏导数分别为alogP(v8ihiidata-(ihi,modelalogP(v0)datai)modelalogP(v8=(hi)data(himodel2.1RBM中的Gibbs采样Gibs采样(Gibbssanpling)[20是一种基于马尔可夫链蒙特卡罗(MarkovchainmonteCarlo,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,交替进行如下采样:howP(hvo),V1P(vho),h1nP(hv1),P(vhP(vhk)在采样步数k足够大的情况下,我们可以得到服从RBM所定义的分布的样本。此外,使用Gib样我们也可以得到式(8)中第二项的一个近似。22基于对比散度的快速学习算法尽管利用吉布斯采样我们可以得到对数似然函数关于未知参数梯度的近似,但通常情况下需要使用较大的采样步数,这使得RBM的训练效率仍旧不高,尤其是当观测数据的特征维数较高时。2002年,Hinton7提出了RBM的一个快速学习算法,即对比散度(ContrastiveDivergenceCD)。与吉布斯采样不同,Hinton指出当使用训练数据初始化vo时,我们仅需要使用k(通常k=1)步吉布斯采样使可以得到足够好的近似。在CD算法一开始,可见单元的状态被设置成个训练样本,并利用式(4)计算所有隐层单元的二值状态。在所有隐层单元的状态确定之后,根据式(5)来确定第个可见单元v;取值为1的概率,进而产生可见层的一个重构reconstruction)国武技论义在线这样,在使用随杋悌度上升法最大化对数似然函数在训练数据上的值时,各参数的更新准则为△Wx=(vh;)ata-(vhrecondata这里,是学习率((learningrate),{}reon表示一步重构后模型定义的分布在RBM中,可见单元数一般等于训练数据的特征维数,而隐单元数需要事先给定。为了与前文记号致,假设可见单元数和隐单元数分别为和m。令W表示可见层与隐层间的连接权重矩阵(m×m阶),a(n维列向量)和b(m维列向量分别表示可见层与隐层的偏置向量。RBM的基于CID的快速学习算法主要步骤可描述如下输入:一个训练样本xo;隐层单元个数灬m;学习率e;最大训练周期T●输出:连接权重矩阵W、可见层的偏置向量a、隐层的偏置向量b.·训练阶段初始化:令可见层单元的初始状态v1=x0;W、a和b为随机的较小数值。Fort=1.2TForj=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提出了持续对比散度(Persistentcontrastivedivergence,PCD)算法,该算法与CD的区别在于首先,PCD不再使用训练数据初始化CD算法中的Gibbs采样的马氏链;其次,PCD算法中的学习率较小且不断衰减。根据随机近似理论,尽管每次更新参数后模型都发生了改变(每次对于W,a和b的更新,RBM定义的分布都会发生改变),但由于学习率较小且不断衰减,则可认为那条马氏链产生的负样本是由当前RBM定义的分布的一个近似分布米样而来Tieleman和Hinton[27进一步改进了PCD算法,他们通过引入一组辅助参数以加快PCD中的马氏链的混合率,提出了快速持续对比散度(FastPersistentContrastiveDivergence,FPCD)算法。关于RBM的学习算法,除了上述提到的基于CD的一些方法之外,还有最大化拟似然函数(maximumpseudo-likelihood)、比率匹配方法(ratiomatching)等,有兴趣的读者可参阅[28]查找关于RBM学习算法比较详细的阐述。3RBM的参数设置RBM的训练通常是基于CD的方法(即算法1)进行的,但如何设置其中的些参数(如隐单元个数、学习率、参数的初始值等),是需要有一定经验的。近来,已有部分研究结果②29,30表明:对于特定的数据集和RBM结构,如果参数设置不合适,RBM将很难对真正的数据分布正确建模。因此,对实际使用者(尤其是初学者)米说,了解RBM中参数设置的一般规则是非常重要的。根据Hinton{23]提供的建议以及我们进行数值试验所获部分经验,对RBM中的参数设置可参考以下规则。小批量数据及其容量对于连接权重、可见层和隐层偏置的更新,虽然可以基于一个训练样本进行(类似于在线学习的方式),但计算量将很大。将训练集事先分成包含几|或几百个样本的小批量数据(mini-batches)进行计算将更高效,这主要是可以利用图形处珥器GPU(graphicProcessingUnit)或Matlab屮矩阵之间相乘运算的优势。同时,为了避免在小批量数据的样本容量发生改变时,学习率也必须做相应的修改,通常的做法是在参数的更新过程中,使用参数的平均梯度(即总梯度除以数据容量),即B(t+1(t+1)=0(+∑alogP(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重构误差所谓“重构误差”(reconstructionerror),就是以训练数据作为初始状态,根据RBM的分布进行一次Gibbs采样后所获样本与原数据的差异(一般用一范数或二范数来评估)Error=0初始化误差forally(),t∈{1,2,…,T}do%对每个训练样本y(进行以下计算hNP(v()%对隐层采样ⅴ~P(h%对可见层采样Error=Eror+‖v-v)‖%累计当前误差endforreturn上mOP%返回总误差算法2.重构误差的计算.重构误差能够在一定程度上反映RBM对训练数据的似然度,不过并不完全可靠[23。但总的来说,重构误差的计算十分简单,因此在实践中非常有用。4.2退火式重要性采样退火式重要性采样”(AnnealedImportanceSampling,AIS)图2是目前比较主流的RBM评估方法。它的想法非常直接,就是利用蒙特卡岁方法估计RBM对数据的似然度。只不过没有使用MCMC,而是通过一种叫做“重要性采样”(ImportanceSampling)[20的算法进行逼近。这种算法的优点在于:当目标分布十分陡峭时,不直接对其进行采样,而是引入另一个简单的分布,在这个简单的分布上采样。然后,利用采样所获样本和两个分布之间的关系对原分布上的均值进行估算。“重要性抽样”的基本思想如下:假设我们要计算某个分布P4(x)的归一化常数ZA,那么,我们可以引入另一个状态空间相同,但更容易采样的分布PB(x),并且事先知道它的归化常数zB。这时,只要能计算出zA/zB的值,我们就可以算出原分布的归一化常数ZA。假 - IMDN开发者社群-imdn.cn">
首页 »
Others »
受限波尔兹曼机(Restricted Boltzmann Machines)介绍
于 2020-12-04 发布
0 369
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。假
下载说明:请别用迅雷下载,失败请重下,重下不扣分!
-
电容恒流充电模糊控制matlab仿真与实现入门
详细介绍了模糊控制的思想并借助matlab/simulink 2012b软件实现了电容横流充电的建模仿真,最后将模糊控制器导出为能直接在stm32上应用的C语言代码.涵括了模糊控制开发全过程.
- 2020-12-10下载
- 积分:1
-
太阳能LED路灯控制器设计
太阳能路灯系统能耗较大,所需配套的蓄电池容量也较大,造成成本过高,影响了太阳能路灯系统的实际工程推广。针对此问题,设计出了一种新型的节能照明控制器,与传统路灯控制器相比,可使能耗大大降低。该控制器控制功能易于实现,运行可靠,可使照明工程既满足功能性的要求,又能实现最大限度的节能。
- 2020-11-27下载
- 积分:1
-
Apriori算法的改进
有关Apriori算法的几种改进方法,可以帮助我们更好地进行数据挖掘分析
- 2020-12-05下载
- 积分:1
-
学生选课管理系统(数据库课程设计)
学生选课管理系统 数据库课程设计目录第一章系统规划1.1引言..b垂1.1.1编写目的.1.1.2项目背景1.2可行性研究的前提1.2.1目枋1.2.2要求1.2.3条件假定和限制1.2.4决定可行性的主要因素1.3技术可行性分析3.1技术的支持能力.11122333333.2技术的优势.1.3.3技术的难点1.4经济可行性分析1.4.1预期支出1.4.2预期收益1.5社会可行性分析333444441.5.1法律因素.1.5.2用户使用可行性.1.6意见结论第二章需求分析2.1系统需求垂鲁垂垂垂2.2功能需求2.3数据流图..2.3.1系统顶层图2.3.2数据流程图一层分解图2.3.3数据流程图二层分解图2.4数据字典.2.4.⊥数据流条目2.4.2数据处理132.4.3数据存储.14第三章概念设计...153.1实体之间的联系153.2ER图153.2.1局部E-R图第四章逻辑设计..11概念模型向关系模型的转换194.1.11:N联系的转化的关系模式4.1.2M:N联系的转化的关系模式194.2概念模型的优化04.2.1确定范式级別04.2.2实施规范化处理20第五章物理设计.5.1数据库的存储结构.,225.1.2数据库的表设计225.1.3数据的存放位置的设计245.1.4关系模式的存取方法245.1.5.数据库安仝性.21第六章实现、运行与维护.256.1实现,,,256.1.1数据库的实现.256.1.2视图的实现256.2人机界面设计,事b··垂···,,,,,,,,276.2.1用户登陆界面276.2.2学生选课管理界面.276.2.3教师管理界面.286.2.4管理员管理界面.6.3系统测试296.3.1用户脊陆测试296.3.2学生选课管理测试,,,,,,,296.3.3教师管理测试306.3.4管理员管理测试、4运行维护....,32总结33参考文献34学生选课管理系统第一章系统规趔第一章系统规划1.1引言1.1.1编写目的可行性研究的日的是川最小的代价在尽可能的短的时间内确定数据库系统是否可能开发、是否值得开发、是否可以开发(在该报告中主要是考査《学生选课管理系统》是否可能开发、是否值得开发、是否可以开发)。其实质是在较高层次上以较抽象方式进行的、简化的压缩的需求分析和概要设计过程。1.1.2项目背景开发软件名称:学生选课管理系统项目任务提出者:李军项目开发者:洪峰、陈梓明等用户:各大高校师生1.2可行性研究的前提1.2.1目标系统实现后,极大的方便对学生进行选课和选课后临时班级的安排管理,学生选课信息的管理。避免在安排课程信息的滞后,减少信息交流的烦琐过程及其带来的丌销。促进髙校教育的计算机信息化进程,提髙学校的工作效率。对于系统的本身而言,应该具有较高的实用性、安全性。能够极大的满足学生选课,以及学校对选课信息的管理学生选课管理系统第一章系统规趔1.2.2要求主要功能:教师和学生登陆系统的帐号和密码,初始都分别为教师和学号,登陆后密码可以修改。其屮教师的职位可以是管理员。管理员和非管理员的老师及学生对系统的操作具有不同的权限。管理员登陆系统,对学生选课情况进行管理,包括发布选课信息,对学生的选课情况进行查看。管理员还可以对授课老师的信息进行增加、删除、修改、查询。教师脊陆系统,能査看自己的个人信息,及所授课的班级的所有学生的本门课程的成绩信息,并能进行增加和修改。学生登陆系统,能进行选课,查看管理员发布的选课信息,自己的选课情况,本人的基本信息,以及课程的成绩。系统自动分巸学生选课后的临时班级。性能要求管理员发布的信息、学生选课的信息以及管理员和学生对系统操作的信息必须及时的反映在本系统上,且无差错输入要求:具有很好的容错性和兼容性输出要求:应迅速、准确、实吋完成期限:预计五个星期,即截止2011年12月30日。1.2.3条件假定和限制建议软件寿命:未知经费来源:自费硬件条件: Intel pentium4、lG内存同等性能及以上的硬件条件运行环境: WindowⅪP、 Tomcat5.5、JDK1.6数据库: Microsoft sQL server2005投入运行最迟时间:2012年1月5日学生选课管理系统第一章系统规趔1.2.4决定可行性的主要因素技术可行,现有技术可完全承担开发任务操作可行,软件能被操作人员快速接受绎济可行,为小型系统软件,支出较小。社会可行,使用软件全部为正版,且本软件在法律允许范围之内1.3技术可行性分析技术上的可行性分析要考虑现有技术条件能否顺利完成开发工作及将来要采用的硬件和软件技术能否满足用户提出的要求。1.3.1技术的支持能力木系统采用J2EE企业级开发方案,其中 MyEclipse8.5作为系统前台应用程序丌发工具,采用 SQL Server2005工具建立数据库,并通过JDBC使两者进行连接从而进行系统软件开发。此前,我们已使用相同技术开发过类似软件系统,具有一定开发经验。此外,从开发人员的水平考虑,本系统的软件开发人员,都具有较强软件开发能力,且之前开发都参加过类似软件系统的开发,经验卡富。3.2技术的优势、J2EE体系结构提供中间层集成框架用来满足无需人多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求、开发效率、代码重用率高;、跨平台,编写次,随处运行;四、开发界面友好,智能。1.3.3技术的难点数据库设计和维护、系统负荷和安全问题学生选课管理系统第一章系统规趔1.4经济可行性分析1.4.1预期支出基础投资计算机10台:5000*10=5万人员工资:5000儿*2月*10人=10力官传费用:1万其他不可知支出:2万支出共计:18万本学生选课管理系统其它所需的硬件(计算机及相关硬件)和软件环境MyEclipse8.5+ Tomcat.5.5+JDK1.6+ SQL Server2005),市场上都容易购买到或从相关网站下载。其屮JDK1.5为开源免费软件。而 SQL server2005本软件采用的是学习版,也是免费的, MyEclipse8.5以前已经购得,开发成本较小。1.4.2预期收益预期发售价格:2万/套目标客户:全国各大高校预期发售量:40套/年预期收益:40米2=80万预期收益>预期支出,开发本系统能够为投资者带来较高的收益。1.5社会可行性分析1.5.1法律因素开发使用的所有软件都选用正版,其中JDK1.5为开源免费软件。而SQLserver2005木软件采用的是学习版,也是免费的学生选课管理系统第一章系统规趔1.5.2用户使用可行性本软件操作简单,界面友好,功能完备,有一定计算机基础的人员就能进行操作。6意见结论根据上述分析,技术、济、社会可行性都可行,可以立即进行开发。学生选课管理系统第二章需求分析第二章需求分析2.1系统需求用户的需求具体体现在选课信息和用户信息的提供、保存、更新和查询的方面。这就要求数据库的设计必须合理,使之能够充分满足各种信息的输入和输出,保证数据存储的可靠性,并且能够快速取出和存入。而前台显示部分,应具有人性化的界面,方便用户操作。因各个学校的实际情况不同,系统应该具有兼容性。例如:一些学校学生人数较多,同时登陆系统,系统承载的负荷就很大。系统需要同时处理很人的数据量,这时系统不会因此崩溃。此外,系统还应该具有较强的安全性,保证身份不同的用户,不能越权操作。非合法用户不能对数据进行操作2.2功能需求通过系统功能的分析,结合需求分析员在各大高校实地考查,调查的对象涵盖了,学校的教职工、在校师生。特别是对已经运行了与本系统同类产品的学校的师生使用选课管理系统心得体会进行了分析,总结出如下的需求信息(1)学生的需求:能进行选课,査看管理员发布的选课信息,自己的选课凊况,本人的基本信息,课程的成绩;()教师的需求:能查看自己的个人信息,及所授课的班级的所有学生的本门课程的成绩信息,并能进行增加和修改;〔3)管理员的需求:对学生选课情况进行管理,包括发布选课信息,对学生的选课情况进行査看。管理员还可以对授课老师的信息进行管理。
- 2020-12-09下载
- 积分:1
-
压缩感知的SP算法
这是压缩感知的SP算法,写的特别好,没有错误,代码中只要改动一个参数值就可以变成CoSaMP算法。
- 2021-05-06下载
- 积分:1
-
大类招生专业分流系统
可以用作本科生的毕业设计,其中的数据库部分使用的是存储过程
- 2020-12-01下载
- 积分:1
-
MATLAB 目标追踪(单目标、多目标) 可以运行
MATLAB 目标追踪单目标:实现对人物追踪(视频背景不动)多目标:实现对汽车追踪将追踪目标用矩形框标志出来程序使用GUI界面形式 先添加视频,然后单击“单目标追踪”或“多目标追踪”即可实现,需要注意的是:选择“单目标”视频时,必须单击“单目标追踪按钮”,同理选择“多目标”视频时,必须单击“多目标追踪按钮”,否则报错!!!
- 2020-12-06下载
- 积分:1
-
图形识别与颜色识别工具
图形识别代码,可以识别多种颜色与形状,还可以计算面积与周长,形状包括三角形,正方形,长方形,梯形,平行四边形,菱形,其他四边形,五边形,五角星,六边形和其他多边形,椭圆,圆等,颜色包括蓝色,紫色,红色,橙色等python,opencv。如果没有办法运行,请私信我。
- 2021-05-06下载
- 积分:1
-
LabWindows CVI之无驱摄像头使用-实例;远程监控
LabWindows CVI之无驱摄像头使用-实例;远程监控,使用AVICAP32开发,所谓远程监控也只是传输图片数据,并没有传输流媒体,下载请注意
- 2020-12-02下载
- 积分:1
-
协作通信中的中继端利用AF协议的仿真程序
协作通信中的中继端利用amplify-and-forward协议转发信息
- 2021-05-07下载
- 积分:1