训练神经网络基本采用反向传播+梯度下降来进行,具体过程如下:

全连接层神经元之间互相连接,假设第一层有三个节点,第二层有个节点,如下图所示:

我们通过w11,w12,w21,w22,w31,w32来分别表示神经网络中节点到节点的权重,实际上,这可以被表示为矩阵的形式:

因此,神经网络层与层之间的权重矩阵W在程序中就是通过这一个个矩阵表示出来的。而刚好每一层的神经元又可以采用向量的形式表示出来,故要求得第二层神经元的各个值,我们只需要将向量与矩阵相乘就行了。(上图中向量为1*3向量,而矩阵是3*2矩阵,两个相乘得到1*2向量,这个向量刚好对应第二层的两个神经元节点)

在训练开始时,W矩阵中的所有元素被设为随机初始值(一般为-0.5--0.5,因为全连接神经网络一般用sigmoid激活函数激活,选择-0.5--0.5的值有利于反向传播顺利进行)

首先由数据进入一个随机生成参数的网络,数据不断通过神经元及激活函数向前传播,直至到达输出层,在训练过程中,我们会有监督值t来监督这次前向传播的值是否正确,如果不正确,则监督值会传出一个误差值,告诉这个网络你的计算和我想要的差了多少。这个过程有点像猜数字游戏,A心里想好一个数,B来猜,B先猜是5,A说小了,那B就会说一个比5大的数。

神经网络的更新与此相似,但是输出层告诉整个神经网络的是一个精准的误差值,而整个神经网络要调整的是整个权重矩阵的参数,而不是像猜数字那样,只用对一个数字进行增大或减小,具体就是告诉整个矩阵中的每一个数是该变大还是变小,而且由于矩阵是一个整体,你必须要考虑矩阵中的所有数变大变小的程度,而不是说矩阵中的每一个数都增加或减少一个定值。那怎么确定一个矩阵中的每个权重值变大还是变小,又各自改变多少呢?这就是梯度下降要做的事。

梯度是多元函数微分中的概念,相当于分别求得矩阵中各个变量下降最快的方向,那么,用这个方向乘以一定的步长就可以粗略的作为该次反向传播w权值的更新结果。

原理如下:我们通过监督值t减去网络给出的输出值得到误差,但我们一般采用均方误差:

我们改变W矩阵的各个值,目的是为了使损失L最小。

即我们求得W对L的梯度表达式:

通过一次误差反向传播,原理与正向传播一致,拿上图的例子说明即:一个1*2误差向量乘上2*3(W的转置)得到1*3向量,按照这样的做法,我们可得到各个层的误差值。(详细的数学推导我另发帖子阐明,对于编程来讲,了解是如何操作的就够了)

而刚好L可以被y表达出来(第一个式子),且y又可以被如下式子表示,其中f()表示激活函数

那么由多元微分的传递性可得:

f '()中的值实际上就是该层节点没有经过激活函数而只有线性求和的值。而t-y表示误差,xi是上一层的输入。有了梯度,这样我们就知道W矩阵中的每个值该如何修改了。

