DNN(全连接神经网络)

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

一.  

DNN网络一般分为三层

1.输入层

2.隐藏层

3.输出层

简单网络如下:

DNN(全连接神经网络)

 二.前向传播

从第二层开始,每一个神经元都会获得它上一层所有神经元的结果。即每一个 y = wx + b的值。

具体分析如下:

DNN(全连接神经网络)

如此下去就会非常可能出现了一个问题------就是越靠后的神经元获得的y值会非常大,试想一下,如果这个数远远大于它前面神经元的值,前面神经元对整个网络的表达就显得毫无意义。所以我们在每创建一层网络时就要多“y”进行一次约束。

我们有很多选择,但最好的方法就是运用Sigmoid函数。它可以将每层网络中的神经元全部控制在0-1之间。

DNN(全连接神经网络)

我们到最后输出层每个神经元就可以获得一个y值。

利用tensorflow所构建网络的代码如下:

model = Sequential([
    layers.Dense(256, activation=tf.nn.sigmoid),
    layers.Dense(128, activation=tf.nn.sigmoid),
    layers.Dense(64, activation=tf.nn.sigmoid),
    layers.Dense(32, activation=tf.nn.sigmoid),
    layers.Dense(10)
])

三.反向传播(数据一层层传播来,我们就一层层给它们每个反馈)

写到这里,我觉的我们可以先返回到我们出发点,我们为什么想要搭建一个网络,我相信大部分人的出发点就是想要网络对未知物体进行预测。反向传播所做的就是让每一个神经元都拥有一个w,h值。这样我们在传进一个新的数据时,我们可以将他准确的预测。
                                Here we go!!!!!

训练的目的是希望神经网络的输出和真实数据的输出"一样",但是在"一样"之前,模型输出和真实数据都是存在一定的差异,我们把这个"差异"作这样的一个参数ee代表误差的意思,那么模型输出加上误差之后就等于真实标签了,作:y=wx+b+e。我们把每次的失误都加起来。为了防止e值的正负抵消。我们取其平方值。这样我们就可以获得一个损失函数。如下:

                           ​​​​​  DNN(全连接神经网络)

我们将损失函数(Loss)展开:

DNN(全连接神经网络)

 根据展开式作图:

                ​​   DNN(全连接神经网络)

 损失值顾名思义,它就是误差,我们肯定希望它越小越好,所以我们接下来想做的就是取得的新w值与b值使随时函数取得的值越小越好。专家们名其曰:梯度下降

数学公式如下:

DNN(全连接神经网络)

我们可以利用此公式延申到我们计算w,b上

 写出总式子:DNN(全连接神经网络)      ​​​​​​​        ​​​​​​​        

 带入loss函数:DNN(全连接神经网络)

 利用复合函数:

DNN(全连接神经网络)

 最终可以获得:

DNN(全连接神经网络)

这样我们就可以获得一个线性关系:

DNN(全连接神经网络)

DNN(全连接神经网络)

 利用这种链式传播,我们就可以更新我们的每个神经元。

 利用tensorFlow所实现的反向传播如下:

 logits = model(x)
                y_onehot = tf.one_hot(y, depth=10)
                # 两种计算误差函数的方法
                loss = tf.reduce_mean(tf.losses.MSE(y_onehot, logits))
                loss2 = tf.losses.categorical_crossentropy(y_onehot, logits, from_logits=True)
                loss2 = tf.reduce_mean(loss2)
                loss_meter.update_state(loss)

            # 分别对w, b求偏导
            grads = tape.gradient(loss2, model.trainable_variables)
            # 将所有参数进行原地更新。即w‘ = w - lr*grad
            optimizer.apply_gradients(zip(grads, model.trainable_variables))

 五:总结

全连接网络可以经过大量数据的训练之后,对一个未知事物进行预测。是深度学习的基础。如有不足之处,还望指正。文章有所参考,但仅为少数公理。文章来源地址https://www.toymoban.com/news/detail-411589.html

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

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

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

