6 神经网络

神经网络

一般认为,神经网络的高维非线性模型倾向给出较高精准的分类预测结构。神经网络起源于生物神经元的研究,研究对象是人脑。人脑是一个高度复杂的非线性并行处理系统,具有联想推理和判断决策能力。

1 人工神经网络概述

人工神经网络由相互连接的神经元,也称处理单元( Processing Element )组成。如果将人工神经网络看作1张图,处理单元也称为节点 .节点之间的连接称为边,反映了各节点之间的关联性,关联性的强弱体现在边的连接权重土。

1.1 神经网络种类

1. 拓扑结构角度划分

  • 两层神经网络
  • 三层神经网络
  • 多层神经网络

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aWnRlUqd-1666082304693)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018153541231.png)]

神经网络的底层称为输入层,顶层称为输出层,中间层称为隐层。神经网络的层数和每层处理单元的数量,决定了网络的复杂程度

处理单元通常按层次分布于神经网络的输入层、隐层和输出层中,因而分别称为输入节点、隐节点和输出节点

  • 输入节点负责接收和处理训练样本集中的各输入变量值。输人节点的个数取决输入变量的个数。
  • 隐节点负责实现非线性样本的线性变换隐层的层数和节点个数,可自行指定
  • 输出节点给出关于输出变量的分类预测结果,输出节点个数依具体问题而定

2. 从连接方式角度划分

连接包括层间连接和层内连接,连接强度用权重表示。根据层间连按方式,神经网络可分为如下两种:

  • 前馈式神经网络的节点连接是单向的,上层节点的输山是下层节点的输人。B- P( Back- Propagation )反向传播网络就是典型的前馈式神经网络。
  • 反馈式神经网络:除单向连接外输出节点的输出又作为输入节点的输入

1.2 节点

一个完整的节点由加法器和激活函数( Activation Function )组成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SquXr64u-1666082304694)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018153928852.png)]

函数f 的输入是加法器。激活函数f 的具体形式通常为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LQaiSuUp-1666082304694)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018154046133.png)]

激活函数的作用是将加法器的函数值转换为1 或0 ,或者映射到(0, 1) 的取值范围内。对于分类问题,可采用上述两个激活函数。对于回归问题仅采用Sigmoid 函数。

1.3 建立人工神经网络的一般步骤

1.3.1 数据准备

人工神经网络中输入变量的取值范围要求在0 ~1之间,再则输入变量的不同数量级别将直拨影响权重的确定、加法器的计算结果及最终的预测

1般处理策略是极差法[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HhbVsr3N-1666082304695)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018154346570.png)]

1.3.2 网络结构的确定

通常问题越复杂需要的隐节点就越多。但隐节点过多,可能导致过拟和问题。因此,在很多数据挖掘软件中,网络结构不一定在模型建立之前就完全确定下来,可以先给出一个粗略的网络结构,然后再在模型训练过程中逐步调整。

1.3.3 确定连接权重

1.4 感知机模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0qCDr9SQ-1666082304695)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018154625239.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ah3ATNPB-1666082304696)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018154638230.png)]

  1. 初始化各个连接权重和输出节点的偏差,默认值为- 0.5 ~ 0.5 间均匀分布的随机数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-titfHygp-1666082304697)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018154719227.png)]

  1. 输入训练样本。t 时刻,根据样本输入变量值x和连接权重w(t) ,计算输出节点值。f为激活函数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RiJX7gYy-1666082304697)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018154831546.png)]

  1. 根据输出节点j的期望值与输出值(或预测值)的误差:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xUNPvnCu-1666082304698)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018154925965.png)]

  1. 调整第i 个输人节点和第j 个输出节点之间的连接权重和以及第j 个输出节点的偏差权重:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-29Ay68B2-1666082304698)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018154948453.png)]

​ α 称为冲量项,通常为1 ,所以有时也略去该系数。η 为学习率。

  1. 判断是否满足迭代终止条件。如果满足则算法终止,否则重新回到第二步, 直到满足终止条件为止。终止条件一般为:迭代次数等于指定的迭代次数·或者,权重的最大调整量小于一个指定值,权重基本稳定;或者,损失函数L 小于一个较小正数ε

2 B-P反向传播网络

B-P 反向传播模型为多层感知机结构,其中不仅包含输入和输出节点。而且还有一层或多层隐层,又称多层感知机模型

B-P 反向传播网络的主要特点是:

  • 包含隐层
  • 反向传播
  • 激活函数采用Sigmoid 函数

B-P 反向传播网络算法包括正向传播和反向传播两个阶段。正向传播阶段是指,样本信息从输入层开始,由上至下逐层经隐节点计算处理,上层节点的输出为下层节点的输入,最终样本信息被传播到输出层节点,得到预测结果。正向传播期间所有连接权重保持不变。