全连接神经网络反向传播详解相关推荐

  1. LSTM反向传播详解(完结篇)Part3/3代码实现

    1.前记   LSTM系列的前面两篇文章<LSTM反向传播详解Part1><LSTM反向传播详解Part2>将LSTM的理论梳理了一遍,本文主要着重用代码实现LSTM,其实也是 ...

  2. 【神经网络】FNN——前馈神经网络、前向传播、反向传播详解

    FNN网络结构: (1)FNN可以理解为多层感知机,即:包含多个隐藏层的神经网络 (2)层与层之间是全连接的,即:相邻两层的任意两个节点都有连接 FNN前向传播: (1)每个神经元以上一层各个节点输出 ...

  3. 全连接神经网络详解(Full Connect Neural Network)

    文章目录 前言 一.单层神经网络 1.1 正向传播 1.2 损失函数 1.3 梯度下降 二.浅层神经网络 2.1 正向传播 2.2 反向传播 三.深层神经网络 3.1 ImageNet发展史 3.2 ...

  4. [转载] python bp神经网络 mnist_Python利用全连接神经网络求解MNIST问题详解

    参考链接: Python中的单个神经元神经网络 本文实例讲述了Python利用全连接神经网络求解MNIST问题.分享给大家供大家参考,具体如下: 1.单隐藏层神经网络 人类的神经元在树突接受刺激信息后 ...

  5. 全连接神经网络基础——正向传播及损失函数

    全连接神经网络结构 顾名思义,全连接神经网络指的是上一层网络中的所有神经元都与下一层网络中的所有神经元相连,即上一层网络所有神经元的输出都作为下一层网络所有神经元的输入.一个简单的全连接神经网络结果如 ...

  6. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  7. 全连接神经网络(FCNN)

    全连接神经网络(Fully Connected Neural Network),CNN.RNN.LSTM等各种神经网络都是基于全连接神经网络出发的,最基础的原理都是由反向传播而来. 1.全连接神经网络 ...

  8. 卷积神经网络CNN原理详解(一)——基本原理

    卷积神经网络CNN原理详解(一)--基本原理 转载过来为了自己以后学习方便,大家请看原文章 为什么要用神经网络? 特征提取的高效性. 大家可能会疑惑,对于同一个分类任务,我们可以用机器学习的算法来做, ...

  9. python神经网络案例——FC全连接神经网络实现mnist手写体识别

    全栈工程师开发手册 (作者:栾鹏) python教程全解 FC全连接神经网络的理论教程参考 http://blog.csdn.net/luanpeng825485697/article/details ...

最新文章

  1. 俄亥俄州立大学计算机科学排名,俄亥俄州立大学CS专业排名2020年
  2. AI领域首个iF用户体验大奖——第四范式斩获2项德国iF设计奖
  3. C++实现tree234树(附完整源码)
  4. python 调用文件上传图片简单例子
  5. matlab中prprob,pr-sr-master
  6. linux 下which、whereis、locate、find文件查找命令的区别[ZT]
  7. Android中添加字串资源出现问题
  8. 华为的鸿蒙系统是安卓吗,华为鸿蒙,一个本属于2025年的产品
  9. 机器学习代码实战——SVM(支持向量机)(使用不同核函数)
  10. boost正则表达式库简单介绍
  11. Hadoop:Hadoop单机伪分布式的安装和配置
  12. 计算机网络基础系列(四)HTTP、七层模型及其内部对应协议
  13. java中this关键字
  14. mysql事务ACID实现原理_一文解析:MySQL事务ACID原理让你面试不再害怕
  15. 计算机二级修改并应用基本简历模板,如何通过Office模板轻松快捷创建简历
  16. 链家数据爬取+地图找房
  17. 项目管理面试常见问题及答案
  18. 二甲苯酚的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 使用 Zadig 交付云原生微服务应用
  20. Windows下双显示器截屏方法

热门文章

  1. 2021年全球患者参与软件收入大约13640百万美元,预计2028年达到43690百万美元,2022至2028期间,年复合增长率CAGR为19.6%
  2. RGB、YUV、HSV颜色空间模型
  3. 海马汽车经销商管理系统技术解析(十)预约配件资源释放
  4. jqueryUI+ajax实现百度类似的搜索补全下拉
  5. rEFInd引导Win10+Ubuntu+Deepin+macOS+Phoenix+Fyde+cent+openSUSE+Kylin+ChromeOS+RedFlag)时menuentry的详细配置
  6. linux脚本条件判断或,Shell脚本IF条件判断和判断条件总结
  7. Hbase 根据数据入库时间戳查询入库数量
  8. elementui 表格单行删除
  9. mysql 物化视图 更新_物化视图的快速刷新测试与物化视图日志
  10. C++多线程-无锁链表