① 人工神经网络综述
文章主要分为:
一、人工神经网络的概念;
二、人工神经网络的发展历史;
三、人工神经网络的特点;
四、人工神经网络的结构。
。。
人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型。该模型以并行分布的处理能力、高容错性、智能化和自学习等能力为特征,将信息的加工和存储结合在一起,以其独特的知识表示方式和智能化的自适应学习能力,引起各学科领域的关注。它实际上是一个有大量简单元件相互连接而成的复杂网络,具有高度的非线性,能够进行复杂的逻辑操作和非线性关系实现的系统。
神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激活函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(weight),神经网络就是通过这种方式来模拟人类的记忆。网络的输出则取决于网络的结构、网络的连接方式、权重和激活函数。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。神经网络的构筑理念是受到生物的神经网络运作启发而产生的。人工神经网络则是把对生物神经网络的认识与数学统计模型相结合,借助数学统计工具来实现。另一方面在人工智能学的人工感知领域,我们通过数学统计学的方法,使神经网络能够具备类似于人的决定能力和简单的判断能力,这种方法是对传统逻辑学演算的进一步延伸。
人工神经网络中,神经元处理单元可表示不同的对象,例如特征、字母、概念,或者一些有意义的抽象模式。网络中处理单元的类型分为三类:输入单元、输出单元和隐单元。输入单元接受外部世界的信号与数据;输出单元实现系统处理结果的输出;隐单元是处在输入和输出单元之间,不能由系统外部观察的单元。神经元间的连接权值反映了单元间的连接强度,信息的表示和处理体现在网络处理单元的连接关系中。人工神经网络是一种非程序化、适应性、大脑风格的信息处理,其本质是通过网络的变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。
神经网络,是一种应用类似于大脑神经突触连接结构进行信息处理的数学模型,它是在人类对自身大脑组织结合和思维机制的认识理解基础之上模拟出来的,它是根植于神经科学、数学、思维科学、人工智能、统计学、物理学、计算机科学以及工程科学的一门技术。
在介绍神经网络的发展历史之前,首先介绍一下神经网络的概念。神经网络主要是指一种仿造人脑设计的简化的计算模型,这种模型中包含了大量的用于计算的神经元,这些神经元之间会通过一些带有权重的连边以一种层次化的方式组织在一起。每一层的神经元之间可以进行大规模的并行计算,层与层之间进行消息的传递。
下图展示了整个神经网络的发展历程:
神经网络的发展有悠久的历史。其发展过程大致可以概括为如下4个阶段。
(1)、M-P神经网络模型:20世纪40年代,人们就开始了对神经网络的研究。1943 年,美国心理学家麦克洛奇(Mcculloch)和数学家皮兹(Pitts)提出了M-P模型,此模型比较简单,但是意义重大。在模型中,通过把神经元看作个功能逻辑器件来实现算法,从此开创了神经网络模型的理论研究。
(2)、Hebb规则:1949 年,心理学家赫布(Hebb)出版了《The Organization of Behavior》(行为组织学),他在书中提出了突触连接强度可变的假设。这个假设认为学习过程最终发生在神经元之间的突触部位,突触的连接强度随之突触前后神经元的活动而变化。这一假设发展成为后来神经网络中非常着名的Hebb规则。这一法则告诉人们,神经元之间突触的联系强度是可变的,这种可变性是学习和记忆的基础。Hebb法则为构造有学习功能的神经网络模型奠定了基础。
(3)、感知器模型:1957 年,罗森勃拉特(Rosenblatt)以M-P 模型为基础,提出了感知器(Perceptron)模型。感知器模型具有现代神经网络的基本原则,并且它的结构非常符合神经生理学。这是一个具有连续可调权值矢量的MP神经网络模型,经过训练可以达到对一定的输入矢量模式进行分类和识别的目的,它虽然比较简单,却是第一个真正意义上的神经网络。Rosenblatt 证明了两层感知器能够对输入进行分类,他还提出了带隐层处理元件的三层感知器这一重要的研究方向。Rosenblatt 的神经网络模型包含了一些现代神经计算机的基本原理,从而形成神经网络方法和技术的重大突破。
(4)、ADALINE网络模型: 1959年,美国着名工程师威德罗(B.Widrow)和霍夫(M.Hoff)等人提出了自适应线性元件(Adaptive linear element,简称Adaline)和Widrow-Hoff学习规则(又称最小均方差算法或称δ规则)的神经网络训练方法,并将其应用于实际工程,成为第一个用于解决实际问题的人工神经网络,促进了神经网络的研究应用和发展。ADALINE网络模型是一种连续取值的自适应线性神经元网络模型,可以用于自适应系统。
人工智能的创始人之一Minsky和Papert对以感知器为代表的网络系统的功能及局限性从数学上做了深入研究,于1969年发表了轰动一时《Perceptrons》一书,指出简单的线性感知器的功能是有限的,它无法解决线性不可分的两类样本的分类问题,如简单的线性感知器不可能实现“异或”的逻辑关系等。这一论断给当时人工神经元网络的研究带来沉重的打击。开始了神经网络发展史上长达10年的低潮期。
(1)、自组织神经网络SOM模型:1972年,芬兰的KohonenT.教授,提出了自组织神经网络SOM(Self-Organizing feature map)。后来的神经网络主要是根据KohonenT.的工作来实现的。SOM网络是一类无导师学习网络,主要用于模式识别﹑语音识别及分类问题。它采用一种“胜者为王”的竞争学习算法,与先前提出的感知器有很大的不同,同时它的学习训练方式是无指导训练,是一种自组织网络。这种学习训练方式往往是在不知道有哪些分类类型存在时,用作提取分类信息的一种训练。
(2)、自适应共振理论ART:1976年,美国Grossberg教授提出了着名的自适应共振理论ART(Adaptive Resonance Theory),其学习过程具有自组织和自稳定的特征。
(1)、Hopfield模型:1982年,美国物理学家霍普菲尔德(Hopfield)提出了一种离散神经网络,即离散Hopfield网络,从而有力地推动了神经网络的研究。在网络中,它首次将李雅普诺夫(Lyapunov)函数引入其中,后来的研究学者也将Lyapunov函数称为能量函数。证明了网络的稳定性。1984年,Hopfield 又提出了一种连续神经网络,将网络中神经元的激活函数由离散型改为连续型。1985 年,Hopfield和Tank利用Hopfield神经网络解决了着名的旅行推销商问题(Travelling Salesman Problem)。Hopfield神经网络是一组非线性微分方程。Hopfield的模型不仅对人工神经网络信息存储和提取功能进行了非线性数学概括,提出了动力方程和学习方程,还对网络算法提供了重要公式和参数,使人工神经网络的构造和学习有了理论指导,在Hopfield模型的影响下,大量学者又激发起研究神经网络的热情,积极投身于这一学术领域中。因为Hopfield 神经网络在众多方面具有巨大潜力,所以人们对神经网络的研究十分地重视,更多的人开始了研究神经网络,极大地推动了神经网络的发展。
(2)、Boltzmann机模型:1983年,Kirkpatrick等人认识到模拟退火算法可用于NP完全组合优化问题的求解,这种模拟高温物体退火过程来找寻全局最优解的方法最早由Metropli等人1953年提出的。1984年,Hinton与年轻学者Sejnowski等合作提出了大规模并行网络学习机,并明确提出隐单元的概念,这种学习机后来被称为Boltzmann机。
Hinton和Sejnowsky利用统计物理学的感念和方法,首次提出的多层网络的学习算法,称为Boltzmann 机模型。
(3)、BP神经网络模型:1986年,儒默哈特(D.E.Ru melhart)等人在多层神经网络模型的基础上,提出了多层神经网络权值修正的反向传播学习算法----BP算法(Error Back-Propagation),解决了多层前向神经网络的学习问题,证明了多层神经网络具有很强的学习能力,它可以完成许多学习任务,解决许多实际问题。
(4)、并行分布处理理论:1986年,由Rumelhart和McCkekkand主编的《Parallel Distributed Processing:Exploration in the Microstructures of Cognition》,该书中,他们建立了并行分布处理理论,主要致力于认知的微观研究,同时对具有非线性连续转移函数的多层前馈网络的误差反向传播算法即BP算法进行了详尽的分析,解决了长期以来没有权值调整有效算法的难题。可以求解感知机所不能解决的问题,回答了《Perceptrons》一书中关于神经网络局限性的问题,从实践上证实了人工神经网络有很强的运算能力。
(5)、细胞神经网络模型:1988年,Chua和Yang提出了细胞神经网络(CNN)模型,它是一个细胞自动机特性的大规模非线性计算机仿真系统。Kosko建立了双向联想存储模型(BAM),它具有非监督学习能力。
(6)、Darwinism模型:Edelman提出的Darwinism模型在90年代初产生了很大的影响,他建立了一种神经网络系统理论。
(7)、1988年,Linsker对感知机网络提出了新的自组织理论,并在Shanon信息论的基础上形成了最大互信息理论,从而点燃了基于NN的信息应用理论的光芒。
(8)、1988年,Broomhead和Lowe用径向基函数(Radialbasis function, RBF)提出分层网络的设计方法,从而将NN的设计与数值分析和线性适应滤波相挂钩。
(9)、1991年,Haken把协同引入神经网络,在他的理论框架中,他认为,认知过程是自发的,并断言模式识别过程即是模式形成过程。
(10)、1994年,廖晓昕关于细胞神经网络的数学理论与基础的提出,带来了这个领域新的进展。通过拓广神经网络的激活函数类,给出了更一般的时滞细胞神经网络(DCNN)、Hopfield神经网络(HNN)、双向联想记忆网络(BAM)模型。
(11)、90年代初,Vapnik等提出了支持向量机(Supportvector machines, SVM)和VC(Vapnik-Chervonenkis)维数的概念。
经过多年的发展,已有上百种的神经网络模型被提出。
深度学习(Deep Learning,DL)由Hinton等人于2006年提出,是机器学习的一个新领域。深度学习本质上是构建含有多隐层的机器学习架构模型,通过大规模数据进行训练,得到大量更具代表性的特征信息。深度学习算法打破了传统神经网络对层数的限制,可根据设计者需要选择网络层数。
突触是神经元之间相互连接的接口部分,即一个神经元的神经末梢与另一个神经元的树突相接触的交界面,位于神经元的神经末梢尾端。突触是轴突的终端。
大脑可视作为1000多亿神经元组成的神经网络。神经元的信息传递和处理是一种电化学活动.树突由于电化学作用接受外界的刺激,通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元.从控制论的观点来看;这一过程可以看作一个多输入单输出非线性系统的动态过程。
神经元的功能特性:(1)时空整合功能;(2)神经元的动态极化性;(3)兴奋与抑制状态;(4)结构的可塑性;(5)脉冲与电位信号的转换;(6)突触延期和不应期;(7)学习、遗忘和疲劳。
神经网络从两个方面模拟大脑:
(1)、神经网络获取的知识是从外界环境中学习得来的。
(2)、内部神经元的连接强度,即突触权值,用于储存获取的知识。
神经网络系统由能够处理人类大脑不同部分之间信息传递的由大量神经元连接形成的拓扑结构组成,依赖于这些庞大的神经元数目和它们之间的联系,人类的大脑能够收到输入的信息的刺激由分布式并行处理的神经元相互连接进行非线性映射处理,从而实现复杂的信息处理和推理任务。
对于某个处理单元(神经元)来说,假设来自其他处理单元(神经元)i的信息为Xi,它们与本处理单元的互相作用强度即连接权值为Wi, i=0,1,…,n-1,处理单元的内部阈值为θ。那么本处理单元(神经元)的输入为:
,而处理单元的输出为:
式中,xi为第i个元素的输入,wi为第i个处理单元与本处理单元的互联权重即神经元连接权值。f称为激活函数或作用函数,它决定节点(神经元)的输出。θ表示隐含层神经节点的阈值。
神经网络的主要工作是建立模型和确定权值,一般有前向型和反馈型两种网络结构。通常神经网络的学习和训练需要一组输入数据和输出数据对,选择网络模型和传递、训练函数后,神经网络计算得到输出结果,根据实际输出和期望输出之间的误差进行权值的修正,在网络进行判断的时候就只有输入数据而没有预期的输出结果。神经网络一个相当重要的能力是其网络能通过它的神经元权值和阈值的不断调整从环境中进行学习,直到网络的输出误差达到预期的结果,就认为网络训练结束。
对于这样一种多输入、单输出的基本单元可以进一步从生物化学、电生物学、数学等方面给出描述其功能的模型。利用大量神经元相互连接组成的人工神经网络,将显示出人脑的若干特征,人工神经网络也具有初步的自适应与自组织能力。在学习或训练过程中改变突触权重wij值,以适应周围环境的要求。同一网络因学习方式及内容不同可具有不同的功能。人工神经网络是一个具有学习能力的系统,可以发展知识,以至超过设计者原有的知识水平。通常,它的学习(或训练)方式可分为两种,一种是有监督(supervised)或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督(unsupervised)学习或称无导师学习,这时,只规定学习方式或某些规则,而具体的学习内容随系统所处环境(即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似于人脑的功能。
在人工神经网络设计及应用研究中,通常需要考虑三个方面的内容,即神经元激活函数、神经元之间的连接形式和网络的学习(训练)。
② 有人可以介绍一下什么是"神经网络"吗
由于神经网络是多学科交叉的产物,各个相关的学科领域对神经网络
都有各自的看法,因此,关于神经网络的定义,在科学界存在许多不同的
见解。目前使用得最广泛的是T.Koholen的定义,即"神经网络是由具有适
应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经
系统对真实世界物体所作出的交互反应。"
如果我们将人脑神经信息活动的特点与现行冯·诺依曼计算机的工作方
式进行比较,就可以看出人脑具有以下鲜明特征:
1. 巨量并行性。
在冯·诺依曼机中,信息处理的方式是集中、串行的,即所有的程序指
令都必须调到CPU中后再一条一条地执行。而人在识别一幅图像或作出一项
决策时,存在于脑中的多方面的知识和经验会同时并发作用以迅速作出解答。
据研究,人脑中约有多达10^(10)~10^(11)数量级的神经元,每一个神经元
具有103数量级的连接,这就提供了巨大的存储容量,在需要时能以很高的
反应速度作出判断。
2. 信息处理和存储单元结合在一起。
在冯·诺依曼机中,存储内容和存储地址是分开的,必须先找出存储器的
地址,然后才能查出所存储的内容。一旦存储器发生了硬件故障,存储器中
存储的所有信息就都将受到毁坏。而人脑神经元既有信息处理能力又有存储
功能,所以它在进行回忆时不仅不用先找存储地址再调出所存内容,而且可
以由一部分内容恢复全部内容。当发生"硬件"故障(例如头部受伤)时,并
不是所有存储的信息都失效,而是仅有被损坏得最严重的那部分信息丢失。
3. 自组织自学习功能。
冯·诺依曼机没有主动学习能力和自适应能力,它只能不折不扣地按照
人们已经编制好的程序步骤来进行相应的数值计算或逻辑计算。而人脑能够
通过内部自组织、自学习的能力,不断地适应外界环境,从而可以有效地处
理各种模拟的、模糊的或随机的问题。
神经网络研究的主要发展过程大致可分为四个阶段:
1. 第一阶段是在五十年代中期之前。
西班牙解剖学家Cajal于十九世纪末创立了神经元学说,该学说认为神经
元的形状呈两极,其细胞体和树突从其他神经元接受冲动,而轴索则将信号
向远离细胞体的方向传递。在他之后发明的各种染色技术和微电极技术不断
提供了有关神经元的主要特征及其电学性质。
1943年,美国的心理学家W.S.McCulloch和数学家W.A.Pitts在论文《神经
活动中所蕴含思想的逻辑活动》中,提出了一个非常简单的神经元模型,即
M-P模型。该模型将神经元当作一个功能逻辑器件来对待,从而开创了神经
网络模型的理论研究。
1949年,心理学家D.O. Hebb写了一本题为《行为的组织》的书,在这本
书中他提出了神经元之间连接强度变化的规则,即后来所谓的Hebb学习法则。
Hebb写道:"当神经细胞A的轴突足够靠近细胞B并能使之兴奋时,如果A重
复或持续地激发B,那么这两个细胞或其中一个细胞上必然有某种生长或代
谢过程上的变化,这种变化使A激活B的效率有所增加。"简单地说,就是
如果两个神经元都处于兴奋状态,那么它们之间的突触连接强度将会得到增
强。
五十年代初,生理学家Hodykin和数学家Huxley在研究神经细胞膜等效电
路时,将膜上离子的迁移变化分别等效为可变的Na+电阻和K+电阻,从而建
立了着名的Hodykin-Huxley方程。
这些先驱者的工作激发了许多学者从事这一领域的研究,从而为神经计
算的出现打下了基础。
2. 第二阶段从五十年代中期到六十年代末。
1958年,F.Rosenblatt等人研制出了历史上第一个具有学习型神经网络
特点的模式识别装置,即代号为Mark I的感知机(Perceptron),这一重
大事件是神经网络研究进入第二阶段的标志。对于最简单的没有中间层的
感知机,Rosenblatt证明了一种学习算法的收敛性,这种学习算法通过迭代
地改变连接权来使网络执行预期的计算。
稍后于Rosenblatt,B.Widrow等人创造出了一种不同类型的会学习的神经
网络处理单元,即自适应线性元件Adaline,并且还为Adaline找出了一种有
力的学习规则,这个规则至今仍被广泛应用。Widrow还建立了第一家神经计
算机硬件公司,并在六十年代中期实际生产商用神经计算机和神经计算机软
件。
除Rosenblatt和Widrow外,在这个阶段还有许多人在神经计算的结构和
实现思想方面作出了很大的贡献。例如,K.Steinbuch研究了称为学习矩阵
的一种二进制联想网络结构及其硬件实现。N.Nilsson于1965年出版的
《机器学习》一书对这一时期的活动作了总结。
3. 第三阶段从六十年代末到八十年代初。
第三阶段开始的标志是1969年M.Minsky和S.Papert所着的《感知机》一书
的出版。该书对单层神经网络进行了深入分析,并且从数学上证明了这种网
络功能有限,甚至不能解决象"异或"这样的简单逻辑运算问题。同时,他们
还发现有许多模式是不能用单层网络训练的,而多层网络是否可行还很值得
怀疑。
由于M.Minsky在人工智能领域中的巨大威望,他在论着中作出的悲观结论
给当时神经网络沿感知机方向的研究泼了一盆冷水。在《感知机》一书出版
后,美国联邦基金有15年之久没有资助神经网络方面的研究工作,前苏联也
取消了几项有前途的研究计划。
但是,即使在这个低潮期里,仍有一些研究者继续从事神经网络的研究工
作,如美国波士顿大学的S.Grossberg、芬兰赫尔辛基技术大学的T.Kohonen
以及日本东京大学的甘利俊一等人。他们坚持不懈的工作为神经网络研究的
复兴开辟了道路。
4. 第四阶段从八十年代初至今。
1982年,美国加州理工学院的生物物理学家J.J.Hopfield采用全互连型
神经网络模型,利用所定义的计算能量函数,成功地求解了计算复杂度为
NP完全型的旅行商问题(Travelling Salesman Problem,简称TSP)。这
项突破性进展标志着神经网络方面的研究进入了第四阶段,也是蓬勃发展
的阶段。
Hopfield模型提出后,许多研究者力图扩展该模型,使之更接近人脑的
功能特性。1983年,T.Sejnowski和G.Hinton提出了"隐单元"的概念,并且
研制出了Boltzmann机。日本的福岛邦房在Rosenblatt的感知机的基础上,
增加隐层单元,构造出了可以实现联想学习的"认知机"。Kohonen应用3000
个阈器件构造神经网络实现了二维网络的联想式学习功能。1986年,
D.Rumelhart和J.McClelland出版了具有轰动性的着作《并行分布处理-认知
微结构的探索》,该书的问世宣告神经网络的研究进入了高潮。
1987年,首届国际神经网络大会在圣地亚哥召开,国际神经网络联合会
(INNS)成立。随后INNS创办了刊物《Journal Neural Networks》,其他
专业杂志如《Neural Computation》,《IEEE Transactions on Neural
Networks》,《International Journal of Neural Systems》等也纷纷
问世。世界上许多着名大学相继宣布成立神经计算研究所并制订有关教育
计划,许多国家也陆续成立了神经网络学会,并召开了多种地区性、国际性
会议,优秀论着、重大成果不断涌现。
今天,在经过多年的准备与探索之后,神经网络的研究工作已进入了决
定性的阶段。日本、美国及西欧各国均制订了有关的研究规划。
日本制订了一个"人类前沿科学计划"。这项计划为期15-20年,仅
初期投资就超过了1万亿日元。在该计划中,神经网络和脑功能的研究占有
重要地位,因为所谓"人类前沿科学"首先指的就是有关人类大脑以及通过
借鉴人脑而研制新一代计算机的科学领域。
在美国,神经网络的研究得到了军方的强有力的支持。美国国防部投资
4亿美元,由国防部高级研究计划局(DAPRA)制订了一个8年研究计划,
并成立了相应的组织和指导委员会。同时,海军研究办公室(ONR)、空军
科研办公室(AFOSR)等也纷纷投入巨额资金进行神经网络的研究。DARPA认
为神经网络"看来是解决机器智能的唯一希望",并认为"这是一项比原子弹
工程更重要的技术"。美国国家科学基金会(NSF)、国家航空航天局(NASA)
等政府机构对神经网络的发展也都非常重视,它们以不同的形式支持了众多
的研究课题。
欧共体也制订了相应的研究计划。在其ESPRIT计划中,就有一个项目是
"神经网络在欧洲工业中的应用",除了英、德两国的原子能机构外,还有多
个欧洲大公司卷进这个研究项目,如英国航天航空公司、德国西门子公司等。
此外,西欧一些国家还有自己的研究计划,如德国从1988年就开始进行一个
叫作"神经信息论"的研究计划。
我国从1986年开始,先后召开了多次非正式的神经网络研讨会。1990年
12月,由中国计算机学会、电子学会、人工智能学会、自动化学会、通信学
会、物理学会、生物物理学会和心理学会等八个学会联合在北京召开了"中
国神经网络首届学术会议",从而开创了我国神经网络研究的新纪元。
③ 怎么用spss神经网络来分类数据
用spss神经网络分类数据方法如下:
神经网络算法能够通过大量的历史数据,逐步建立和完善输入变量到输出结果之间的发展路径,也就是神经网络,在这个神经网络中,每条神经的建立以及神经的粗细(权重)都是经过大量历史数据训练得到的,数据越多,神经网络就越接近真实。神经网络建立后,就能够通过不同的输入变量值,预测输出结果。例如,银行能够通过历史申请贷款的客户资料,建立一个神经网络模型,用于预测以后申请贷款客户的违约情况,做出是否贷款给该客户的决策。本篇文章将用一个具体银行案例数据,介绍如何使用SPSS建立神经网络模型,用于判断将来申请贷款者的还款能力。
选取历史数据建立模型,一般会将历史数据分成两大部分:训练集和验证集,很多分析者会直接按照数据顺序将前70%的数据作为训练集,后30%的数据作为验证集。如果数据之间可以证明是相互独立的,这样的做法没有问题,但是在数据收集的过程中,收集的数据往往不会是完全独立的(变量之间的相关关系可能没有被分析者发现)。因此,通常的做法是用随机数发生器来将历史数据随机分成两部分,这样就能够尽量避免相同属性的数据被归类到一个数据集当中,使得建立的模型效果能够更加优秀。
在具体介绍如何使用SPSS软件建立神经网络模型的案例之前,先介绍SPSS的另外一个功能:随机数发生器。SPSS的随机数发生器常数的随机数据不是真正的随机数,而是伪随机数。伪随机数是由算法计算得出的,因此是可以预测的。当随机种子(算法参数)相同时,对于同一个随机函数,得出的随机数集合是完全相同的。与伪随机数对应的是真随机数,它是真正的随机数,无法预测也没有周期性。目前大部分芯片厂商都集成了硬件随机数发生器,例如有一种热噪声随机数发生器,它的原理是利用由导体中电子的热震动引起的热噪声信号,作为随机数种子。
④ 神经网络:卷积神经网络(CNN)
神经网络 最早是由心理学家和神经学家提出的,旨在寻求开发和测试神经的计算模拟。
粗略地说, 神经网络 是一组连接的 输入/输出单元 ,其中每个连接都与一个 权 相关联。在学习阶段,通过调整权值,使得神经网络的预测准确性逐步提高。由于单元之间的连接,神经网络学习又称 连接者学习。
神经网络是以模拟人脑神经元的数学模型为基础而建立的,它由一系列神经元组成,单元之间彼此连接。从信息处理角度看,神经元可以看作是一个多输入单输出的信息处理单元,根据神经元的特性和功能,可以把神经元抽象成一个简单的数学模型。
神经网络有三个要素: 拓扑结构、连接方式、学习规则
神经网络的拓扑结构 :神经网络的单元通常按照层次排列,根据网络的层次数,可以将神经网络分为单层神经网络、两层神经网络、三层神经网络等。结构简单的神经网络,在学习时收敛的速度快,但准确度低。
神经网络的层数和每层的单元数由问题的复杂程度而定。问题越复杂,神经网络的层数就越多。例如,两层神经网络常用来解决线性问题,而多层网络就可以解决多元非线性问题
神经网络的连接 :包括层次之间的连接和每一层内部的连接,连接的强度用权来表示。
根据层次之间的连接方式,分为:
1)前馈式网络:连接是单向的,上层单元的输出是下层单元的输入,如反向传播网络,Kohonen网络
2)反馈式网络:除了单项的连接外,还把最后一层单元的输出作为第一层单元的输入,如Hopfield网络
根据连接的范围,分为:
1)全连接神经网络:每个单元和相邻层上的所有单元相连
2)局部连接网络:每个单元只和相邻层上的部分单元相连
神经网络的学习
根据学习方法分:
感知器:有监督的学习方法,训练样本的类别是已知的,并在学习的过程中指导模型的训练
认知器:无监督的学习方法,训练样本类别未知,各单元通过竞争学习。
根据学习时间分:
离线网络:学习过程和使用过程是独立的
在线网络:学习过程和使用过程是同时进行的
根据学习规则分:
相关学习网络:根据连接间的激活水平改变权系数
纠错学习网络:根据输出单元的外部反馈改变权系数
自组织学习网络:对输入进行自适应地学习
摘自《数学之美》对人工神经网络的通俗理解:
神经网络种类很多,常用的有如下四种:
1)Hopfield网络,典型的反馈网络,结构单层,有相同的单元组成
2)反向传播网络,前馈网络,结构多层,采用最小均方差的纠错学习规则,常用于语言识别和分类等问题
3)Kohonen网络:典型的自组织网络,由输入层和输出层构成,全连接
4)ART网络:自组织网络
深度神经网络:
Convolutional Neural Networks(CNN)卷积神经网络
Recurrent neural Network(RNN)循环神经网络
Deep Belief Networks(DBN)深度信念网络
深度学习是指多层神经网络上运用各种机器学习算法解决图像,文本等各种问题的算法集合。深度学习从大类上可以归入神经网络,不过在具体实现上有许多变化。
深度学习的核心是特征学习,旨在通过分层网络获取分层次的特征信息,从而解决以往需要人工设计特征的重要难题。
Machine Learning vs. Deep Learning
神经网络(主要是感知器)经常用于 分类
神经网络的分类知识体现在网络连接上,被隐式地存储在连接的权值中。
神经网络的学习就是通过迭代算法,对权值逐步修改的优化过程,学习的目标就是通过改变权值使训练集的样本都能被正确分类。
神经网络特别适用于下列情况的分类问题:
1) 数据量比较小,缺少足够的样本建立模型
2) 数据的结构难以用传统的统计方法来描述
3) 分类模型难以表示为传统的统计模型
缺点:
1) 需要很长的训练时间,因而对于有足够长训练时间的应用更合适。
2) 需要大量的参数,这些通常主要靠经验确定,如网络拓扑或“结构”。
3) 可解释性差 。该特点使得神经网络在数据挖掘的初期并不看好。
优点:
1) 分类的准确度高
2)并行分布处理能力强
3)分布存储及学习能力高
4)对噪音数据有很强的鲁棒性和容错能力
最流行的基于神经网络的分类算法是80年代提出的 后向传播算法 。后向传播算法在多路前馈神经网络上学习。
定义网络拓扑
在开始训练之前,用户必须说明输入层的单元数、隐藏层数(如果多于一层)、每一隐藏层的单元数和输出层的单元数,以确定网络拓扑。
对训练样本中每个属性的值进行规格化将有助于加快学习过程。通常,对输入值规格化,使得它们落入0.0和1.0之间。
离散值属性可以重新编码,使得每个域值一个输入单元。例如,如果属性A的定义域为(a0,a1,a2),则可以分配三个输入单元表示A。即,我们可以用I0 ,I1 ,I2作为输入单元。每个单元初始化为0。如果A = a0,则I0置为1;如果A = a1,I1置1;如此下去。
一个输出单元可以用来表示两个类(值1代表一个类,而值0代表另一个)。如果多于两个类,则每个类使用一个输出单元。
隐藏层单元数设多少个“最好” ,没有明确的规则。
网络设计是一个实验过程,并可能影响准确性。权的初值也可能影响准确性。如果某个经过训练的网络的准确率太低,则通常需要采用不同的网络拓扑或使用不同的初始权值,重复进行训练。
后向传播算法学习过程:
迭代地处理一组训练样本,将每个样本的网络预测与实际的类标号比较。
每次迭代后,修改权值,使得网络预测和实际类之间的均方差最小。
这种修改“后向”进行。即,由输出层,经由每个隐藏层,到第一个隐藏层(因此称作后向传播)。尽管不能保证,一般地,权将最终收敛,学习过程停止。
算法终止条件:训练集中被正确分类的样本达到一定的比例,或者权系数趋近稳定。
后向传播算法分为如下几步:
1) 初始化权
网络的权通常被初始化为很小的随机数(例如,范围从-1.0到1.0,或从-0.5到0.5)。
每个单元都设有一个偏置(bias),偏置也被初始化为小随机数。
2) 向前传播输入
对于每一个样本X,重复下面两步:
向前传播输入,向后传播误差
计算各层每个单元的输入和输出。输入层:输出=输入=样本X的属性;即,对于单元j,Oj = Ij = Xj。隐藏层和输出层:输入=前一层的输出的线性组合,即,对于单元j, Ij =wij Oi + θj,输出=
3) 向后传播误差
计算各层每个单元的误差。
输出层单元j,误差:
Oj是单元j的实际输出,而Tj是j的真正输出。
隐藏层单元j,误差:
wjk是由j到下一层中单元k的连接的权,Errk是单元k的误差
更新 权 和 偏差 ,以反映传播的误差。
权由下式更新:
其中,△wij是权wij的改变。l是学习率,通常取0和1之间的值。
偏置由下式更新:
其中,△θj是偏置θj的改变。
Example
人类视觉原理:
深度学习的许多研究成果,离不开对大脑认知原理的研究,尤其是视觉原理的研究。1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家) 和Torsten Wiesel,以及Roger Sperry。前两位的主要贡献,是“发现了视觉系统的信息处理”, 可视皮层是分级的 。
人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。
对于不同的物体,人类视觉也是通过这样逐层分级,来进行认知的:
在最底层特征基本上是类似的,就是各种边缘,越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等),到最上层,不同的高级特征最终组合成相应的图像,从而能够让人类准确的区分不同的物体。
可以很自然的想到:可以不可以模仿人类大脑的这个特点,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类呢?答案是肯定的,这也是许多深度学习算法(包括CNN)的灵感来源。
卷积神经网络是一种多层神经网络,擅长处理图像特别是大图像的相关机器学习问题。卷积网络通过一系列方法,成功将数据量庞大的图像识别问题不断降维,最终使其能够被训练。
CNN最早由Yann LeCun提出并应用在手写字体识别上。LeCun提出的网络称为LeNet,其网络结构如下:
这是一个最典型的卷积网络,由 卷积层、池化层、全连接层 组成。其中卷积层与池化层配合,组成多个卷积组,逐层提取特征,最终通过若干个全连接层完成分类。
CNN通过卷积来模拟特征区分,并且通过卷积的权值共享及池化,来降低网络参数的数量级,最后通过传统神经网络完成分类等任务。
降低参数量级:如果使用传统神经网络方式,对一张图片进行分类,那么,把图片的每个像素都连接到隐藏层节点上,对于一张1000x1000像素的图片,如果有1M隐藏层单元,一共有10^12个参数,这显然是不能接受的。
但是在CNN里,可以大大减少参数个数,基于以下两个假设:
1)最底层特征都是局部性的,也就是说,用10x10这样大小的过滤器就能表示边缘等底层特征
2)图像上不同小片段,以及不同图像上的小片段的特征是类似的,也就是说,能用同样的一组分类器来描述各种各样不同的图像
基于以上两个假设,就能把第一层网络结构简化
用100个10x10的小过滤器,就能够描述整幅图片上的底层特征。
卷积运算的定义如下图所示:
如上图所示,一个5x5的图像,用一个3x3的 卷积核 :
101
010
101
来对图像进行卷积操作(可以理解为有一个滑动窗口,把卷积核与对应的图像像素做乘积然后求和),得到了3x3的卷积结果。
这个过程可以理解为使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。在实际训练过程中, 卷积核的值是在学习过程中学到的。
在具体应用中,往往有多个卷积核,可以认为, 每个卷积核代表了一种图像模式 ,如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核。如果设计了6个卷积核,可以理解为这个图像上有6种底层纹理模式,也就是用6种基础模式就能描绘出一副图像。以下就是24种不同的卷积核的示例:
池化 的过程如下图所示:
可以看到,原始图片是20x20的,对其进行采样,采样窗口为10x10,最终将其采样成为一个2x2大小的特征图。
之所以这么做,是因为即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行采样。
即使减少了许多数据,特征的统计属性仍能够描述图像,而且由于降低了数据维度,有效地避免了过拟合。
在实际应用中,分为最大值采样(Max-Pooling)与平均值采样(Mean-Pooling)。
LeNet网络结构:
注意,上图中S2与C3的连接方式并不是全连接,而是部分连接。最后,通过全连接层C5、F6得到10个输出,对应10个数字的概率。
卷积神经网络的训练过程与传统神经网络类似,也是参照了反向传播算法
第一阶段,向前传播阶段:
a)从样本集中取一个样本(X,Yp),将X输入网络;
b)计算相应的实际输出Op
第二阶段,向后传播阶段
a)计算实际输出Op与相应的理想输出Yp的差;
b)按极小化误差的方法反向传播调整权矩阵。
⑤ 神经网络(Neural Network)
(1)结构:许多树突(dendrite)用于输入,一个轴突 (axon)用于输出。
(2)特性:兴奋性和传导性。兴奋性是指当信号量超过某个阈值时,细胞体就会被激活,产生电脉冲。传导性是指电脉冲沿着轴突并通过突触传递到其它神经元。
(3)有两种状态的机器:激活时为“是”,不激活时为“否”。神经细胞的状态取决于从其他神经细胞接收到的信号量,以及突触的性质(抑制或加强)。
(1)神经元——不重要
① 神经元是包含权重和偏置项的 函数 :接收数据后,执行一些计算,然后使用激活函数将数据限制在一个范围内(多数情况下)。
② 单个神经元:线性可分的情况下,本质是一条直线, ,这条直线将数据划分为两类。而线性分类器本身就是一个单层神经网络。
③ 神经网络:非线性可分的情况下,神经网络通过多个隐层的方法来实现非线性的函数。
(2)权重/参数/连接(Weight)——最重要
每一个连接上都有一个权重。一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。
(3)偏置项(Bias Units)——必须
① 如果没有偏置项,所有的函数都会经过原点。
② 正则化偏置会导致欠拟合:若对偏置正则化,会导致激活变得更加简单,偏差就会上升,学习的能力就会下降。
③ 偏置的大小度量了神经元产生激励(激活)的难易程度。
(1)定义:也称为转换函数,是一种将输入 (input) 转成输出 (output) 的函数。
(2)作用:一般直线拟合的精确度要比曲线差很多,引入激活函数能给神经网络 增加一些非线性 的特性。
(3)性质:
① 非线性:导数不是常数,否则就退化成直线。对于一些画一条直线仍然无法分开的问题,非线性可以把直线变弯,就能包罗万象;
② 可微性:当优化方法是基于梯度的时候,处处可导为后向传播算法提供了核心条件;
③ 输出范围:一般限定在[0,1],使得神经元对一些比较大的输入会比较稳定;
④ 非饱和性:饱和就是指,当输入比较大的时候输出几乎没变化,会导致梯度消失;
⑤ 单调性:导数符号不变,输出不会上蹿下跳,让神经网络训练容易收敛。
(1)线性函数 (linear function)—— purelin()
(2)符号函数 (sign function)—— hardlim()
① 如果z值高于阈值,则激活设置为1或yes,神经元将被激活。
② 如果z值低于阈值,则激活设置为0或no,神经元不会被激活。
(3)对率函数 (sigmoid function)—— logsig()
① 优点:光滑S型曲线连续可导,函数阈值有上限。
② 缺点:❶ 函数饱和使梯度消失,两端梯度几乎为0,更新困难,做不深;
❷ 输出不是0中心,将影响梯度下降的运作,收敛异常慢;
❸ 幂运算相对来讲比较耗时
(4)双曲正切函数(hyperbolic tangent function)—— tansig()
① 优点:取值范围0中心化,防止了梯度偏差
② 缺点:梯度消失现象依然存在,但相对于sigmoid函数问题较轻
(5)整流线性单元 ReLU 函数(rectified linear unit)
① 优点:❶ 分段线性函数,它的非线性性很弱,因此网络做得很深;
❷ 由于它的线性、非饱和性, 对于随机梯度下降的收敛有巨大的加速作用;
② 缺点:❶ 当x<0,梯度都变成0,参数无法更新,也导致了数据多样化的丢失;
❷ 输出不是0中心
(6)渗漏型整流线性单元激活函数 Leaky ReLU 函数
① 优点:❶ 是为解决“ReLU死亡”问题的尝试,在计算导数时允许较小的梯度;
❷ 非饱和的公式,不包含指数运算,计算速度快。
② 缺点:❶ 无法避免梯度爆炸问题; (没有体现优于ReLU)
❷ 神经网络不学习 α 值。
(7)指数线性单元 ELU (Exponential Linear Units)
① 优点:❶ 能避免“死亡 ReLU” 问题;
❷ 能得到负值输出,这能帮助网络向正确的方向推动权重和偏置变化;
❸ 在计算梯度时能得到激活,而不是让它们等于 0。
② 缺点:❶ 由于包含指数运算,所以计算时间更长;
❷ 无法避免梯度爆炸问题; (没有体现优于ReLU)
❸ 神经网络不学习 α 值。
(8)Maxout(对 ReLU 和 Leaky ReLU的一般化归纳)
① 优点:❶ 拥有ReLU的所有优点(线性和不饱和)
❷ 没有ReLU的缺点(死亡的ReLU单元)
❸ 可以拟合任意凸函数
② 缺点 :参数数量增加了一倍。难训练,容易过拟合
(9)Swish
① 优点:❶ 在负半轴也有一定的不饱和区,参数的利用率更大
❷ 无上界有下界、平滑、非单调
❸ 在深层模型上的效果优于 ReLU
每个层都包含一定数量的单元(units)。增加层可增加神经网络输出的非线性。
(1)输入层:就是接收原始数据,然后往隐层送
(2)输出层:神经网络的决策输出
(3)隐藏层:神经网络的关键。把前一层的向量变成新的向量,让数据变得线性可分。
(1)结构:仅包含输入层和输出层,直接相连。
(2)作用:仅能表示 线性可分 函数或决策,且一定可以在有限的迭代次数中收敛。
(3)局限:可以建立与门、或门、非门等,但无法建立更为复杂的异或门(XOR),即两个输入相同时输出1,否则输出0。 (“AI winter”)
(1)目的:拟合某个函数 (两层神经网络可以逼近任意连续函数)
(2)结构:包含输入层、隐藏层和输出层 ,由于从输入到输出的过程中不存在与模型自身的反馈连接,因此被称为“前馈”。 (层与层之间全连接)
(3)作用: 非线性 分类、聚类、预测等,通过训练,可以学习到数据中隐含的知识。
(4)局限:计算复杂、计算速度慢、容易陷入局部最优解,通常要将它们与其他网络结合形成新的网络。
(5)前向传播算法(Forward Propagation)
① 方法:从左至右逐级依赖的算法模型,即网络如何根据输入X得到输出Y,最终的输出值和样本值作比较, 计算出误差 。
② 目的:完成了一次正反向传播,就完成了一次神经网络的训练迭代。通过输出层的误差,快速求解对每个ω、b的偏导,利用梯度下降法,使Loss越来越小。
② 局限:为使最终的误差达到最小,要不断修改参数值,但神经网络的每条连接线上都有不同权重参数,修改这些参数变得棘手。
(6)误差反向传播(Back Propagation)
① 原理:梯度下降法求局部极值
② 方法:从后往前,从输出层开始计算 L 对当前层的微分,获得各层的误差信号,此误差信号即作为修正单元权值的依据。计算结束以后,所要的两个参数矩阵的 梯度 就都有了。
③ 局限:如果激活函数是饱和的,带来的缺陷就是系统迭代更新变慢,系统收敛就慢,当然这是可以有办法弥补的,一种方法是使用 交叉熵函数 作为损失函数。
(1)原理:随着网络的层数增加,每一层对于前一层次的抽象表示更深入。在神经网络中,每一层神经元学习到的是前一层神经元值的更抽象的表示。通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。
(2)方法:ReLU函数在训练多层神经网络时,更容易收敛,并且预测性能更好。
(3)优点:① 易于构建,表达能力强,基本单元便可扩展为复杂的非线性函数
② 并行性号,有利于在分布是系统上应用
(4)局限:① 优化算法只能获得局部极值,性能与初始值相关
② 调参理论性缺乏
③ 不可解释,与实际任务关联性模糊
(1)原理:由手工设计卷积核变成自动学习卷积核
(2)卷积(Convolutional layer): 输入与卷积核相乘再累加 (内积、加权叠加)
① 公式:
② 目的:提取输入的不同特征,得到维度很大的 特征图(feature map)
③ 卷积核:需要训练的参数。一般为奇数维,有中心像素点,便于定位卷积核
④ 特点:局部感知、参数变少、权重共享、分层提取
(3)池化(Pooling Layer):用更高层的抽象表达来表示主要特征,又称“降采样”
① 分类: 最大 (出现与否)、平均(保留整体)、随机(避免过拟合)
② 目的:降维,不需要训练参数,得到新的、维度较小的特征
(4)步长(stride):若假设输入大小是n∗n,卷积核的大小是f∗f,步长是s,则最后的feature map的大小为o∗o,其中
(5)填充(zero-padding)
① Full模式:即从卷积核(fileter)和输入刚相交开始做卷积,没有元素的部分做补0操作。
② Valid模式:卷积核和输入完全相交开始做卷积,这种模式不需要补0。
③ Same模式:当卷积核的中心C和输入开始相交时做卷积。没有元素的部分做补0操作。
(7)激活函数:加入非线性特征
(8)全连接层(Fully-connected layer)
如果说卷积层、池化层和激活函数层等是将原始数据映射到隐层特征空间(决定计算速度),全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用(决定参数个数)。
参考:
[1] 神经网络(入门最详细)_ruthy的博客-CSDN博客_神经网络算法入门
[2] 神经网络(容易被忽视的基础知识) - Evan的文章 - 知乎
[3] 人工神经网络——王的机器
[4] 如何简单形象又有趣地讲解神经网络是什么? - 舒小曼的回答 - 知乎
[5] 神经网络15分钟入门!足够通俗易懂了吧 - Mr.括号的文章 - 知乎
[6] 神经网络——最易懂最清晰的一篇文章_illikang的博客-CSDN博客_神经网络
[7] 直觉化深度学习教程——什么是前向传播——CSDN
[8] “反向传播算法”过程及公式推导(超直观好懂的Backpropagation)_aift的专栏-CSDN
[9] 卷积、反卷积、池化、反池化——CSDN
[10] 浙大机器学习课程- bilibili.com
⑥ 人工神经网络分层结构包括
品牌型号:华为MateBook D15系统:Windows 11
人工神经网络分层结构包括神经元、层和网络三个部分。
1、神经元是人工神经网络最基本的单元。单元以层的方式组,每一层的每个神经元和前一层、后一层的神经元连接,共分为输入层、输出层和隐藏层,三层连接形成一个神经网络。
2、输入层只从外部环境接收信息,是由输入单元组成,而这些输入单元可接收样本中各种不同的特征信息。该层的每个神经元相当于自变量,不完成任何计算,只为下一层传递信息;隐藏层介于输入层和输出层之间,这些层完全用于分析,其函数联系输入层变量和输出层变量,使其更配适数据。而最后,输出层生成最终结果,每个输出单元会对应到某一种特定的分类,为网络送给外部系统的结果值,,整个网络由调整链接强度的程序来达成学习的目的。
3、神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。
⑦ 一维信号分类需要用复杂的深度学习神经网络吗
一维信号分类需要用复杂的深度学习神经网络。
一维信号分类需要用复杂的深度学习神经网络来进行分类,同时深度学习算法(包括CNN)也肯定可以直接处理一维信号。举个例子,深度残差收缩网络,就是用于处理一维振动信号的一种深度学习方法,可以作为参考。深度残差收缩网络其实是深度残差网络(ResNet)的新型改进,将软阈值化作为非线性层引入ResNet的网络结构之中,其目的是提高深度学习方法在含噪声数据或复杂数据上的特征学习效果。
直接把多通道的一维信号合并成二维图像,然后直接按图像卷积的方法去做~~当然,如果像ECG这种只有单通道一维信号,也可以直接一维卷积,效果一般~~可以看看语音处理的相关Net,其中比较推荐的是用 dilated conv 来做