神经网络概述神经网络一

Posted 张叔zhangshu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络概述神经网络一相关的知识,希望对你有一定的参考价值。

神经网络的相关概念

神经网络以对大脑的生理研究成果为基础,其目的在于模拟大脑的某些机理与机制,从而实现某个方面的功能。
国际神经网络研究专家、第一家神经计算机公司的创立者与领导人Hecht Nielsen认为神经网络是由人工建立的以有向图为拓扑结构的动态系统,通过对连续或断续的输入状态进行信息处理。这个定义是恰当的。
关于神经网络的研究,可以追溯到1957年Rosenblatt提出的感知器(Perceptron)模型。它几乎与人工智能(Artificial Intelligence,AI)同时起步,但并未取得人工智能那样巨大的成功,中间经历了一段长时间的萧条。直到20世纪80年代,才获得关于神经网络切实可行的算法,同时由于以Von Neumann体系为依托的传统算法在知识处理方面的缺陷,人们才重新对神经网络产生兴趣,引发神经网络的复兴。目前,在神经网络研究方法上已形成多个流派,最富有成果的研究工作包括多层网络BP算法、Hopfield神经网络、自适应共振理论、自组织特征映射理论等。神经网络是在现代神经科学的基础上提出来的,它虽然反映了人脑功能的基本特征,但还不是自然神经网络的逼真描写,只是它的某种简化抽象和模拟。

神经网络的发展史

1943年,心理学家W. Mcculloch和数理逻辑学家W. Pitts在分析、总结神经元基本特性的基础上提出神经元的数学模型,此模型沿用至今,并且直接影响这一领域的研究进展。因此,可以将W. Mcculloch和W. Pitts看作神经网络研究的先驱。
1945年,冯·诺依曼领导的设计小组试制成功存储程序式电子计算机,这标志着电子计算机时代的开始。1948年,冯·诺依曼在研究工作中比较了人脑结构与存储程序式计算机的根本区别,提出了以简单神经元构成的再生自动机网络结构。但是,由于指令存储式计算机技术的发展非常迅速,迫使他放弃了神经网络研究的新途径,继续投身于指令存储式计算机技术的研究,并在此领域做出了巨大贡献。虽然冯·诺依曼的名字是与普通计算机联系在一起的,但他也是神经网络研究的先驱之一。

神经网络的研究方向

神经网络的研究内容相当广泛,反映了多学科交叉技术领域的特点。目前,神经网络的研究工作主要集中在以下几个方面。
(1)生物原型研究。从生理学、心理学、解剖学、脑科学、病理学等生物科学方面研究神经细胞、神经网络、神经系统的生物原型结构及其功能机理。
(2)建立理论模型。根据生物原型研究,建立神经元、神经网络的理论模型,其中包括概念模型、知识模型、物理化学模型、数学模型等。
(3)网络模型与算法研究。在理论模型研究的基础上构造具体的神经网络模型,以实现计算机模拟或准备制作硬件,包括网络学习算法的研究。这方面的工作也称为技术模型研究。
(4)神经网络应用系统。在网络模型与算法研究的基础上,利用神经网络组成实际的应用系统,如完成某种信号处理或模式识别的功能、构造专家系统、制成机器人等。
纵观当代新兴科学技术的发展历史,人类在征服宇宙空间、基本粒子和生命起源等科学技术领域的研究进程中经历了崎岖不平的道路。我们也会看到,探索人脑功能和神经网络的研究将伴随着重重困难的克服而日新月异。

神经网络的基本特征和主要功能

1.基本特征
1)结构特征
神经网络的结构特征主要包括以下几点。
· 并行处理。神经网络是由大量简单处理元件相互连接构成的高度并行的非线性系统,具有大规模并行性处理特征。
· 分布式存储。结构上的并行性使神经网络的信息存储必然采用分布式方式,分布在网络所有的连接权中。
· 容错性。神经网络的容错性表现为两个方面:其一,网络中部分神经元损坏时不会对系统的整体性能造成影响;其二,神经网络能通过联想恢复完整的记忆,从而实现对不完整输入信息的正确识别。
2)能力特征
神经网络的能力特征主要包括以下几点。
· 自学习能力。神经网络的自学习能力是指当外界环境发生变化时,经过一段时间的训练或感知,神经网络能通过自动调整网络结构参数,使对于给定输入能产生期望的输出。
· 自组织能力。神经网络的自组织能力是指神经网络系统能在外部刺激下按照一定的规则调整神经元之间的突触连接,逐渐构建起神经网络。
· 自适应性。神经网络的自适应性是指神经系统通过改变自身的性能以适应环境变化的能力。实际上,自适应性包含自学习和自组织两层含义,并且是通过自学习和自组织实现的。

2.主要功能
神经网络具有人脑生物神经系统的某些智能特点。
· 联想记忆。神经网络具有分布存储信息和并行计算的性能,因此它具有对外界刺激信息和输入模式进行联想记忆的能力。联想记忆又分为自联想记忆和异联想记忆。
· 非线性映射。神经网络通过对系统输入/输出样本对照进行自动学习,能够以任意精度逼近任意复杂的非线性映射。
· 分类与识别。由于神经网络可以很好地解决对非线性曲面的逼近,因此对于在样本空间中区域分割曲面十分复杂的事物,神经网络具有很强的分类与识别能力。
· 优化计算。优化计算是指在已知的约束条件下,寻找一组参数组合,使由该组合确定的目标函数达到最小值。神经网络将目标函数设计为网络的能量函数,无须对目标函数求导即可求解。神经网络的工作状态以动态系统方程描述,当系统状态趋于稳定时,神经网络方程的解作为输出优化结果。
· 识别处理。与人脑类似,神经网络可以从对象的输入/输出信息中抽取规律而获得关于对象的知识,并且将知识分布在网络的连接中予以存储。

