=================第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. [ES6系列-01]Class:面向对象的“新仇旧恨”

    [原创]CoderPower 大家好,这里是码路工人有力量,我是码路工人,你们是力量. 这是公众号(码路工人有力量)开通后的第二篇,写得还是有待改进吧.这次准备写一个关于ES6基础的短文系列,努力尽快 ...

  2. [工具推荐]004.EXE签名工具SignTool使用教程

    数字证书,真是个神奇的东西,可以保证软件不被修改,可以表明文件的发布日期,最重要的,可以很大程度的减少杀毒软件的误报,当然,这就要使用可信任的机构颁发的证书了. 现在要说的不是申请证书,而是如何制作自 ...

  3. 获取元素节点的子节点 & 获取文本节点

    1. 获取元素节点的子节点(**只有元素节点才有子节点):              ①. childNodes 属性获取全部的子节点, 但该方法不实用. 因为如果要获取指定的节点          ...

  4. 设计Person类 代码参考

    #include <iostream> using namespace std; class Trapezium { private: int x1,y1,x2,y2,x3,y3,x4,y ...

  5. 如何利用 Python 爬虫实现给微信群发新闻早报?(详细)

    1. 场景 经常有小伙伴在交流群问我,每天的早报新闻是怎么获取的? 其实,早期使用的方案,是利用爬虫获取到一些新闻网站的标题,然后做了一些简单的数据清洗,最后利用 itchat 发送到指定的社群中. ...

  6. Python基础知识思维导图

    看不清的可以右键保存到本地,或者在新标签页中打开图片

  7. ASP.NET Core WebAPI实现本地化(单资源文件)

    在Startup ConfigureServices 注册本地化所需要的服务AddLocalization和 Configure<RequestLocalizationOptions> p ...

  8. jQuery-操作元素的内容,属性,样式

    1.操作内容 获取: 双标签:html() input:val() 设置: 双标签:html('新内容') input:val('新内容') 2.操作属性 * 获取:attr('属性名') * 设置: ...

  9. Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics)部分(A~E)题解

    (A) Even Subset Sum Problem 题解:因为n非常非常小,直接暴力枚举所有区间即可. #include<bits/stdc++.h> using namespace ...

  10. python常见面试题讲解(十三)字串的连接最长路径查找

    输入描述: 输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母. 输出描述: 数据输出n行,输出结果为按照字典序排列的字符串. 示例1 ...