=================第3周 浅层神经网络===============

===3..1  神经网络概览===
===3.2  神经网络表示===
===3.3  计算神经网络的输出===
  方括号代表层数。
 
===3.4  多个例子中的向量化===
===3.5  向量化实现的解释===
   方括号值的是层数,括号代表样本编号。ppt中显示的,不同row代表某一层的hidden unit,不同列代表各个样本,挺形象的呀,有趣。
 
===3.6  激活函数===
  tanh几乎各方面都比sigmoid好,此时激活函数的平均值就更接近0,这实际上让下一层的学习更方便一点,我们会在下一周详细讨论原因。我几乎不用 σ 激活函数了,一个例外是在输出层。这两个激活函数都有一个缺点,就是z太大或太小时梯度会变很接近0,这将导致学习速度很慢。今天大多数人用的都是Relu,虽然有时人们也会用tanh。Relu的一个缺点是负数部分导数0,但实际证明这并没有什么大问题。Relu is increasingly the default choice of activation function so if you're not sure what to use for your hidden layer,我就用ReLU作为激活函数。Leaky Relu中负轴部分的斜率通常是0.01,也可以把它设成学习算法的另一个参数,有人说这样效果更好,但我很少见到有人这么做。通常比 Relu更好,不过实际中使用的频率没那么高,随便选一个 is ok,如果只能选一个我会选Relu。 
 
 
 
===3.7  为什么需要非线性激活函数?===
  如果你使用线性激活函数,或者如果没有使用激活函数,那么无论你的神经网络有多少层,那么无论你的神经网络有多少层 ,always doing is just computing a linear activation function。下面ppt左上角,你要是在第一个隐层不加非线性激活,在第2层用sigmod函数,那么这就相当于简单的Logisti回归,我懒得证明了。要点在于,线性隐层一点用都没有,因为两个线性函数的组合本身就是线性函数。除非你做回归问题,那么输出层可以线性,其他隐层几乎都不会使用。
 
===3.8  激活函数的导数====

  sigmoid/tanh求导公式的优点在于,如果你已经计算出a值了,那么用这个式子就可以很快算出g(z)的斜率。

 
 
  Relu和Leaky Relu的零点的导数无论归到哪部分都是可以的。

===3.9  神经网络的梯度下降法==
  单隐层神经网络的反向传播,假设二分类任务,损失函数使用Log损失。加上开关keepdims 就是防止python直接输出这些古怪的rank 1 arrays。运算符 *  代表逐元素相乘。
  好好体会呗,尤其向量化之后求导 dZ,dW时要注意维度匹配、逐项乘还是矩阵乘、1/m等。
  
 
===3.10  (选修)直观理解反向传播===
  这是我在机器学习领域中看到的最难的推导之一(哈哈哈)。
    
 
 
===3.11  随机初始化===
  对于logistic回归 可以将权重初始化为零,但如果将神经网络的各参数数组全部初始化为0,再使用梯度下降算法,那会完全无效。全部同样的初始值对权重进行初始化,会造成隐藏单元的效果完全一样,意味着节点计算完全一样的函数。我们可以通过归纳法证明每次训练迭代之后,两个隐藏单元仍然在计算完全相同的函数。
  随机初始化时通常将权重初始化小一点,以免梯度很小,如果你的神经网络中没有任何sigmoid或者tanh激活函数,那问题可能没那么大 但如果你在做二元分类,你的输出单元是Sigmoid函数,那么你就不希望初始参数太大,所以用0.01是比较合理的,或者任意其他小数字。 

 
 
 
 
 

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

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

    第三周:浅层神经网络(Shallow neural networks) 3.1 神经网络概述(Neural Network Overview) 使用符号$ ^{[

  2. deeplearning.ai 神经网络和深度学习 week3 浅层神经网络 听课笔记

    1. 第i层网络 Z[i] = W[i]A[i-1] + B[i],A[i] = f[i](Z[i]). 其中, W[i]形状是n[i]*n[i-1],n[i]是第i层神经元的数量: A[i-1]是第 ...

  3. deeplearning.ai 神经网络和深度学习 week3 浅层神经网络

    1. 第i层网络 Z[i] = W[i]A[i-1] + B[i],A[i] = f[i](Z[i]). 其中, W[i]形状是n[i]*n[i-1],n[i]是第i层神经元的数量: A[i-1]是第 ...

  4. tensorFlow(四)浅层神经网络

    tensorFlow见基础 实验 MNIST数据集介绍 MNIST是一个手写阿拉伯数字的数据集. 其中包含有60000个已经标注了的训练集,还有10000个用于测试的测试集. 本次实验的任务就是通过手 ...

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

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

  6. [DeeplearningAI笔记]神经网络与深度学习3.2_3.11(激活函数)浅层神经网络

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.2 神经网络表示 对于一个由输入层,隐藏层,输出层三层所组成的神经网络来说,输入层,即输入数据被称为第0层,中间层被称为第1层,输出层被称为 ...

  7. ng-深度学习-课程笔记-4: 浅层神经网络(Week3)

    1 神经网络概览( Neural Networks Overview ) 先来快速过一遍如何实现神经网络. 首先需要输入特征x,参数w和b,计算出z,然后用激活函数计算出a,在神经网络中我们要做多次这 ...

  8. Neural Networks and Deep Learning 课程笔记(第三周)浅层神经网络(Shallow neural networks)

    3.1 神经网络概述(Neural Network Overview ) (神经网络中,我们要反复计算a和z,最终得到最后的loss function) 3.2 神经网络的表示(Neural Netw ...

  9. Tensorflow MNIST浅层神经网络的解释和答复

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51416540 看到之前的一篇博文:深入 ...

随机推荐

  1. php日志监控

    <?php date_default_timezone_set('Asia/Shanghai'); $time = date('Y-m-d H:i:s',time()); //访问时间 $ip ...

  2. ForkJoinPool分支合并框架-工作窃取

    Fork/Join 框架 Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成 若干个小任务(拆到不可再拆时), 再将一个个的小任务运算的结果进行 join 汇总 For ...

  3. C/C++代码优化之求两个整型的平均值

    在 C/C++ 中, 直接利用 (x + y) >> 1 来计算 \(\left\lfloor {\left( {x + y} \right)/2} \right\rfloor\) (两个 ...

  4. Rocket - diplomacy - AddressAdjuster分析

    https://mp.weixin.qq.com/s/UYVSO3XFJmhe5bUD_XbMLg   先介绍如何使用AddressAdjuster,然后分析UI参数的生成及使用.   ​​   1. ...

  5. (Java实现) 洛谷 P1319 压缩技术

    题目描述 设某汉字由N X N的0和1的点阵图案组成,如下图.我们依照以下规则生成压缩码.连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下.第一个数表示连续有几个0 ...

  6. Java实现 LeetCode 374 猜数字大小 II

    375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜 ...

  7. Java实现Fibonacci取余

    Description Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. Input 多 ...

  8. Java实现LeetCode_0027_RemoveElement

    package javaLeetCode.primary; import java.util.Scanner; public class RemoveElement_27 { public stati ...

  9. Java实现第九届蓝桥杯哪天返回

    哪天返回 题目描述 小明被不明势力劫持.后被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文. 他决定在x星战打工.好心的老板答应包食宿,第1天给他1元钱. 并且 ...

  10. Java实现第八届蓝桥杯最大公共子串

    最大公共子串 最大公共子串长度问题就是: 求两个串的所有子串中能够匹配上的最大长度是多少. 比如:"abcdkkk" 和 "baabcdadabc", 可以找到 ...