神经网络的特点和优越性

神经网络的特点和优越性主要表现在以下几个方面。
(1)具有自学习功能。例如,实现图像识别时,只要先把许多不同的图像样板和对应的应识别的结果输入神经网络,网络就会通过自学习功能,慢慢学会识别类似的图像。自学习功能对于预测具有特别重要的意义。预期未来的神经网络计算机将为人类提供经济预测、市场预测、效益预测等服务,其应用前途非常广泛。
(2)具有联想存储功能。使用神经网络的反馈神经网络就可以实现这种联想。
(3)具有高速寻找优化解的能力。寻找一个复杂问题的优化解,往往需要很大的计算量,利用针对某个问题而设计的反馈型神经网络,发挥计算机的高速运算能力,可以很快地找到优化解。

神经网络的学习方法

神经网络的学习主要分为有监督学习和无监督学习,又可称为有教师学习和无教师学习。
(1)有监督学习。有监督学习中的每个训练样本都对应一个教师信号,教师信号代表环境信息。网络将该教师信号作为期望输出,训练时计算实际输出与期望输出之间的误差,再根据误差的大小和方向对网络权值进行更新。这样的调整反复进行,直到误差达到预期的精度为止,整个网络形成了一个封闭的闭环系统。误差可以使用各输出节点的误差均方值来衡量,这样就建立了一个以网络权值为自变量、以最终误差性能为函数值的性能函数,网络的训练转化为求解函数的最小点的问题。有监督学习往往能有效地完成模式分类、函数拟合等功能。
(2)无监督学习。在无监督学习中,网络只接收一系列的输入样本,而对该样本应有的输出值一无所知。因此,网络只能凭借各输入样本之间的关系进行权值的更新。例如,在自组织竞争神经网络中,相似的输入样本将会激活同一个输出神经元,从而实现样本聚类或联想记忆。由于无监督学习没有期望输出,因此无法用来逼近函数。

神经网络的应用

神经网络的理论应用已经取得了令人瞩目的发展,特别是在人工智能、自动控制、计算机科学、信息处理、机器人、模式识别、CAD/CAM等方面都有重大的应用实例。下面列出一些主要的应用领域。
(1)模式识别和图像处理:印刷体和手写体字符识别、语音识别、签字识别、指纹识别、人体病理分析、目标检测与识别、图像压缩和图像复制等。
(2)控制和优化:化工过程控制、机器人运动控制、家电控制、半导体生产中的掺杂控制、石油精炼优化控制和超大规模集成电路布线设计等。
(3)预报和职能信息管理:股票预测、地震预报、有价证券管理、借贷风险分析、IC卡管理和交通管理。
(4)通信:自适应均衡、回波抵消、路由选择、ATM网络中的呼叫接纳识别和控制等。
(5)空间科学:空间交汇对接控制、导航信息智能管理、飞行器制导和飞行程序优化管理等。

神经网络工具箱函数

在MATLAB命令窗口中输入help nnet可以查看神经网络工具箱的版本和函数:

>> help nnet
  Neural Network Toolbox
  Version 14.0 (R2020a) 18-Nov-2019
 
  Graphical user interface functions.  	%图形用户界面函数
    nnstart      		- Neural Network Start GUI
    nctool       		- Neural Classification app
    nftool       		- Neural Fitting app
    nntraintool  		- Neural Network Training Tool
    nprtool      		- Neural Pattern Recognition app
    ntstool      		- Neural Time Series app
    nntool       		- Neural Network Toolbox graphical user interface
    view         		- View a neural network.
 
  Network creation functions.  		%网络创建函数
    cascadeforwardnet 	- Cascade-forward neural network.

神经网络的对象与属性

MATLAB中创建神经网络的函数返回的通常是一个神经网络对象net。net对象还包括一些子对象,net对象的属性和子对象的属性共同定义了神经网络的结构与特征。
在MATLAB命令窗口中用newrbe函数创建一个径向基函数网络:

>> p=[0 1 1 0;0 1 0 1]
p =
     0     1     1     0
     0     1     0     1
>> T=[1 0 0 1]
T =
     1     0     0     1
>> net=newrbe(p,T)  	%创建径向基网络net
net =           	%列出了net的子对象和属性
    Neural Network 
              name: 'Radial Basis Network, Exact'
          userdata: (your custom info)
 
    dimensions: 
         numInputs: 1
         numLayers: 2
        numOutputs: 1

下面对上述代码中的部分属性进行解释。
1.dimensions
1)numInputs属性
numInputs属性定义了网络输入向量的个数,这个概念极易与输入向量的长度混淆。大部分网络只需要一个输入向量(net.numInputs=1),而该向量包含的输入元素个数就等于输入向量的长度。net.numInputs的取值为0或正整数,由MATLAB神经网络工具箱创建的神经网络,其值往往为1。
net.numInputs属性如果改变,将会影响输入层连接向量(net.inputConnect)、输入层向量(net.inputs)和权值(net.IW)。
2)numLayers属性
numLayers属性定义网络的层数,不包括输入层,取值为0或正整数。径向基网络除了输入层还包括隐含层和输出层,因此net.numLayers=2。
如果net.numLayers改变,将会影响以下属性的大小:
net.biasConnect
net.inputConnect
net.layerConnect
net.outputConnect
net.targetConnect
下列与网络层相关的子对象细胞矩阵的大小也会改变:

以上是关于神经网络概述神经网络一的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络学习笔记01计算机网络概述(上)

计算机网络3.1 运输层概述 与 多路复用/分解

计算机网络相关知识

译丨Yarn - Javascript 新一代套件管理

2021研面准备 -- 计算机网络知识点整理概述

网络层