1.从感知机到神经网络

上图是一个感知机模型,有若干个输入和一个输出(输出的结果只可以是1或-1)

输入和输出有一个线性关系:

神经元激活函数:(二分类)

由于这个简单的感知机只可以进行二分类,则对于感知机进行升级,升级如下:

1)加入隐藏层,从而增加模型的表达能力,同时也增加了模型的复杂度

2)输出层的神经元不止一个输出,可以有多个输出

3)扩展了激活函数,从感知机的激活函数sign(z)---->sigmoid,之后又出现了tanX,softmax,ReLu等,通过不同的激活函数提高了神经网络的表达能力

2.深度神经网络(DNN)的基本结构

神经网络是基于感知机的扩展,深度神经网络就是有很多隐藏层的神经网络,所以深度神经网络也叫做多层感知机。

深度神经网络的内部神经网络有3层,第一层输入,最后一层输出,其余中间都是隐藏层,层与层之间全连接。在局部的小模型来讲和感知机是一样的,都是线性关系+激活函数,即

Layer 1:                                                                Layer 2:

Z[1] = W[1]·X + b[1]                                            Z[2] = W[2]·A[1] + b[2]
A[1] = σ(Z[1])                                                      A[2] = σ(Z[2])

X其实就是A[0],所以不难看出:

Layer i:
Z[i] = W[i]·A[i-1] + b[i]
A[i] = σ(Z[i])

(注:σ是sigmoid函数)

因此不管我们神经网络有几层,都是将上面过程的重复

系数w的定义:

如下图:这里的w243指的是第二层的第四个神经元到第三层的第二个神经元

偏置b的定义:

如下图:b23表示第二层的第三个神经元,a13表示第三层的第一个神经元

3.深度神经网络前向传播算法的原理

核心:利用上一层的输入计算下一层的输出

以上是代数法,其实一个一个表示输出很复杂,所以就有了简化版的写法,就是矩阵法。

假设第l−1层共有m个神经元,而第l层共有n个神经元,则第l层的线性系数w组成了一个n×m的矩阵Wl,第l层的偏倚b组成了一个 n×1 的向量 bl ,第l-1层的输出 a 组成了一个 m×1 的向量 a(l−1),第l层的未激活前线性输出z组成了一个 n×1 的向量 zl ,第l层的输出 a 组成了一个 n×1 的向量 al 。

4.深度神经网络的前向传播算法

利用若干个权重系数矩阵w,偏置向量b来和输入值向量x,进行一系列的线性运算和激活运算,从输入层开始,一层一层向后计算,运算到输出层得到输出结果

5.深度神经网络反向传播算法要解决的问题

假设有m个训练样本 {(x1,y1),(x2,y2),...,(xm,ym)} ,xi为输入向量,其特征维度是n_in;y为输出向量,其特征向量为n_out。用m个样本训练出一个模型。当有一个新的测试样本(Xtest,Y?)的时候,预测Ytest的输出。

我们使用深度神经网络模型,使输入层有n_in个神经元,输出层有n_out个神经元,再加上含有若干个神经元的一些隐藏层。现在的目标就是要找到所有隐藏层和输出层对应的线性系数矩阵w和偏置向量b,让所有训练样本输入计算出的结果(输出)尽可能的接近或等于样本的输出。通俗来讲就是你的训练集已经放进了一个完美的标注Ym,神经网络在训练的时候会也会训练出一个标准,用神经网络那个标准与Ym相比对,会产生一定的差距。损失函数就是Ym结果与神经网络训练出的模型具体差多少的定量表达。一般损失函数比较两个模型差距多少的三种思路是:最小二乘法,极大似然估计法,交叉熵法。对损失函数进行优化求最小化的极值,对应的一系列w和b即为最终的合适的参数。而这个损失函数的优化极值求解过程最常见的一般是通过梯度下降法来步步迭代。

6.深度神经网络反向传播算法的基本思路

在进行反向传播算法前,我们要选择一个损失函数,来度量训练样本计算出的输出与真实训练样本输出的损失。深度神经网络可以选择的损失函数很多,要选择一个损失函数来用梯度下降法迭代修改每一步的w和b。具体的思路很复杂 ,我暂时还不能很好的理解,请读者见谅!

7.深度神经网络反向传播算法过程

输入:总层数L,各隐藏层与输出层的神经元个数,激活函数,损失函数,迭代步长a,最大迭代次数max与停止迭代阈值,输入的m个训练样本

输出:各隐藏层与输出层的线性关系系数矩阵w和偏置向量b

8.均方差损失函数+sigmoid激活函数的问题

在讲反向传播算法的时候,我们用均方差损失函数和sigmoid激活函数做了实际例子,但是其实这是有问题的。

看上图,如果z取值越来越大,函数曲线变得平缓,意味着导数 σ′(z) 也越来越小。而在反向传播过程中,每一层向前递推都要乘以导数 σ′(z)得到梯度变化值sigmoid这个曲线就意味着在大多数时候梯度的变化值很小,导致算法收敛速度较慢。那怎么解决这个问题呢?

9.改变损失函数和激活函数

