=================第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. solr学习(笔记) windows10+jdk1.8+tomcat8环境部署

    一:准备环境 1.1 »tomcat8.5下载地址:https://tomcat.apache.org/download-80.cgi 1.2 solr各版本下载地址:http://archive.a ...

  2. 剑指Offer之调整数组顺序使奇数位于偶数前面

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变.   思路:将奇数放进 ...

  3. git简单的使用步骤

    Git介绍 Git是分布式版本控制系统 集中式VS分布式,SVN VS Git 1)SVN和Git主要的区别在于历史版本维护的位置 2)这两个工具主要的区别在于历史版本维护的位置Git本地仓库包含代码 ...

  4. [PHP插件教程]002.代码包PHP Beautifier的使用

    This program reformat and beautify PHP source code files automatically. The program is Open Source a ...

  5. 【Android】SDK的配置

    1:Android Studio 下载   安装后创建项目 2:  打开settings 3:下载后,配置SDK 4:下载jdk1.8.0_74.rar 解压   加入环境变量 5:下载夜神模拟器,加 ...

  6. Rocket - diplomacy - enumerateBits

    https://mp.weixin.qq.com/s/KsZqe9W_DM6W6JecK_irvA   介绍AddressSet.enumerateBits方法的实现,主要是x & (-x)的 ...

  7. Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)

    745. 前缀和后缀搜索 给定多个 words,words[i] 的权重为 i . 设计一个类 WordFilter 实现函数WordFilter.f(String prefix, String su ...

  8. (Java实现) 昆虫繁殖

    昆虫繁殖 时间限制: 1 Sec 内存限制: 128 MB 提交: 25 解决: 16 [提交][状态][讨论版][命题人:quanxing] 题目描述 科学家在热带森林中发现了一种特殊的昆虫,这种昆 ...

  9. Java实现 蓝桥杯VIP 算法训练 简单加法

    时间限制:1.0s 内存限制:512.0MB 问题描述 首先给出简单加法算式的定义: 如果有一个算式(i)+(i+1)+(i+2),(i>=0),在计算的过程中,没有任何一个数位出现了进位,则称 ...

  10. Android中如何使用单选对话框

    给Button设置OnClick事件设置 int id=0; final String [] s={"单选A","单选B","单选C",&q ...