浅谈神经网络

一、神经网络介绍

神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体作出的交互反应。

神经网络中最基本的成分是神经元(neuron)模型,即简单神经元。

(1)神经元:模拟人体结构,将数据输入神经元,中间通过激活函数f(x),即一组算法,输出结果。它是组成神经网络的最小单位。

神经元示意图如下图所示:

图1 神经元示意图

为输入向量的各个分量;为神经元各个突触的权值;系数1与为偏置;f为传递函数,通常为非线性函数;t为神经元输出。

可见,一个神经元的功能是求得输入向量与权向量的内积后,经一个非线性传递函数得到一个标量结果。

(2)神经网络

由无数个(人工)神经元组成的神经元网络即为(人工)神经网络。

神经网络需要按照一定的规则进行学习,它的参数权值(以上图为例说明),即为学习成果。通过学习减少神经网络下次犯同样错误的可能性,达到这一目标后,网络才能开展工作。网络学习时,首先给网络的各连接权值赋予(0,1)区间内的随机值,网络将输入模式加权求和、与门限比较,再进行非线性运算。

神经元收到的总输入值与神经元的阈值比较,然后通过激活函数(activation function)处理以产生神经元的输出。一般激活函数为Sigmoid函数(逻辑回归中使用的),该函数连续、可导,具有很好的数学特性。

当激活函数输出值为正时,输出为“1”,为负则输出“0”。

以下将以下图为例介绍神经网络的运算过程。

图2 多层神经网络意图

上图是由一个输入层、两个隐藏层和一个输出层构成的神经网络。这种也叫多层前馈神经网络(multi-layer feedforward neural networks)。输入层神经元接收外界输入,不进行函数处理,隐层与输出层对信号进行加工,即包含功能神经元,最终输出。只要包含隐层,即可称为多层网络。

隐藏层可以找到数据内在特点,后续层可以在这些特点(而不是嘈杂庞大的原始数据)基础上进行操作,所以隐藏层越多模型效果越好。事实上,直到最近,机器学习技术都没有普遍直接用于原始数据输入,比如图像和音频。相反,机器学习被用于经过特征提取后的数据——也就是说,为了让学习更简单,机器学习被用在预处理的数据上,一些更加有用的特征,比如角度,形状早已被从中提取出来。

(3)神经网络学习方法

神经网络的学习过程,就是根据训练数据来调整神经元之间的连接权,(connection weight)以及每个功能神经元的阈值,所以学习的就是阈值和连接权。譬如说,如果输出结果为“1”(结果正确),则增大连接权值;如果输出结果为“0”(结果错误),则将连接权值向着综合输入加权值减小的方向调整,减小犯同样错误的可能性。网络经过若干次类似的学习调整后,其输出的判断正确率会有明显的改善,达到了学习的目的。

今后当该网络再次遇到类似模式判断时,就能及时做出准确的判断和识别。一般说来,构成网络的神经元个数越多,则它能记忆和识别的模式也就越多,准确度也会越高。

二、BP神经网络(Back-Propagation Neural Networks)

BP神经网络思想如下图所示:

图3 BP神经网络思想

给定训练集。这是一个拥有d个神经元、l个输出神经元、q个隐层神经元的多层前馈网络结构。其中输出层第j个神经元的阈值用表示,隐层第h个神经元阈值用表示,输入层第i个神经元与隐层第h个神经元间连接权为,隐层与输出层为。

如下图所示,隐层第h个神经元收到的输入为,输出层第j个神经元收到的输入为,其中为第h层神经元输出。

图4  BP网络算法及变量符号

对于训练集,假定神经网络输出为,。在网络上的均方误差。

图4的网络中有(d+l+1)q+l个参数需要确定。BP是一个迭代(iterate)学习算法,在迭代的每一轮中采用广义的感知机学习规则对参数进行更新估计。

BP算法基于梯度下降(gradient decent)策略,以目标的负梯度方向对参数进行调整,而Sigmoid函数的性质是。所以可以根据一系列计算得到,类似有,,。

学习率控制着算法每一轮迭代更新的步长,太大容易振荡找不到最小值,太小收敛速度过慢。BP算法的工作流程:先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果;然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整,迭代过程循环进行,直到达到条件停止。

三、神经网络matlab仿真实验

实验问题:

蠓虫分类问题可概括叙述如下:生物学家试图对两种蠓虫(Af与Apf)进行鉴别,

依据的资料是触角和翅膀的长度,已经测得了9支Af和6支Apf的数据如下:

Af: (1.24,1.27),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08).

Apf: (1.14,1.82),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96).

现在的问题是:

(i)根据如上资料,如何制定一种方法,正确地区分两类蠓虫。

(ii)对触角和翼长分别为(1.24,1.80),(1.28,1.84)与(1.40,2.04)的3个标本,用所得

到的方法加以识别。

解答:如上的问题是有代表性的,它的特点是要求依据已知资料(9支Af的数据和6支

Apf的数据)制定一种分类方法,类别是已经给定的(Af或Apf)。我们将9支Af及6支Apf的数据集合称之为学习样本。而(1.24,1.80),(1.28,1.84)与(1.40,2.04)的3个标本为测试集。

(1)首先画出散点图

图5  蜢虫分类散点图

其可能具有一定的非线性特征,此处采用BP(后向传播算法)神经网络算法对其进行分类。

(2)将数据导入matlab;形成p矩阵,为训练集输入,设Af标记为,Apf标记为,则标签矩阵为goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)]。

(3)设定相关参数:

训练网络采用对数S型函数logsig;

训练目标最小误差为0.000001,即goal=0.000001;

训练次数epoch=5000;

学习速率lr=0.05(为(0,1)之间的一个数);

显示频率:show=20,即每训练20次显示一次。

训练界面

图6  蜢虫分类训练界面

可见为两层神经网络,其中中止时仅迭代了18次,此时已经达到中止条件。

图7  实验结果摘要

最终分类结果:

将测试集代入可以得到矩阵则测试结果分别为Af、Af、Apf(分类结果)。

表1分类结果表

序号123

触角长度1.241.281.40

翅膀长度1.801.842.04

分类结果AfAfAp

四、总结

神经网络的优势在于可以处理非线性问题的分类,只要设定好了学习参数(如阈值函数、学习速率、目标误差、最大迭代次数等)即可开始训练,计算机可以自动搜索到一个网络模型,训练过程自动化、操作方便。但是由于其使用梯度下降法寻优,不可避免会陷入局部最小值,此时可以加入附加动量mc来进行优化。另外,如果网络规模大,计算量增加,训练时间、收敛时间变长,且学习速率固定,不能根据实际训练过程进行更新和改变。网络的学习和记忆也具有不稳定性,如果增加了学习样本,训练好的网络又需要从头开始训练,对于以前的权值和阈值是没有记忆的。但是可以将预测、分类或聚类做的比较好的权值保存。

附代码:

clear

p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];

p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.001.28,2.00;1.30,1.96];

p=[p1;p2]';

pr=minmax(p);%确定每行的最大最小值

goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)];

plot(p1(:,1),p1(:,2),'h',p2(:,1),p2(:,2),'o')

net=newff(pr,[3,2],{'logsig','logsig'});%设置为两层神经网络且均为logsig型函数

net.trainParam.show = 10;%显示频率

net.trainParam.lr = 0.01;%学习速率

net.trainParam.goal =0.000001;%目标误差

net.trainParam.epochs = 5000;%迭代次数

net = train(net,p,goal);%开始训练

x=[1.24 1.80;1.28 1.84;1.40 2.04]';%测试集数据

y0=sim(net,p)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容