您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 1112216002_朴号英_智能科学
智能科学学生姓名朴号英学号1112216002递归神经网络的原理和训练方法1.引言随着无线通信的飞速发展,3G、4G的应用和研究,功率放大器的性能已经变得越来越重要。功率放大器在整个系统中的设计决定了其性能。为了能够搭建完整的较为精确的功率放大器模型用于系统级设计,我们需要对功率放大器的特点和功能进行行为级的建模。在传统的功率放大器的建模方式还不完备的情况下,人工神经网络的优势就体现出来。人工神经网络在训练后不仅能够提供快速精确的响应,而且仅提供实际测量的数据就能训练出相应的模型而不需要搭建实际的电路模型,这样既节省了时间,也方便了相关的后续设计。递归神经网络是一种具有反馈形式的神经网络,本文采用提取较慢变化的信号的方法对功率放大器进行建模,其训练数据是时域数据,经过合理的训练能够很好的反应出功率放大器的行为。2.递归神经网络结构由于人工神经网络具有可以学习任意非线性系统的能力而被应用于多个领域,其中对于功率放大器的建模来说也发挥着重要的作用。采用前馈神经网络所建立的模型是静态的,并不能描述系统的动态特性。描述动态系统的模型应该具备的是能够描述系统的动态特性和存储信息的能力。为了描述功率放大器内部的电感电容等储能元件,就需要神经网络能够包括延时信息,为了能够描述动态特性,就需要输出信息的反馈。现在的递归神经网络有几十种不同的结构以满足不同的动态系统的结构。不同的递归神经网络有着不同的结构与特性。下面就简单介绍几种递归神经网络的结构。递归神经网络的结构主要分为三种:一种是全局反馈递归网络,另一种是全局前向递归网络,还有一种是混合型递归网络,也就是前两种递归神经网络的结合。因为本篇文章应用的是全局反馈型神经网络,所以在这里主要介绍的是全局反馈型神经网络。2.1全局反馈型递归神经网络2.1.1ARX网络和NARX网络对于ARX网络结构[53]是一种多项式的结构,其神经网络中神经元的激励函数是线性的,这种网络结构简单的采用了递归神经网络的输出是输出延时和输入及输入延时的多项式和为:12111()(1)(2)...(1)(1)...(1)mnykaykaykaykmbxkbxkn(1)而对于NARX网络来说,就是把相应的线性的神经元的激励函数变成了非线性的例如sigmoid函数,这样相应的表达式就变成了:()(1),(2),...,(1),(1),...,(1)ykfykykykmxkxkn(2)可以看到ARX网络是线性的网络,可以用于线性的建模;而NARX是一种非线性的神经网络,因此用于的是非线性的建模。2.1.2Hopfield网络Hopfield网络是一种典型的全反馈的递归神经网络。它是一种简单的神经网络结构,只有一层网路,其中神经元的激励函数为阈值函数,是将某一时刻的网络输出作为反馈,反馈到输入作为下一时刻网络的输入,这样来组成动态的系统,这样的网络具有相同的输入和输出。............图1Hopfield网络结构2.1.3约旦网络约旦网络为NARX网络的一种特殊形式,就是当NARX网络只含一层隐含层的时候这时的网络叫作约旦(Jordan)网络。需要注意的是,该神经网络存在关联层,这个关联层是假想的神经元层。图2约旦网络结构可以根据约旦型神经网络结构来看,该网络适用于一阶系统的动态建模。2.2前向递归神经网络递归神经网络是一种输出反馈作为输入的神经网络。如图3:图3递归神经网络结构图如图所示,递归神经网络分为:输入层、x层、z层、y层。输入层包括了随时间变化的输入信号u(k)和与时间相关的变量p。输出层为与时间相关的信号y(k)。例如如果模型用来对放大器进行建模,则输入信号u(k)就用来代表放大器的输入信号;而p用来代表与放大器相关的电路参数;y(k)则为放大器的输出。隐藏层的第一层为x层,这一层包含了输出信号y的时间延迟信息、输入信号x的延迟信息和电路的参数p的信息。这里让时间采样的序数为k。让Ky和Ku分别为输出y和输入u的总的延迟数目。x层可以定义为:(),(1);1;1(),(1);()1;1,;1jyyyjyyyiuunyyuupyknforinNjjNnKuknforiKNnNjxkjNnKpforinKNKNnK(3)设Nx是x层神经元的总数,则有Nx=Kp+NyKy+NuKu。下一层隐藏层叫作z层。这一层的神经元包含了sigmoid函数。在x层和z层之间的权重向量为w=[w11w12…wNsNx]T,=[1,2,…,Nz]T为z层神经元相应的偏置。对于一组给定的x层的数值,z层的值就可以通过公式来计算:[(1)]11[(1)]11[]1()()()()(),1,...,yyyuyyuuKyNyjljiNlilKuNumjKNiNmimKpijKNKNijijjzkykiwukiwpwzkkjN(4)其中()jk是sigmoid函数,wij是z层的第i个神经元和x层第j个神经元之间的权重。最后一层叫作y层是输出层。y层的输出是z层神经元线性响应。让v=[v11v12…vNyNz]T是z层和y层之间的权重,η=[η1,η2,…,ηNy]T是y层每一个神经元的偏置。那输出层可以通过如下的公式来计算:1()(),1,...,NzijijiyjykzkviN(5)其中vij为y层第i个神经元和z层第j个神经元。RNN的参数可以定义为Φ,Φ=[wTTvTηT]。从x层到z层再到y层的这个过程是一个前馈神经网络这样y就被定义为y(x,Φ)。整体的神经网络就可以定义为:()((1),(2),...,(),(1),(2),...,(),,)yuykfykykykKukukukKp(6)3.递归神经网络模型构建方法递归神经网络模型只有当用训练数据训练之后才能具有微波器件非线性的性质。训练数据是一组原始非线性电路的输入输出波形。这些数据是通过电路的仿真或者测量而得到的。测试数据也是同样的方法得到的,并且需要与训练数据不同。设y(t)代表递归神经网络输出响应,而d(t)代表原始非线性电路的输出波形,比如说仿真或者测试。训练数据可以用(uq(t),dq(t)),T1≤t≤T2,q=1,…,Nw,其中uq(t)和dq(t)分别是第q个输入输出,Nw是波形整体采样点的数量。训练的过程就是对于相同的输入u(t),减小递归神经网络模型的输出y(t)与电路的波形数据d(t)的差别尽可能的减小。Nt为在[T1,T2]中时间的采样点数。yiq(k)为递归神经网络的输出信号,i代表递归神经网络的第i个输出,q代表输出的第q个波形,k为波形中第k个采样点。而diq(k)为对应的原始非线性电路的输出响应。训练的目的就是使得21111ˆmin()()2ywtNNNiqiqqikykyk(7)为了能够很好的训练递归神经网络,式5.7的导数信息需要来形成Jacobian矩阵。由于输出y不只由输入所决定,而且也和当前时间点之前的输出有关系。传统的方法对于这种训练显然不奏效。BPTT[28]是一个很好的办法来构建Jacobian矩阵。211ˆ()()()2NyqiqiqiEkykyk(8)公式5.8为训练误差的表述形式,为了能够得到Eq(k)对权重Φ的导数来用于训练。我们需要去计算其中yiq(k)的导数,yiq(k)的导数可以通过下面的方式来计算。首先对于k=1,初始化()/()/iqiqdykdyk,其中左边的部分是递归神经网络的导数,右边的为在x和y层之间的FFNN的导数,这部分可以用传统的BP算法来优化。当k1的时候左边的导数可以通过下面的公式来计算:11[(1)]()()()()yLyNyiqiqjqjqmjjmNdykykykdykmdxd(9)其中,,1,.yyyKifkKLkotherwise(10)递归的反向传播方法包括两个部分:首先,在x层和y层之间的FFNN可以通过BP方法来得到()/iqyk。然后()/()iqykxk是应用进一步的BP算法来得到的。这个导数代表的是电路输出波形的趋势可以写为:()1[(1)][(1)][(1)]1()(1)1,...,;1,...,.yyyNziqkiqrrjmNrjmNNzirrrrjmNryyydykdzxdzdxvzzwforjNmK(11)()/iqyk的结果会存储下来并递归用于计算k+1步的导数信息。在这个过程之后,对于每一个参数的可以得到下面的Jacobian矩阵:111222()(1)(2)...()(1)(2)....(1)(2)()...J=(12)依据这个方法我们可以采用Levenberg-Marquardt[57][58]和quasi-Newton[59]算法来训练递归神经网络模型。经过训练的递归神经网络模型就可以很好的反应原始非线性的微波电路的动态的输入输出关系。4.递归神经网络与其他结构神经网络区别常用的不是递归的神经网络的有:前馈神经网络(FFNN)和时延神经网络(TDNN)。其中前馈神经网络为最基本的神经网络结构,不带时延和反馈结构,此时输出只和同一时间的输入信息有关系,并且前馈神经网络只能反映静态的输入输出关系,模型不足够准确,所以不能对动态的电路或者系统进行建模,但是这种神经网络由于不带有复杂的结构和信息,所以训练速度是最快的。时延神经网络是建立在前馈神经网络之上的,除了基本的前馈神经网络信息,还包括了输入的延时信息,就是说在输入的神经元上不仅包括了x(t)还包括了下x(t-)、x(t-2)等的信息。这和递归神经网络比较相像。时延神经网络用于大型的模式识别系统。主要的应用是把连续的音频信号转换成具有分类标签的数据流用于语音识别[60]。而注意到递归神经网络不仅包括了输入的延时信息,并且把相应的输出信息反馈回了输入神经元,并且加入了输出信息的时延信息。这样相比时延神经网络,可以更好的用来描述动态系统的行为,并且对于同样的输入来说由于电路相应的历史信息不同会使得电路的输出是不同的,所以在这种情况下,无递归形式的前馈神经网络和时延神经网络不能够在输入相同输出不同的情况下得到一个准确的结果,而只要给递归神经网路足够的信息训练就能得到较好的建模精度。但是对于使用带有反馈回路的神经网络来说,这个反馈会提高训练神经网络的复杂程度和计算的消耗[61]。对于时延神经网络和递归神经网络来说,训练的过程包括了神经网络参数的误差梯度计算。而递归神经网络由于递归结构的原因需要对多个时间信息进行存储。对于这种计算较为复杂的训练算法包括了实时递归学习算法(RTRL)和时间反馈算法(BPTT),或者简化的BPTT来计算误差的梯度[62]。除此之外,本文还介绍了动态神经网络,动态神经网络是一种基于连续时域信息的神经网络,这是由于对于动态神经网络训练的数据是频域数据,频域数据可以转换为连续的时域波形,这样可以较为精确的反映出非线性系统的行为变化,但是对于比较复杂的非线性系统来说,动态神经网络会使用过多的导数阶数,这样可能会导致系统不够可靠,在仿真工具中求解这样的神经网络的时候不能够很好的收敛。而对于递归神经网络,训练的数据是利用离散的时域数据,虽然不能准确的对每一点进行训练,但是神经网络是具有归纳能力的系统,这样的点数就可以对附近的数据进行推算,而且更加重要的是,利用时延单元来构建神经网络可以避免用动态神经网络的导数信息,这样就可以处理较为非线性程度较高,具有较高阶数的系统。5.递归神经网络结构讨论递归神经网络的延迟单元的数
本文标题:1112216002_朴号英_智能科学
链接地址:https://www.777doc.com/doc-4161210 .html