相关文章

  • 什么是全连接神经网络?

    解释全连接神经网络之前我们首先需要了解什么是神经网络?   人工神经网络(Artificial Neural Network, ANN)简称神经网络,可以对一组输入信号和一组输出信号之间的关系进行模拟,是机器学习和认知科学领域中一种模仿生物神经网络的结构和功能的数学模型。用于对函数进

    2024年02月10日
    浏览(39)
  • 【卷积神经网络】卷积,池化,全连接

    随着计算机硬件的升级与性能的提高,运算量已不再是阻碍深度学习发展的难题。卷积神经网络(Convolution Neural Network,CNN)是深度学习中一项代表性的工作,CNN 是受人脑对图像的理解过程启发而提出的模型,其雏形是 1998 年 LeCun 提出的 LeNet-5 模型。如今,卷积神经网络已被

    2024年02月12日
    浏览(38)
  • 全连接神经网络:分类与回归示例

    创建测试数据 定义数据集(torch.utils.data.Dataset) 定义数据集一般是创建一个class继承torch.utils.data.Dataset,在这个class里面要定义三个函数,分别是init、len、getitem。init一般用于数据集的初始化,预处理等操作;len函数要输出这个数据集有多少条数据,按理来说我们这个测试数

    2024年02月16日
    浏览(50)
  • 神经网络--从0开始搭建全连接网络和CNN网络

    前言: Hello大家好,我是Dream。 今天来学习一下如何从0开始搭建全连接网络和CNN网络,并通过实验简单对比一下两种神经网络的不同之处,本文目录较长,可以根据需要自动选取要看的内容~ 说明:在此试验下,我们使用的是使用tf2.x版本,在jupyter环境下完成 在本文中,我们

    2024年02月19日
    浏览(38)
  • 【人工智能】— 深度神经网络、卷积神经网络(CNN)、多卷积核、全连接、池化

    Pre-training + Fine-tuning Pre-training(预训练) : 监督逐层训练是多隐层网络训练的有效手段, 每次训练一层隐层结点, 训练时将上一层隐层结点的输出作为输入, 而本层隐结点的输出作为下一层隐结点的输入, 这称为”预训练”. Fine-tuning(微调) : 在预训练全部完成后, 再对整个网络进行

    2024年02月10日
    浏览(48)
  • 研习深度神经网络DNN

    上图是一个感知机模型,有若干个输入和一个输出(输出的结果只可以是1或-1) 输入和输出有一个线性关系: 神经元激活函数:(二分类)  由于这个简单的感知机只可以进行二分类,则对于感知机进行升级,升级如下: 1)加入隐藏层,从而增加模型的表达能力,同时也增

    2024年02月01日
    浏览(41)
  • 深度神经网络DNN的理解

    上图是一个感知机模型,有若干个输入和一个输出(输出的结果只可以是1或-1) 输入和输出有一个线性关系: 神经元激活函数:(二分类)  由于这个简单的感知机只可以进行二分类,则对于感知机进行升级,升级如下: 1)加入隐藏层,从而增加模型的表达能力,同时也增

    2023年04月09日
    浏览(42)
  • [全连接神经网络]Transformer代餐,用MLP构建图像处理网络

            使用纯MLP处理图像信息,其原理类似vit,将图片进行分块(patch)后展平(fallten),然后输入到MLP中。理论上MLP等价于1x1卷积,但实际上1x1卷积 仅能结合通道信息 而不能结合空间信息。根据结合的信息不同分为channel-mixing MLPs和token-mixing MLPs。        总体结构如下图

    2024年01月21日
    浏览(47)
  • 人工智能:CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的知识梳理

    卷积神经网络(CNN),也被称为ConvNets或Convolutional Neural Networks,是一种深度学习神经网络架构,主要用于处理和分析具有网格状结构的数据,特别是图像和视频数据。CNN 在计算机视觉任务中表现出色,因为它们能够有效地捕获和识别图像中的特征,具有平移不变性(transla

    2024年02月05日
    浏览(68)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包