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

深层神经网络

符号规定

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

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

相关推荐
benbenAItalk12 小时前
真人克隆数字人的素材与成品视频生成:还原度和批量稳定性怎么控?
人工智能·科技·音视频
nanawinona12 小时前
搜索“2026年量化开发”时,先看规则是否足够清楚
人工智能·python
johnsong12 小时前
GPT-6 Astra 的能力数字与对齐声明:哪些能信
人工智能·语言模型
qq_2147826112 小时前
再见Visio,再见draw.io,又一个画图Skill
人工智能·机器学习·draw.io
倔强的石头10612 小时前
【深度学习】词嵌入技术_从Word2Vec到现代Embedding
人工智能·深度学习·机器学习
明月_清风12 小时前
用自然语言控制 Blender:开源项目 Blender MCP 深度介绍
人工智能·后端
鲁邦通物联网12 小时前
机器人梯控如何区分电梯门全开与半开状态
人工智能·机器人·机器人梯控·agv梯控·机器人乘梯·机器人自主乘梯·agv机器人梯控
matlab代码12 小时前
基于matlab模板匹配的手写体数字识别【源码78期】
人工智能·计算机视觉
智购无人售货机厂家12 小时前
2026自动售货机品类拓展逻辑:从饮料零食到鲜食药品文创的工程实践~YH
服务器·人工智能·单片机·线性代数·矩阵
泡茶喝茶写代码12 小时前
量化数据开发实战系列(第 25 篇):基金基础接口实战:基金列表、ETF-LOF 分类、基金概况、净值数据
java·数据库·人工智能·python·mysql