目录

  • 1 简介
    • 1.1 神经元
    • 1.2 网络结构
    • 1.3 正向传播
    • 1.4 反向传播

1 简介

全连接神经网络 也称作多层感知机(MLP)

1.1 神经元

神经元接收输入向量xxx
神经元节点有权重向量w和偏置项b 输出值为f(wTx+b)f(w^Tx+b)f(wTx+b)
在经过类似线性回归之后 使用激活函数对得到值进行操作

1.2 网络结构

  • 输入层:[特征维度,n]
  • 隐含层:权重矩阵 [输出维度,输入维度] 或者说[这层维度,上层维度]
  • 输出层:[类别数,n]

个人对于每一层的理解就是 使用[这层维度,上层维度]的权重矩阵
将输入转化为其他维度 并且使用非线性的激活函数 得到输出

1.3 正向传播

确定网络结构之后
假设有m层网络 第 lll 层的权重矩阵 WlW^lWl 偏置为 blb^lbl
整个网络从输入到输出的流程为

  • x1=xx^1=xx1=x
  • 对于l=2,3,...ml=2,3,...ml=2,3,...m每一层
    ul=Wlxl−1+blu^l=W^lx^{l-1}+b^lul=Wlxl−1+bl(线性回归)
    xl=f(ul)x^l=f(u^l)xl=f(ul)(非线性激活函数)
  • 得到xmx^mxm 即为输出 可能是每个类别的概率组成的向量 也可能是回归值

1.4 反向传播

如何训练每一层的W和b 就需要反向传播算法
假设单个样本的损失函数是:
L=12(h(x)−y)2L=\cfrac12(h(x)-y)^2L=21​(h(x)−y)2
目标优化函数:
L=12m∑i=1m(h(xi)−yi)2L=\cfrac1{2m}\sum_{i=1}^m(h(x_i)-y_i)^2L=2m1​i=1∑m​(h(xi​)−yi​)2
反向传播算法的流程是:

  • ①正向传播 计算每一层的输出值
  • ②反向传播:对输出层计算 损失函数对uuu的梯度 ▽ulL=(xl−y)⨀f′(ul)\bigtriangledown _{u^l}L=(x^l-y) \bigodot f^{\prime}(u^l)▽ul​L=(xl−y)⨀f′(ul)(因为损失函数用的欧式距离 所以是xl−yx^l-yxl−y)
  • ③对于l=nl−1,nl−2....2l=n_l-1,n_l-2....2l=nl​−1,nl​−2....2的各层 计算每层 损失函数对uuu的梯度
    ▽ulL=(Wl+1)T[▽ul+1L]⨀f′(ul)\bigtriangledown _{u^l}L=(W^{l+1})^T[\bigtriangledown _{u^{l+1}}L]\bigodot f^{\prime}(u^l)▽ul​L=(Wl+1)T[▽ul+1​L]⨀f′(ul)
  • ④计算损失函数对WWW和bbb的梯度
    ▽WlL=[▽ulL](xl−1)T\bigtriangledown _{W^l}L=[\bigtriangledown _{u^l}L] (x^{l-1})^T▽Wl​L=[▽ul​L](xl−1)T
    ▽blL=▽ulL\bigtriangledown _{b^l}L=\bigtriangledown _{u^l}L▽bl​L=▽ul​L
  • ⑤梯度下降更新WWW和bbb
    Wl=Wl−η[▽WlL]W^l=W^l-\eta [\bigtriangledown _{W^l}L]Wl=Wl−η[▽Wl​L]
    bl=bl−η[▽blL]b^l=b^l-\eta [\bigtriangledown _{b^l}L]bl=bl−η[▽bl​L]

需要推导出每一层都适用的结论是
▽WlL=[▽ulL](xl−1)T\bigtriangledown _{W^l}L=[\bigtriangledown _{u^l}L] (x^{l-1})^T▽Wl​L=[▽ul​L](xl−1)T
▽blL=▽ulL\bigtriangledown _{b^l}L=\bigtriangledown _{u^l}L▽bl​L=▽ul​L
可见需要每一层 损失函数对u的梯度
然后只有输出层的这个梯度是可以直接求出来的
隐藏层的这个梯度都依靠于下一层才能求出来
所以按顺序计算nl,nl−1,nl−2,....,2n_l,n_l-1,n_l-2,....,2nl​,nl​−1,nl​−2,....,2层的梯度

如果训练时使用多个样本 对每个样本求出梯度 求出梯度的均值 进行梯度下降即可
反向传播算法的证明还需掌握 (复合函数求导)

