机器学习之BP神经网络 以及 tensorflow 实现

本文介绍了BP(反向传播)神经网络的工作原理,包括正向传递和反向误差传播过程,以及隐藏层数目的选择。还讨论了BP神经网络的局限性,如局部极小值和收敛速度。最后提到了在Tensorflow平台上实现BP神经网络的代码实践。
摘要由CSDN通过智能技术生成

BP (Back Propagation)神经网络简介 :

先介绍一下神经元,在生物神经网络中,每个神经元与其它神经元相连,当一个神经元“兴奋”时,就会通过穿出神经向其它神经元发送化学物质,其它神经元会通过穿人神经接受信息然后再传递至神经中枢处理信息。现在机器学习中的神经网络就是基于生物学中的神经元模型的。一个一个的神经元与其它神经元相互连接构成所谓的神经网络。

BP 神经网络分为两个过程
1. 工作信号正向传递子过程
2. 误差信号逆向传递过程

在一般的BP神经网络中,单个样本有m个输入和n个输出,在输入层和输出层之间还有若干个隐藏层,实际上 1989年时就已经有人证明了一个万能逼近定理 :
在任何闭区间的连续函数都可以用一个隐藏层的BP神经网络进行任意精度的逼近。
所以说一个三层的神经网络就可以实现一个任意从m维到n维的一个映射。这三层分别是
输入层、隐藏层、输出层 如图所示 :

关于隐藏层的选择 :
在BP神经网路中,输入层和输出层的节点数目都是固定的,关键的就是在于隐藏层数目的选择,隐藏层数目的选择决定了神经网络工作的效果

一般而言,有一个关于隐藏层数目的经验公式

这里写图片描述

其中 h 为隐藏层节点数目,m为输入层节点数目,n为输出层节点数目 a 为 1-10 之间的调节常数。一般而言如果数据多的话我们可以设a稍微大一点,而数据不是太多的时候就设置的小一点防止过拟合。

正向传递子过程 :
设节点 i 与 节点 j 之间的权值 为 wij,节点 j 的阀值为 bj,每个节点的输出值为 xj,具体的计算方法如下
这里写图片描述

其中 f 为激活函数 ,一般选择sigmoid函数或者 线性函数正向传播中输入层没有阀值

BP神经网络的关键之处就在于

  • 8
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值