神经网络:模型理论、学习算法及应用 习题及答案 电子 第2-11章_第1页
神经网络:模型理论、学习算法及应用 习题及答案 电子 第2-11章_第2页
神经网络:模型理论、学习算法及应用 习题及答案 电子 第2-11章_第3页
神经网络:模型理论、学习算法及应用 习题及答案 电子 第2-11章_第4页
神经网络:模型理论、学习算法及应用 习题及答案 电子 第2-11章_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题

2.1什么是感知机?感知机的基本结构是什么样的?

解答:感知机是FrankRosenblaii在1957年就职于Cornell航空实验室时发明的一种人工神经网络。它可以

被视为一种最简单形式的前馈人工神经网络,是一种二元线性分类器。

感知机结构:

输出

>*

2.2单层感知机与多层感知机之间的差异是什么?请举例说明。

解答:单层感知机与多层感知机的区别:

1.单层感知机只有输入层和输出层,多层感知机在输入与输出层之间还有若干隐藏层;

2.单层感知机只能解决线性可分问题,多层感知机还可以解决非线性可分问题。

2.3证明定理:样本集线性可分的充分必要条件是正实例点集所构成的凸壳与负实例点集构

成的凸壳如不相交.

解答:首先给出凸壳与线性可分的定义

凸壳

定义1:设集合SuRn,是由一中的A个点所组成的集合,即S={41,必,…,*}。定义S的凸壳为conu(5)为:

k

conv(S)=x={^txiIW4=1,AN0,t=1,2,…,k

i=lJ

线性可分

定义2:给定一个数据集

T={(X2l),(X2,、2),…,(/,%)}

其中项EX=Rn,ytey={+1,-1},i=1,2,…,n,如果存在在某个超平面S:

w-x+h=0

能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,即刻所有的正例点即%=+1的实

例i,有W=+/)>(),对所有负实例点即%=-1的实例3有wr+b<0,则称数据集r为线性可分数

据集;否则,称数据集r线性不可分。

必要性:线性可分—凸壳不相交

设数据集7中的正例点集为S+,S+的凸壳为conu(S+),负实例点集为S_,S_的凸壳为conu(S_),若T是线

性可分的,则存在一个超平面:

w-x+b=0

能够将S+和S_完全分离。假设对于所有的正例点苣,有:

W-Xi+b=£i

易知与>0,i=l,2,…,|S+I。若conu(S+)和conu(S_)相交,即存在某个元素s,同时满足sWconu(S+)

和$Gconv(S_)o对于conv(S_)中的元素s+有

kkk

w•s+=卬•W=£入式0一协=24网-h

f=ii=ii=i

因此w・s++b=E340>o,同理对于s_中的元素sI有w•S-+b=E3Aq<°,那么由于seco7Ms+)

且sGconv(S_)JllOw-s++b=£,=[4々>。且w-s~+b=£匕九号<0明显推出矛盾,因此conu(S+)和

conu(S_)必不相交。从而推出必耍性。

充分性:凸壳不相交t线性可分

设数据集丁中的正例点集为S+,S+的凸壳为con叭S+),负实例点集为S_,S_的凸壳为conv(S_),且cow(S+)

与cow(S_)不相交,定义两个点与,血的距离为:

Xxxx

dist(xlrx2)=||%1-x2II2,V(1-2)(i-2)

定义co72i?(S+)与conu(S_)的距离为:

-+

dist(conv(S+),conv(S_))=min||s*-s||,seconv(S+),s-econv(S_)

i5x+6COHP(S+),X_econv(S^)^.dist(x+,x­)=dist(co7iv(S+),conu(S.))□则对于任意正例点x有

