最近想要学习深度学习模型,没有一上来就先学习CNN、RNN、LSTM,而是先学习全连接神经网络(Fully Connected Neural Network),原因非常简单,上述所说的各种神经网络都是基于全连接神经网络出发的,最基础的原理都是由反向传播而来,所以只要掌握了这节最基本的原理,接下来的各种网络也能学得得心应手。

一、全连接神经网络简介

全连接神经网络模型是一种多层感知机(MLP),感知机的原理是寻找类别间最合理、最具有鲁棒性的超平面,最具代表的感知机是SVM支持向量机算法。神经网络同时借鉴了感知机和仿生学,通常来说,动物神经接受一个信号后会发送各个神经元,各个神经元接受输入后根据自身判断,激活产生输出信号后汇总从而实现对信息源实现识别、分类,一个典型的神经网络如下图所示:

上图是典型的全连接神经网络模型(DNN),有的场合也称作深度神经网络,与传统的感知机不同,每个结点和下一层所有结点都有运算关系,这就是名称中‘全连接’的含义,上图的中间层也成为隐藏层,全连接神经网络通常有多个隐藏层,增加隐藏层可以更好分离数据的特征,但过多的隐藏层也会增加训练时间以及产生过拟合。

观察上图,输入数据是一个3维向量,隐藏层有5个结点,意味着通过线性映射将3维向量映射为一个5维向量,最后再变为一个2维向量输出。当原输入数据是线性不可分时,全连接神经网络是通过激活函数产生出非线性输出,常见的激活函数有Sigmoid,Tanh,Relu,分别如下图所示:

全连接神经网络训练分为前向传播、后向传播两个过程,前向传播数据沿输入到输出后计算损失函数值,后向传播则是一个优化过程,利用梯度下降法减小前向传播产生的损失函数值,从而优化、更新参数。

二、全连接神经网络原理


就是这么一个东西,左边输入,中间计算,右边输出。可能这样还不够简单,画一个更简单的运算示意图:

不算输入层,上面的网络结构总共有两层,隐藏层和输出层,它们“圆圈”里的计算都是下面公式的计算组合:


每一级都是利用前一级的输出做输入,再经过圆圈内的组合计算,输出到下一级。

为什么要加上f(z)这个运算,这个运算的目的是为了将输出的值域压缩到(0,1),也就是所谓的归一化,因为每一级输出的值都将作为下一级的输入,只有将输入归一化了,才会避免某个输入无穷大,导致其他输入无效,变成“一家之言”,最终网络训练效果非常不好。

反向传播网络?反向去哪了?对的,这个图还没画完整,整个网络结果结构应该是这样:

反向传播的东西到底是什么呢?目的又是什么呢?这里,要有这么一点认识,神经网络的训练是有监督的学习,也就是输入X 有着与之对应的真实值Y ,神经网络的输出Y 与真实值Y 之间的损失Loss 就是网络反向传播的东西。整个网络的训练过程就是不断缩小损失Loss 的过程。

然后就是求解过程:我们可以将整个求解过程看做下山(求偏导过程),为此,我们先初始化自己的初始位置。

这样我们不断地往下走(迭代),当我们逐渐接近山底的时候,每次更新的步伐也就越来越小,损失值也就越来越小,直到达到某个阈值或迭代次数时,停止训练,这样找到 就是我们要求的解。

我们将整个求解过程称为梯度下降求解法

参考:

深度学习开端|全连接神经网络

DNN-全连接神经网络

全连接神经网络(DNN)相关推荐

  1. 【tensorlfow2】安装及简介全连接神经网络

    [tensorlfow]全连接神经网络FC-DNN 文章目录 一.[Win10+Anaconda+Tensorflow2.0安装教程 1.检测已经安装的环境 2.创建tensorflow虚拟环境 3. ...

  2. TF之DNN:TF利用简单7个神经元的三层全连接神经网络【2-3-2】实现降低损失到0.000以下

    TF之DNN:TF利用简单7个神经元的三层全连接神经网络实现降低损失到0.000以下(输入.隐藏.输出层分别为 2.3 . 2 个神经元) 目录 输出结果 实现代码 输出结果 实现代码 # -*- c ...

  3. 深度学习——神经网络之DNN全连接神经网络、BP算法原理

    深度学习--神经网络之DNN全连接神经网络.BP算法原理 深度学习--神经网络之DNN全连接神经网络.BP算法原理 1.啥是人工神经网络 2.神经网络的应用 3.神经网络的组成 3.1.神经元 3.2 ...

  4. 手写数字识别全部代码--全连接神经网络方法

    ''' #2018-06-25 272015 June Monday the 26 week, the 176 day SZ 手写字体识别程序文件1: 这个程序使用了全连接神经网络也就是DNN. 定义 ...

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

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

  6. 【FPGA】基于HLS的全连接神经网络手写体识别

    目录 一 系统分析 1.1 全连接神经网络简介 二 通过HLS 编写全连接神经网络传入权重参数和偏置参数文件 2.1  获得图片.权重以及偏置的参数 2.2 编写C语言的全连接算子 2.3 Slave ...

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

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

  8. 对于图像分类任务,相对于全连接的DNN,CNN模型的主要优点有哪些?

    对于图像分类任务,相对于全连接的DNN,CNN模型的主要优点有哪些? CNN相对于全连接的DNN(deep neural network)的优势包括一下几个方面: 第一,由于CNN的权重是高度复用的, ...

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

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

最新文章

  1. 设计模式(策略模式)
  2. HG522-C 刷Openwrt记录
  3. 【STM32】SYSTEM文件夹介绍,delay,sys,usart
  4. 2021年10月份自考感悟
  5. Python 使用穷举法求两个数的最大公约数。
  6. 启明云端分享| 基于SSD201核心板的4.3寸彩屏开发板接口相关说明
  7. 记一篇矫正牙齿、蛀牙(烂牙)。从小保护牙齿_(六龄齿封窝)
  8. 144hz minidp转dp_毕亚兹miniDP转HDMI转接器,拓展你的Surface Pro 3上4K大屏
  9. 跟着老桂学ASP.NET Core 2.0
  10. codesys raspberry pi_11月7日|Pi第四次减产来袭?4点浅析中文区用户关心的问题
  11. 【elasticsearch】elasticsearch 批量查询之mget
  12. Windows环境下安装React Native开发环境----记一次填坑过程
  13. 装双系统?不需要!教你在iMac上流畅使用Windows!
  14. SpringBoot(十六)_springboot整合JasperReport6.6.0
  15. python判断中文函数_如何判断(或如何编写)一个没有副作用的python函数?
  16. 【设计模式】适配器模式
  17. python爬取链家二手房楼盘数据信息
  18. API卡_什么是图形API,API又是用来做什么的,其实它是一名出色的翻译官
  19. 银行c语言面试题,笔试题(商业银行方面)
  20. JSLint中常见报错提示

热门文章

  1. 奶爸程序员 · 养成记
  2. ASP.NET 母版页,内容页之间如何传参数
  3. 游戏策划的软件与工具
  4. 中国建筑科学大会暨绿色智慧建筑博览会开幕!奥的斯新一代Gen3智慧电梯中国首发;格兰富、紫荆花重磅亮相 | 美通社头条...
  5. linux 获取ip地址命令行,linux获取ip_shell命令获取linux下eth0的IP地址
  6. (转)塔吉特读心术——用户数据分析的魔力
  7. 《计算机导论》专业课程的知识总结,计算机导论知识点
  8. AD18设置默认线宽
  9. 大话设计模式:工厂模式
  10. LVGL8学习之multiple styles