从生物神经网络到人工神经网络

现如今提及人工智能,大家期待的一定是某种可以“学习”的方法,这种方法使用数学模型从数据中获取模式的某种表示。在众多“学习”方法中,获得最多关注,承载最多期望的非“神经网络”莫属。既然我们将这种数学方法称作神经网络,那么他必然和广泛存在于生物体内的神经网络存在某种联系。让我们考察一个典型的神经连接。

每个神经元(细胞)都向外伸出许多分支,其中用来接收输入的分支称作树突(dendrities),用来输出信号的分支称作轴突(axon),轴突连接到树突上形成一个突触(synapse)。每个神经元可以通过这种方式连接多个其他神经元,每个神经元也可以接受多个其他神经元的连接。很多连接起来的神经元形成了网状结构,海量具有传感和伸缩功能的体细胞通过神经纤维连接在这个网状结构的输入和输出端,中枢神经系统正是通过这种网状结构获得了“智能”,至少是驱动机体做出了趋利避害的选择。

模式识别中的分类问题就是一种典型的选择。看起来,这给出了一种解决分类问题的启示。但是这种网状结构是怎么工作的呢?生物学家已经观察到的事实是,当有外界刺激时,网络上的某些神经元会被次第激活。神经元被激活的意思是这个神经元会向外传递信号或者对外传递的信号强度较大。

为了便于利用,需要对激活过程建立数学模型。首先将目光聚焦在一个突触上,轴突释放递质被树突吸收或者电信号从树突传递到轴突就完成了信息的传递。如何表示突触传递的信息呢?给出选择是用一个数值来表示,这寓示着将信息只归为一个类别,并用数值的大小表示其数量方面的属性。这样粗暴的简化有意义吗?实际递质可是多种多样的啊[1]!显而易见将一个轴突的输出表示成一个多维向量才是更合理的。但是我们可以引入多个虚拟突触来实现这个多维向量的各个维度的信息的传递,既然都是同样结构的突触,为何不先只考察其中一个呢。

接下来考察神经元的激活。激活可以有两种模型结构——跳变式和连续式。跳变式激活方式是:引入一个阈值,当输入信息经过某种处理后大于阈值即表示激活,小于阈值表示未激活。连续式激活方式表示神经元不是只有激活和未激活两种状态,而是有不同的激活水平,输入信息经过某种处理后直接输出激活水平。同样,因为在突触中可能[几乎是确定的]同时传递了多种信息,是否应该为一个神经元提供多个激活模型呢?对这个问题解答同样是同形重复,引入虚拟神经元,让一个神经元只表示其中一个激活模型。让这个虚拟神经元接收所有树突上的输入信息,经过激活模型处理后生成一维的激活水平。什么?激活水平也应该是多维的?好办,再引入虚拟神经元,每个神经元只管生成其中某一维的激活水平。

多维变一维,显然数学模型应该是加权和,给每一维找到一个权重相乘再加起来。

但是这个模型是线性的,所有输入和输出组成的点集落在一个超平面上。是不是太简单了点,不管怎么调整这几个权重参数可以表示的情形都是平面。那么再引入一个非线性[2]函数以这个加权和为输入,将其输出作为激活水平,这个非线性函数称作激活函数。至此神经元的数学模型算是初步建立起来了。

激活函数该如何选取呢?很可惜,答案是不知道。目前对生物神经网络的了解,不能给予确定激活函数的启示。不知道那么就可以随意安排,早期常用的激活函数是Sigmoid。其函数图像和公式如下。

这是一个关于(0,0.5)中心对称的函数,以加权和作为输入形成的超平面总是关于(0,0.5)中心对称的,这多少让人感觉有些不安。那么在激活函数的自变量上增加一个偏移量,这个偏移量将会导致函数图像在z轴上平移。至此构成神经网络的基本元素——处理输入产生输出的神经元模型已经建立好了。