dist(x,x.')>dist(x+,x_)o同理,对■于所有负例点有dist(x,x+)2dist(%+,x_)。存在超平面

w-x+b=Q

其中

W=x+-x.

x+•x+-x_-x_

b=-------------2----------

则对丁所有的正例点X(易知+因此若“+属丁正例点,则令xmx)

w-x+h=(x-x_)-x------------------------

+乙

x+,x+—x_,x_

=x+-x-x.-x------------------------

_||x--力伶-II-+一避

二2

22

_dist(x,xj)-dist(x,x+)

二2

若dist(x,x_)<dist(x,x+),则dist(%,x_)<d(st(xrx+)<dist(x_,x+).那么dist(S+,S_)<dtst(x+,X-)»

推出矛盾。因此对所有的正例点,wr+b>0成立。同理,对所有负例点,w・x+B<0成立。至此,充

分性证得。

2.4请设计一个感知机程序实现2.3节中介绍的逻辑“或”、逻辑“与”功能,并绘出判别界面。

代码:

importnumpyasnp

or_samples=[

10,0,0],

(1.0,I],

[0.1.n.

(1JJ]

]

and_samples=[

[0,0,0],

11,0,0],

10.1,0],

(UJI

]

defperception(samples):

#权重

w=np.array(1l,2|)

井偏置

b=0

#学习率

lr=1

#迭代1()次

foriinrange(IO):

forjinrange(4):

x=np.array(samples|j](:2])

#sgn函数

ifnp.dot(w,x)+b>0:

y=i

else:

y=0

#真实值

t=np.array(samples[j][2])

delta_b=Ir*(t-y)

delta_w=Ir*(t-y)*x

#更新权重

w=w+delta_w

b=b+delta_b

