神经网络报告-BP网络

时间:2024.3.31

目录

实验一         神经网络用于图像分割................................................................................... 2

一、         实验目的..................................................................................................... 2

基于神经网络的算法对图像做分割。......................................................................... 2

二、         实验软件..................................................................................................... 2

三、         算法原理..................................................................................................... 2

1.3.1 神经网络................................................................................................. 2

1.3.2 BP神经网络基本原理............................................................................... 3

1.3.3 BP算法步骤............................................................................................. 3

1.3.4 基于神经网络的图像分割步骤.................................................................. 4

四、         实验结果..................................................................................................... 4

1.4.1 实验代码................................................................................................. 4

1.4.2 结果展示................................................................................................. 6

1.4.3 实验总结................................................................................................. 7

实验一  神经网络用于图像分割

一、      实验目的

基于神经网络的算法对图像做分割。

二、      实验软件

Matlab

三、      算法原理

1.3.1 神经网络

神经网络是一种运算模型,由大量的节点(或称“神经元”,或“单元”)和之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(weight),这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。人工神经网络通常是通过一个基于数学统计学类型的学习方法(Learning Method)得以优化,所以人工神经网络也是数学统计学方法的一种实际应用,通过统计学的标准数学方法我们能够得到大量的可以用函数来表达的局部结构空间,另一方面在人工智能学的人工感知领域,我们通过数学统计学的应用可以来做人工感知方面的决定问题(也就是说通过统计学的方法,人工神经网络能够类似人一样具有简单的决定能力和简单的判断能力),这种方法比起正式的逻辑学推理演算更具有优势。

1.3.2 BP神经网络基本原理

BP网络模型处理信息的基本原理是:输入信号Xi通过中间节点(隐层点)作用于输出节点,经过非线形变换,产生输出信号Yk,网络训练的每个样本包括输入向量X和期望输出量t,网络输出值Y与期望输出值t之间的偏差,通过调整输入节点与隐层节点的联接强度取值Wij和隐层节点与输出节点之间的联接强度Tjk以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。

1.3.3 BP算法步骤

 BP算法是一种有监督式的学习算法,其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。具体步骤如下:

  (1)初始化,随机给定各连接权[w],[v]及阀值θi,rt。

  (2)由给定的输入输出模式对计算隐层、输出层各单元输出

  (3)计算新的连接权及阀值,计算公式如下:

  (4)选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。

第一步,网络初始化 。

给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值  和最大学习次数M。

第二步,随机选取第k个输入样本及对应期望输出 

第三步,计算隐含层各神经元的输入和输出

第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数

第五步,利用隐含层到输出层的连接权值、输出层的和隐含层的输出计算误差函数对隐含层各神经元的偏导数

第六步,利用输出层各神经元的和隐含层各神经元的输出来修正连接权值 

第七步,利用隐含层各神经元的和输入层各神经元的输入修正连接权。

第八步,计算全局误差

第九步,判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。

1.3.4 基于神经网络的图像分割步骤

(1)根据图像,选取图像前景色与背景色作为样本,并提取神经网络权值阈值参数。

(2)将获取的样本与阈值参数输入建立的BP网络中进行训练。

(3)图像分割:将图像分割看成是分类过程。将图像每个像素点当做待分类的样本,输入BP网络中进行分类,输出一个特征值,这个特征值大于0.5,则认为这个像素点为前景色,否则为背景色。

四、      实验结果

1.4.1 实验代码

%Imagesegment.m

close all;

clear all;

%产生样本

p = [0:1:255] ;

t = zeros(1,256);

t(82:256) = 1 ;

save('sample.mat','p','t');

%训练样本

load('sample.mat');

net=bptrain(p,t);

%显示原图

img=imread('image\a.bmp');

figure;

imshow(img);

%图像分割

imgsegment=segment(net,img);

%显示分割后的图像

imshow(imgsegment);

% bptrain.m

function[net]=bptrain(p,t)

epochs = 2000;

goal = 0.00001 ;

net = newcf([0 255],[6 1],{'tansig' 'purelin'});

net.trainParam.epochs = epochs;

net.trainParam.goal = goal ;

net = train(net,p,t);

function [ bw ] = segment( net,img )

%segment 利用训练好的神经网络进行分割图像

%  net - 已经训练好的神经网络

%  img - 等分割的图像

%输出 bw - 分割后的二值图像

[m n] = size(img);

P = img(:) ;

P = double(P);

P = P' ;

T = sim(net,P);

T(T<0.5) = 0 ;

T(T>0.5) = 255 ;

t = uint8(T);

t = t';

bw = reshape(t,m,n);

1.4.2 结果展示

本实验使用的图片如图1.1,1.3。试验采用传统的BP网络算法对图像进行分割。分割结果如图1.2,,1,4。图1.5为使用matlab进行网络训练的运行界面。

                 

