什么是BP神经网络?

 我来答
miniappbomCXpx6KYZ0m
2011-09-08 · 超过24用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:62.2万
展开全部
BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成;正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差作为调整信号逐层反向回传,对神经元之间的连接权矩阵做出处理,使误差减小。经反复学习,最终使误差减小到可接受的范围。具体步骤如下:
1、从训练集中取出某一样本,把信息输入网络中。
2、通过各节点间的连接情况正向逐层处理后,得到神经网络的实际输出。
3、计算网络实际输出与期望输出的误差。
4、将误差逐层反向回传至之前各层,并按一定原则将误差信号加载到连接权值上,使整个神经网络的连接权值向误差减小的方向转化。
5、対训练集中每一个输入—输出样本对重复以上步骤,直到整个训练样本集的误差减小到符合要求为止。
cjhlzr
2017-09-01
知道答主
回答量:9
采纳率:0%
帮助的人:5.4万
展开全部
BP网络是一种神经网络学习算法。其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight)。然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。
找个神经网络软件,如NeuroSolutions或迈实神经网络软件,边操作边学习,会更好的理解神经网络。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科精选
高粉答主

2020-11-26 · 每个回答都超有意思的
知道答主
回答量:60.8万
采纳率:14%
帮助的人:3.1亿
展开全部