反向传播网络无法直接计算隐节点的预测误差,但可利用输出节点的预测误差来逐层估计隐节点的误差,即将输出节点的预测误差反方向逐层传播到上层隐节点,逐层调整连接权重,直至输入节点和隐节点的权重全部得到调整为止,最终使网络输出值越来越逼近实际值

2.1 学习率

学习率对神经网络的权重调整有较为明显的影响。前文所述,连接权重的不断调整过程可比喻为超平面不断向正确位置移动的过程,而每次移动的距离与学习率η 有关

3 B-P神经网络的R语言实现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jVf8mcpl-1666082304699)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018155905364.png)]

3.1 神经网络建立

##########neurealnet建立神经网络
set.seed(12345)
(BPnet1<-neuralnet(Purchase~Age+Gender+Income,data=BuyOrNot,hidden=2,err.fct="ce",linear.output=FALSE))
BPnet1$result.matrix
BPnet1$weight
BPnet1$startweights 

########权值参数可视化
plot(BPnet1)

结果表明:共进行了15076 次迭代。迭代结束时,损失函数为270.77 ,权重的最大调整量为0.009 。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1q0ZKSZS-1666082304700)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018160258928.png)]

result. matrix 中逐一给出了网络节点的所有权重。例如,第1 个隐节点的偏差权重为85. 16 ,年龄、性别、收入对该节点的权重依次为0. 89 ,- 45 . 29 , - 29. 88

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o7wtn0H2-1666082304701)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018160358494.png)]

本例中weight 为存储连接权重的数组。[[1][ 1]]中:第l 、2 列为全部输入节点(包括偏差节点)分别与第1, 2 个隐节点的连接权重;[[ 1]][[2 ]]:为偏差节点和两个隐节点与输出节点的连接权重。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYUtSSQf-1666082304701)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018160507448.png)]

3.2 评价输入变量的重要性

神经网络中的权重仅作为节点的连接强度测度无法直观揭示输入变量的重要程度。为此neuralnet 函数中提供了广义权重( Generalize Weight ),用于测度解释变量的重要性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xoi6T8XI-1666082304702)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018160725085.png)]

可利用gwplot 函数绘制指定输入变量和其在各观测处的广义权重做散点图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LpgWEJR9-1666082304703)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018161857013.png)]

3.3 不同水平组合对输出变量的影晌

利用neuralnet计算输入变量任意取值组合下的输出节点的预测值。compute 函数的基本书写格式为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XIr63pmR-1666082304703)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018162113801.png)]

##########不同输入变量水平组合下的预测
newData<-matrix(c(39,1,1,39,1,2,39,1,3,39,2,1,39,2,2,39,2,3),nrow=6,ncol=3,byrow=TRUE)
new.output<-compute(BPnet1,covariate=newData)
new.output$net.result

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5vifCMwu-1666082304704)(C:\Users\ALANSHAO\AppData\Roaming\Typora\typora-user-images\image-20221018162344112.png)]

年龄为样本均值39 岁时,依次分析性别为1 (男) 、收入依次为1 (高) ’ 2 (中),3 (低),’以及性别为2 (女)、收入依次为l ,2,3 的组合对“是否购买”的影响。应首先定义一个数据矩阵newData 。在以上各种输入变量值组合下.输出节点给出的预测值依次为0. 21,0.21,0. 47 等。女性的购买概率普遍高于男性;自收入人群的购买概率低于低收入人群;男性高、中收人人群的购买概率近似相等,女性中、低收入人群的购买概率近似相等。

3.4 ROC曲线

在这里插入图片描述

在二分类问题中, B-P 神经网络输出节点给出的是预测类别为1 的概率。通常概率大于分割值T 时预测类别为1 ,小于T 时预测类别为0尽管一般’情况下分割值T 取0.5 ,但这并非适合于所有情况。

############确定概率分割值
install.packages("ROCR")
library("ROCR")
detach("package:neuralnet")
summary(BPnet1$net.result[[1]])
pred<-prediction(predictions=as.vector(BPnet1$net.result),labels=BPnet1$response)
par(mfrow=c(2,1))
perf<-performance(pred,measure="tpr",x.measure="fpr")
plot(perf,colorize=TRUE,print.cutoffs.at=c(0.2,0.45,0.46,0.47))
perf<-performance(pred,measure="acc")
plot(perf)
Out<-cbind(BPnet1$response,BPnet1$net.result[[1]])
Out<-cbind(Out,ifelse(Out[,2]>0.468,1,0))
(ConfM.BP<-table(Out[,1],Out[,3]))
(Err.BP<-(sum(ConfM.BP)-sum(diag(ConfM.BP)))/sum(ConfM.BP))

Pnet1$response,BPnet1$net.result[[1]])
Out<-cbind(Out,ifelse(Out[,2]>0.468,1,0))
(ConfM.BP<-table(Out[,1],Out[,3]))
(Err.BP<-(sum(ConfM.BP)-sum(diag(ConfM.BP)))/sum(ConfM.BP))
``


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值