在我的下载里面有一些关于神经网络、遗传算法、粒子群优化算法等C语言基础编程。其实这些是两三年前上课写的了,当时一直没有做笔记的习惯,所以今天回过头来看很多自己都忘记了,所以准备现在将这些知识拾起来,写一个【智能信息处理】的专区,来回忆这些智能信息处理的算法。
我要写的第一篇就是《神经网络的基础知识与编程》
一、神经网络基础知识
人工神经网络(Artificial Neural Network,ANN)是科学家们在对生物的神经元、神经系统等生理学的研究取得突破性进展以及对人脑的结构、组成和基本工作单元有了进一步认识的基础上,通过借助数学和物理学方法从信息处理的角度对人脑神经网络进行抽象后建立的简化模型。
生物学对神经系统结构的研究成果是人工神经网络的基础。在生物界中,神经系统的基本单元是神经元。大多数神经元由一个细胞体和突两部分组成,神经元如下图1所示。突又分为两类,一是轴突,二是树突。轴突和树突共同作用,实现了神经元之间的信息传递。轴突的末端与树突进行信号传递的界面叫做突触,通过突触向其他神经元发送信息。对某些突触的刺激促使神经元触发。只有神经元所有输入的总效应达到阈值电平,它才开始工作。
图1 神经元结构
人工神经网络是由模拟神经元组成,生物神经元和人工神经元对照关系如下表1所示。树突对应着人工神经元的输入层,细胞体对应于人工神经网络的加权和,而轴突在人工神经网络中为阈值函数,突触为人工神经元的输出层。
表1 人工神经元和人工神经网络关系对照表
生物神经元 |
人工神经元 |
作用 |
树突 |
输入层 |
接收输入的信号(数据) |
细胞体 |
加权和 |