损失函数3种:最小二乘法,极大似然估计法,交叉熵法

激活函数:sigmoid,tanX,softmax,ReLu...

根据经验,应该两两搭配换着;来试一下,哪个效果好选哪个

10.参考资料

深度神经网络(DNN) - 知乎 (zhihu.com)

深度神经网络DNN的理解相关推荐

  1. 理解深度神经网络——DNN(Deep Neural Networks)

    深度神经网络--DNN 是深度学习的基础. 要理解DNN最好先搞清楚它的模型.本篇博文主要对DNN的模型与前向传播算法做一个易于理解的总结. 1.从感知机到神经网络的理解. 感知机是这么一种模型:一个 ...

  2. 深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用

    http://www.csdn.net/article/2014-07-11/2820628-DNN 深度神经网络(Deep Neural Networks, 简称DNN)是近年来机器学习领域中的研究 ...

  3. TensorFlow2.0(四)--Keras构建深度神经网络(DNN)

    Keras构建深度神经网络(DNN) 1. 深度神经网络简介 2. Kerase搭建DNN模型 2.1 导入相应的库 2.2 数据加载与归一化 2.3 网络模型的构建 2.4 批归一化,dropout ...

  4. dnn神经网络_OpenCV3.3深度神经网络(DNN)模块

    今天,甜菇凉整理了一下电脑里面OpenCV深度神经网络(DNN)模块-应用视频教程,这个是贾志刚老师的视频,学习视觉的同学应该都知道贾志刚老师吧,他的视频很适合想要入门计算机视觉图像处理的小白学习,那 ...

  5. 讯飞输入法将深度神经网络DNN技术应用于语音识别达到业界领先水平

    10月20日,以"语见更好的我们"为主题的"讯飞输入法10周年 A.I.输入沙龙"在北京举办.记者从活动现场了解到,自2010年10月上线至今,讯飞输入法的日语 ...

  6. 多层感知器及常见激活函数-深度神经网络DNN及计算推导

    多层感知器 在之前的博客中,我们了解到,感知器(指单层感知器)具有一定的局限--无法解决异或问题,即线性不可分的问题. 将多个单层感知器进行组合,就可以得到一个多层感知器(MLP--Multi-Lay ...

  7. 贾志刚OpenCV3.3深度神经网络DNN模块应用学习笔记

    OpenCV3.3深度神经网络DNN模块应用全套视频.课程配套PPT的PDF版本和配套源码 全套例程源码.用到的模型文件.图片和视频素材整理 在线观看 实例1:读取单张PNG文件(opencv3.3环 ...

  8. 深度神经网络(DNN)正向传播与反向传播推导(通俗易懂)

    一.前言 我在之前的博客里面介绍过浅层的神经网络,现在就从浅层神经网络出发,介绍深度神经网络(DNN)的正向传播和反向传播.希望网友们看本博客之前需要对神经网络有个简单的了解,或者可以看博客初探神经网 ...

  9. 深度学习之手撕深度神经网络DNN代码(基于numpy)

    声明 1)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除. 2)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢 ...

最新文章

  1. 手动特征工程已经OUT了!自动特征工程才是改进机器学习的方式
  2. TensorRT重磅更新!10亿参数大模型实时运行,GPT推理加速21倍
  3. Python 之 matplotlib (九)contours等高线
  4. 关于ES、PES、PS以及TS码流
  5. 剑指Offer #07 斐波那契数列(四种解法)| 图文详解
  6. Linux学习之01_基础命令介绍
  7. select 组件-bug解决方案
  8. 设计素材 | 来一份秋高气爽——秋季促销海报
  9. ubuntu16.04 虚拟机装机后常用操作
  10. 各种门锁的内部结构图_逃生门锁,我们的生命之锁!
  11. web前端对http理解
  12. Linux用户态进程的内存管理浅析
  13. DPDK-VPP 学习笔记-01
  14. shell脚本小程序之特洛伊木马示例
  15. 手把手教你阿里云服务器搭建网站(超详细图文)
  16. python 批量去掉语音中的静音段
  17. 【nexusyum】CentOS7.x上用nexus搭建yum仓库
  18. 紫外线检测仪,WKM-UV1,紫外线检测仪UV汞灯LEDUV通用
  19. 亚利桑那州立大学在线计算机硕士录取,亚利桑那州立大学计算机科学(信息保障)理科硕士入学条件及实习就业...
  20. Win10--在右键菜单中添加cmd.exe(在此处打开CMD窗口)

热门文章

  1. 报考计算机类专业有视力限制吗,哪些专业对视力有要求
  2. HTML网页截图工具开发包CutyCapt简介
  3. 华为x2没有鸿蒙,华为正式官宣!Mate X2其实并非重点,真正的“王牌”还在后头...
  4. 打开CHM文件出现错误的解决方法
  5. 对数组中重复的值进行重命名
  6. 顺丰面试,第二个问题把我劝退了!
  7. ant design pro 实现异步下载文件
  8. Python numpy中的hsplit()和vsplit()函数详细解释
  9. sys/type.h
  10. 工具类软件操作手册_【营销类公众号快速涨粉】公众号涨粉的技巧