深度学习:(八)深层神经网络参数与流程

深层神经网络

符号规定

  • 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 ;
  • 隐藏层的单元(节点)数;
  • 激活函数类型。

这些参数需要不断测试,实时评估损失函数(横坐标越大,纵坐标越小)。

相关推荐
茶马古道的搬运工2 分钟前
Qoder 多角色协同开发:用 Custom Agent 搭一条软件生产线
人工智能
xd1855785556 分钟前
睡眠质量评估 —— 鸿蒙AI智能助手开发全流程解析
人工智能·华为·harmonyos·鸿蒙
武汉唯众智创8 分钟前
基于大语言模型的心理咨询数字人:从0到1构建一个能“共情“的AI心理陪伴助手
人工智能·数字人·ai心理健康·校园心理健康解决方案·ai无感监测·具身智能计算技术·智能体通信技术
minhuan11 分钟前
大模型上下文工程核心策略解析:窗口管理、消息编排、记忆压缩与检索增强应用实践21.8
人工智能·大模型应用·大模型上下文工程·上下文窗口管理·上下文消息编排·上下文记忆压缩
love530love18 分钟前
【排障实录】GPT Desktop (Codex) 开启 WSL 智能体模式后无法启动?手把手教你修复
人工智能·windows·gpt·agent
何时梦醒19 分钟前
# ⚛️ React 19 + TypeScript 深度学习笔记 —— 从组件化思维到 WebGPU 端侧 AI 落地(续)
人工智能·react.js
小刘学技术20 分钟前
AI人工智能中的类别不平衡问题:成因、影响与解决方案
开发语言·人工智能·python·机器学习
阿拉雷️20 分钟前
部署实战】Docker + AI Agent:让AI一键部署Spring Boot到服务器,从打包到上线只要一条指令
人工智能·spring boot·docker
饼干哥哥23 分钟前
我用千问3.8跑通了Reddit自动海外获客部门,成本砍 10 倍!
人工智能·开源·创业
武子康29 分钟前
Claude Code 权限分析器为什么必须 Fail Closed:v2.1.214 暴露的 5 类边界 + 6 类不能推出的结论
人工智能·ai编程·claude