一、人工神经网络

 人工神经网络(Artificial Neural Network,ANN),简称神经网络(Neural Network)或类神经网络,是一种模仿生物网络(动物的中枢神经系统,特别是大脑),的结构和功能的数学模型,用于对函数进行估计和近似。

和其他机器学习方法一样,神经网络已经被用于解决各种各样的问题,例如:机器视觉和语音识别,这些问题都是很难被传基于规则的编程所解决的。

1、神经元

在生物神经网络中,每个神经元与其他神经元相连,当他兴奋时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的点位超过了一个“阈值”,那么他就会被激活,即“兴奋”起来,向其他神经元发送化学物质。

  • 神经元是神经网络中的基础单元,相互连接组成神经网络

FANN神经网络库 .net 神经网络_激活函数

2、单层神经网络

是最基本的神经元网络形式,由有限个神经元构成,所有神经元的输入向量都是同一个向量。由于每个神经元都会产生一个标量结果,所以单层神经元的输出是一个向量,向量的维数等于神经元的数目。

FANN神经网络库 .net 神经网络_全连接_02

3、感知机

最常见的神经网络是两层的神经网络。是一个简单的二分类模型(给定阈值,判断数据属于哪一部分)。

感知机是由两层神经网络组成,输入层接收外界输入信号后传递给输出层(输出+1正例,-1反例),输出层是M-P神经元。

FANN神经网络库 .net 神经网络_全连接_03

4、多层神经网络

FANN神经网络库 .net 神经网络_激活函数_04

(1)全连接层

全连接层:当前一层和前一层每个神经元相互连接,我们称之为当前这一层的全连接层

下图中:N-1和N层之间有 m*n 个参数w。也即全连接层就是在前一层的基础上进行一次 Y = Wx + b的变化(不考虑激活函数的情况下就是一次线性变化)

FANN神经网络库 .net 神经网络_全连接_05

5、激活函数

激活函数很重要的一个作用就是:增加模型的非线性分割能力。

(1)线性关系:无法满足复杂的需求(曲线)

线性关系中,系统:函数f,模型f(x) = y,需要满足如下关系:

  • f(x1 + x2) = y1 + y2
  • f(kx1) = ky1

(2)常见的激活函数

FANN神经网络库 .net 神经网络_FANN神经网络库_06

(3)激活函数的作用

  1. 增加模型的非线性分割能力
  2. 提高模型的鲁棒性(稳健性),为了更好地拟合数据
  3. 缓解梯度消失问题
  4. 加速模型收敛问题,也即让模型训练快一些 

二、神经网络思想

FANN神经网络库 .net 神经网络_FANN神经网络库_07