图1.1分割前                                    图1.2 分割后

                    

1.3 分割前                                      1.5 分割后

图1.5 matlab进行BP网络训练

1.4.3 实验总结

根据实验结果,发现BP网络有计算开销大,计算时间很长,收敛速度缓慢的缺点。目前,对于BP网络已经有很多改进的算法,一般的改进方法分为变步长法、加动量项、GA方法。

另外在进行BP网络训练和图像分割前,对于网络权值阈值参数的选取用的是固定值。目前,可以使用遗传算法获取神经网络权值阈值参数等比较好的方法来选取,这样可以加速BP网络的训练。也会使得分割图像的效果更好。


第二篇:GIS汇报第三篇-BP神经网络-刘宏波


GIS汇报第三篇BP神经网络刘宏波

GIS汇报第三篇BP神经网络刘宏波

GIS汇报第三篇BP神经网络刘宏波

GIS汇报第三篇BP神经网络刘宏波

GIS汇报第三篇BP神经网络刘宏波

GIS汇报第三篇BP神经网络刘宏波

GIS汇报第三篇BP神经网络刘宏波

GIS汇报第三篇BP神经网络刘宏波

GIS汇报第三篇BP神经网络刘宏波

更多相关推荐:
神经网络实验报告

实验报告课程名称实验名称实验仪器系别专业班级学号学生姓名实验日期成绩指导老师BP神经网络实验一级倒立摆实验matlab一级倒立摆实验台自动化20xx年4月8日一级倒立摆实验实验目的1熟悉MatlabSimuli...

BP神经网络实验报告

BP神经网络实验报告一实验目的1熟悉MATLAB中神经网络工具箱的使用方法2通过在MATLAB下面编程实现BP网络逼近标准正弦函数来加深对BP网络的了解和认识理解信号的正向传播和误差的反向传递过程二实验原理由于...

神经网络实验报告

电气工程学院神经网络实验报告院系电气工程学院专业电气工程及其自动化实验二基于BP网络的多层感知器一实验目的1理解基于BP网络的多层感知器的工作原理2通过调节算法参数的了解参数的变化对BP多层感知器训练的影响3了...

BP神经网络实验报告

深圳大学实验报告实验课程名称人工神经网络技术实验项目名称BP神经网络对蝴蝶花分类学院专业软件工程报告人学号班级同组人无指导教师实验时间实验报告提交时间教务处制一实验目的初步熟悉MATLAB工作环境熟悉命令窗口学...

BP神经网络实验报告

作业8编程题实验报告一实验内容实现多层前馈神经网络的反向传播学习算法使用32节上机生成的数据集对神经网络进行训练和测试观察层数增加和隐层数增加是否会造成过拟合二实验原理1前向传播以单隐层神经网络为例三层神经网络...

BP神经网络实验报告

BP神经网络一实验目的初步熟悉MATLAB工作环境熟悉命令窗口学会使用帮助窗口查找帮助信息二实验内容一Matlab程序如下读取训练数据f1f2f3f4classtextread39trainDatatxt393...

神经网络数学建模实验报告

云南财经大学实验报告系院统计与数学学院专业信息与计算科学班级信计091学号20xx05001465姓名课程名称数学建模实验时间20xx年6月20日指导教师云南财经大学教务处制123456

人工神经网络与应用实验指导20xx

西北农林科技大学研究生教学参考书人工神经网络与应用实验指导信息工程学院二一年十二月十三日1实验一MATLABANN工具箱及感知器实现一实习目的和意义使学生熟悉并掌握Matlab基本运算编程和运行掌握人工神经网络...

实验一 基于人工神经网络的数码识别

人工智能导论课程基于人工神经网络的数码识别班级计1103学号20xx07010330姓名贾梦洁成绩评定评阅老师日期实验报告正文一实验目的基于神经网络的数字识别系统二实验内容通常实现手写体数字识别技术的方法有很多...

实验二 基于BP神经网络算法的函数逼近

实验二基于BP神经网络算法的函数逼近1实验目的掌握Matlab子函数的编写与调用理解BP神经网络算法的原理并利用程序实现利用BP算法逼近任意非线性函数2实验内容与实验要求掌握BP神经网络算法的原理掌握matla...

实验二 基于BP神经网络自整定PID控制仿真

实验二基于BP神经网络自整定PID控制仿真一实验目的熟悉神经网络的特征结构以及学习算法通过实验掌握神经网络自整定PID的工作原理了解神经网络的结构对控制效果的影响掌握用MATLAB实现神经网络控制系统仿真的方法...

计算机网络实验报告

计算机网络实验报告学号0604305015姓名杨宁班级06计算机专业计算机科学与技术指导教师刘海雄实验名称IE及Outlook设置与应用实验目的使学生学会设置和使用IE浏览器以及outlook收发邮件实验内容与...

神经网络实验报告(18篇)