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

深层神经网络

符号规定

  • 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 分钟前
吉快科技荣膺“金边奖·最佳大模型一体机”,引领AI边缘新时代
人工智能·科技
电子海鸥4 分钟前
迁移学习--fasttext概述
人工智能·机器学习·迁移学习
因_果_律4 分钟前
亚马逊云科技 re:Invent 2024重磅发布!Amazon Bedrock Data Automation 预览版震撼登场
大数据·人工智能·科技·亚马逊云科技·re invent
小陈phd4 分钟前
深度学习之超分辨率算法——SRCNN
python·深度学习·tensorflow·卷积
dwjf32115 分钟前
机器学习(三)-多项式线性回归
人工智能·机器学习·线性回归
葡萄爱21 分钟前
OpenCV图像分割
人工智能·opencv·计算机视觉
www_3dyz_com1 小时前
人工智能在VR展览中扮演什么角色?
人工智能·vr
刘不二1 小时前
大模型应用—HivisionIDPhotos 证件照在线制作!支持离线、换装、美颜等
人工智能·开源
feilieren1 小时前
AI 视频:初识 Pika 2.0,基本使用攻略
人工智能·ai视频
开放知识图谱2 小时前
论文浅尝 | HippoRAG:神经生物学启发的大语言模型的长期记忆(Neurips2024)
人工智能·语言模型·自然语言处理