一.神经元模型

如下图是深度学习(deep learning)中神经元的模型,神经元是进行计算的基本单元。

其中x1、x2 和x3为输入,+1为偏置
神经元进行计算的数学公式可表示为:
上式中,F、w、b分别为激活函数,权重,偏置;
其中,激活函数F有多重,常用激活函数有sigmoid,Relu和tanh等

二.BP神经网络

2.1 BP神经网络原理

BP神经网络的工作原理图如下所示:

最左侧为输入,输入的右侧为神经元组成的各层,分别为输入层、隐含层、输出层。
其中输入层的误差可用数学公式表达为:
隐含层的误差可用数学公式表达为:
输出层的误差可用数学公式表达为:

2.2 BP神经网络应用示例

如下图是一个BP神经网络的模型,其中l1和l2为输入,这两者和偏置子b1构成输入层,w1到w12为权重,h1、h2、h3和偏置子b2构成隐含层,o1和o2构成输出层。

1)对权重和偏置赋初值

在起始阶段,首先使用随机函数对权重w和偏置b任意赋值,本例中对w1到w12和b1、b2分别赋以下初值。

w      0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65
b      0.35,0.65

2)根据输入求出输出

隐含层中h1的输入为:
h1的输出为:
同理可得h2和h3的输出分别为:
o1的输入为:
o1的输出为:
同理可计算出o2的输出为:
分别计算o1和o2的误差及总误差:
总误差的值为:

3)进行反向计算

在完成以上计算之后,根据求出的结果的误差,进行反向计算,采用偏导的方式,求各权重对总误差的影响,并根据影响的大小更新权重w和偏置b
以隐含层偏置子w7和输入层偏置子w1两个偏置子为例,列举反向计算的方法

求w7对总误差的影响值:

由于无法直接计算w7对总误差的偏导数(没有体现w7和总误差关系的数学公式),所以利用BP神经网络,将w7对总误差的计算分为三部分的乘积,分别为o1的输出对总误差的偏导,o1的输入对o1的输出的偏导,w7对o1的输入的偏导
根据o1的输出和总误差的数学方程,求出其偏导值为:
根据o1的输入和o1的输出的数学方程,求出其偏导值为:
根据w7和o1的输入的数学方程,求出其偏导值为:

由以上的运算,可得出w7对总误差的偏导

求w1对总误差的影响值:

由于w1是输入层的偏置子,所以其计算要比隐含层偏置子w7更麻烦一些。
如下所示,将w1对总误差的偏导进行分解,然后依次求出各部分的值
h1的输出对o1的误差的偏导的求解方法,同理可得h1的输出对o2的误差的偏导:

经过运算求出w1对总误差的偏导:
更新w1的值,新的w1的值为原来的w1减去w1对总误差的偏导乘以η(η是一个可变参数,其取值在0到1之间,η的值越大收敛速度越快,但得出的效果会变差)
根据以上方法将w1到w12依次求出:

4)多次迭代

重复以上过程,多次迭代,以下为10次、100次、1000次迭代后的o1和o2的输出,迭代次数越多,效果越好
在迭代过程中,权值w也在不断地变化
首次迭代前给w1到w12的赋值:
1000次迭代过后,w1到w12的值:

