zoukankan      html  css  js  c++  java
  • 学习日记(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反向传播的大概思路。

  • 相关阅读:
    HDU-2037 今年暑假不AC
    HDU-3348 coins
    CodeForces-985C Liebig's Barrels
    CSU-2034 Column Addition
    -----------------******Java API提供了几个常用包:
    DOM4j解析、修改、删除、增加、保存XML的方法
    Dom解析XML(添加,删除,修改,保存)
    ------------------------------------日期之间的转换
    -----------------------------------String类的常用方法
    ------------ 异常笔记
  • 原文地址:https://www.cnblogs.com/Eldq/p/12326413.html
Copyright © 2011-2022 走看看