深度神经网络DNN的理解

这篇具有很好参考价值的文章主要介绍了深度神经网络DNN的理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.从感知机到神经网络

深度神经网络DNN的理解

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

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

深度神经网络DNN的理解

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

深度神经网络DNN的理解

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

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函数)

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

深度神经网络DNN的理解

系数w的定义:

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

深度神经网络DNN的理解

偏置b的定义:

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

深度神经网络DNN的理解

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

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

深度神经网络DNN的理解

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

假设第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 。 

深度神经网络DNN的理解

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激活函数做了实际例子,但是其实这是有问题的。

深度神经网络DNN的理解

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

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

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

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

根据经验,应该两两搭配换着;来试一下,哪个效果好选哪个文章来源地址https://www.toymoban.com/news/detail-407826.html

到了这里,关于深度神经网络DNN的理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习基础知识-感知机+神经网络的学习

    参考书籍:(找不到资源可以后台私信我) 《深度学习入门:基于Python的理论与实现 (斋藤康毅)》 《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition (Aurelien Geron [Géron, Aurélien])》 机器学习和深度学习的区别: Perceptron(感知机) 感知机就是一种接收多种输入信

    2023年04月26日
    浏览(61)
  • 【深度学习_TensorFlow】感知机、全连接层、神经网络

    感知机、全连接层、神经网络是什么意思? 感知机: 是最简单的神经网络结构,可以对线性可分的数据进行分类。 全连接层: 是神经网络中的一种层结构,每个神经元与上一层的所有神经元相连接,实现全连接。 神经网络: 是由大量神经元组成的网络结构,通过层与层之间

    2024年02月14日
    浏览(41)
  • 回归预测 | MATLAB实现WOA-DNN鲸鱼算法优化深度神经网络的数据多输入单输出回归预测

    效果一览 基本介绍 回归预测 | MATLAB实现WOA-DNN鲸鱼算法优化深度神经网络的数据多输入单输出回归预测 MATLAB实现WOA-DNN鲸鱼算法优化深度神经网络的数据多输入单输出回归预测(Matlab完整程序和数据) 输入7个特征,输出1个,即多输入单输出;优化参数为学习率,批大小,正

    2024年02月13日
    浏览(47)
  • 回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测

    效果一览 基本介绍 回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测 MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测(Matlab完整程序和数据) 输入7个特征,输出1个,即多输入单输出; 运行环境Matlab2018及以上,运

    2024年02月12日
    浏览(59)
  • 深度学习之神经网络量化理解

    刚开始接触神经网络,对量化是2年前那会,用NCNN和TVM在树莓派上部署一个简单的SSD网络。那个时候使用的量化脚本是参考于TensorRT和NCNN的PTQ量化(训练后量化)模式,使用交叉熵的方式对模型进行量化,最终在树莓派3B+上部署一个简单的分类模型(识别剪刀石头布静态手势

    2024年02月02日
    浏览(38)
  • 无人驾驶 自动驾驶汽车 环境感知 精准定位 决策与规划 控制与执行 高精地图与车联网V2X 深度神经网络学习 深度强化学习 Apollo

    百度apollo课程 1-5 百度apollo课程 6-8 七月在线 无人驾驶系列知识入门到提高 当今,自动驾驶技术已经成为整个汽车产业的最新发展方向。应用自动驾驶技术可以全面提升汽车驾驶的安全性、舒适性,满足更高层次的市场需求等。自动驾驶技术得益于人工智能技术的应用及推广

    2024年04月27日
    浏览(47)
  • 硬件加速器及其深度神经网络模型的性能指标理解

    现如今,深度神经网络模型和硬件加速器,如GPU、TPU等的关系可谓是“不分彼此”,随着模型参数的增加,硬件加速器成为了训练、推理深度神经网络不可或缺的一个工具,而近年来硬件加速器的发展也得益于加速人工智能模型的训练和推理。作为在人工智能领域最重要的两

    2024年02月05日
    浏览(46)
  • DNN(全连接神经网络)

    DNN网络一般分为三层 1.输入层 2.隐藏层 3.输出层 简单网络如下: 从第二层开始,每一个神经元都会获得它上一层所有神经元的结果。即每一个 y = wx + b的值。 具体分析如下: 如此下去就会非常可能出现了一个问题------就是越靠后的神经元获得的y值会非常大,试想一下,如果

    2023年04月12日
    浏览(37)
  • 【深度学习】神经网络中 Batch 和 Epoch 之间的区别是什么?我们该如何理解?

    随机梯度下降(Stochastic Gradient Descent,SGD)是一种优化算法,用于在机器学习和深度学习中更新模型参数,以最小化损失函数。与传统的梯度下降算法不同,SGD在每次参数更新时只使用一个样本(或一小批样本),而不是使用整个训练数据集。这使得SGD具有更快的收敛速度,

    2024年02月10日
    浏览(42)
  • 【让我们深度理解语音识别:Siri与Alexa如何运用深度学习和循环神经网络将声音转化为文字

    语音识别技术是近年来人工智能领域的重要研究对象,它的出现大大改善了人与机器的交互方式,增强了人们生活的便捷度。今天,我将带领大家深度了解语音识别技术的内部运作原理,以及语音助手如Siri和Alexa如何运用这些先进技术,实现从声音到文字的转化。在探讨技术

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包