科普中国·科学百科:BP神经网络

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拓端数据科技
2021-02-22 · 一起做有态度的数据人
拓端数据科技
拓端(http://tecdat.cn )创立于2016年,自成立以来,就定位为提供专业的数据分析与数据挖掘服务的提供商,致力于充分挖掘数据的价值,为客户定制个性化的数据解决方案与行业报告等
向TA提问
展开全部

原文链接:http://tecdat.cn/?p=19936 

在本教程中,您将学习如何在R中创建神经网络模型。

神经网络(或人工神经网络)具有通过样本进行学习的能力。人工神经网络是一种受生物神经元系统启发的信息处理模型。它由大量高度互连的处理元件(称为神经元)组成,以解决问题。它遵循非线性路径,并在整个节点中并行处理信息。神经网络是一个复杂的自适应系统。自适应意味着它可以通过调整输入权重来更改其内部结构。

该神经网络旨在解决人类容易遇到的问题和机器难以解决的问题,例如识别猫和狗的图片,识别编号的图片。这些问题通常称为模式识别。它的应用范围从光学字符识别到目标检测。

本教程将涵盖以下主题:

  • 神经网络概论

  • 正向传播和反向传播

  • 激活函数

  • R中神经网络的实现

  • 案例

  • 利弊

  • 结论

  • 神经网络概论

    神经网络是受人脑启发执行特定任务的算法。它是一组连接的输入/输出单元,其中每个连接都具有与之关联的权重。在学习阶段,网络通过调整权重进行学习,来预测给定输入的正确类别标签。

    人脑由数十亿个处理信息的神经细胞组成。每个神经细胞都认为是一个简单的处理系统。被称为生物神经网络的神经元通过电信号传输信息。这种并行的交互系统使大脑能够思考和处理信息。一个神经元的树突接收来自另一个神经元的输入信号,并根据这些输入将输出响应到某个其他神经元的轴突。

    请点击输入图片描述

    树突接收来自其他神经元的信号。单元体将所有输入信号求和以生成输出。当总和达到阈值时通过轴突输出。突触是神经元相互作用的一个点。它将电化学信号传输到另一个神经元。

    请点击输入图片描述

    请点击输入图片描述

    x1,x2 .... xn是输入变量。w1,w2 .... wn是各个输入的权重。b是偏差,将其与加权输入相加即可形成输入。偏差和权重都是神经元的可调整参数。使用一些学习规则来调整参数。神经元的输出范围可以从-inf到+ inf。神经元不知道边界。因此,我们需要神经元的输入和输出之间的映射机制。将输入映射到输出的这种机制称为激活函数。

    前馈和反馈人工神经网络

    人工神经网络主要有两种类型:前馈和反馈人工神经网络。前馈神经网络是非递归网络。该层中的神经元仅与下一层中的神经元相连,并且它们不形成循环。在前馈中,信号仅在一个方向上流向输出层。

    反馈神经网络包含循环。通过在网络中引入环路,信号可以双向传播。反馈周期会导致网络行为根据其输入随时间变化。反馈神经网络也称为递归神经网络。

    请点击输入图片描述

    激活函数

    激活函数定义神经元的输出。激活函数使神经网络具有非线性和可表达性。有许多激活函数:

  • 识别函数 通过激活函数 Identity,节点的输入等于输出。它完美拟合于潜在行为是线性(与线性回归相似)的任务。当存在非线性,单独使用该激活函数是不够的,但它依然可以在最终输出节点上作为激活函数用于回归任务。。

  • 在 二元阶梯函数(Binary Step Function)中,如果Y的值高于某个特定值(称为阈值),则输出为True(或已激活),如果小于阈值,则输出为false(或未激活)。这在分类器中非常有用。

  • S形函数 称为S形函数。逻辑和双曲正切函数是常用的S型函数。有两种:

  • Sigmoid函数 是一种逻辑函数,其中输出值为二进制或从0到1变化。

  • tanh函数 是一种逻辑函数,其输出值在-1到1之间变化。也称为双曲正切函数或tanh。

  • ReLU函数又称为修正线性单元(Rectified Linear Unit),是一种分段线性函数,其弥补了sigmoid函数以及tanh函数的梯度消失问题。它是最常用的激活函数。对于x的负值,它输出0。

  • 请点击输入图片描述

    在R中实现神经网络

    创建训练数据集

    我们创建数据集。在这里,您需要数据中的两种属性或列:特征和标签。在上面显示的表格中,您可以查看学生的专业知识,沟通技能得分和学生成绩。因此,前两列(专业知识得分和沟通技能得分)是特征,第三列(学生成绩)是二进制标签。

  • #创建训练数据集# 在这里,把多个列或特征组合成一组数据test=data.frame(专业知识,沟通技能得分)让我们构建神经网络分类器模型。

  • 首先,导入神经网络库,并通过传递标签和特征的参数集,数据集,隐藏层中神经元的数量以及误差计算来创建神经网络分类器模型。

  • # 拟合神经网络nn(成绩~专业知识+沟通技能得分, hidden=3,act.fct = "logistic",linear.output = FALSE)

  • 这里得到模型的因变量、自变量、损失函数、激活函数、权重、结果矩阵(包含达到的阈值,误差,AIC和BIC以及每次重复的权重的矩阵)等信息:

  • $model.list$model.list$response[1] "成绩"$model.list$variables[1] "专业知识"     "沟通技能得分"$err.fctfunction (x, y) {1/2 * (y - x)^2}$act.fctfunction (x) {1/(1 + exp(-x))}$net.result$net.result[[1]][,1][1,] 0.980052980[2,] 0.001292503[3,] 0.032268860[4,] 0.032437961[5,] 0.963346989[6,] 0.977629865$weights$weights[[1]]$weights[[1]][[1]][,1]        [,2]       [,3][1,]  3.0583343  3.80801996 -0.9962571[2,]  1.2436662 -0.05886708  1.7870905[3,] -0.5240347 -0.03676600  1.8098647$weights[[1]][[2]][,1][1,]   4.084756[2,]  -3.807969[3,] -11.531322[4,]   3.691784$generalized.weights$generalized.weights[[1]][,1]       [,2][1,]  0.15159066 0.09467744[2,]  0.01719274 0.04320642[3,]  0.15657354 0.09778953[4,] -0.46017408 0.34621212[5,]  0.03868753 0.02416267[6,] -0.54248384 0.37453006$startweights$startweights[[1]]$startweights[[1]][[1]][,1]        [,2]       [,3][1,]  0.1013318 -1.11757311 -0.9962571[2,]  0.8583704 -0.15529112  1.7870905[3,] -0.8789741  0.05536849  1.8098647$startweights[[1]][[2]][,1][1,] -0.1283200[2,] -1.0932526[3,] -1.0077311[4,] -0.5212917$result.matrix[,1]error                      0.002168460reached.threshold          0.007872764steps                    145.000000000Intercept.to.1layhid1      3.058334288专业知识.to.1layhid1       1.243666180沟通技能得分.to.1layhid1  -0.524034687Intercept.to.1layhid2      3.808019964专业知识.to.1layhid2      -0.058867076沟通技能得分.to.1layhid2  -0.036766001Intercept.to.1layhid3     -0.996257068专业知识.to.1layhid3       1.787090472沟通技能得分.to.1layhid3   1.809864672Intercept.to.成绩          4.0847555221layhid1.to.成绩          -3.8079690871layhid2.to.成绩         -11.5313215341layhid3.to.成绩           3.691783805

  • 绘制神经网络

    让我们绘制您的神经网络模型。

  • # 绘图神经网络plot(nn)

  • 请点击输入图片描述

    创建测试数据集

    创建测试数据集:专业知识得分和沟通技能得分

  • # 创建测试集test=data.frame(专业知识,沟通技能得分)

  • 预测测试集的结果

    使用计算函数预测测试数据的概率得分。

  • ## 使用神经网络进行预测Pred$result

  • 0.99282020800.33355439250.9775153014

  • 现在,将概率转换为二进制类。

  • # 将概率转换为设置阈值0.5的二进制类别pred <- ifelse(prob>0.5, 1, 0)pred

  • 101

  • 预测结果为1,0和1。

    利弊

    神经网络更灵活,可以用于回归和分类问题。神经网络非常适合具有大量输入(例如图像)的非线性数据集,可以使用任意数量的输入和层,可以并行执行工作。

    还有更多可供选择的算法,例如SVM,决策树和回归算法,这些算法简单,快速,易于训练并提供更好的性能。神经网络更多的是黑盒子,需要更多的开发时间和更多的计算能力。与其他机器学习算法相比,神经网络需要更多的数据。NN仅可用于数字输入和非缺失值数据集。一位著名的神经网络研究人员说:  “神经网络是解决任何问题的第二好的方法。最好的方法是真正理解问题。”

    神经网络的用途

    神经网络的特性提供了许多应用方面,例如:

  • 模式识别: 神经网络非常适合模式识别问题,例如面部识别,物体检测,指纹识别等。

  • 异常检测: 神经网络擅长异常检测,它们可以轻松检测出不适合常规模式的异常模式。

  • 时间序列预测: 神经网络可用于预测时间序列问题,例如股票价格,天气预报。

  • 自然语言处理: 神经网络在自然语言处理任务中提供了广泛的应用,例如文本分类,命名实体识别(NER),词性标记,语音识别和拼写检查。

  • 请点击输入图片描述

    最受欢迎的见解

    1.r语言用神经网络改进nelson-siegel模型拟合收益率曲线分析

    2.r语言实现拟合神经网络预测和结果可视化

    3.python用遗传算法-神经网络-模糊逻辑控制算法对乐透分析

    4.用于nlp的python:使用keras的多标签文本lstm神经网络分类

    5.用r语言实现神经网络预测股票实例

    6.R语言基于Keras的小数据集深度学习图像分类

    7.用于NLP的seq2seq模型实例用Keras实现神经机器翻译

    8.python中基于网格搜索算法优化的深度学习模型分析糖

    9.matlab使用贝叶斯优化的深度学习

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-02-26
展开全部
误差反向传播(Error Back Propagation, BP)算法
1、BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。
1)正向传播:输入样本->输入层->各隐层(处理)->输出层
注1:若输出层实际输出与期望输出(教师信号)不符,则转入2)(误差反向传播过程)
2)误差反向传播:输出误差(某种形式)->隐层(逐层)->输入层
其主要目的是通过将输出误差反传,将误差分摊给各层所有单元,从而获得各层单元的误差信号,进而修正各单元的权值(其过程,是一个权值调整的过程)。
注2:权值调整的过程,也就是网络的学习训练过程(学习也就是这么的由来,权值调整)。
2、BP算法实现步骤(软件):
1)初始化
2)输入训练样本对,计算各层输出
3)计算网络输出误差
4)计算各层误差信号
5)调整各层权值
6)检查网络总误差是否达到精度要求
满足,则训练结束;不满足,则返回步骤2)
3、多层感知器(基于BP算法)的主要能力:
1)非线性映射:足够多样本->学习训练
能学习和存储大量输入-输出模式映射关系。只要能提供足够多的样本模式对供BP网络进行学习训练,它便能完成由n维输入空间到m维输出空间的非线性映射。
2)泛化:输入新样本(训练时未有)->完成正确的输入、输出映射
3)容错:个别样本误差不能左右对权矩阵的调整
4、标准BP算法的缺陷:
1)易形成局部极小(属贪婪算法,局部最优)而得不到全局最优;
2)训练次数多使得学习效率低下,收敛速度慢(需做大量运算);
3)隐节点的选取缺乏理论支持;
4)训练时学习新样本有遗忘旧样本趋势。
注3:改进算法—增加动量项、自适应调整学习速率(这个似乎不错)及引入陡度因子
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式