【深度学习】第一门课 神经网络和深度学习 Week 4 深层神经网络

🚀Write In Front🚀
📝个人主页:令夏二十三
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:深度学习
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊

文章目录

4.1 深层神经网络概述

 4.2 前向传播和反向传播

4.2.1 前向传播

4.2.2 反向传播

 4.5 使用深层表示的原因

4.7 参数和超参数


4.1 深层神经网络概述

深层神经网络,其实就是在浅层神经网络这篇文章中提到的示例的基础上增加隐藏层数量罢了,没有本质的区别:

 4.2 前向传播和反向传播

4.2.1 前向传播

前向传播很简单,就是从左到右的计算罢了,使用向量化计算的话,就是先喂入神经网络第一层的输入值,也就是 A[0] ,一整个训练样本的输入特征,这就是这条链的第一个前向函数的输入,重复这个步骤就可以计算出这个神经网络的前向传播结果了。

4.2.2 反向传播

从右到左,逐步计算导数,这就是反向传播,步骤如下:

下面用智谱总结一下前向传播和反向传播的目的:

神经网络中的前向传播(Forward Propagation)和反向传播(Back Propagation)是训练神经网络的两个关键过程。

前向传播的目的是为了计算神经网络的输出。在监督学习的情况下,给定的输入数据通过神经网络各层的加权运算和非线性激活函数的作用,最终得到预测结果。这一过程是逐层进行的,每层神经元的输出成为下一层的输入,直到最后一层输出结果。前向传播可以理解为神经网络对输入数据的响应过程,它展示了网络在当前权重和偏置参数配置下如何处理信息。

反向传播的目的是为了调整神经网络的参数(即权重和偏置),使得神经网络的预测结果更接近于真实标签。在计算出前向传播的预测结果后,通过比较预测结果和真实结果之间的差异(即损失函数),反向传播算法计算这些差异如何影响网络的每一层参数。基于这些计算,使用梯度下降等优化算法来调整网络参数,目的是减少损失函数的值,提高模型的性能。反向传播是神经网络能够从错误中学习并逐步改进的关键机制。

总结来说,前向传播是神经网络进行预测的过程,而反向传播则是神经网络学习的过程。两者共同作用,使得神经网络能够通过训练数据不断优化自身参数,提高预测的准确性。

 4.5 使用深层表示的原因

深度神经网络之所以通常需要一定深度的层次结构,主要是因为深度结构能够提供以下几个优势:

  1. 特征层次化:深度神经网络能够通过多个隐藏层逐步将输入数据从原始特征转换成更高层次、更抽象的特征表示。每一层都可以学习到不同层次的特征,例如,第一层可能只识别边缘和纹理,而更高层则能识别复杂的对象结构。这种层次化的特征学习是深度学习相比于浅层学习的一个重要优势。

  2. 非线性建模能力:由于每个隐藏层都使用了非线性激活函数,深度神经网络能够建模非常复杂的函数。深度网络可以通过组合多个非线性变换来捕捉输入和输出之间复杂的关系。

  3. 参数共享和泛化:在深度网络中,尤其是在卷积神经网络中,参数是通过在输入数据的多个位置共享来减少模型参数数量的。这种参数共享不仅减少了过拟合的风险,还提高了模型对未见数据的泛化能力。

  4. 层次化的表征:深度网络能够学习到数据的层次化表征,这种表征可以捕捉到数据中的内在结构和分布。这种层次化表征有助于网络在不同的抽象层次上理解和处理信息。

  5. 复杂的决策边界:在分类问题中,深度网络能够学习到非常复杂的决策边界,这对于处理高度重叠的分类问题非常有用。

然而,并不是所有问题都需要非常深的网络。有些问题可能比较简单,使用浅层网络就足够了。深度网络的训练通常需要更多的数据和计算资源,并且可能更难以调试。因此,选择网络的深度需要根据具体问题的复杂性和可用的资源来决定。在实际应用中,通常会通过实验来确定最佳的网络结构。

