作业8编程题实验报告(一)实验内容:实现多层前馈神经网络的反向传播学习算法。,观察层数增加和隐层数增加是否会造成过拟合。(二)实验原理:1)前向传播:以单隐层神经网络为例(三层神经网络),则对于第k个输出节点,输出结果为:在实验中采用的激励函数为logisticsigmoidfunction。考虑每一层节点中的偏差项,所以,在上式中:在实验中,就相应的需要注意矢量形式表达式中,矢量大小的调整。2)BP算法:a)根据问题,合理选择输入节点,输出节点数,确定隐层数以及各隐层节点数;b)给每层加权系数,随机赋值;c)由给定的各层加权系数,应用前向传播算法,计算得到每层节点输出值,并计算对于所有训练样本的均方误差;d)更新每层加权系数:其中,e)重复c),d)迭代过程,直至迭代步数大于预设值,或者每次迭代误差变化值小于预设值时,迭代结束,得到神经网络的各层加权系数。(三)实验数据及程序:1)实验数据处理:a)训练样本输入节点数据:在实验中,所用数据中自变量的取值,为0—1的25个随机值,为了后续实验结果的分析,将其从小到大排序,并加上偏差项,神经网络的输出节点最终训练结果,即为训练得到的回归结果;b)训练样本标签值:在实验中,采用的激励函数为logisticsigmoidfunction,其值域为[0,1],所以,在神经网络训练前,需要对训练样本标签值进行归一化处理;c)神经网络输出节点值:对训练样本标签值进行了归一化处理,相应的,对于输出节点,需要反归一化处理。2)实验程序:实现函数:[Theta]=BP(input_layer_size,hidden_layer_size,hidden_layer_num,num_labels,Niter,leta,X,Y)输入参数:input_layer_size:输入节点数;hidden_layer_size:隐层节点数(对于单隐层,输入值为一数值,对于多隐层,为一矢量);hidden_layer_num:隐层数;num_labels:输出节点数;Niter:为预设的迭代步数;leta:学习速率,即更新步长;X,Y:分别为训练样本输入特征值以及标签值。输出参数:Theta:各层加权系数,在程序中,以一个细胞数组的形式保存。(四)实验结果分析和讨
BP神经网络实验报告 来自淘豆网m.daumloan.com转载请标明出处.