神经网络设计

时间:2025-01-17 07:56:03编辑:花茶君

神经网络是什么

可以指向两种,一个是生物神经网络,一个是人工神经网络。生物神经网络,一般指生物的大脑神经元,细胞,触点等组成的网络,用于产生生物的意识,帮助生物进行思考和行动。1872年,意大利的医学院毕业生高基,在一次意外中,将脑块掉落在硝酸银溶液中。数周后,他以显微镜观察此脑块,成就了神经科学史上重大里程碑--“首次以肉眼看到神经细胞”。人工神经网络(即ANN)是从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络,是20世纪80年代以来人工智能领域兴起的研究热点。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。随着对人工神经网络的深入研究,其在模式识别、智能机器人、自动控制、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。


神经网络的基本原理是什么?

神经网络的基本原理是:每个神经元把最初的输入值乘以一定的权重,并加上其他输入到这个神经元里的值(并结合其他信息值),最后算出一个总和,再经过神经元的偏差调整,最后用激励函数把输出值标准化。基本上,神经网络是由一层一层的不同的计算单位连接起来的。我们把计算单位称为神经元,这些网络可以把数据处理分类,就是我们要的输出。神经网络常见的工具:以上内容参考:在众多的神经网络工具中,NeuroSolutions始终处于业界领先位置。它是一个可用于windows XP/7高度图形化的神经网络开发工具。其将模块化,基于图标的网络设计界面,先进的学习程序和遗传优化进行了结合。该款可用于研究和解决现实世界的复杂问题的神经网络设计工具在使用上几乎无限制。以上内容参考:百度百科-神经网络

(七)神经网络基本结构

目前为止,我们已经学习了2个机器学习模型。线性回归一般用来处理线性问题,逻辑回归用来处理2分类问题。虽然逻辑回归也可以处理非线性的分类问题,但是当我们有非常多的特征时,例如大于100个变量,将会有数量非常惊人的特征组合。这对于一般的逻辑回归来说需要计算的特征太多了,负荷太大。而神经网络既可以解决复杂的非线性分类问题,又可以避免庞大的计算量。 人工神经网络是由很多神经元(激活单元)构成的,神经元是神经网络的基本元素。 实际上,可以这样理解神经元工作过程,当将输入送进神经元后,神经元将输入与权值线性组合(实际上就是θ T X)输出一个线性表达式,再将这个表达式送入激活函数中,便得到了神经元的真实输出。 神经网络由好多个激活单元构成,如下图所示: 激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。 (1) 线性函数( Liner Function ) (2) 斜面函数( Ramp Function )** (3) 阈值函数( Threshold Function )** 以上3个激活函数都属于线性函数,下面介绍两个常用的非线性激活函数。 (4) S形函数( Sigmoid Function )   S形函数与双极S形函数的图像如下: 双极S形函数与S形函数主要区别在于函数的值域,双极S形函数值域是(-1,1),而S形函数值域是(0,1)。由于S形函数与双极S形函数都是 可导的 (导函数是连续函数),因此适合用在BP神经网络中。(BP算法要求激活函数可导) 人工神经网络中,最常用的激活函数就是sigmoid函数 神经网络是由大量的神经元互联而构成的网络。根据网络中神经元的互联方式,常见网络结构主要可以分为下面3类: 前馈网络也称前向网络,是最常见的神经网络,前文提到的都是前馈网络。称之为前馈是因为它在输出和模型本身之间没有反馈,数据只能向前传送,直到到达输出层,层间没有向后的反馈信号。 反馈型神经网络是一种从输出到输入具有反馈连接的神经网络,其结构比前馈网络要复杂得多。 自组织神经网络是一种无监督学习网络。它通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数与结构。

神经网络简述

机器学习中谈论的神经网络是指“神经网络学习”,或者说,是机器学习和神经网络这两个学科领域的交叉部分[1]。

在这里,神经网络更多的是指计算机科学家模拟人类大脑结构和智能行为,发明的一类算法的统称。

神经网络是众多优秀仿生算法中的一种,读书时曾接触过蚁群优化算法,曾惊讶于其强大之处,但神经网络的强大,显然蚁群优化还不能望其项背。


A、起源与第一次高潮。有人认为,神经网络的最早讨论,源于现代计算机科学的先驱——阿兰.图灵在1948年的论文中描述的“B型组织机器”[2]。二十世纪50年代出现了以感知机、Adaling为代表的一系列成功,这是神经网络发展的第一个高潮[1]。


B、第一次低谷。1969年,马文.明斯基出版《感知机》一书,书中论断直接将神经网络打入冷宫,导致神经网络十多年的“冰河期”。值得一提的是,在这期间的1974年,哈佛大学Paul Webos发明BP算法,但当时未受到应有的重视[1]。

C、第二次高潮。1983年,加州理工学院的物理学家John Hopfield利用神经网络,在旅行商问题上获得当时最好结果,引起轰动;Rumelhart等人重新发明了BP算法,BP算法迅速走红,掀起神经网络第二次高潮[1]。

