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

未经允许,不得擅自改动和转载

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

  • hidden layer Neural Network

3.1 神经网络概览

Neutral Network

3.2 神经网络表示

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

3.3 计算神经网络的输出

gengrate 生成
compute 计算
matrix 矩阵

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

3.4 多个例子中的向量化

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

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

3.5 向量化实现的解释

image.png

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

image.png

3.6 激活函数(activation function)

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

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

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

image.png

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

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

image.png

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

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

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

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

说一下几个激活函数

  • sigmoid
    除非用在二元分类的输出层,不然绝对不要用,或者几乎从来不会用

  • 最常用的默认激活函数ReLU,不确定用哪个,就用这个,或者带泄露的ReLU(max(0.01z, z))

image.png

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

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

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


    image.png

3.8 激活函数的导数

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

image.png
image.png
image.png
image.png

3.9 神经网络的梯度下降法

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

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

  • 正向传播 4个方程
  • 反向传播 6个方程
image.png

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

3.11 随机初始化

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容