0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BP神经网络概述

lviY_AI_shequ 来源:未知 作者:李倩 2018-06-19 15:17 次阅读

1 BP神经网络概述

BP 神经网络是一类基于误差逆向传播 (BackPropagation, 简称 BP) 算法的多层前馈神经网络,BP算法是迄今最成功的神经网络学习算法。现实任务中使用神经网络时,大多是在使用 BP 算法进行训练。值得指出的是,BP算法不仅可用于多层前馈神经网络,还可以用于其他类型的神经网络,例如训练递归神经网络。但我们通常说 “BP 网络” 时,一般是指用 BP 算法训练的多层前馈神经网络。

2 神经网络的前馈过程

神经网络结构示意图

上述过程,即为该神经网络的前馈 (forward propagation) 过程,前馈过程也非常容易理解,符合人正常的逻辑,具体的矩阵计算表达如

3 逆向误差传播 (BP过程)

我们的任务就是:给定了一组数据集,其中包含了输入数据和输出的真实结果,如何寻找一组最佳的神经网络参数,使得网络计算得到的推测值能够与真实值吻合程度最高?

3.1 模型的损失函数

为了达到这个目标,这也就转换为了一个优化过程,对于任何优化问题,总是会有一个目标函数 (objective function),在机器学习的问题中,通常我们称此类函数为:损失函数 (loss function),具体来说,损失函数表达了推测值与真实值之间的误差。抽象来看,如果把模型的推测以函数形式表达为 (这里的函数字母使用 h 是源于“假设 hypothesis“ 这一单词),对于有m个训练样本的输入数据而言,其损失函数则可表达为:

那么在该问题中的损失函数是什么样的呢?抛开线性组合函数,我们先着眼于最终的激活函数,也就是的值,由于 sigmoid 函数具有很好的函数性质,其值域介于 0 到 1 之间,当自变量很大时,趋向于 1,很小时趋向于 0,因此,该模型的损失函数可以定义如下:

不难发现,由于是分类问题,真实值只有取 0 或 1 两种情况,当真实值为 1 时,输出值a越接近 1,则 loss 越小;当真实值为 0 时,输出值越接近于 0,则 损失函数越小 (可自己手画一下函数的曲线)。因此,可将该分段函数整合为如下函数:

该函数与上述分段函数等价。如果你了解Logistic Regression 模型的基本原理,那么损失函数这一部分与其完全是一致的,现在,我们已经确定了模型的损失函数关于输出量a的函数形式,接下来的问题自然就是:如何根据该损失函数来优化模型的参数。

3.2 基于梯度下降的逆向传播过程 (关于损失函数的逆向求导)

这里需要一些先修知识,主要是需要懂得梯度下降 (gradient descent)这一优化算法的原理,这里我就不展开阐述该方法,不了解的读者可以查看我之前的这篇较为简单清晰的关于梯度下降法介绍的文章 ->[link]。由于如果将神经网络的损失函数完全展开将会极为繁琐,这里我们先根据上面得到的关于输出量a的损失函数来进行一步步的推导。

BP 的核心点在于逆向传播,本质上来说,其实是将模型最终的损失函数进行逆向求导的过程,首先,我们需要从输出层向隐含层的进行求导,也就是需要求得,这里就需要用到求导方法里的 链式求导法则。我们先求得 2 个必要的导数

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98746
  • 机器学习
    +关注

    关注

    66

    文章

    8122

    浏览量

    130557
  • BP算法
    +关注

    关注

    0

    文章

    8

    浏览量

    7091

原文标题:BP 神经网络 —— 逆向传播的艺术

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    神经网络教程(李亚非)

      第1章 概述  1.1 人工神经网络研究与发展  1.2 生物神经元  1.3 人工神经网络的构成  第2章人工神经网络基本模型  2.
    发表于 03-20 11:32

    求利用LABVIEW 实现bp神经网络的程序

    谁有利用LABVIEW 实现bp神经网络的程序啊(我用的版本是8.6的 )
    发表于 11-26 14:54

    求基于labview的BP神经网络算法的实现过程

    求高手,基于labview的BP神经网络算法的实现过程,最好有程序哈,谢谢!!
    发表于 12-10 14:55

    关于BP神经网络预测模型的确定!!

    请问用matlab编程进行BP神经网络预测时,训练结果很多都是合适的,但如何确定最合适的?且如何用最合适的BP模型进行外推预测?
    发表于 02-08 14:23

    用labview框图编写的BP神经网络程序vi

    参考文献用labview编写的一个3层BP神经网络程序
    发表于 05-28 10:35

    labview BP神经网络的实现

    请问:我在用labview做BP神经网络实现故障诊断,在NI官网找到了机器学习工具包(MLT),但是里面没有关于这部分VI的帮助文档,对于”BP神经网络分类“这个范例有很多不懂的地方,
    发表于 02-22 16:08

    基于BP神经网络的辨识

    基于BP神经网络的辨识
    发表于 01-04 13:37

    【案例分享】基于BP算法的前馈神经网络

    `BP神经网络首先给出只包含一个隐层的BP神经网络模型(两层神经网络): BP
    发表于 07-21 04:00

    如何设计BP神经网络图像压缩算法?

    ,并能在脑海中重现这些图像信息,这不仅与人脑的海量信息存储能力有关,还与人脑的信息处理能力,包括数据压缩能力有关。在各种神经网络中,多层前馈神经网络具有很强的信息处理能力,由于其采用BP算法,因此也
    发表于 08-08 06:11

    BP神经网络PID控制电机模型仿真

    求一个simulink的蓄电池用BP神经网络PID控制电机加速匀速减速运动的模型仿真
    发表于 02-22 02:17

    BP神经网络的基础数学知识分享

    一文看懂BP神经网络的基础数学知识
    发表于 06-16 07:14

    基于BP神经网络的PID控制

    最近在学习电机的智能控制,上周学习了基于单神经元的PID控制,这周研究基于BP神经网络的PID控制。神经网络具有任意非线性表达能力,可以通过对系统性能的学习来实现具有最佳组合的PID控
    发表于 09-07 07:43

    基于BP神经网络的辨识

    基于BP神经网络的辨识,1986年,Rumelhart等提出了误差反向传播神经网络,简称BP网络(Back Propagation),该
    发表于 12-06 15:11 0次下载

    BP神经网络原理及应用

    BP神经网络原理及应用说明。
    发表于 04-27 10:48 14次下载

    人工神经网络bp神经网络的区别

    人工神经网络bp神经网络的区别  人工神经网络(Artificial Neural Network, ANN)是一种模仿人脑神经元网络结构
    的头像 发表于 08-22 16:45 3433次阅读