NLP学习01--BP神经网络相关推荐

  1. bp 神经网络 优点 不足_深度学习之BP神经网络--Stata和R同步实现(附Stata数据和代码)

    说明:本文原发于"计量经济圈"公众号,在此仅展示Stata的部分.R部分请移步至本人主页的"R语言与机器学习--经济学视角"专栏,或点击下方链接卡跳转. 盲区行 ...

  2. [深度学习-实践]BP神经网络的Helloworld(手写体识别和Fashion_mnist)

    前言 原理部分请看这里 [深度学习-原理]BP神经网络 Tensorflow2 实现一个简单的识别衣服的例子 数据集Fashion_mnist, 此数据集包含10类型的衣服 ('T-shirt/top ...

  3. CV学习笔记-BP神经网络训练实例(含详细计算过程与公式推导)

    BP神经网络训练实例 1. BP神经网络 关于BP神经网络在我的上一篇博客<CV学习笔记-推理和训练>中已有介绍,在此不做赘述.本篇中涉及的一些关于BP神经网络的概念与基础知识均在< ...

  4. [深度学习-原理]BP神经网络

    前言 BP(back propagation)神经网络 1. 什么是人工神经网络? 首先给出一个经典的定义:"神经网络是由具有适应性的简单单元组成的广泛并行互连网络,它的组织能够模拟生物神经 ...

  5. TensorFlow使用--MNIST分类学习(BP神经网络)

    目录 测试结果:根据测试集和验证集的验证,训练好的模型识别率可以达到96% 代码块 代码分块解析 保存训练好的神经网络并调用 小测试:将MNIST数据集中的图片显示出来 传送门 激活函数相关 soft ...

  6. 机器学习算法-09-深度学习、BP神经网络、Hopfield神经网络、基于数学原理的神经网络、径向基函数RBF(B站一条会说666的咸鱼)

    Deep Learning 深度学习的概念源于人工神经网络的研究,含多隐层的多层感知器就是有一种深度学些的结构 ,深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征的 ...

  7. 论文学习:BP神经网络

    最近在学习 Long Short-Term Memery (LSTM)[1], 文献中指出:通过递归反向传播算法学习在长时间间隔内存储信息需要花费很长的时间,这主要是由于不足.衰减的误差反向流造成的( ...

  8. 深度学习之BP神经网络

    前言 bp神经网络是模拟人体中神经元结构而设计出来的:   神经元大致可以分为树突.突触.细胞体和轴突.树突为神经元的输入通道,其功能是将其它神经元的动作电位传递至细胞体.其它神经元的动作电位借由位于 ...

  9. 深度学习基础: BP神经网络训练MNIST数据集

    BP 神经网络训练MNIST数据集 不用任何深度学习框架,一起写一个神经网络训练MNIST数据集 本文试图让您通过手写一个简单的demo来讨论 1. 导包 import numpy as np imp ...

  10. NLP学习笔记-循环神经网络RNN、情感分类、LSTM(二)

    循环神经网络和自然语言处理介绍 1. 文本的tokenization 1.1 概念和工具的介绍 tokenization就是通常所说的分词,分出的每一个词语我们把它称为token. 常见的分词工具很多 ...

最新文章

  1. SQL Server 中@@IDENTITY的用法
  2. java 生成parquet文件格式,使用Java API将Parquet格式写入HDFS,而不使用Avro和MR
  3. 推荐算法中用户画像构建
  4. cassandra 数据到Java对象的映射绑定
  5. 为什么装了ACDSEE 就不能点网站上的连接?
  6. Linux网络协议栈:网络包接收过程
  7. 优秀!Github上10个开源免费的后台控制面板你值得拥有!
  8. 阶段3 2.Spring_10.Spring中事务控制_2 作业-基于注解的AOP实现事务控制及问题分析_上...
  9. 使用GPG加密通讯,设置git提交验证密钥
  10. SQLite3安装与使用(linux)
  11. 用Python做一个变态版的《超级玛丽》游戏
  12. Android7.1.1新增Shortcuts快捷方式,让App更加快捷方便
  13. 推荐几个适合上班摸鱼的神操作!
  14. 纪念短暂而美好的恋情:愿得一人心 白首不相离
  15. 非典型程序员单板滑雪入门教程指北
  16. 酷比魔方IWork1X 的做系统问题
  17. Tensorflow-Gpu安装 基于gtx1060
  18. 阿里云后台部署全过程-1-云服务申请与配置
  19. 如何通过父类引用“调用”子类所独有的方法(向上转型意义)
  20. 自动化工具之SelendroidRobotium

热门文章

  1. java 解析栅格数据_使用Rasterio读取栅格数据的实例讲解
  2. python 正则表达式匹配数字或者小数点_Python 正则表达式 匹配小数
  3. python微信群定时发送消息_Python3 itchat实现微信定时发送群消息的实例代码
  4. 收藏商品表设计_babycare商品价格及销售情况分析
  5. html元素拖动互换位置原理,HTML5 元素拖动 - 实现元素左右拖动, 或更改自身排序...
  6. Java进阶:SpringMVC中使用fileupload报错Error creating bean with name ‘multipartResolver‘
  7. Node.js:Node模块简介
  8. 实战爬虫:利用python中itchat模块给心爱的人每天发天气预报
  9. Pannellum:实例之自定义热点信息
  10. 时间和日期的JS库Moment.js常见用法总结