神经网络:全连接神经网络相关推荐

  1. 几种主要的神经网络----全连接神经网络、前馈神经网络、卷积神经网络、循环神经网络

    几种主要的神经网络 一.全连接神经网络 二.前馈神经网络(Feedforward neural network,FNN) 三.卷积神经网络(Convolutional Neural Network,C ...

  2. Pytorch 实现全连接神经网络/卷积神经网络训练MNIST数据集,并将训练好的模型在制作自己的手写图片数据集上测试

    使用教程 代码下载地址:点我下载 模型在训练过程中会自动显示训练进度,如果您的pytorch是CPU版本的,代码会自动选择CPU训练,如果有cuda,则会选择GPU训练. 项目目录说明: CNN文件夹 ...

  3. 【计算机视觉与深度学习】全连接神经网络(一)

    计算机视觉与深度学习系列博客传送门 [计算机视觉与深度学习]线性分类器(一) [计算机视觉与深度学习]线性分类器(二) 目录 从线性分类器到全连接神经网络 全连接神经网络的权值 全连接神经网络与线性不 ...

  4. 深度学习实战1(基本概念、全连接神经网络、CNN)

    一.深度学习基础 1.1 深度学习(DL)概念 深度学习是指从有限样例中通过算法总结出一般性的规律,并可以应用到新的未知数据上.神经网络与深度学习并不等价,深度学习可以采用神经网络模型,也可以采用其他 ...

  5. 全连接神经网络VS卷积神经网络基本概念理解

    文章目录 1.全连接神经网络 2.卷积神经网络 2.1走五子棋的例子 2.2卷积核 2.3通道 2.4池化 2.5全连接层 1.全连接神经网络 全连接神经网络中,对n-1层和n层而言,n-1层的任意一 ...

  6. 深蓝学院第二章:基于全连接神经网络(FCNN)的手写数字识别

    如何用全连接神经网络去做手写识别??? 使用的是jupyter notebook这个插件进行代码演示.(首先先装一个Anaconda的虚拟环境,然后自己构建一个自己的虚拟环境,然后在虚拟环境中安装ju ...

  7. PyTorch基础入门五:PyTorch搭建多层全连接神经网络实现MNIST手写数字识别分类

    )全连接神经网络(FC) 全连接神经网络是一种最基本的神经网络结构,英文为Full Connection,所以一般简称FC. FC的准则很简单:神经网络中除输入层之外的每个节点都和上一层的所有节点有连 ...

  8. 使用tensorflow实现全连接神经网络的简单示例,含源码

    看别人的代码和自己写代码,两种的难度和境界真是不一样.昨天和今天尝试着写一个简单的全连接神经网络,用来学习一个基本的模型,在实现的过程中遇到了不少的坑,虽然我已经明白了其中的原理. 我想了一个教材上面 ...

  9. Tensorflow【实战Google深度学习框架】全连接神经网络以及可视化

    文章目录 1 可视化 神经网络的二元分类效果 2 全连接神经网络 3 TensorFlow搭建一个全连接神经网络 3.1 读取MNIST数据 3.2 建立占位符 3.3 建立模型 3.4 正确率 3. ...

  10. 图像识别python cnn_MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(一)...

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 全连接神经网络是深度学习的基础,理解它就可以掌握深度学习的核心概念:前向传播.反向误差传递.权重.学习 ...

最新文章

  1. DevOps:怎么实现源代码注释和系统文档的自动化更新?
  2. 浅析堡垒机概念及工作原理(转)
  3. this.$router.push如何刷新页面_【前端技术】如何优雅的释放F5(基于whistle的livereload)...
  4. 小程序卡片叠层切换卡片_现在,卡片和清单在哪里?
  5. ise的时钟ip核_Vivado CIC IP核滤波器详解(一)
  6. java 接口初始化_Java类的初始化 | 学步园
  7. ajax jsonp img
  8. 【我来解惑】.Net应该学什么怎么学(二)
  9. python中正则表达式_Python中正则表达式详解
  10. “我被苹果人脸识别系统「坑」进了监狱”
  11. Win10 开启虚拟桌面+投屏
  12. 用Java解决牛客网小米校招编程真题XM5句子反转
  13. Python 之父加入微软
  14. 大华摄像头抓拍图像实时下载
  15. ~~~实用工具~~~
  16. 多彩HUAWEI nova 2系列手机炫丽亮相 自拍功能抢眼
  17. css3帧(雪碧图)动画实现
  18. C/C++基础 sleep()、usleep()、nanosleep()的用法
  19. 达人评测 r5 5500u和i5 11300h选哪个好
  20. 易經大意(7) 三和 韓長庚 著

热门文章

  1. Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
  2. 多任务学习综述Multi-Task Deep Recommender Systems
  3. overflow第一次觉得你有点可恶
  4. 神奇的量子世界——量子遗传算法(PythonMatlab实现)
  5. python个人所得税实验报告+操作界面
  6. 流程模拟器 Process Simulator支持64位和32位版本的Visio
  7. Ardunio开发实例-VL53L0X飞行时间传感器
  8. 188. 买卖股票的最佳时机 IV(JavaScript)
  9. 植物生理学(全英文)Chapter 5 Word list第五章单词
  10. flutter 中对图片的处理(选取和裁剪)的插件