Deep Learning笔记: Course 1, Week 4

Deep Neural Network

本周课程涉及到的知识点有:

  • Deep neural network 的架构
  • Deep neural network 上的正向传播和反向传播
  • Parameters 以及 Hyperparameters的概念

Deep neural network 的架构

终于我们开始进入了深度神经网络的世界。不过如果跟着前面的课程学下来会发现其实这没有什么更多的新知识,只是把单层神经网络扩展到多层而已。下图给出了一个典型的神经网络,有一个输入层,三个隐藏层以及一个输出层。

Deep Neural Network.png

可以看到这个结构和之前一节课学的shallow network 没有什么本质的区别,只是多了几个隐藏层。问题是为何多用加几个隐藏层就可以显著的提高神经网络的性能呢?下图给出了一个例子,比如说我们要做一个人脸识别的应用。那么第一层网络一般会学习一些比较浅显的feature, 例如点,划,边线等等。然后第二层会把第一层的输出结合起来学习一些更加复杂的feature,比如鼻子眼睛的形状。然后第三层可以进一步把这些局部结构组合在一起形成人脸的整体判断。

Intuition of deep neural network

总结一下就是多个隐藏层给予了神经网络从抽象到具体,从细节局部到整体的学习能力。这使得我们无需去深入研究如何构造复杂的feature, 直接采用raw feature往往就能取得很好的性能。

深度神经网络的计算过程也和之前的大同小异,下图给出了一个总结:

Deep neural network的计算

我们首先还是初始化每层的参数 Wb , 然后对每层先进行linear 计算, 随后通过activation function (通常选择ReLU)得到下一层的输入。通过最后一层的activation function为sigmoid函数我们得到一个最终的概率(比如图像是猫的概率)。我们通过把最终的输出和已经标记的ground truth比较得到当前神经网络的 cost 是多少。随后我们通过反向传播更新每层的参数 Wb 来最小化这个cost 。在多次循环之后我们最终收敛得到了一个最优化的 Wb,即可以输出和真实判断最接近的判断结果。

从这个总结可以看出,深度神经网络的关键概括起来还是正向传播计算输出,反向传播更新参数。下面我们来具体看一看这两个过程。

Deep neural network 上的正向传播和反向传播

下面这个草图给出了第L层的正向传播和反向传播的计算。

L层的输入输出计算

注意草图中采用了小写的 az 来代表一个training data, 然而在实际计算中我们通常同时处理 m 个training data,因此用大写的 AZ 来表示。在下面的笔记中我们一律采用大写。

正向传播: 所谓的正向传播也就是拿前一层是输入 A[L-1] (其中 A[0] 即为原始输入数据), 乘以 W[L] 加上 b[L] 得到 Z[L],然后再把 Z[L] 丢到激活函数中计算得到 A[L] 的过程。计算如下所示:

[图片上传失败...(image-2ecb53-1511717398961)]

[图片上传失败...(image-9ada96-1511717398961)]%20=%20g(W{[l]}A{[l-1]}%20+b^{[l]})$)

注意g(*)也就是激活函数,一般Hidden layer我们用ReLU, 而最后的输出层用sigmoid (二元分类)或者softmax(多元分类)

反向传播: 反向传播用来计算最后cost function对每个参数的梯度,也就是 dW[L]db[L] , 为了计算这个我们首先要计算cost function对每层计算出来的 z[L]a[L] 的梯度,计算公式如下所示:

[图片上传失败...(image-69c1c9-1511717398961)]%20\tag{11}$$)

[图片上传失败...(image-6065ef-1511717398961)]

[图片上传失败...(image-c0a874-1511717398961)]

[图片上传失败...(image-6253f3-1511717398961)]}$$)

这个过程咋一看令人非常崩溃,我们来捋一下。

  1. 首先在计算出 A[L] 也就是最后输出之后,我们可以计算得到dA[L] 。如果采取sigmoid function 那么就是 dA[L] = -Y/A[L] - (1-Y)/(1-A[L])
  2. 通过 dA[L]Z[L]计算 dZ[L]
  3. 通过 dZ[L]W[L] 计算 dA[L-1]
  4. 通过 dZ[L]A[L-1] 计算 dW[L]
  5. 通过 dZ[L] 计算 db[L]

注意这个过程中我们其实感兴趣的就是 dW[L]db[L] , 而别的都是一些中间变量。注意加粗的 Z[L], W[L] 和 A[L-1] 都是forward propagation的中间结果。因此我们在计算forward propagation的时候需要把它们缓存下来来计算反向梯度。

下图给出了完整的正向传播和反向传播的流程:

image.png

再次强调一遍,其中 A[0] 对应原始输入,这也就是我们无需再计算 dA[0] 了-毕竟我们的目的是更新 dWdb. 更新公式也就是我们熟悉的gradient descent (底部的绿色公式)。

Parameters 以及 Hyperparameters的概念

所谓的Parameters 指的是每层的 W[L]b[L], 这些参数是神经网络需要去不断更新优化来让最后的prediction结果逼近真实情况的。而Hyperparameters指的则是learning rate, 神经网络的Hidden layer的层数,每层的neuron 的个数等等。这些参数无需更新,然而需要我们初始化,并且往往初始化的结果决定了最后训练出来的Parameters (W[L]b[L])的好坏。因此我们把它们称之为Hyperparameters。

最后,Hyperparameters的设置会对神经网络的结果产生不可估量的影响。因此如何调整合适的hyperparameters也是deep learning里一种非常重要的技能。在下一个系列的课程中,我们会深入看看如何一些让deep learning工作的更好的调整hyperparameters的经验方法。

总结

到这里其实最deep learning的基本原理就已经介绍完了。可以看出其中并没有什么特别玄妙高深的知识,其过程概括起来无非是利用正向传播计算cost,反向传播计算梯度, 以及梯度下降算法来优化网络参数。问题是在于现在还没有一个数学模型来概括在deep learning的过程中到底发生了什么,各个参数到底是如何变化的。因此获得良好的deep learning的性能我们需要不断的尝试各种不同的初始化参数。下面我们会介绍一些实际应用中能让deep learning效果更好的一些技巧以及更复杂的网络结构(CNN & RNN)。

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

推荐阅读更多精彩内容