前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DeepLearning.ai学习笔记(一)神经网络和深度学习--Week4深层神经网络

DeepLearning.ai学习笔记(一)神经网络和深度学习--Week4深层神经网络

作者头像
marsggbo
发布2018-01-23 18:24:07
6000
发布2018-01-23 18:24:07
举报

一、深层神经网络

深层神经网络的符号与浅层的不同,记录如下:

  • 用\(L\)表示层数,该神经网络\(L=4\)
  • \(n^{[l]}\)表示第\(l\)层的神经元的数量,例如\(n^{[1]}=n^{[2]}=5,n^{[3]}=3,n^{[4]}=1\)
  • \(a^{[l]}\)表示第\(l\)层中的激活函数,\(a^{[l]}=g^{[l]}(z^{[l]})\)

二、前向和反向传播

1. 第\(l\)层的前向传播

输入为 \(a^{[l-1]}\) 输出为 \(a^{[l]}\), cache(\(z^{[l]}\))

矢量化表示: \[Z^{[l]}=W^{[l]}·A^{[l-1]}+b^{[l]}\] \[A^{[l]}=g^{[l]}(Z^{[l]})\]

2. 第\(l\)层的反向传播

输入为 \(da^{[l]}\) 输出为 \(da^{[l-1]},dW^{[l]},db^{[l]}\)

计算细节: \[dz^{[l]}=da^{[l]}*g^{[l]'}(z^{[l]})\] \[dw^{[l]}=dz^{[l]}*a^{[l-1]}\] \[db^{[l]}=dz^{[l]}\] \[da^{[l-1]}=w^{[l]^T}·dz^{[l]}\] \[dz^{[l]}=w^{[l+1]^T}dz^{[l+1]}*g^{[l]'}(z^{[l]})\]

矢量化表示: \[dZ^{[l]}=dA^{[l]}*g^{[l]'}(z^{[l]})\] \[dw^{[l]}=\frac{1}{m}dz^{[l]}·A^{[l-1]^T}\] \[db^{[l]}=\frac{1}{m}np.sum(dz^{[l]},axis=1,keepdim=True)\] \[dA^{[l-1]}=w^{[l]^T}·dz^{[l]}\]

3. 总结

前向传播示例

反向传播

更清晰的表示:

三、深层网络中的前向传播

四、核对矩阵的维数

这节的内容主要是告诉我们如何知道自己在设计神经网络模型的时候各个参数的维度是否正确的方法。其实我自己在写代码的时候都得这样做才能有信心继续往下敲键盘,2333。

还是以这个神经网络为例,各层神经网络节点数为\(n^{[0]}=3,n^{[1]}=n^{[2]}=5,n^{[3]}=3,n^{[4]}=1\)。

先确定\(W^{[1]}\)的维度: 已知\(Z^{[1]}=W^{[1]}·X+b^{[1]}\),很容易知道\(Z^{[1]}∈R^{5×1},X∈R^{3×1}\),\(b^{[1]}\)其实不用计算就知道其维度与\(Z\)是相同的,即\(b^{[1]}∈R^{5×1}\)。根据矩阵内积计算公式可以确定\(W^{[1]}∈R^{5×3}\)。 其他层同理,不再赘述。

五、为什么使用深层表示

为什么要使用深层表示?

This is a good question.
This is a good question.

下面就从直观上来理解深层神经网络。

如上图所示是一个人脸识别的过程,具体的实现步骤如下:

  • 1.通过深层神经网络首先会选取一些边缘信息,例如脸形,眼框,总之是一些边框之类的信息(我自己的理解是之所以先找出边缘信息是为了将要观察的事物与周围环境分割开来),这也就是第一层的作用。
  • 2.找到边缘信息后,开始放大,将信息聚合在一起。例如找到眼睛轮廓信息后,通过往上一层汇聚从而得到眼睛的信息;同理通过汇聚脸的轮廓信息得到脸颊信息等等
  • 3.在第二步的基础上将各个局部信息(眼睛、眉毛……)汇聚成一张人脸,最终达到人脸识别的效果。

六、搭建深层神经网络块

上图表示单个神经元的前向和反向传播算法过程。

  • 前向 输入\(a^{[l-1]}\),经过计算\(g^{[l]}(w^{[l]}·a^{[l-1]}+b^{[l]})\)得到\(a^{[l]}\)
  • 反向 计算\(da^{[l]}\),然后反向作为输入,经过一系列微分运算得到\(dw^{[l]},db^{[l]}\)(用来更新权重和偏差),以及上一层的\(da^{[l-1]}\)。

推广到整个深层神经网络就如下图所示:

祭上神图:

七、参数 vs 超参数

  • 参数 常见的参数即为\(W^{[1]},b^{[1]},W^{[2]},b^{[2]}……\)
  • 超参数
    • learning_rate: \(α\)
    • iterations(迭代次数)
    • hidden layer (隐藏层数量\(L\))
    • hidden units (隐藏层神经元数量\(n^{[l]}\))
    • 激活函数的选择
    • minibatch size
    • 几种正则化的方法
    • momentum(动力、动量)后面会提到

八、这和大脑有什么关系

主要就是说神经网络和人的大脑运行机理貌似很相似,blabla。。。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、深层神经网络
  • 二、前向和反向传播
    • 1. 第\(l\)层的前向传播
      • 2. 第\(l\)层的反向传播
        • 3. 总结
        • 三、深层网络中的前向传播
        • 四、核对矩阵的维数
        • 五、为什么使用深层表示
        • 六、搭建深层神经网络块
        • 七、参数 vs 超参数
        • 八、这和大脑有什么关系
        相关产品与服务
        人脸识别
        腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档