=================第2周 神经网络基础===============

===4.1  深层神经网络===

  Although for any given problem it might be hard to predict in advance exactly how deep a neural network you would want,so it would be reasonable to try logistic regression,try one and then two hidden layers,and view the number of hidden layers as another hyper parameter。我们用上标 [ ] 表示层数。

===4.2  深层网络中的前向传播===

===4.3  核对矩阵的维数===
   非常仔细和系统化地去思考矩阵的维数是一个减少bug的好方法。变量导数的维度应该和变量自身维度一致,特别注意向量化时,m个样本同时输入时,对各层的Z和A的导数维度依然包含m个样本,但是它们对各层的W和b的导数维度依然和W,b本身一样,m个样本对它们的导数要集合起来哦!
     
 
===4.4  为什么使用深层表示===
   深层神经网络可以实现 simple to complex hierarchical representation or compositional representation,例如对图像,对语音。
 
  另外一个关于神经网络为何有效的理论来源于电路理论,which pertains to thinking about what types of functions you can compute with different and gates and or gates。如果不适用多层而只是用一层解决ppt中的异或问题,那么隐层神经元的个数是指数增加的(每个神经元代表x1-xn的所有二进制情况中的一种,如10010)。我希望这能让你有点概念,意识到有很多数学函数用深度网络计算比浅网络要容易得多。我个人觉得电路理论不是那么直观,但人们在解释深度为什么好时还是会经常提到。

  说真心话,其实深度学习这个名字挺唬人的,本来就叫多隐层的神经网络,包装了一下后顿时高大上,激发了大众的想象力。但是当我开始解决一个新问题时,我通常会从logistic回归开始,再试试一到两个隐层,把层数作为调参参数找到合适的深度。但是近几年以来,there has been a trend toward people finding that for some applications very very deep neural networks can sometimes be the best model for a problem。
 
===4.5  搭建深层神经网络块===
   Cache z,因为缓存的z^[l]对以后的正向反向传播的步骤非常有用。ppt中的图示很清晰,希望你在实际的编程练习中有更深的体会。

===4.6  前向和反向传播===
   I didn't explicitly put that (a^[l]) in the cache, where it turns out you need this as well(PS:个人感觉这方面课程讲得很抽象,到底要缓存什么?自己动手实现以下吧!亲自实现一下肯定就清楚了,另外之前说缓存 z,那么再加个激活函数不就也相当于缓存了 a吗^_^)。注意符号 * 代表  逐元素相乘。另外,看到ppt中向量化的 dW 式子里有个 1/m 吗?就像前面4.3节提示你要注意的,哈哈:)。
   
 
  注意Summary的ppt中dA的计算,这是以最后一层为Logistic回归为例子的,注意dA的大小!m个样本中的每一个是对应一个导数的,而不是融合在一起!我的建议还是,做做编程作业,你会觉得神清气爽。虽然我必须要说 ,即使现在我在实现一个算法,有时我也会惊讶,怎么莫名其妙就成功了。那是因为机器学习里的复杂性是来源于数据本身,而不是一行行的代码。所有有时候,you implement a few lines of code not quite sure what it did,but it almost magically work. And it's because of all the magic is actually not in the piece of code you write. 即使是我有时当算法works时也会有点惊讶,because lots of complexity of your learning algorithm comes from the data rather than the code。
 
 
===4.7 参数 VS 超参数===
   what I've seen is that first I've seen researchers from one discipline try to go to a different one and sometimes the intuitions about hyper parameters carries over (可以推广), and sometimes it doesn't. 所以我经常建议人们,特别是刚开始应用于新问题的时候,to just try out a range of values and see what works。在课程Part.2,we'll see some systematic ways for trying out a range of values all right.
  其次,even if you're working on one application for a long time, as you make progress on the problem, it is quite possible there the best value for the learning rate or number of hidden units and so on might change. So even if you tune your system to the best value of hyper parameters today, if possible you find that the best value might change a year from now. Maybe because the computer infrastructure, CPUs or the type of GPU running on or something has changed.
  所以有一条经验规律, you know every now and then maybe every few months if you're working on a problem for an extended period of time for many years, just try a few values for the hyper parameters and double check (勤于检查) if there's a better value for the hyper parameters. And as you do, 相信你慢慢会获得设定最适合你问题的超参数的直觉。
  这也是深度学习让人不满的一部分原因,你必须尝试很多次不同可能性,深度学习的这个领域还在发展,也许过段时间后会有更好的调参指导建议出来。But it's also possible that because CPUs and GPUs and networks and datasets are all changing, and it is possible that the guidance won't to converge for some time and you just need to keep trying out different values and evaluate them on a hold out cross-validation set or something and pick the value that works for your problems.
 
 