print(fweighl[0]:{w[0]}wcig([l]:{w[l]Jb:{b}1)

print('logicalor:')

perception(or_sainples)

print('logicaland:')

perception(and_samples)

判别界面:

O

2.5使用下面的训练集来训练一个感知机网络,其中初始偏置卬=[0,0],匕=0.5。并试图判

断样本%=(1,1)所属的类别。

类别I:Xi=(0,1);x2=(-1,0);x3=(-1,1)

类别2:x4=(0,2);x5=(2,0);x6=(1,2)

代码:

importnumpyasnp

samples=[

[0,1,0].

(-1.0,0],

1-1,LO],

(0,2,1],

[2,0,1],

U,2.1]

defperception(samples):

#权重

w=np.array([l,H)

#偏宣

b=0.5

#学习率

#迭代10次

foriinrange(IO):

forjinrange(4):

x=np.array(samples[jH:2|)

#sgn函数

ifnp.dot(w.x)+b>0:

y=i

else:

y=0

#真实值

t=np.array(samples[j][2])

delta_b=Ir*(t-y)

delta_w=Ir*(t-y)*x

#更新权重

w=w+deltaw

b=b+delta_b

returnw,b

defpredict(sample):

ifnp.dot(w,sample)+b>0:

y=!

else:

y=0

prinl(y)

#训练感知机

w.b=perception(samples)

#预测样本

sample=[1,1]

predict(sample)

第三章多层前馈神经网络课后习题答案

3.1画出一个含有两个双隐含层,并且神经元总数为20的数据由左往右传播的前馈神经网

络模型。

答:模型图如下。

3.2什么是BP算法?什么是RBF算法?它们各自的特点是什么?

答:BP神经网络的关键是BP算法,BP算法根据每次训练得到的结果与预想结果进行

误差分析,进而修改权值和阈值,一步一步得到能输出和预想结果一致的模型。BP神经网

络具有任意复杂的模式分类能力和优良的多维函数映射能力,解决了单层感知机不能解决的

复杂问题。

RBF神经网络是一种三层前馈神经网络,它使用RBF(径向基函数)作为隐含层神经

元的激活函数,而输出层则是对隐含层神经元输出的线性组合。RBF神经网络的训练过程

可以使用BP算法,因此可以将其纳入BP神经网络的范畴。

BP神经网络的隐含层神经元采用输入模式与权向尾的内积作为激活函数的自变曷,而

激活函数采用的函数为非RBFo各参数对BP神经网络的输出具有同等地位的影响,因此

BP神经网络是对非线性映射的全局逼近。

RBF神经网络的隐含层节点采用输入模式与中心向量的距离(如欧式距离)作为函数

的自变量,并使用RBF(如Gaussian函数)作为激活函数。神经元的输入离RBF中心越远,

神经元的激活程度就越低(高斯函数)。

BP神经网络可以有多个隐含层,但是RBF神经网络只有一个隐含层。

3.3什么是泛化能力?通常如何评价一个网络模型的泛化能力?

答:学习的目的是学到隐含在数据背后的规律,对于具有同一规律的学习集以外的数据,

经过训练的网络也能给出合适的输出,该能力称为泛化能力。简单地说,泛化能力是指学到

的模型(网络)对未知数据的预测能力。对于模型,不仅希望它对训练数据有很好的拟合,

而且希望它在测试数据上也有很好的泛化能力。

通常使用以下指标来衡量模型的泛化能力。

准确度:预测正确的结果占总样本的百分比;

精确率:在所有被预则为正的样本中实际为正的样本的概率;

召回率:针对原样本而言,在实际为正的样本中被预测为正的概率;

Fl,ROC以及AUC等。

3.4请设计一个简单的三层BP神经网络分类Sklearn中自带的莺尾花数据集。

答:莺尾花数据集一共有150个样本,分为3个类别,每个样本有4个特征。针对该数据集,

选取如下神经网络结构和激活函数。

神经网络架构

OutputGJ

激活函数

#Network.py

importnunipyasnp

deftanh(x):

returnnp.tanh(x)

deftanh_deriv(x):

return1.0-np.tanh(x)*np.tanh(x)

deflogistic(x):

return1.0/(1.0+np.cxp(-x))

deflogistic_dcrivativc(x):

returnlogistic(x)*(1.0-logislic(x))

classNeuralNetwork:

def—init_(self,layers,activation=\'tanh\'):

ifactivation==VlogisticY:

self.activation=logistic

self.activation_deriv=logistic_derivative

elifactivation==VtanhV:

b=seif.activation(np.dot(a[I],self.weigh(s[l]))

b=b.tolist()

b.append(I)

b=np.array(b)

a.appcnd(b)

a.appcnd(self.activation(np.dot(a[-1],self.weights[/])))

#向前传播,得到每个节点的输出结果

error=vfil-af-11

#(es(.py

fromBPNeuralNetworkimportNeuralNetwork

力foriinrange(len(y)):

Predict=nn.prcdict(x[i])

nPredict=Predicl.tolisc()

Index=Prcdict.index(max(Prcdict,key=abs))

A

>Real=y[i]

)Category=Real.index(max(Real,key=abs))

ifIndex==Category:

#P川=1

dprint('样本'i+l,V:V,x[iJ,V\;\'实际类另此Y:\\CatcgorySctICategory],VV,

tJV预测类别,V:V,CategorySet[Index],

;V预测正确V)

nelse:

dP[i]=0

fiprint”样本\'i+x[iLV\\\,实际类别Y,Y:\\CategorySet[Category],VV,

''预测类别V,V:V,CategorySetflndex],

V预测错误\')

print。'准确率V,sum(P)/len(P))

ranges=maxVais-nunVais

b=colsl-minVals

normcols=b/ranges#数据进行归一化处理

datamatrix[:,k]=normcols#把数据进行存储

#print(datamatrix)

datalabcl=tablc.col_valucs(ncols-1)

foriinrangc(nrows):

ifdatalabcl[i]==VIris-sctosaV:

datalabel[i]=[l,0,0]

ifdatalabel[i]==VIris-versicolorV:

datalabcl[i]=[0,1,0]

ifdatalabelfil==VIris-virginicaV:

datalabcl[i]=[0,0,I]

datamatrixI=lable.col_values(0)

foriinrangc(nrows):

daiamairix1[i]=daiamairix[i]

x=datamatrix1

y=datalabel

nn.fit(x,y)

CatcgorySct=IVIris-setosaV,\Iris-versicolor?,VIris-virginicaVJ

P=np.zeros((l,len(y)))

P=y

3.5请设计一个简单的三次RBF神经网络分类Sklearn中自带的直尾花数据集。

答:iris以莺尾花的特征作为数据来源,数据集包含150个数据集,分为3类,每类50

个数据,每个数据包含4个属性。每一个数据包含4个独立的属性,这些属性变量测量植物

的花朵(比如萼片和花瓣的长度等)信息。要求以iris数据为对象,来进行不可测信息(样

本类别)的估计。以每一类前30个数据作为学习样本,以后20个样本作为测试样本,对样

本进行估计,井和实际结果作比较。

%读取数据

[property_l,property_2,property_3,property_4,class]=

textread('E:\iris_alLtx(,:%f%f%f%f%s');

%训练数据

propertyI=[property_l(l:3(),:);property_l(51:80»:);property_1(101:130,:)];

property2=[property_2(1:30,:);property_2(51:80,:);property_2(101:130,:)];

propcrty3=[propcrty_3(1:30,:);propcrty_3(51:80,:);propcrty_3(101:130,:)J;

property4=[property_4(1:30,:);property_4(51:80.:);property_4(101:130,:)];

class1=[class(1:30,:);cIass(5l:80,:);class(101:130,:)];

%测试数据

property-5=[property_l(31:50,:);property_l(81:1(X),:);property_1(131:150,:)];

property6=[property_2(31:50,:);property_2(81:100,:);property_2(131:15(),:)J;

property?=[property_3(3l:50,:);propeity_3(81:100,:);property_3(131:150,:)l;

propcrty8=[property_4(31:50,:);propcrty_4(81:1(X),:)property_4(131:150,:)];

class2=[class(31:50,:);class(81:100.:);class(131:150,:)];

fori=I:length(classl)

switchclassl{i};

case'Setosa'

Class(i,:)=[l00];

case'Versicolor'

Class(i,:)=[010];

otherwise'Virginica';

Class(i,:)=[001];

end

end

fori=l:length(class2)

switchclass2{i};

case'Setosa'

textClass(i,:)=[l00];

case'Versicolor'

textClass(i,:)=[()10];

otherwise'Virginica';

tcxtClass(i,:)=[001];

end

end

textClass=textClass';

%建立RBF网络,使用matlab的newrb函数

%构造矩阵P、T

fori=klength(Class)

P(i,:)=[propertyI(i,:),property2(i,:),property3(i,:),property4(i,:)];

T(i,:)=Class。,:);

end

P=P';

T=T';

Class=Class';

%构造测试矩阵textp

fori=1:length(property5*3)

tcxtP(i,:)=[propcrty5(i,:),propcrty6(i,:),propcrty7(i,:),propcrty8(i,:)J;

end

texlP=texlP,;

%RBF网络的建立

net=newrbe(P,Class);

%textp为测试的输入数据

Rbfoutput=sim(net,textP)

sprintf('识别率是%3.3f%%'』00*count/s2)

3.6对比BP神经网络和RBF神经网络在莺尾花数据分类问题上的效果,并进行分析。

答:使用BP神经网络的分类结果最高为93.7%,而RBF神经网络的分类结果为93.3%。

BP的迭代次数相比RBF要高一些,收敛慢。

(1)RBF的泛化能力在多个方面都优于BP网络,但是在解决具有相同精度要求的问

题时,BP网络的结构要比RBF网络简单。

(2)RBF网络的逼近精度要明显高于BP网络,它几乎能实现完全逼近,网络可以自动

增加神经元直到满足精度要求为止。但是在训练样本增多时.RBF网络的隐层神经元数远远

高于前者,使得RBF网络的复杂度大增加,从而运算量也有所增加。

4.1薄板样条函数描述为

0(r)二仕]logf—

对于某个。>0及rwR,可以验证使用此函数作为一个平移和旋转的变形Green函数。

4.2高斯函数是仅有的可因式分解的RBFo利用高斯函数的这个性质证明定义为多元

高斯分布的函数G(xj)可分解成

G(x,f)=nG(x")

1=1

式中,Xj和4是〃2X1维向量X和,的第i个分量。

4.3我们认为高斯函数、逆超二次函数和超二次函数这三种RBF都满足Micchelli定理。

但是,Green函数类仅包含前两个RBF。解释为何Green函数类不包含超二次函数。

4.4考虑代价泛函为

N叫

4仍)=£4-蒋G(|x广加+世尸*『

L.

它用到逼近函数

尸(x)空叱G(||x-加

;=!

利用Frechet微分,证明当

(G'G+AG(y)w=G'd

时,最小,其中Nx叫维矩阵G,叫x小维矩阵Go,町xl向量位及Nxl向量

d,分别由式(4.53)、式(4.56)、式(4.54)及式(4.27)定义。

4.5考虑一个定义如下的正则化项

LIIDF(=F(x)|pdx

Jt=o

式中

%=7JF

线性微分算子D由梯度算子,和拉普拉斯算子厂定义为

D2k=(r2/

。2日=。(。2y

证明

。F(x)=Z*叮⑴

4.6在4.3节中,由式(4.46)导出了关于5(x)的式(4.47)。在这个习题中,我们

希望从由式(4.46)开始利用多维傅里叶变换导出式(4.47)。利用函数G(x)的多维傅里

叶变换的定义

G(x)exp(-wTr)dx

完成推导,式中,i=Q;s是〃“维的变换变量。关于傅里叶变换的性质可以参考相

关内容。

4.7考虑描述的非线性回归问题。令/表示矩阵(G+〃厂的第i个元素。那么,从式

(4.39)出发,证明回归函数/(x)的估计可以表示为

AN

/(X)=Z"(7)4

式中,4是对应模型输入与的输出,且

N

一(—)=多短卜-引)4,k=l,2「..,N

r=l

式中,G(IW)是Green函数。

4.8样条函数是分段多项式逼近器的例子。样条方法的基本思想如下:将一个被逼近

区域用节点分为有限个子区域;节点可以是固定的,这样逼近器就是线性参数化的;节点也

可以是可变的,这样逼近器就是非线性参数化的。在这两种情况下,在每个逼近区域中使用

一个阶数最高为〃的多项式,且要求整个函数必须是〃-1次可微的。多项式样条函数是相

对光滑函数,容易在计算机上存储、操作及计算。

在实际使用的样条函数中,三次样条函数可能是应月最广泛的。一个一维输入的三次样

条函数的代价泛函定义为

4/)=撵4-/(苦)了+打拶“a

式中,2在样条函数中表示光滑性参数。

(I)验证这个问题解上(X)的如下性质。

①两个相续的X节点值之间力(X)是一个三次多项式。

②力(X)及前两阶导数都是连续的,除其二阶导数值在边界点为零。

(2)因为4/)有唯一最小值,所以必须有

—+ag)——)

式中,g是与/一类的二次可微函数;。为任意实值常数。这意味着人力+华)作为。

的函数在4=0处局部最小。因此,证明

92g

•5心(叫(叫心=;£["-力(七电(内)

I/r=l

上式是关于三次样条函数的Euler-拉格朗日方程。

4.9式(4.75)定义了最小二乘法的Gram矩阵或核矩阵K证明此矩阵K是非负定的。

4.10由式(4.57)推出用于正则化最小二乘估计的式(4.65)。

4.11证明式(4.70),其中包括数据矩阵X和期望响应向量d。

4.12从带类标样本和无类标样本中学习是一个可逆的问题。证明此论断的有效性。

4.13用于带类标样本和无类标样本的表示定理和仅用于带类标样本的表示定理具有

相同的数学形式。解释用于半监督学习的表示定理加何包含用于监督学习的表示定理,且后

者是前者的一个特例。

4.14带类标数据点的集合可以看作拉普拉斯RLS算法的初始化条件。像这样,对于

一个给定的无类标训练样本,我们预期由算法构造的决黄边界依赖带类标数据点的位置。在

此实验中,使用双月构造中抽取的合成数据研究此相关性。

(1)每类一个带类标数据点。用与过去相同的条件,重复4.11节中的计算机实验,但

此次实验探求决策边界是如何被两个带类标数据点的位置影响。其中这两个数据点分别属于

两个类。

(2)每类两个带类标数据点。采用与(I)相同的设置,每类两个带类标数据点,重复该实

验。评价此次实验的结果,

5.1阐述支持向量机与极限学习机之间的联系。

答:极限学习机(ELM,ExtremeLearningMachines)是一种

前馈神经网络,ELM最大的特点是对于传统的神经网络,尤其

是单隐层前馈神经网络(SLFNs),在保证学习精度的前提下比传

统的学习算法速度更快。

支持向量机(SVM)是一类按监督学习方式对数据进行二元

分类的广义线性分类器,其决策边界是对学习样本求解的最大边

距超平面,可以将问题化为一个求解凸二次规划的问题。

SVM和ELM都是一种前馈神经网络,不过ELM相对于

SVM,其为一种新的单隐含层前馈神经网络,隐含层数量为1,

并且ELM的输出权值求解不完全采用梯度算法,而是采用最小

二乘法,ELM算法更简单,训练速度比SVM更快。

5.2设计一个基本的极限学习机,对人脸数据集进行分类。

答:基于YALE人脸库,15组人脸(每组照片代表一个人),

进行人脸分类识别。

将每类人脸前10张照片用于学习,第11张照片用于测试。

测试第11张照片属于哪个组(人)。

Python代码实现如下图:

importhpelm

importnumpyasnp

importcv2

importos,rc

imglist=[l#训练数据列表

step=10#每种照片样本数

type_num=l5#种类数

file_dir='D:\IOFile\YALE'#照片路径

#读取照片

fortp_numinrange(1Jype_num+1):

forst_numinrangc(1,stcp+1):

add_pre=lambdax:'0'+str(x)iflen(str(x))==lelseslr(x)#加前缀

file_path=os.path.join(filc_dir,'subject{}_{}.bmp'.format(add_pre(tp_num),st_nuni))

ifos.path.isfile(flle_path):

manimg=cv2.resize(cv2.imread(fi1e_path,cv2.IMREAD_GRAYSCALE),(100,100),

interpolation=cv2.INTER_CUBIC)

manarray=np.airay(bytearray(manimg))

iniglist.append(manarray)

#生成ELM

elm=hpelm.ELM(1(X)(M),type_num)

#生成训练数据

input_data=[ifbriinimglist]

output_data=[]

pos=0

forindexinrange(O,len(imglist)):

img_num=int(index/step)#照片种类编号

outpu(=[]

foriinrange(typc_num):

ifimg_num==i:

output.append(l)

else:

output.append(O)

output_data.appcnd(output)

#添加神经元

elm.add_neurons(30,'lin')

elm.add_neurons(l5,'rbfjinf)

#训练

clni.train(np.array(input_data),np.array(output_data))

#测试图片

defpredict_photo(photo_num):

#准备测试数据

testim=cv2.resize(cv2.iniread(os.path.join(file_dir,

'subject!}_ll.bmp'.fornia:(add_pre(photo_num))),cv2.IMREAD_GRAYSCALE),(100.100),

interpolation=cv2.INTER_CUBIC)

testarray=np.array(bytearray(testim))

test_data=np.array([testarray.tolist()])

#预测

predict=clm.prcdict(tcst_data)

prbobility=0#照片为某一种类的可能性

max_photo=0#最可能的照片种类

foriinrange(0,len(predict[0])):

ifprbobility<predict[0][i]:

prbobility=predict[0][i]

max_photc=i

printf该照片最可能属于种类{},概率为{}:fo门nat(max_photo+1,prbobility))

#测试性能

deftest_perfbmance():

true=0

fornuminrange(1,16):

#读取图片并格式化处理

ini=cv2.rcsizc(cv2.imrcad(os.path.join(file_dir,rsubjcct{}_11,bmp'.format(add_prc(num))),

cv2.IMREAD_GRAYSCALE),(100,100),

interpolation二cv2.1NTER_CUBIC)

array=np.array(by(earray(im))

predict=elm.predict(np.array([array.tolist()]))

prbobility=0

foriinrange(0,len(predictf0])):

ifprbobility<predict[0][iJ:

prbobility=predict[0][il

max_photo=i

ifmax_photo+l==num:

true+=1

print('完成性能测试,正确率为{}'.format(true/15))

if_name_=='_main_

predict_photo(7)

tcst_pcrfbmancc()

5.3阐述核极限学习机与极限学习机的区别和联系。

答:核极限学习机是基于核函数的极限学习机,是极限学习

机的改进版本,为了进一步增强极限学习机的泛化能力和稳定

性,Huang等人结合支持向量机,将核函数的概念引入极限学习

机,提出了(核极限学习机)KELM算法。KELM将极限学习机

从显示激活函数推广到隐式激活函数,这使得此算法可以在多数

应用中拥有更好的泛化能力。

5.4设计一个L2正则极限学习机,实现对UCIWine数据集

的识别。

略。

1.答:形态学算子有腐伤、膨胀、开和闭四种

2.答:摄动原本指一个天体绕另一个天体按二体问题的规律运动时,因受其它天体的吸引

或其他因素的影响在轨道上产生的偏差,这些作用与中心体的引力相比是很小的,因此称为

摄动。模式摄动则是指训练阶段的神经网络,它们的训练模式对也会出现摄动,这种模式对

的摄动会对网络输出产生一定的副作用,因此同样有必要分析训练阶段的模式对摄动的鲁棒

性,即分析这种训练模式时的摄动带给网络输出的影响。

3.遗传算法和多层MNN结合形成进化形态神经网络,进化形态神经网络的拓扑结构和计

算基础和形态神经网络一样,不同的是其训练学习过程。在进化形态神经网络的学习训练中,

运用了遗传算法为网络提供一种新的学习训练算法。

1.答:突触连接的改变仅仅发生在•个方向上,这样最终使得所有的突触权值都趋于饱和。

2.答:失真度。2=/二九3州X-+u)『di;的二阶近似值

3.答:SOM网络能将任意维输入模式在输出层映射成一维或二维图形,并保持其拓扑结构不

4.答:略

5.答:Hebb学习假设中,突触权值随着前突触和后突触的激活同时发生而增加,在自组织

特征映射中通过包括一个遗忘项g(),P卬/来修正Hebb假定。

6.答:略

第八章卷积神经网络模型及应用

8.1什么是感受野?为什么说深度学习是受感受野的启发?

答:在卷积神经网络CNN中,决定某一层输出结果中一个元素所对应的输入层的区域

大小,被称作感受野。CNN卷积的过程,特征图的大小逐渐变小,一个特征表示的信息量

越来越大,将原图感兴趣的信息提取出来,不关注的统统抛掉。提的过程就是CNN的前向

传播,抛的过程就是CNN的反馈学习。

8.2。么是卷积核,H么是Padding与Striding?

答:卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成

为输出图像中的每个对应像素,其中权值由一个函数定义这个函数称为卷积核。Padding就是

填充的意思,将图像数据的边缘部分填充的大小,通过padding可以使得卷枳过程中提取至I

图像边缘部分的信息。Stride是卷积核移动的步长,即卷积核完成局部的一次卷积后向右移

动的步数,步长增大可以减小特征图的尺寸计算速度提升。适用于高分辨率的图像。

3.3设有如下输入特征图和卷积核,请求山卷积操作后的输出特征图。

2123

3213

2231

2312

01

-10

输出特征图:

-202

0-10

000

8.4设有如下特征图,给定池化窗口为2*2,请分别用最大池化法和平均池化求

出池化后的输出特征性。

3524

2153

6357

5864

最大池化:

55

87

平均池化:

77

1111

b=self.ac(ivation(np.dot(a[l],self.weightsfl]))

b=b.tolist()

b.append(1)

b=np.array(b)

a.append(b)

a.append(self.activation(np.dot(a[-1],self.vveights[-l])))

#向前传播,得到每个节点的输出结果

error=y[i]-a[-l]

#最后一层错误率

deltas=[error*self.activation_deriv(a[-1])1

for1inrange(len(a)-2,0,-1):

deltas.appcnd(deltas[-1].dot(self.weights[l].T)*self.activation_dcriv(allj))

deltas.reverse()

foriinrangc(lcn(self.weights)-1):

layer=np.alleast_2d(a[i|)

delta=np.atleast_2d(deltas[i])

delta=della[:,:-1]

self.weights[i]+=leaming_rate*layer.T.dot(delta)

layer=np.atleast_2d(al-2])

delta=np.atleast_2d(deltas[-l])

#print(Vw=V,self.weights[-1])

#print(\'l=\",layer)

#print(\'d=\',delta)

self.weights[-l]+=learning_rale*layer.T.dot(delta)

defpredict(self,x):

x=np.atlcast_2d(x)

#atlcst_2d函数:确认X至少二位的矩阵

temp=np.ones(x.shape[1]+1)

#初始化矩阵全是1(行数,列数+1是为了有B这人偏向)

temp[:4]=x[0,:1

a=temp

#(es(.py

fromBPNeuralNetworkimportNeuralNetwork

力foriinrange(len(y)):

Predict=nn.prcdict(x[i])

nPredict=Predicl.tolisc()

Index=Predict.index(max(Prcdict,key=abs))

A

>Real=y[i]

)Category=Real.index(max(Real,key=abs))

ifIndex==Category:

#P川=1

dprint('样本'i+l,V:V,x[iJ,V\;\'实际类另此Y:\\CatcgorySctICategory],VV,

t!V预测类别,V:V,CategorySet[Index],

;V预测正确V)

nelse:

dP[i]=0

fiprint”样本\'i+x[iLV\\\,实际类别Y,Y:\\CategorySet[Category],VV,

''预测类别V,V:V,CategorySetflndex],

V预测错误\')

print。'准确率V,sum(P)/len(P))

ranges=maxVais-nunVais

b=colsl-minVals

normcols=b/ranges#数据进行归一化处理

datamatrix[:,k]=normcols#把数据进行存储

#print(datamatrix)

datalabcl=tablc.col_valucs(ncols-1)

foriinrangc(nrows):

ifdatalabcl[i]==VIris-sctosaV:

datalabel[i]=[l,0,0]

ifdatalabel[i]==VIris-versicolorV:

datalabcl[i]=[0,1,0]

ifdatalabelfil==VIris-virginicaV:

datalabcl[i]=[0,0,I]

datamatrixI=table.col_values(0)

foriinrangc(nrows):

daiamairix1[i]=daiamairix[i]

x=datamatrix1

y=datalabel

nn.fit(x,y)

CatcgorySct=IVIris-setosaV,\Iris-versicolor?,VIris-virginicaVJ

P=np.zeros((l,len(y)))

P=y

3.5请设计一个简单的三次RBF神经网络分类Sklearn中自带的莺尾花数据集。

答:iris以莺尾花的特征作为数据来源,数据集包含150个数据集,分为3类,每类50

个数据,每个数据包含4个属性。每一个数据包含4个独立的属性,这些属性变量测量植物

的花朵(比如萼片和花瓣的长度等)信息。要求以iris数据为对象,来进行不可测信息(样

本类别)的估计。以每一类前30个数据作为学习样本,以后20个样本作为测试样本,对样

本进行估计,井和实际结果作比较。

%读取数据

[property_l,property_2,property_3,property_4,class]=

textread('E:\iris_alLlx(,:%f%f%f%f%s');

%训练数据

propertyI=[property_l(l:3(),:);property_l(51:8(),:);propcrty_1(101:130,:)J;

property?=[property_2(1:30,:);property_2(51:80,:);property_2(101:130,:)];

propcrty3=[propcrty_3(1:30,:);propcrty_3(51:80,:);property_3(101:130,:)];

property4=[property_4(1:30,:);property_4(51:80.:);property_4(101:130,:)];

class1=[class(1:30,:);class(5l:80,:);class(101:130,:)];

%测试数据

property-5=[property_l(31:50,:);property_l(81:1(X),:);property_l(131:150,:)];

property6=[property_2(31:50,:);property_2(81:100,:);property_2(131:15(),:)];

property?=[property_3(3l:50,:);propeity_3(81:100,:);property_3(131:150,:)];

property8=[property_4(31:50,:);property_4(81:100,:);property_4(131:150,:)];

class2=[class(31:50,:);class(81:100,:);class(131:150,:)1;

fori=I:length(classl)

switchclassl{i};

case'Setosa'

Class(i,:)=[l00];

case'Versicolor'

Class(i,:)=[010];

otherwise'Virginica';

Class(i,:)=[001];

end

end

fori=l:length(class2)

switchclass2{i};

case'Setosa'

textClass(i,:)=[l00];

case'Versicolor'

textClass(i,:)=[()10];

otherwise'Virginica';

tcxtClass(i,:)=[001];

end

end

textClass=textClass';

%建立RBF网络,使用matlab的newrb函数

%构造矩阵P、T

fori=klength(Class)

P(i,:)=[propertyI(i,:),property2(i,:),property3(i,:),property4(i,:)];

T(i,:)=Class。,:);

end

P=P';

T=T';

Class=Class';

%构造测试矩阵textp

fori=1:length(property5*3)

tc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论