吴恩达-神经网络和深度学习( 第三周 浅层神经网络:)

学习使用前向传播和反向传播搭建出有一个隐藏层的神经网络。

  • hidden layer Neural Network

###3.1 神经网络概览

###3.2 神经网络表示

  • 双层神经网络(只有一个隐藏层,单隐层神经网络)
  • 输入层-四个隐藏层单元-输出层
  • 双层神经网络。不把输入层看做一个标准的层
  • 这里的隐藏层有两个相关的参数w和b,使用上标[1]表示这些参数,w是4x3矩阵,b是4x1向量(4代表有四个节点或者隐藏单元,3来自于3个输入特征)
  • 输出层也有相关的参数w^[2] (1x4,隐藏层有四个隐藏单元,输出层只有一个单元),b^[2]【1x1】

###3.3 计算神经网络的输出

gengrate 生成 compute 计算 matrix 矩阵

  • 神经网络只不过是计算这些步骤很多次

###3.4 多个例子中的向量化

训练样本横向堆叠构成矩阵X

  • m个训练样本
  • 用激活函数来表示这些式子a^[2](i)【i是训练样本i,2指的是第二层】
  • 一个for循环遍历所有的m训练样本
  • 向量化

###3.5 向量化实现的解释

这就是对不同训练样本向量化的神经网络,接下来,我们目前为止我们一直都是用sigmoid函数

###3.6 激活函数(activation function)

如何使用不同种类的激活函数,simoid只是其中的一个可能选择

  • 为了搭建神经网络,可以选择的是选择隐层里用哪个激活函数,还有神经网络的输出单元用什么激活函数 有一个函数总比sigmoid函数表现好,那就是a=tanh(z)(双曲正切函数), 函数介于+1和-1之间,意味着激活函数的平均值更接近0

但 二分分类是,输出层最好用sigmoid,因为y输出介于0-1更合理

不过,sigmoid和tanh函数都有一个缺点,如果z非常大,或非常小,函数的斜率很接近0,这样会拖慢梯度下降算法

修正线性单元(ReLU)就派上用场了(z为正,斜率为1,为负,斜率为0)

在选择激活函数时有一些经验法则

  • 如果你的输出值是0或1,如果你在做二元分类,那么sigmoid很适合作为输出层的激活函数,然后其他所有单元都用ReUL。 如果你不确定隐层应该用哪个,那就用ReUL作为激活函数

还有个带泄露的ReUL(z小于0是有一个缓缓的斜率,)通常比ReUL激活函数好,不过实际中使用的频率没那么高

在实践中使用ReUL激活函数,学习速度通常会快得多,比使用tanh或sigmoid激活函数快得多,因为ReUL没有函数斜率接近0时,减慢学习速度的学习速度的效应

说一下几个激活函数

  • sigmoid 除非用在二元分类的输出层,不然绝对不要用,或者几乎从来不会用
  • 最常用的默认激活函数ReLU,不确定用哪个,就用这个,或者带泄露的ReLU(max(0.01z, z))

###3.7 为什么需要非线性激活函数(nonlinear activation function)?

如果用线性激活函数(linear activation function)或者叫做恒等激活函数,那么神经网络只是把输入线性组合再输出, 无论你的神经网络多少层,一直在做的只是计算线性激活函数,和没有任何的标准Logistic回归是一样的,因为两个线性函数组合的本身就是线性函数,除非你引用非线性,

  • 只有一个地方可以使用线性激活函数g(z) = z,就是你要机器学习的是回归问题,所以y是一个实数,
  • 线性激活函数不可能用在隐藏层(除压缩),要用,也是用在输出层,

###3.8 激活函数的导数

接下来讨论梯度下降的基础,如何估计,如何计算单个激活函数的导数,斜率,

###3.9 神经网络的梯度下降法 梯度下降算法的具体实现,如何处理单隐层神经网络, 提供所需的方程,来实现反向传播,或者说梯度下降算法,

keepdims = true(确保python输出的是矩阵)

  • 正向传播 4个方程
  • 反向传播 6个方程

###3.10 (选修)直观理解反向传播

###3.11 随机初始化

当你训练神经网络时,随机初始化权重非常重要,对于logistic回归,可以将权重初始化为零, 但如果将神经网络各参数数组初始化为0,再使用梯度下降算法(gredient descent),那会完全失效

因为我们需要两个不同的隐藏单元,去计算不同的函数,这个问题的解决方案是随机初始化所有参数,

  • 可以令W^[1] = np.random,randn, 这可以产生参数为(2, 2)的高斯分布随机变量,然后你再乘以一个很小的数字【因为通常喜欢把权重矩阵初始化非常小的随机数】,所有你将权重初始化很小的随机数,
  • 如果训练单隐层神经网络时,没有太多的隐藏层,设为0.01还可以,但当训练一个很深的神经网络时,可能要试试0.01以外的常数,
  • 把b初始化0是可以的

所以,在这周的视频里,你知道如何设立单隐层神经网络,初始化参数,并用正向传播计算预测值,还有计算导数,然后使用梯度下降,反向传播

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏书山有路勤为径

卷积神经网络-目标检测

其中,bx、by表示汽车中点,bh、bw分别表示定位框的高和宽。以图片左上角为(0,0),以右下角为(1,1),这些数字均为位置或长度所在图片的比例大小。

14410
来自专栏我的python

自然语言处理之文本卷积

自然语言处理之文本卷积 1.文本的向量表示 2.文本的1维卷积 3.池化

380160
来自专栏ATYUN订阅号

新手,你需要了解的关于神经网络的所有知识

这篇文章将带你了解什么是人工智能,机器学习和深度学习。 ? 神经元(Node)  – 它是神经网络的基本单位。它获得一定数量的输入和一个偏置值。当信号(值)到...

39470
来自专栏绿巨人专栏

神经网络学习笔记 - 激活函数的作用、定义和微分证明

379130
来自专栏CSDN技术头条

卷积神经网络CNN

本文学习笔记的部分内容参考zouxy09的博客,谢谢! http://blog.csdn.net/zouxy09/article/details/8775360...

31670
来自专栏书山有路勤为径

Advanced CNN Architectures(R-CNN系列)

除了将该图像标记为猫外,还需要定位图中的猫,典型方法是在该猫周围画一个边界框,这个方框可以看做定义该方框的一系列坐标,(x,y) 可以是方框的中心w 和 h 分...

9520
来自专栏图像识别与深度学习

2018-04-21 语义分割Semantic segmentation

448100
来自专栏计算机视觉战队

干货——线性分类(上)

图像分类的任务,就是从已有的固定分类标签集合中选择一个并分配给一张图像。我们还介绍了k-Nearest Neighbor (k-NN)分类器,该分类器的基本思想...

13920
来自专栏深度学习之tensorflow实战篇

随机森林基本原理

基础内容: 这里只是准备简单谈谈基础的内容,主要参考一下别人的文章,对于随机森林与GBDT,有两个地方比较重要,首先是information gain,其次是决...

35890
来自专栏CVer

一文读懂卷积神经网络中的1x1卷积核

1. 卷积核(convolutional kernel):可以看作对某个局部的加权求和;它是对应局部感知,它的原理是在观察某个物体时我们既不能观察每个像素也不能...

45730

扫码关注云+社区

领取腾讯云代金券