这篇文章主要介绍三个部分:
1、神经网络的组成单元:神经元的结构模型和公式表示
2、罗列常用的几种激活函数
3、概述三种神经网络模型
4、有监督训练神经网络模型的几个步骤
节选自
http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html
一、人工神经元
神经网络是由很多节点构成的,这些节点又叫做人工神经元(或神经元)。
它的结构如图所示:
x1~xn是输入信号
wij表示表示从神经元j到神经元i的连接权值
θ表示一个阈值 ( threshold ),或称为偏置( bias )
神经元i的输出与输入的关系表示为:
yi=f(neti)
yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数 ( Transfer Function ) ,net称为净激活(net activation)
若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为:
neti=∑nj=1wijxi
yi=f(neti)
若用X表示输入向量,用W表示权重向量,即:
则神经元的输出可以表示为向量相乘的形式:
neti=XW
yi=f(neti)=f(XW)
若神经元的净激活net为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net为负,则称神经元处于抑制状态。
这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。
以上就是一个神经元的图模型以及公式模型
二、常用激活函数
线性函数
1、 线性函数:
f(x)=kx+c
2、斜面函数
3、阈值函数
非线性函数
4、S型函数(Sigmoid函数)
导数:
5、双极性S函数
导数:
4和5的对比
双极S形函数与S形函数主要区别在于函数的值域,双极S形函数值域是(-1,1),而S形函数值域是(0,1)。
由于S形函数与双极S形函数都是可导的(导函数是连续函数),因此适合用在BP神经网络中。(BP算法要求激活函数可导)
三种神经网络模型
1、前馈神经网络(Feedforward Neural Networks )
模型如图所示:
这是一个3层的前馈神经网络,其中第一层是输入单元,第二层称为隐含层,第三层称为输出层(输入单元不是神经元,因此图中有2层神经元)。
前馈网络也称前向网络。这种网络
只在训练过程会有反馈信号,而在分类过程中数据只能向前传送,直到到达输出层,层间没有向后的反馈信号
因此被称为前馈网络。
感知机( perceptron)与BP神经网络就属于前馈网络。
对于一个3层的前馈神经网络N,若用X表示网络的输入向量,W1~W3表示网络各层的连接权向量,F1~F3表示神经网络3层的激活函数。
那么神经网络的第一层神经元的输出为:
O1 = F1( XW1 )
第二层的输出为:
O2 = F2 ( F1( XW1 ) W2 )
输出层的输出为:
O3 = F3( F2 ( F1( XW1 ) W2 ) W3 )
若激活函数F1~F3都选用线性函数,那么神经网络的输出O3将是输入X的线性函数。
因此,若要做高次函数的逼近就应该选用适当的非线性函数作为激活函数。
2、反馈神经网络(Feedback Neural Networks )
反馈型神经网络是一种从输出到输入具有反馈连接的神经网络,其结构比前馈网络要复杂得多。典型的反馈型神经网络有:Elman网络和Hopfield网络。
3、自组织网络( SOM ,Self-Organizing Neural Networks )
自组织神经网络是一种无导师学习网络。它通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数与结构。
四、有监督的神经网络模型训练过程
我们用神经网络做一个分类任务,需要分为两个部分:训练和工作,
训练算法就是将一组训练集 ( training set )送入网络,根据网络的实际输出与期望输出间的差别来调整连接权。
好的模型才能有更好的工作效果,训练模型的步骤如下:
1、选择样本集合的一个样本(Ai,Bi),Ai为数据、Bi为标签(所属类别)
2、送入网络,计算网络的实际输出Y,(此时网络中的权重应该都是随机量)
3、计算 D=Bi−Y (即预测值与实际值相差多少)
4、根据误差D跳整权重矩阵W
5、对每个样本重复上述过程,直到对整个样本集来说,误差不超过规定范围
BP算法就是一种出色的有导师学习算法。
今天大概了解了神经网络模型的基本知识,今后我们还要了解
1、BP神经网络算法
2、几种常见的神经网络模型(CNN、RNN/Bi-Rnn、LSTM/Bi-LSTM、Attention model等)
3、代码结合实例去实现这些模型
4、待补充。。。