=================第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. 2.Linux系统之硬盘与分区基础知识

    我们是在虚拟机上安装的Linux系统.在安装的过程中,可能会遇到磁盘分区的问题,我们下面简单介绍一下分区的原理. 1.硬盘的基础知识 下面是一块空白的硬盘: 这是一块格式化后的硬盘: 格式化就是,在空 ...

  2. Java IO(十一) DataInputStream 和 DataOutputStream

    Java IO(十一) DataInputStream 和 DataOutputStream 一.介绍 DataInputStream 和 DataOutputStream 是数据字节流,分别继承自 ...

  3. Nessus静态ip配置及内网扫描

    环境ubuntu虚拟机,以前linux配置ip都是从/etc/network/interfaces这里面更改,现在要在/etc/netplan下面配置. vim /etc/netplan/01-net ...

  4. 记一次使用windbg排查内存泄漏的过程

    一.背景 近期有一个项目在运行当中出现一些问题,程序顺利启动,但是观察一阵子后发现内存使用总量在很缓慢地升高, 虽然偶尔还会往下降一些,但是总体还是不断上升:内存运行6个小时候从33M上升到80M: ...

  5. Redis 入门到分布式 (七)Redis复制的原理与优化

    一.目录 Redis复制的原理与优化 什么是主从复制 全量复制和部分复制 复制的配置 故障处理 开发运维常见问题 二. 什么是主从复制 1.单机有什么问题? 单机如果机器故障,那么久无法及时提供服务: ...

  6. (Java实现) 装载问题

    2.装载问题 [问题描述] 有一批共n个集装箱要装上艘载重量为c的轮船,其中集装箱i的重量为wi.找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装上轮船. [ ...

  7. Java实现 LeetCode 142 环形链表 II(二)

    142. 环形链表 II 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始 ...

  8. Java实现二分图的最大匹配

    1 问题描述 何为二分图的最大匹配问题? 引用自百度百科: 首先得说明一下何为匹配: 给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是一个匹配. 极大匹 ...

  9. Java实现判断单联通(强连通缩点+拓扑排序)Going from u to v or from v to u

    Description In order to make their sons brave, Jiajia and Wind take them to a big cave. The cave has ...

  10. java实现第四届蓝桥杯三部排序

    三部排序 题目描述 一般的排序有许多经典算法,如快速排序.希尔排序等. 但实际应用时,经常会或多或少有一些特殊的要求.我们没必要套用那些经典算法,可以根据实际情况建立更好的解法. 比如,对一个整型数组 ...