D、第二次低谷。二十世纪90年代中期,统计学习理论和支持向量机兴起,较之于这些算法,神经网络的理论基础不清晰等缺点更加凸显,神经网络研究进入第二次低谷[1]。

E、深度学习的崛起。2010年前后,随着计算能力的提升和大数据的涌现,以神经网络为基础的“深度学习”崛起,科技巨头公司谷歌、Facebook、百度投入巨资研发,神经网络迎来第三次高潮[1]。2016年3月9日至15日,Google人工智能程序AlphaGo对阵韩国围棋世界冠军李世乭,以4:1大比分获胜,比众多专家预言早了十年。这次比赛,迅速在全世界经济、科研、计算机产业各领域掀起人工智能和深度学习的热烈讨论。

F、展望。从几个方面讨论一下。

1)、近期在Google AlphaGo掀起的热潮中,民众的热情与期待最大,甚至有少许恐慌情绪;计算机产业和互联网产业热情也非常巨大,对未来充满期待,各大巨头公司对其投入大量资源;学术界的反应倒是比较冷静的。学术界的冷静,是因为神经网络和深度神经网络的理论基础还没有出现长足的进步,其缺点还没有根本改善。这也从另一个角度说明了深度神经网络理论进步的空间很大。

2)、"当代神经网络是基于我们上世纪六十年代掌握的脑知识。"关于人类大脑的科学与知识正在爆炸式增长。[3]世界上很多学术团队正在基于大脑机制新的认知建立新的模型[3]。我个人对此报乐观态度,从以往的仿生算法来看,经过亿万年进化的自然界对科技发展的促进从来没有停止过。

3)、还说AlphaGo,它并不是理论和算法的突破,而是基于已有算法的工程精品。AlhphaGo的工作,为深度学习的应用提供了非常广阔的想象空间。分布式技术提供了巨大而廉价的计算能力,巨量数据的积累提供了丰富的训练样本,深度学习开始腾飞,这才刚刚开始。


一直沿用至今的,是McChlloch和Pitts在1943年依据脑神经信号传输结构抽象出的简单模型,所以也被称作”M-P神经元模型“。

其中,


f函数像一般形如下图的函数,既考虑阶跃性,又考虑光滑可导性。


实际常用如下公式,因形如S,故被称作sigmoid函数。


把很多个这样的神经元按一定层次连接起来,就得到了神经网络。


两层神经元组成,输入层接收外界输入信号,输出层是M-P神经元(只有输出层是)。


感知机的数学模型和单个M-P神经元的数学模型是一样的,如因为输入层只需接收输入信号,不是M-P神经元。

感知机只有输出层神经元是B-P神经元,学习能力非常有限。对于现行可分问题,可以证明学习过程一定会收敛。而对于非线性问题,感知机是无能为力的。


BP神经网络全称叫作误差逆传播(Error Propagation)神经网络,一般是指基于误差逆传播算法的多层前馈神经网络。这里为了不占篇幅,BP神经网络将起篇另述。

BP算法是迄今最为成功的神经网络学习算法,也是最有代表性的神经网络学习算法。BP算法不仅用于多层前馈神经网络,还用于其他类型神经网络的训练。

RBF网络全程径向基函数(Radial Basis Function)网络,是一种单隐层前馈神经网络,其与BP网络最大的不同是采用径向基函数作为隐层神经元激活函数。

卷积神经网络(Convolutional neural networks,简称CNNs)是一种深度学习的前馈神经网络,在大型图片处理中取得巨大成功。卷积神经网络将起篇另述。

循环神经网络(Recurrent Neural Networks,RNNs)与传统的FNNs不同,RNNs引入定向循环,能够处理那些输入之间前后关联的问题。RNNs已经在众多自然语言处理(Natural Language Processing, NLP)中取得了巨大成功以及广泛应用[5]。RNNs将起篇另述。[5]

[1]、《机器学习》,周志华著

[2]、《模式识别(第二版)》,Richard O.Duda等著,李宏东等译

[3]、《揭秘IARPA项目:解码大脑算法或将彻底改变机器学习》,Emily Singerz著,机器之心编译出品

[4]、图片来源于互联网

[5]、 循环神经网络(RNN, Recurrent Neural Networks)介绍


BP神经网络模型各个参数的选取问题

样本变量不需要那么多,因为神经网络的信息存储能力有限,过多的样本会造成一些有用的信息被丢弃。如果样本数量过多,应增加隐层节点数或隐层数目,才能增强学习能力。

一、隐层数
一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。一般来讲应设计神经网络应优先考虑3层网络(即有1个隐层)。一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。对于没有隐层的神经网络模型,实际上就是一个线性或非线性(取决于输出层采用线性或非线性转换函数型式)回归模型。因此,一般认为,应将不含隐层的网络模型归入回归分析中,技术已很成熟,没有必要在神经网络理论中再讨论之。
二、隐层节点数
在BP 网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。 目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况,而且多数是针对最不利的情况,一般工程实践中很难满足,不宜采用。事实上,各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。为尽可能避免训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关。


上一篇:速派报价

下一篇:没有了