「人工神经网络」17人工神经网络之BP算法

1.人工神经网络

    人工神经网络(Artificial Neural Network,ANN)是在受到了生物学的启发后创建的,在某种程度上它是对生物大脑的一种模拟。人们仿照生物神经网络的结构,使用简单运算单元模拟神经元,并将大量运算单元按某种形式密集连接,便构成了人工神经网络。结构如图:

「人工神经网络」17人工神经网络之BP算法_第1张图片
人工神经网络(ANN)模型

带有权重值(w1,w2,...,wn)的信号(x1,x2,...,xn)经过z整合后进行激活函数f(x)的处理,最后输出处理的结果。

2.激活函数的类型

(1)阈值函数:

阈值函数

(2)Relu函数:

Relu函数

(3)分段线性函数

(4)非线性转移函数

3.常用的人工神经网络模型

(1)BP神经网络(反向传播算法)

(2)RBF神经网络

(3)FNN

(4)LM神经网络(精准度非常高)

4.BP神经网络

(1)主要思想:从后向前逐层传播输出层的误差,以间接算出隐层误差。

(2)模型图:

「人工神经网络」17人工神经网络之BP算法_第2张图片
BP模型

(3)算法分为两个阶段:

第一阶段(正向过程)输入信息从输入层经隐层逐层计算各神经元的输出值。

第二阶段(反向传播过程)输出误差逐层向前算出隐层各神经元的误差,并用此误差修正每层权值。

(4)工作流程:

BP算法工作流程

(5)算法实现:

神经网络既可以用于处理分类问题,又可以处理回归问题,相应算法只是在输出层略有差别:

·对于分类问题,几元分类问题就有几个输出节点,每个节点对应一个类别。预测时,哪个节点输出值最大,该节点的输出编码为1,其它节点的输出编码为0,模型最终输出一个二进制编码。

·对于回归问题,需输出连续实数值(通常只有一个输出值),此时输出节点的激活单元f将被去除,线性单元的输出值z直接作为模型的最终输出。

(1)对于分类问题,实现方法有两种:

①利用深度学习Keras下的序列Sequencial模块构建人工神经网络

「人工神经网络」17人工神经网络之BP算法_第3张图片
数据处理
「人工神经网络」17人工神经网络之BP算法_第4张图片
构建模型
「人工神经网络」17人工神经网络之BP算法_第5张图片
训练和预测结果

②利用sklearn库下的MLPClassifier模块构建人工神经网络

「人工神经网络」17人工神经网络之BP算法_第6张图片
sklearn.MLPClassifier()
「人工神经网络」17人工神经网络之BP算法_第7张图片
分类结果

【注】

class sklearn.neural_network.MLPClassifier(hidden_layer_sizes=(100, ), activation=’relu’, solver=’adam’, alpha=0.0001,batch_size=’auto’,learning_rate=’constant’, learning_rate_init=0.001, power_t=0.5, max_iter=200, random_state=None)

重要参数说明:

①hidden_layer_sizes :元组格式,长度=n_layers-2,默认(100,),第i个元素表示第i个隐藏层的神经元的个数。 

②activation :{‘identity’,‘logistic’,‘tanh’,‘relu’},默认’relu’。

 Ps隐藏层的激活函数:

‘identity’,无操作激活,对实现线性瓶颈很有用,返回f(x)= x;

‘logistic’,logistic sigmoid函数,返回f(x)= 1 /(1 + exp(-x));

‘tanh’,双曲tan函数,返回f(x)= tanh(x);

‘relu’,整流后的线性单位函数,返回f(x)= max(0,x)。

③solver:{‘lbfgs’,‘sgd’,‘adam’},默认’adam’。

Ps权重优化的求解器:

'lbfgs’是准牛顿方法族的优化器;

'sgd’指的是随机梯度下降;

'adam’是指由Kingma,Diederik和Jimmy Ba提出的基于随机梯度的优化器。

注意:默认解算器“adam”在相对较大的数据集(包含数千个训练样本或更多)方面在训练时间和验证分数方面都能很好地工作。但是,对于小型数据集,“lbfgs”可以更快地收敛并且表现更好。

(2)对于回归问题,利用sklearn库下的MLPRegressor模块构建人工神经网络

「人工神经网络」17人工神经网络之BP算法_第8张图片
sklearn.MLPRegressor()
「人工神经网络」17人工神经网络之BP算法_第9张图片
回归结果

你可能感兴趣的:(「人工神经网络」17人工神经网络之BP算法)