学习日记(2.18)
BP神经网络
BP神经网络简介
BP(back propagation) 神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。
BP算法(Back Propagation algorithm, 反向传播算法)适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。BP网络的输入输出关系实质上是一种映射关系:一个n输入m输出的BP神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。这是BP算法得以应用的基础。
(以上均来自百度百科)
谈谈我对神经网络的理解
神经网络是由无数个小的神经元搭建起来的,而其中每一个小的神经元和人类的神经元工作原理类似。首先他们都可以接受神经冲动(数据),处理信息(激活函数sigomid),传递神经冲动(输出数据)。
所以说每一个神经元中的信息是这样传递的
接收到的数据(net)----->激活函数处理(sigomid)----->输出的数据(out)
BP神经网络的个人理解
首先我把个人理解的BP 反向传播神经网络做个大概的描述。一开始网络中的所有神经元都是一些比较小而合理的随机数,
按照计算规则用输入层的数据计算出隐藏层再计算出输出层。此时整个网络的数据都补全了,但是这些数据还不能用来预测,因为他们大多是随机的。我们反向从输出层---->隐藏层---->输入层,依次用求派偏导的方式求出△W,改变各个神经元之间的权重,一轮循环我们把所有W都处改变一次,我的理解大概就是训练吧,我们这样训练10000次,这样的训练使得W的数值朝着真实值逼近目标值的方向运动,最后训练出的模型每一个W都基本上符合我们的模型,这样的模型可以用来预测了。这个大概就是BP神经网络的样子吧。里面最难懂得就是BP算法的理解,下面我会来用一个例子也是我看教学视频中的例子来解读BP神经网络算法。
BP算法推导例子
现有如下一个简易的小网络,也有明确的输入层,隐藏层,输出层,还有偏置b
我们现在给每个神经元赋初值,都是一些随机数。如图:
下面是我手写稿,来方便大家理解反向传播:
这就是BP反向传播的大概思路。