资源链接:https://pan.baidu.com/s/1oAqpmUe 提取密码(已失落效)

302页吴恩达Deeplearning.ai课程笔记详记根本常识与功课代码_神经收集_函数 科技快讯

在这份条记中,Wan Zhen 不仅先容了每个课程的关键知识点,同时还详细阐明了各课程的编程作业。
在第一门课程《神经网络与深度学习根本》中,该课程条记不仅供应了最根本的 Python 和 NumPy 操作条记,同时还从最根本的 Logistic 回归推导到最一样平常的深度全连接网络。
当然,还先容了必要的丢失函数与反向传播方法。
而在第二门课程中,该条记详细记录了提升深度网络性能所须要的技巧与根本,例如初始化、正则化和梯度考验等在实践上大大提升模型性能的方法,以及一样平常 SGD、动量法温柔应性学习率方法等常见的最优化方法。
末了,第二门课程重点先容了 TensorFlow,包括该框架的常用函数和实际构建网络的过程等。
末了一章节紧张记录了卷积神经网络,包括基本的卷积运算、残差网络和目标检测框架等。

以下是该课程条记的简要框架与一些详细的知识点。

1. 神经网络与深度学习

这一部分对应的是吴恩达深度学习课程的第一课,紧张先容必要的编程措辞和编程工具,并逐步进阶先容线性网络、非线性网络、隐蔽层网络到深度网络的实现方法,细节详尽,附有完全的代码。
通过这一部分的学习,你将理解神经网络的构造和数据流(前向传播和反向传播),非线性激活函数和隐蔽层对学习繁芜函数的浸染,并知道如何一步步构建完全的(任意构造的、自定义的)神经网络,体会向量化和模块化编程思想的妙处。

1.1 Python 根本和 Numpy

本章第一节先容了如何利用 Python 的 Numpy 工具包、iPython Notebook 等基本的编程工具。
然后先容如何用这些工具构建神经网络,特殊是理解神经网络打算的向量化思想和 Python 广播的利用。

1.2 logistic 回归

第 2 节先容如何构建一个准确率为 70% 的 logistic 回归神经网络分类器(图像识别网络)来识别猫,并先容如何进一步将准确率提高的方法,以及丢失函数的偏导数更新参数的过程。
个中特殊强调了只管即便用向量化构造而不要用循环构造,除非有必要(比如 epoch 的迭代就必须利用循环构造)。

1.2.1 先容必要的 Python 工具包;1.2.2 先容数据集的构造;1.2.3 先容全体学习算法的宏不雅观架构;1.2.4 先容构建算法的基本步骤;1.2.5 和 1.2.6 总结前述内容进行代码实现,并进行了可视化剖析;1.2.7 先容如何用自己的数据集演习该神经网络;1.2.8 展示了 logistic 回归神经网络的完全代码。

个中 1.2.4 先容的构建算法的基本步骤为:

定义模型构造;

初始化模型参数;

循环迭代构造:

打算当前丢失函数值(前向传播)

打算当前梯度值(反向传播)

更新参数(梯度低落)

常日 1—3 部分是分开构建的,然后整合到一个函数 model() 中。

1.2.5 对 model() 进行了代码实现,并画出了丢失函数和梯度的图像。

图 1.2.3:丢失函数

图 1.2.4:三种不同学习率的学习曲线比拟

1.3 用隐蔽层分类平面数据点

第 3 节先容如何在神经网络中添加隐蔽层以对平面数据点进行分类,本节将教你理解反向传播的事情过程、隐蔽层对捕捉非线性关系的浸染,以及构建赞助函数的方法。

重点内容包括:用单个隐蔽层实现二分类器;利用非线性激活函数;打算交叉熵丢失;实现前向和反向传播。

1.3.1 先容必要的工具包;1.3.2 先容数据集的构成(平面上的红点和蓝点);1.3.3 先容无隐蔽层的 logistic 回归对该数据集的分类结果;1.3.4 先容添加了隐蔽层的完全模型的实现过程和对该数据集的分类;1.3.5 展示了完全代码。

个中 1.3.3 的分类结果如下图所示:

图 1.3.3:logistic 回归

1.3.4 中利用的神经网络的架构:

图 1.3.4:神经网络模型

1.3.4 构建神经网络的方法和 1.2.4 基本相同,重点强调了如何定义隐蔽层构造和非线性激活函数的利用,实当代码后,得到的运行结果为:

图 1.3.6:有隐蔽层分类器的决策边界

个中,添加了隐蔽层之后,必须利用非线性激活函数,由于不该用非线性激活函数的线性层堆叠是无意义的,无法增大模型的繁芜度和容量。

1.4 一步步构建完全的深度神经网络

第 4 节先容深度神经网络的完全架构,以及如何构建自定义的模型。
完成这部分后,你将学会:利用 ReLU 激活函数提升模型的性能、构建更深的模型(隐蔽层数大于 1),以及实现易用的神经网络(模块化思想)。

1.4.1 先容必要的工具包;1.4.2 先容任务概述;1.4.3 先容从 2 层网络到 L 层网络的初始化过程;1.4.4 先容前向传播模块的构建,从线性前向传播、线性+非线性激活前向传播,再到 L 层网络的前向传播;1.4.5 先容丢失函数;1.4.6 先容反向传播模块的构建,从线性反向传播、线性+非线性激活反向传播,再到 L 层网络的反向传播;1.4.7 展示了深度神经网络的完全代码。

图 1.4.1:任务概述

图 1.4.3:前向传播和反向传播的线性—ReLU—线性—sigmoid 的过程图示。
上方表示前向传播,下方表示反向传播。

1.5 深度神经网络的图像分类运用

通过前面四节的学习,你已学会如何一步一步构建完全的深度神经网络。
第 5 节先容如何用深度神经网络构建猫识别分类器。
此前在 logistic 回归网络中,识别准确率只能达到 68%,而在完全的深度网络中,识别准确率能达到 80%!

完本钱节后,你将学会:用前面先容的所有赞助函数构建任意构造的神经网络;试验不同构造的神经网络,并进行剖析;理解构建赞助函数对构建网络的好处(比拟从零开始)。

1.5.1 先容必要的工具包;1.5.2 先容数据集(猫 vs. 非猫);1.5.3 先容模型架构,个中分别构建了 2 层和 L 层的神经网络;1.5.4 先容 2 层神经网络的演习和测试结果;1.5.5 先容 2 层神经网络的演习和测试结果;1.5.6 对结果进行剖析;1.5.7 先容如何用你自己的图像演习分类模型;1.5.8 展示了完全代码。

个中,2 层神经网络的运行结果:

图 1.5.4:2 层神经网络的丢失函数

运行结果:

图 1.5.5:L 层神经网络的丢失函数

运行结果:

通过比较可知,更深的网络有助于提高识别准确率(0.72 vs. 0.8;2 层 vs. 5 层)。

1.5.6 大略总结了影响识别缺点的成分:

猫涌如今非常规的位置;

猫的颜色和背景相似;

非常规的猫毛色和品种;

拍摄角度;

照片的亮度;

猫的占图比例太小或太大。

这些识别缺点可能跟全连接网络自身的局限性有关,包括参数共享、过拟合方向(参数数量)和层级特色方面,而这些问题将在卷积神经网络里得到改进。