4.7 参数和超参数

在深度神经网络中,参数和超参数是两个不同的概念:

参数(Parameters): 参数是神经网络模型内部的变量,它们是模型通过训练数据学习到的。参数决定了神经网络如何将输入映射到输出。在监督学习中,这些参数是通过优化过程(如梯度下降)调整的,以便模型能够更好地拟合训练数据。主要的参数包括:

  • 权重(Weights):连接神经网络的每个神经元之间的数值,它们决定了信息在网络中的传递强度。
  • 偏置(Biases):加到每个神经元输出上的常数,它们允许模型输出不为零,即使输入全部为零。

在训练过程中,目标是最小化损失函数,这通常是通过更新权重和偏置来实现的。

超参数(Hyperparameters): 超参数是模型外部的配置参数,它们不是通过训练数据学习到的,而是由研究人员或工程师设置的。超参数决定了模型的架构、学习过程和训练方式。超参数的选择对模型的性能有重要影响,通常需要通过实验和经验来确定。主要的超参数包括:

  • 学习率(Learning Rate):在参数更新过程中,决定参数更新步长的数值。
  • 批量大小(Batch Size):在每次参数更新中使用的数据样本数量。
  • 迭代次数(Number of Epochs):在整个数据集上运行梯度下降的次数。
  • 网络层数(Number of Layers):神经网络中隐藏层的数量。
  • 每层的神经元数量(Number of Neurons per Layer):每个隐藏层中神经元的数量。
  • 激活函数(Activation Functions):用于引入非线性到网络中的函数,如ReLU、Sigmoid或Tanh。
  • 正则化参数(Regularization Parameters):如L1/L2正则化中的惩罚系数,用于防止过拟合。

超参数通常需要通过交叉验证等方式进行调整和优化,以便找到最优的模型配置。与参数不同,超参数的调整不直接涉及损失函数的最小化过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/6144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

临期食品店会员配送商城小程序的作用是什么

临期商品以量大价格低/即时性吸引市场大量客户,很多地区都有门店,行业也不乏连锁/加盟品牌,食品受众广且区域拓展性强,商家可线上销售提升营收和解决线下难题。 商家运用【雨科】平台搭建临期食品店商城小程序,对生意…

PyTorch如何修改模型(魔改)

文章目录 PyTorch如何修改模型(魔改)1.修改模型层(模型框架⭐)1.1通过继承修改模型1.2通过组合修改模型(重点学👀)1.3通过猴子补丁修改模型 2.添加外部输入3.添加额外输出参考 PyTorch如何修改模型(魔改) 对模型缝缝补…

【算法刷题 | 动态规划02】5.02(不同路径、不同路径||、整数拆分、不同的二叉搜索树)