激活函数的偏移量使得超平面可以离开原点了,这仅仅是数学上的意义;其实它还完成了对跳变式激活方式的建模。参考上图,假设水平蓝线以上的数值才能表示激活,那么对于蓝色的图像来说处于持续激活状态,绿色的图片表示只要有输入就激活,而红色的部分则表示当输入数值超过5时才忽然进入激活状态,这就是跳变了。

在实际操作中对于激活函数的选取是有一定指导原则的——层数越深,激活函数越平缓。这个原则并不是来自于对神经网络模型的深入洞察,而来自于反向传播(BP)练方法的缺陷。(对于这个缺陷我会新开一篇,并附上代码专门说明。)然而,随着对生物神经网络更进一步的了解,是否能给出更好的激活函数模型呢?答案还是不知道,甚至启示我们要放弃这种神经网络模型都是有可能的。

有了神经元,就可以构建网络了。在构建网络之前,先对神经元的图示结构进行简化。如下图所示,最终我们用一个圆圈表示了神经元,用带箭头的线表示了它可以接收的输入和可以产生的输出。

既然神经元是一个处理输入产生输出的模型,是否可以随意地把一个神经元的输出连接到另一个神经元的输入。当然可以!卷积神经网络(CNN)和回返神经网络(RNN)这两款分别在计算机视觉和自然语言处理中发挥巨大价值的神经网络结构正是源自于神经网络模型的这种灵活性。当然,这种灵活性也是“深度学习专家们”的学术灌水手段!。为了便于模型求解和编程实现,有一种简单的层状结构的构网方法。某一层的神经元仅接收且完全接受紧前层神经元的输入。采用这种原则构建出来的神经网络称作全连接神经网络。

让我们回到给生物神经网络建立数学模型的目的上去——分类。怎么才能用神经网络进行分类呢?分类的数学语言描述是,找从特征空间到类别空间的映射。特征空间的确立比较简单,比如为了确定一个人是男是女,可以使用体重、身高、胸围、腰围、臀围这几个属性组成的特征空间。类别空间的确立有两种比较显然的方案。第一种,只用一个维度,0表示女,1表示男。第二种,用两个维度,那个维度取值大就认为属于哪个类别,如:(1,0)表示女,(0,1)表示男。通常用第二种方案表示类别空间,第一种用于解决回归问题。并没有什么特殊的原因,只是第二种比较便于建立目标函数模型(通常是损失函数)以实现最优化,这也是尽量把待解决问题向分类问题上转换的原因。

让神经网络的输入层神经元的个数等于特征空间的维数,输出层神经元的个数等于类别空间的维数,中间层随意安排。然后将已知的数据带入模型,求解模型的参数。将不确定男女的(体重,身高,胸围,腰围,臀围)带入模型,求出一个解(女,男);然后判断那一维的数值大,女>男就认为输入的是女性的特征,男>女就为认为输入的是男性的特征。

[1]Bilingual neurons release glutamate and GABA https://www.nature.com/articles/nn.3840
[2]激活函数也可以是分段线性函数

原文地址:https://www.cnblogs.com/tr0217/p/9221357.html

时间: 2024-11-09 02:51:52

从生物神经网络到人工神经网络的相关文章

神经网络1: 人工神经网络 VS 生物神经网络

https://www.youtube.com/watch?v=lAaCeiqE6CE&list=PLXO45tsB95cJ0U2DKySDmhRqQI9IaGxck 人工神经网络 VS 生物神经网络  两者是不一样的 生物神经网络是大自然经过千亿年进化而成,目前最先进人工智能神经网络无法达到 人工神经网络 :通过正反馈和负反馈创建或删除神经元 生物神经网络  :通过刺激产生新的链接,信号通过新的链接传递产生反馈, 目前最先进人工智能神经网络无法模拟生物神经网络 卷积神经网络 CNN (深度学习

为什么说BP神经网络就是人工神经网络的一种?

