302页吴恩达Deeplearning.ai课程笔记,详记基础知识与作业代码

吴恩达的 DeepLearning.ai 已经于 1 月 31 日发布了最后一门课程。近日,来自重庆大学的 Wan Zhen 制作了一份深度学习专项课程笔记,该笔记从神经网络与深度学习基础、提升深度神经网络性能和卷积神经网络三门课程出发详细解释了关键概念与作业代码。本文概括性地介绍了这三课的主要内容,并选择每个课程主题比较有意思的知识点进行介绍。


在这份笔记中,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() 进行了代码实现,并画出了损失函数和梯度的图像。


优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/460299

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。