bp算法运行太慢_神经网络,BP算法的理解与推导

原创,转载请注明出处。(常规字母代表标量,粗体字母代表向量,大写粗体字母代表矩阵)这里假设你已经知道了神经网络的基本概念,并且最好看过BP算法。可能你没有看懂,或者你跟我一样被各种公式搞晕了。尤其是学过的线性代数跟微积分知识也忘记得差不多的人,对复杂的数学公式跟符号非常不敏感的人,特别适合看这个。希望在看完这篇文章后,能够帮助你弄懂BP算法的具体流程,以及BP算法的数学推导过程。能够对于任何给定的...
摘要由CSDN通过智能技术生成

原创,转载请注明出处。

(常规字母代表标量,粗体字母代表向量,大写粗体字母代表矩阵)

这里假设你已经知道了神经网络的基本概念,并且最好看过BP算法。

可能你没有看懂,或者你跟我一样被各种公式搞晕了。尤其是学过的线性代数跟微积分知识也忘记得差不多的人,对复杂的数学公式跟符号非常不敏感的人,特别适合看这个。

希望在看完这篇文章后,能够帮助你弄懂BP算法的具体流程,以及BP算法的数学推导过程。能够对于任何给定的神经网络结构,求出对应的BP算法的训练公式。最好是能够理解到能写出代码的程度。

一、神经网络数学描述

假设给定一个神经网络,如何用数学语言来描述它?

我们来举个简单的例子,它包含一个输入层,2个隐含层,1个输出层。

(注意,本文的神经网络,是没有偏置项(bias)的,因为偏置项可以通过给每层加入一个恒为1的输入来消除掉,因此有偏置可以等价转换成没有偏置的问题。具体怎么消除类似于我之前在逻辑回归 里面讲的方法)神经网络结构

从图中可以看出,我们的输入是一个二维的向量

,输出是一个数值。

我们说的层具体指代的是图中的哪一个部分呢?

我随手画了4个方框,代表从左到右依次是:输入层,隐含层1,隐含层2,输出层。

二、输入,输出和激活函数

取隐含层1。先说这一层的输入和输出,对于这一层的每个神经元,都有一个对应的输入值,以及一个对应的输出值,它们都是一个标量,假设对于第

层(图里面画错了应该是l,请把图中的

脑补成

):

我们可以将多个标量值变成一个向量值,定义:

激活函数可以全部都选择sigmoid函数,但是也有每个神经元选用不一样的激活函数的情况,在这里为了更加通用,假设

用的是不同的激活函数。

在应用了激活函数以后,就能把

转换成

,它们的关系是:

因此,我们可以知道

层输出跟输出的关系,记作等式1:

三、权重

权重的值实际上就是层与层之间的连线,举个例子:

权重的作用,可以认为是对于上一层的输出向量

做线性组合,在

层中,有几个神经元,就对应于对输出向量

做几次线性组合。

比如

就代表点1连到点3的权值,我们可以把

层所有的权值写成一个权值矩阵

,比如上面的图对应的权值矩阵就长这样:

我们来看这个矩阵的含义:

上图中,

中的每一行代表着对右输出值的一次线性组合,对应于

层的一个神经元。因此矩阵有多少行,就代表着这一层有多少个神经元。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值