BP( Back Propagation)网络是由Rinehart等于1986年提出的,是一种按误差逆传播算法训练的,多层前馈网络,是目前 应用最广泛的神经网络模型之一. –BP网络能学习和存储大量的输入.输出模式映射关系,而无须事前揭示描述这种映射关系的数学方程. –其学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小. BP神经网络模型拓扑结构包括: 输入层(Input),这一区域相当于外界的刺激,是刺激的来源并且将刺激传递给神经元. 隐藏层( Hide

C#中调用Matlab人工神经网络算法实现手写数字识别

手写数字识别实现 设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率 关键字:二值化  投影  矩阵  目标定位  Matlab 手写数字图像识别简介: 手写阿拉伯数字识别是图像内容识别中较为简单的一个应用领域,原因有被识别的模式数较少(只有0到9,10个阿拉伯数字).阿拉伯数字笔画少并且简单等.手写阿拉伯数字的识别采用的方法相对于人脸识别.汉字识别等应用领域来说可以采用更为灵活的方法,例如基于规则的方法.基于有限状态自动机的方法.基于统计的方法和基于神

人工神经网络基础概念、原理知识(补)

一提到人工神经网络应当想到三个基础的知识点:一是神经元模型:二是神经网络结构:三是学习算法.神经网络的种类多种多样,但其分类依据逃不出上面上个基础知识点.所以在学习中如果能够仅仅把握住以上三个线索,就能触类旁通,拥有一个非常好的视角看待神经网络.今天就对这三个基础知识点进行总结,达到指导神经网络学习以及深化对神经网络的理解的目的. 一.神经元模型 人工神经网络是在现代神经生物学研究基础上提出的模拟生物过程 ,反映人脑某些特性的一种计算结构.它不是人脑神经系统的真实描写,而只是它的某种抽象.简化和

神经网络以及卷积神经网络(CNN)初始

1 人工神经网络 1.1 神经元 神经网络由大量的神经元相互连接而成.每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线性变换后输出.每两个神经元之间的连接代表加权值,称之为权重(weight).不同的权重和激活函数,则会导致神经网络不同的输出. 举个手写识别的例子,给定一个未知数字,让神经网络识别是什么数字.此时的神经网络的输入由一组被输入图像的像素所激活的输入神经元所定义.在通过非线性激活函数进行非线性变换后,神经元被激活然后被传递

人工神经网络

人工神经网络初窥 人工神经网络(Artificial Neural Network,简称ANN ),以数学模型模拟神经元活动,是基于模仿大脑神经网络结构和功能而建立的一种信息处理系统.人工神经网络具有自学习.自组织.自适应以及很强的非线性函数逼近能力,拥有强大的容错性.它可以实现仿真.预测以及模糊控制等功能.是处理非线性系统的有力工具.(摘自百度百科)           关于神经网络的定义尚不统一,按美国神经网络学家 Hecht Nielsen 的观点,神经网络的定义是:“神经网络是由多个非常

人工神经网络--ANN

神经网络是一门重要的机器学习技术.它是目前最为火热的研究方向--深度学习的基础.学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术. 本文以一种简单的,循序的方式讲解神经网络.适合对神经网络了解不多的同学.本文对阅读没有一定的前提要求,但是懂一些机器学习基础会更好地帮助理解本文. 神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术.人脑中的神经网络是一个非常复杂的组织.成人的大脑中估计有1000亿个神经元之多. 图1 人脑神经网络 那么机

人工神经网络简介

本文主要对人工神经网络基础进行了描述,主要包括人工神经网络的概念.发展.特点.结构.模型. 本文是个科普文,来自网络资料的整理. 一.             人工神经网络的概念 人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型.该模型以并行分布的处理能力.高容错性.智能化和自学习等能力为特征,

[转]BP人工神经网络的介绍与实现

原文地址:http://www.cnblogs.com/luxiaoxun/archive/2012/12/10/2811309.html 神经网络概念与适合领域 神经网络最早的研究是 40 年代心理学家 Mcculloch 和数学家 Pitts 合作提出的 ,他们提出的MP模型拉开了神经网络研究的序幕. 神经网络的发展大致经过 3 个阶段:1947-1969 年为初期,在这期间科学家们提出了许多神经元模型和学习规则,如 MP 模型.HEBB 学习规则和感知器等:60 年代末期至 80 年代中期