作者: 大树先生
博客: http://blog.csdn.net/koala_tree
GitHub:https://github.com/KoalaTree
2017 年 09 月 25 日
以下为在Coursera上吴恩达老师的DeepLearning.ai课程项目中,第一部分《神经网络和深度学习》第四周课程“深层神经网络”部分关键点的笔记。笔记并不包含全部小视频课程的记录,如需学习笔记中舍弃的内容请至 Coursera 或者 网易云课堂。同时在阅读以下笔记之前,强烈建议先学习吴恩达老师的视频课程。
同时我在知乎上开设了关于机器学习深度学习的专栏收录下面的笔记,方便在移动端的学习。欢迎关注我的知乎:大树先生。一起学习一起进步呀!_
神经网络和深度学习—深层神经网络
1. 矩阵的维度
DNN结构示意图如图所示:
对于第 l l l层神经网络,单个样本其各个参数的矩阵维度为:
- W [ l ] W^{[l]} W[l]: ( n [ l ] , n [ l − 1 ] ) (n^{[l]},n^{[l-1]}) (n[l],n[l−1])
- b [ l ] b^{[l]} b[l]: ( n [ l ] , 1 ) (n^{[l]},1) (n[l],1)
- d W [ l ] dW^{[l]} dW[l]: ( n [ l ] , n [ l − 1 ] ) (n^{[l]},n^{[l-1]}) (n[l],n[l−1])
- d b [ l ] db^{[l]} db[l]: ( n [ l ] , 1 ) (n^{[l]},1) (n[l],1)
- Z [ l ] Z^{[l]} Z[l]: ( n [ l ] , 1 ) (n^{[l]},1) (n[l],1)
- A [ l ] = Z [ l ] A^{[l]}=Z^{[l]} A[l]=Z[l]: ( n [ l ] , 1 ) (n^{[l]},1) (n[l],1)
2. 为什么使用深层表示
人脸识别和语音识别:
对于人脸识别,神经网络的第一层从原始图片中提取人脸的轮廓和边缘,每个神经元学习到不同边缘的信息;网络的第二层将第一层学得的边缘信息组合起来,形成人脸的一些局部的特征,例如眼睛、嘴巴等;后面的几层逐步将上一层的特征组合起来,形成人脸的模样。随着神经网络层数的增加,特征也从原来的边缘逐步扩展为人脸的整体,由整体到局部,由简单到复杂。层数越多,那么模型学习的效果也就越精确。
对于语音识别,第一层神经网络可以学习到语言发音的一些音调,后面更深层次的网络可以检测到基本的音素,再到单词信息,逐渐加深可以学到短语、句子。
所以从上面的两个例子可以看出随着神经网络的深度加深,模型能学习到更加复杂的问题,功能也更加强大。
电路逻辑计算:
假定计算异或逻辑输出:
y = x 1 ⊕ x 2 ⊕ x 3 ⊕ ⋯ ⊕ x n y=x_{1}\oplus x_{2}\oplus x_{3}\oplus \cdots\oplus x_{n} y=x1⊕x2⊕x3<