人工神经网络_人工神经网络人工神经网络之BP算法

58e7b61a7c28d3fa784e796ff65ec549.png

1.人工神经网络

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

05862994b5d753428b1d7452e1365c41.png

人工神经网络(ANN)模型

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

2.激活函数的类型

(1)阈值函数:

b120270833e0edec5dab33a1dc808d2a.png

阈值函数

(2)Relu函数:

eec9b80db4f250e990f7233c1a9fa22e.png

Relu函数

(3)分段线性函数

(4)非线性转移函数

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

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

(2)RBF神经网络

(3)FNN

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

4.BP神经网络

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

(2)模型图:

c0c0ef8b9d15605e193f5118b91f0a26.png

BP模型

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

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

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

(4)工作流程:

7babf936862b09e28c9dfbf217ff5f42.png

BP算法工作流程

(5)算法实现:

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

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

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

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

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

8ba8eb94574beebed77ae23c926ea740.png

数据处理

9ef7f335e718d0390e507401b9b9fbed.png

构建模型

5fd6563b2fbebcfe88dce894ddeb8df5.png

训练和预测结果

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

43bff20015809c55e826f8f8b0bcf6d0.png

sklearn.MLPClassifier()

a179e59ca0392a5bb901f8bc0e0a4a7a.png

分类结果

【注】

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模块构建人工神经网络

e0c8fa077618d89e1d63f84fb16e1c1d.png

sklearn.MLPRegressor()

97b2e1c0c202fa61ec0addef5258cc3f.png

回归结果

声明:https://www.jianshu.com/p/4b8e15035826

deeddbdbdd689e76ad9f4a061ca0fa29.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值