文章目录 5.不同路径5.1题目5.2解法一:深度搜索5.2.1深度搜索思路5.2.2代码实现 5.3解法二:动规5.3.1动规思路5.3.2代码实现 6.不同路径||6.1题目6.2解法:动规6.2.1动规思路(1)dp数组以及下标含义(2&#x…

基于Springboot的交流互动系统

基于SpringbootVue的交流互动系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 帖子信息 聚会信息 后台登录 后台管理首页 用户管理 帖子分类管理 帖子信息…

Python语言零基础入门——文件

目录 一、文件的基本概念 1.文件 2.绝对路径与相对路径 3.打开文件的模式 二、文件的读取 三、文件的追加 四、文件的写入 五、with语句 六、csv文件 1.csv文件的读取 2.csv文件的写入 七、练习题:实现日记本 一、文件的基本概念 1.文件 文件是以计算…

Mysql中索引的概念

索引相关概念 基础概念: 在MySQL中,索引是一种数据结构,用于加快数据库查询的速度和性能。索引可以帮助MySQL快速定位和访问表中的特定数据,就像书籍的索引一样,通过存储指向数据行的指针,可以快速…

ICode国际青少年编程竞赛- Python-1级训练场-路线规划

ICode国际青少年编程竞赛- Python-1级训练场-路线规划 1、 Dev.step(3) Dev.turnLeft() Dev.step(4)2、 Dev.step(3) Dev.turnLeft() Dev.step(3) Dev.step(-6)3、 Dev.step(-2) Dev.step(4) Dev.turnLeft() Dev.step(3)4、 Dev.step(2) Spaceship.step(2) Dev.step(3)5、…

Android手写自己的路由SDK

实现自己的路由框架 ​ 在较大型的Android app中常会用到组件化技术,针对不同的业务/基础功能对模块进行划分,从上到下为壳工程、业务模块、基础模块。其中业务模块依赖基础模块,壳工程依赖业务模块。同级的横向模块(比如多个业务…

软件杯 深度学习的动物识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

MySQL-逻辑架构

1、MySQL服务器处理客户端请求 MySQL是典型的C/S架构,服务端程序使用 mysqld。实现效果:客户端进程像服务端发送(SQL语句),服务器进程处理后再像客户端进程发送 处理结果。 2、connectors 指不同语言中与SQL的交互…

【C++】双指针算法:四数之和

1.题目 2.算法思路 这道题目十分困难,在leetcode上的通过率只有36%,大家要做好心理准备。 在做个题目前强烈建议大家先看看我的上一篇博客:有效三角形个数,看完之后再去leetcode上写一写三数之和,搞懂那两个题目之后…

JavaEE 初阶篇-深入了解 Junit 单元测试框架和 Java 中的反射机制(使用反射做一个简易版框架)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Junit 单元测试框架概述 1.1 使用 Junit 框架进行测试业务代码 1.2 Junit 单元测试框架的常用注解(Junit 4.xxx 版本) 2.0 反射概述 2.1 获…

计算机毕业设计php自行车在线租赁管理系统-vue+mysql

本系统的开发使获取自行车在线租赁管理系统信息能够更加方便快捷,同时也使自行车在线租赁管理系统管理信息变的更加系统化、有序化。系统界面较友好,易于操作。 自行车在线租赁管理系统,主要的模块包括首页、个人中心、用户管理、会员管理、自…

软件系统安全设计(安全保证措施)

软件安全保证措施word 软件所有全套资料获取进主页或者本文末个人名片直接。

C++之set/map相关实现

看着上面的图片,你可能对set和map的多样变化产生疑惑,下面我们就来详细讲解他们的区别以及实现 一.set/map 首先,在这里我们要声明,如果你对二叉搜索树一点都不了解的话,建议你先去将搜索二叉树学会再来学习这里的内…

ArkTS开发原生鸿蒙HarmonyOS短视频应用

HarmonyOS实战课程“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”已经于今日上线至慕课网(https://coding.imooc.com/class/843.html),有致力于鸿蒙生态开发的同学们可以关注一下。 课程简介 本课程以原生鸿蒙Ha…

【Canvas与艺术】新制无底图安布雷拉暗黑系桌面(1920*1080)

【主要变化】 1.去掉底图&#xff0c;改为金丝正六边形组合而成的网格&#xff1b; 2.将安布雷拉标志调暗&#xff1b; 【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html;…

力扣HOT100 - 78. 子集

解题思路&#xff1a; class Solution {public List<List<Integer>> subsets(int[] nums) {List<List<Integer>> lists new ArrayList<>(); // 解集lists.add(new ArrayList<Integer>()); // 首先将空集加入解集中for(int i 0; i < n…

Mac 安装 JDK21 流程

一、下载JDK21 访问Oracle官方网站或选择OpenJDK作为替代品。Oracle JDK从11版本开始是商业的&#xff0c;可能需要支付费用。OpenJDK是一个免费开源选项。 Oracle JDK官方网站&#xff1a;Oracle JDK Downloads OpenJDK官方网站&#xff1a;OpenJDK Downloads 这里以JDK21为…

FP16、BF16、INT8、INT4精度模型加载所需显存以及硬件适配的分析

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…