深度学习:(八)深层神经网络参数与流程
深层神经网络
符号规定
- L L L :表示神经网络的层数;
- l l l :表示第几层;
- n [ l ] n^{[~l~]} n[ l ] :表示第 l l l 层的节点数;
- a [ l ] a^{[~l~]} a[ l ] :表示第 l l l 层中的激活函数(泛指);
- a [ l ] = g [ l ] ( z [ l ] ) a^{[~l~]}=g^{[~l~]}(z^{[~l~]}) a[ l ]=g[ l ](z[ l ]) :表示第 l l l 层中的激活函数(泛指);
- W [ l ] W^{[~l~]} W[ l ] :表示第 l l l 层的参数 w w w 的集合;
- b [ l ] b^{[~l~]} b[ l ] :表示第 l l l 层的参数 b b b 的集合。
前向传播和反向传播都类似之前的笔记。
流程图

前向传播有输入数据 x x x ,反向传播的输入数据是 d a [ L ] da^{[~L~]} da[ L ] ,即输出层(第 L L L 层)的输出,在向量化代码中,直接展示出来的结果是损失函数 L ( y ^ , y ) L(\widehat{y},y) L(y ,y) ,
因为 d a [ L ] = − y a + 1 − y 1 − a da^{[~L~]}=-\frac{y}{a}+\frac{1-y}{1-a} da[ L ]=−ay+1−a1−y ,而 L ( y ^ , y ) L(\widehat{y},y) L(y ,y) 对 y ^ \widehat{y} y ( a a a)的导数,正好等于这个结果。因此将损失函数对 y ^ \widehat{y} y ( a a a)求导,可得出 d a [ L ] da^{[~L~]} da[ L ] ,然后代入反向传播链的输入,开始迭代,如上图所示。
向量化时 d a [ L ] da^{[~L~]} da[ L ] 需改为 d A [ L ] dA^{[~L~]} dA[ L ] , d A [ L ] = ( d a [ 1 ] , d a [ 2 ] , . . . , d a [ m ] ) dA^{[~L~]}=(da^{[~1~]},da^{[~2~]},...,da^{[~m~]}) dA[ L ]=(da[ 1 ],da[ 2 ],...,da[ m ]) 。
为何 z [ l ] z^{[~l~]} z[ l ]是反向传播的一个输入参数
∵ a [ l ] = σ ( z [ l ] ) = σ ( W [ l ] a [ l − 1 ] + b [ l ] ) ∵ d L d a [ l − 1 ] = d L d a [ l ] ⋅ d a [ l ] d a [ l − 1 ] = d a [ l ] ⋅ σ ′ ( W [ l ] a [ l − 1 ] + b [ l ] ) W [ l ] ⋅ d a [ l − 1 ] ∴ d a [ l − 1 ] = d a [ l ] ⋅ σ ′ ( z [ l ] ) W [ l ] ⋅ d a [ l − 1 ] \begin{align*} ∵a^{[~l~]}=\sigma&(z^{[~l~]})=\sigma(W^{[~l~]}a^{[~l-1~]}+b^{[~l~]})\\ ∵\frac{dL}{da^{[~l-1~]}}&=\frac{dL}{da^{[~l~]}}·\frac{da^{[~l~]}}{da^{[~l-1~]}}\\ &=da^{[~l~]}·\sigma^{'}(W^{[~l~]}a^{[~l-1~]}+b^{[~l~]})W^{[~l~]}·da^{[~l-1~]}\\ ∴da^{[~l-1~]}&=da^{[~l~]}·\sigma^{'}(z^{[~l~]})W^{[~l~]}·da^{[~l-1~]} \end{align*} ∵a[ l ]=σ∵da[ l−1 ]dL∴da[ l−1 ](z[ l ])=σ(W[ l ]a[ l−1 ]+b[ l ])=da[ l ]dL⋅da[ l−1 ]da[ l ]=da[ l ]⋅σ′(W[ l ]a[ l−1 ]+b[ l ])W[ l ]⋅da[ l−1 ]=da[ l ]⋅σ′(z[ l ])W[ l ]⋅da[ l−1 ]
核对矩阵的维度
向量化前的单个样本
-
前向传播:
W [ l ] W^{[~l~]} W[ l ] :维度为 ( n [ l ] , n [ l − 1 ] ) (n^{[~l~]},n^{[~l-1~]}) (n[ l ],n[ l−1 ]) ;
z [ l ] z^{[~l~]} z[ l ] :维度为 ( n [ l ] , 1 ) (n^{[~l~]},1) (n[ l ],1) ;
a [ l ] a^{[~l~]} a[ l ] :维度为 ( n [ l ] , 1 ) (n^{[~l~]},1) (n[ l ],1) ;
b [ l ] b^{[~l~]} b[ l ] :维度为 ( n [ l ] , 1 ) (n^{[~l~]},1) (n[ l ],1) 。
-
反向传播:
d W [ l ] dW^{[~l~]} dW[ l ] 和 W [ l ] W^{[~l~]} W[ l ] 同维度;
d b [ l ] db^{[~l~]} db[ l ] 和 b [ l ] b^{[~l~]} b[ l ] 同维度。
向量化后的整个训练集
-
前向传播:
X ( A [ 0 ] ) X(A^{[~0~]}) X(A[ 0 ]) :维度为 ( n [ 0 ] , m ) (n^{[~0~]},m) (n[ 0 ],m) ;
W [ l ] W^{[~l~]} W[ l ] :维度为 ( n [ l ] , n [ l − 1 ] ) (n^{[~l~]},n^{[~l-1~]}) (n[ l ],n[ l−1 ]) ;
b [ l ] b^{[~l~]} b[ l ] :维度为 ( n [ l ] , 1 ) (n^{[~l~]},1) (n[ l ],1) ;# 要广播
Z [ l ] Z^{[~l~]} Z[ l ] :维度为 ( n [ l ] , m ) (n^{[~l~]},m) (n[ l ],m) ;
A [ l ] A^{[~l~]} A[ l ] :维度为 ( n [ l ] , m ) (n^{[~l~]},m) (n[ l ],m) 。
-
反向传播:
d W [ l ] dW^{[~l~]} dW[ l ] 和 W [ l ] W^{[~l~]} W[ l ] 同维度;
d b [ l ] db^{[~l~]} db[ l ] 和 b [ l ] b^{[~l~]} b[ l ] 同维度;
d Z [ l ] dZ^{[~l~]} dZ[ l ] 和 Z [ l ] Z^{[~l~]} Z[ l ] 同维度;
d A [ l ] dA^{[~l~]} dA[ l ] 和 A [ l ] A^{[~l~]} A[ l ] 同维度。
超参数:
能控制参数 w w w 和 b b b 的参数,需人为设置。
- 学习率 α \alpha α ;
- 梯度下降法循环次数;
- 隐层数 L L L ;
- 隐藏层的单元(节点)数;
- 激活函数类型。
这些参数需要不断测试,实时评估损失函数(横坐标越大,纵坐标越小)。
相关文章:
深度学习:(八)深层神经网络参数与流程
深层神经网络 符号规定 L L L :表示神经网络的层数; l l l :表示第几层; n [ l ] n^{[~l~]} n[ l ] :表示第 l l l 层的节点数; a [ l ] a^{[~l~]} a[ l ] :表示第 l l l 层中的激活函数&…...
`pattern = r“(\d+)(CNY|JPY|HKD|EUR|GBP|fen|cents|sen|eurocents|pence)“
pattern r"(\d)(CNY|JPY|HKD|EUR|GBP|fen|cents|sen|eurocents|pence)" 是一个正则表达式,用于匹配特定格式的字符串。 正则表达式解析 整体结构: r"...":前缀 r 表示这是一个原始字符串(Raw String&#x…...
宝塔面板部署雷池社区版教程
宝塔面板部署雷池社区版教程 简单介绍一下宝塔面板,安全高效的服务器运维面板,使用宝塔面板的人非常多 在网站管理上,许多用户都是通过宝塔面板进行管理,宝塔面板的Nginx默认监听端口为80和443,这就导致共存部署时雷池…...
【击败100%】258. 各位相加
首次出现,代码用时击败了100%的用户,开心~ 题目 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 示例 1: 输入: num 38 输出: 2 解释: 各位相加的过程为: 38 --> 3 8 -->…...
【alist】宝塔面板docker里的alist默认admin无法登录
宝塔docker安装完alist,根据页面的提示账号密码死活登录不上,提示密码有问题 页面提示: 数据存储目录 /www/dk_project/dk_app/dk_alist 使用说明请参考: >使用教程 默认账号密码(admin/admin) 首次登录后点击个人…...
【击败100%】1281. 整数的各位积和之差
击败了100%的用户,开心~ 题目 给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。 示例 1: 输入:n 234 输出:15 解释: 各位数之积 2 * 3 * 4 24 各位数之和 2 3 4 …...
Flink基本概念和算子使用
基础概念 Flink是一个框架和分布式处理引擎,用于对无界数据流和有界数据流进行有状态计算,它的核心目标是“数据流上的有状态计算”。 有界流和无界流 有界流:具有明确的开始和结束时间,数据量有限。适合使用批处理技术…...
Kafka 3.0.0集群部署教程
1、集群规划 主机名 ip地址 node.id process.roles kafka1 192.168.0.29 1 broker,controller Kafka2 192.168.0.30 2 broker,controller Kafka3 192.168.0.31 3 broker,controller 2、将kafka包上传以上节点/app目录下 mkdir /app 3、解压kafka包 所有节点 …...
昇思MindSpore进阶教程-格式转换
大家好,我是刘明,明志科技创始人,华为昇思MindSpore布道师。 技术上主攻前端开发、鸿蒙开发和AI算法研究。 努力为大家带来持续的技术分享,如果你也喜欢我的文章,就点个关注吧 MindSpore中可以把用于训练网络模型的数据…...
搜索软件 Everything 的安装与使用教程
一、Everything简介 适用于 Windows 的免费搜索工具 Everything 是 Windows 的即时搜索引擎。发现、整理并轻松访问文件和文件夹,一切尽在指尖! PS:Everything无法对文件内容进行搜索,只能根据文件名和路径进行搜索 二、Everyt…...
oracle 如何判断当前时间在27号到当月月底
在Oracle中,您可以使用TRUNC和LAST_DAY函数来判断当前时间是否在27号到当月月底之间。以下是一个SQL示例: SELECT CASE WHEN TRUNC(SYSDATE) > TRUNC(SYSDATE, DD) 26 AND TRUNC(SYSDATE) < LAST_DAY(SYSDATE) THEN 当前时间在27号到当月月底之间…...
Django 配置邮箱服务,实现发送信息到指定邮箱
一、这里以qq邮箱为例,打开qq邮箱的SMTP服务 二、django项目目录设置setting.py 文件 setting.py 添加如下内容: # 发送邮件相关配置 EMAIL_BACKEND django.core.mail.backends.smtp.EmailBackend EMAIL_USE_TLS True EMAIL_HOST smtp.qq.com EMAIL…...
Git使用手册
1、初识Git 概述:Git 是一个开源的分布式版本控制系统,可以有效、高速地处理项目版本管理。 知识点补充: 版本控制:一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 分布式:每个人…...
sql-labs靶场
第一关(get传参,单引号闭合,有回显,无过滤) ?id-1 union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schemasecurity) -- 第二关(get传参,无闭…...
【Redis入门到精通二】Redis核心数据类型(String,Hash)详解
目录 Redis数据类型 1.String类型 (1)常见命令 (2)内部编码 2.Hash类型 (1)常见命令 (2)内部编码 Redis数据类型 查阅Redis官方文档可知,Redis提供给用户的核心数据…...
如何快速免费搭建自己的Docker私有镜像源来解决Docker无法拉取镜像的问题(搭建私有镜像源解决群晖Docker获取注册表失败的问题)
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Docker无法拉取镜像 📒📒 解决方案 📒🔖 方法一:免费快速搭建自己的Docker镜像源🎈 部署🎈 使用🔖 备用方案⚓️ 相关链接 🚓️📖 介绍 📖 在当前的网络环境下,Docker镜像的拉取问题屡见不鲜(各类Nas查询…...
QT 获取视频帧Opencv获取清晰度
先展示结果: 1.获取摄像头的分辨率 mResSize.clear();mResSize camera_->supportedViewfinderResolutions();ui->comboBox_resulation->clear();int i0;foreach (QSize msize, mResSize) {qDebug()<<msize;ui->comboBox_resulation->addItem(…...
生成式AI如何辅助医药行业智能营销
生成式AI在医药行业的智能营销中发挥着日益重要的作用,它通过多种方式辅助医药企业提升市场洞察能力、优化营销策略、增强客户互动和体验,从而推动销售增长和品牌价值的提升。以下是生成式AI如何辅助医药行业智能营销的具体方式:一、精准市场…...
演示:基于WPF的DrawingVisual开发的Chart图表和表格绘制
一、目的:基于WPF的DrawingVisual开发的Chart图表和表格绘制 二、预览 钻井井轨迹表格数据演示示例(应用Table布局,模拟井轨迹深度的绘制) 饼图表格数据演示示例(应用Table布局,模拟多个饼状图组合显示&am…...
汽车保养BBBBBBBBBBB
小保养就是机油和机滤,4s店比较贵,可以在京东上买机油,可以包安装 极护、磁护 两款机油配方不同,极护系列机油注入液钛配方,拥有特别的油膜自适应能力,在各种形式条件下均能有效减少金属间的直接接触&…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...
密码学基础——SM4算法
博客主页:christine-rr-CSDN博客 专栏主页:密码学 📌 【今日更新】📌 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 编辑…...
高效的后台管理系统——可进行二次开发
随着互联网技术的迅猛发展,企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心,成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统,它不仅支持跨平台应用,还能提供丰富…...