===4.8  这和大脑有什么关系====
   我觉得关联不大。我认为至今为止甚至连神经科学家们都很难解释究竟一个神经元在做什么,一个小小的神经元其实却是极其复杂的,以至于我们无法在神经科学的角度描述清楚。这种类比已经逐渐过时了,我自己尽量不会这么说。
 

 
 

Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 4. 深层神经网络)的更多相关文章

  1. 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第四周:深层神经网络(Deep Neural Networks)-课程笔记

    第四周:深层神经网络(Deep Neural Networks) 4.1 深层神经网络(Deep L-layer neural network) 有一些函数,只有非常深的神经网络能学会,而更浅的模型则 ...

  2. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 1. 深度学习概论)

     =================第1周 循环序列模型=============== ===1.1 欢迎来到深度学习工程师微专业=== 我希望可以培养成千上万的人使用人工智能,去解决真实世界的实际问 ...

  3. 百度首席科学家 Andrew Ng谈深度学习的挑战和未来(转载)

    转载:http://www.csdn.net/article/2014-07-10/2820600 人工智能被认为是下一个互联网大事件,当下,谷歌.微软.百度等知名的高科技公司争相投入资源,占领深度学 ...

  4. 《Andrew Ng深度学习》笔记1

    深度学习概论 1.什么是神经网络? 2.用神经网络来监督学习 3.为什么神经网络会火起来? 1.什么是神经网络? 深度学习指的是训练神经网络.通俗的话,就是通过对数据的分析与计算发现自变量与因变量的映 ...

  5. 《Andrew Ng深度学习》笔记4

    浅层神经网络 1.激活函数 在神经网络中,激活函数有很多种,常用的有sigmoid()函数,tanh()函数,ReLu函数(修正单元函数),泄露ReLu(泄露修正单元函数).它们的图形如下: sigm ...

  6. 《Andrew Ng深度学习》笔记5

    深层神经网络 深层神经网络的组成如图,这里主要是深层神经网络符号的定义. 为什么要用深层神经网络,有什么好处?这里主要是分层的思想.在软件工程中,如果问题遇到困难,一般是通过“加多”一层的方法来解决, ...

  7. 《Andrew Ng深度学习》笔记3

    浅层神经网络 初步了解了神经网络是如何构成的,输入+隐藏层+输出层.一般从输入层计算为层0,在真正计算神经网络的层数时不算输入层.隐藏层实际就是一些算法封装成的黑盒子.在对神经网络训练的时候,就是对神 ...

  8. 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第一周测验【中英】

    [吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第一周测验[中英] 第一周测验 - 深度学习简介 和“AI是新电力”相类似的说法是什么? [  ]AI为我们的家庭和办公室的个人设备供电 ...

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

    介绍 DeepLearning课程总共五大章节,该系列笔记将按照课程安排进行记录. 另外第一章的前两周的课程在之前的Andrew Ng机器学习课程笔记(博客园)&Andrew Ng机器学习课程 ...

随机推荐

  1. 剑指Offer之变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路:由于青蛙每次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级,故除了 ...

  2. Java——MVC模式

    MVC:Model View Controller 一般用于动态程序设计,实现了业务逻辑和表示层分离 Model:掌控数据源-->程序员编写程序或者实现算法,数据库人员进行数据库操作等:响应用户 ...

  3. HomeLede 2020.5.27更新 UPnP+NAS+多拨+网盘+DNS优化+帕斯沃/Clash 无缝集成+软件包

    交流群:QQ 1030484865 电报 t.me/t_homelede   固件说明 基于Lede OpenWrt R2020.5.20版本(源码截止2020.5.27)及若干自行维护的软件包 结合 ...

  4. Unity 游戏框架搭建 2019 (五十、五十一) 消息机制小结&MonoBehaviourSimplify 是框架?

    我们花了 5 篇文章学习了消息机制的方方面面.并且完成了一个简易消息机制,之后集成到了我们的 MonoBehaviourSimplify 里. 现在 MonoBehaviourSimplify 有一点 ...

  5. [COCOS2DX-LUA]0-005.cocos2dx中关于全面屏和折叠屏的适配的一些见解

    1.随着科技的发展,我们可以看到从iphoneX的刘海屏开始,引发了各种全面屏和异形屏的出现.这是科技的进步,但是对于各大的应用厂商来说,苦不堪言. 2.当然 ,吐槽归吐槽,我们还是要理智的去对待这个 ...

  6. Java集合(九)哈希冲突及解决哈希冲突的4种方式

    Java集合(九)哈希冲突及解决哈希冲突的4种方式 一.哈希冲突 (一).产生的原因 哈希是通过对数据进行再压缩,提高效率的一种解决方法.但由于通过哈希函数产生的哈希值是有限的,而数据可能比较多,导致 ...

  7. 学习Pytorch遇到的一些问题(一)

    基本介绍 这周开始学习深度学习的部分知识,参考的书是<动手学深度学习>(PyTorch版),在操作过程中遇到一些小问题,记录一下问题和解决办法. PyTorch下载过慢 安装步骤 PyTo ...

  8. Rocket - tilelink - SRAM

    https://mp.weixin.qq.com/s/-z9n6SHyAiK2OE7mOSvC2Q   简单介绍SRAM的实现.   ​​   1. 基本介绍   实现一个支持读写的静态存储器.存取的 ...

  9. jchdl - GSL实例 - MulC2(有符号数的乘法)

      这里的实现,先把符号位取出来,使用两个正数相乘,然后在把符号加到乘积上.   参考链接 https://github.com/wjcdx/jchdl/blob/master/src/org/jch ...

  10. Blender如何设置中文界面

    废话不多说,上图 bingo!!