吴恩达DL课程学习笔记——NN & DL(第四周)

第四周——深层神经网络

1、Introduction to DNN

只不过是把之前的单隐含层网络拓展了一下罢了,符号约定基本一致。

2、在DNN中做forward pass

通过for循环逐层计算Z和A,得到模型的输出矩阵。

3、核对矩阵的shape

(1)Z和dZ的shape一致,其他也是。
(2)前向或反向传播,只需确保等号两边的矩阵shape一致即可。

4、为什么使用深层表示

(1)有特征的内部变化,低层次的特征组合得到高层次抽象的特征,做特征的自动抽取。
(2)人脸检测任务:先检测出图像哪里有edge,再进一步检测出哪里有眼鼻嘴等,再进一步检测出哪里有人脸。
(3)感知野在逐步扩大(In CNN)。
(4)如果用浅层网络拟合一个函数,相较于small L-layer DNN,需要指数增长更多的hidden unit。
(5)当解决一个新的问题时,从logistic回归开始,然后尝试浅层网络,再逐步加深,将层数做为一个超参来调整。

5、DNN的building block

(1)参考Chainer DL框架,Linear Link是层(这个class的成员变量W和b是该层的参数),它包装了LinearFunction,要实现Function的forward and backward over cpu and gpu,forward和backward方法使用了模板方法模式。
(2)一个层只做一件事,例如线性层和激活层等,符合OOP的思想。
(3)自定义一个层,只需实现forward and backward pass即可,forward(self, inputs)和backward(self, inputs, grad_outputs),其中inputs和grad_outputs都是ndarray的元组,这两个方法返回的也是tuple of ndarray。

6、前向和反向传播

见基于Chainer的DNN实现代码(见我的Github):(1)实现Linear Link、ReLU Link和Sigmoid Link;(2)通过组合/堆叠这些层构建二分类模型,即Link => Chain;(3)数据驱动,训练得到二分类器。

7、参数 VS 超参

(1)超参,即需要告诉学习算法的东西,包括:学习率、迭代数、多少隐含层、隐含单元数和激活函数等。
(2)应用DL是一个经验性的过程,通过实验确定最佳超参。

8、DL和大脑的关系

目前的DL和大脑没什么关系。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【写在前面】作为一名终身学习实践者,我持之以恒地学习各种深度学习和机器学习的新知识。一个无聊的假日里我突然想到:反...
    数据女侠阅读 4,654评论 25 78
  • 官方所有教程的地址:pytorch.org/tutorials 以下是基于实例来入门pytorch Learnin...
    MiracleJQ阅读 1,839评论 0 4
  • 目录faster rcnn论文备注caffe代码框架简介faster rcnn代码分析后记 faster rcnn...
    db24cc阅读 9,641评论 2 12
  • 幸福六一 童年是快乐的儿歌,童年是鲜艳的花朵。童年是初升的太阳,童年是无畏的拼搏! 在这鲜花盛开的六月,伴着...
    实小王丽波阅读 395评论 0 5
  • 今天是个好日子。老吴你有没有跟着我唱出来。 这一篇呢,写我和你。 相识很长,相知太短。对吴先生的第一印象是我如愿去...
    谢谢侬LLLLL阅读 217评论 0 0