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

深层神经网络

符号规定

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

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

相关推荐
IT_陈寒13 分钟前
JavaScript数组排序踩的坑,差点让我加班到凌晨
前端·人工智能·后端
敢敢是只喵i17 分钟前
一个本地 AI Agent 要操作多个门店或 SaaS 账号,应该怎样安全切换身份?
人工智能·安全·ai·系统架构·业界资讯
wangchunyu11418 分钟前
Aider介绍和安装说明
人工智能
SpaceAIGlobal28 分钟前
AI做PPT 工具哪个好:先搞懂原理,再按 3 个维度挑对那一个(2026)
人工智能·powerpoint
β添砖java41 分钟前
深度学习28RNN循环神经网络
人工智能·深度学习
2301_818474441 小时前
福建中小微企业云 ERP 落地实践:轻量化信息化项目实施指南
大数据·人工智能
咕泡科技1 小时前
咕泡科技×创业酵母俞头私享会:AI时代,组织如何长出“破局力”?
大数据·人工智能·科技
啊阿狸不会拉杆1 小时前
《自然语言处理:基于大语言模型的方法》第1章 绪论 读书笔记
人工智能·自然语言处理·nlp·easyui·智能体
我是大AI1 小时前
实战解析:基于多源交叉验证的AI幻觉治理架构与GEO行业解决方
人工智能·架构
LTD营销SaaS1 小时前
22站点智能成功申请“AI 创建业务型网站”发明专利
人工智能·ai建站·站点智能·22集团·ai创建业务型网站