吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础

神经网络和深度学习——神经网路基础

这一部分由于在机器学习课程中基本上已经学习过了,笔记也就简单罗列一下要点,相信大家都比较熟悉。


2.1 二分分类

该节主要给出一些符号定义,学过机器学习课程后应该比较熟悉。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第1张图片
Python中使用X.shape来显示矩阵维度,还有一点要注意的是这里使用一列表示一个样本,而行数则是特征向量的维度。
(由于时间关系公式基本上就截图了,等到后面重点复杂章节的时候再手敲)

2.2 logistic回归

该节就介绍了一下逻辑回归的预测形式,很基础的内容。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第2张图片
逻辑回归就是要确定参数w和b,这里提到将不使用偏置单元的形式,即把w和b独立开来,注意逻辑回归要使用sigmoid函数,y表示的是预测为1的概率。

2.3 logistic回归损失函数

该节给出逻辑回归的损失函数,以及总体的代价函数(成本函数)。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第3张图片
机器学习课程里都学过了,注意这个总体代价函数(成本函数)的形式,要会写。

2.4 梯度下降法

该节介绍梯度下降法的原理以及在逻辑回归算法上的实现思路。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第4张图片
梯度下降法就是从一点开始不断地往最低点逼近,注意逻辑回归的代价函数是一个凸函数,因此只有一个全局最优值。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第5张图片
注意这个梯度下降的公式,根据斜率正负性每次都会往代价小的方向走,学习率控制每次的步长,如果设置过大则可能走过最低点,代价函数图像上形成一个颠簸。(偏导数的知识就不再赘述)

2.5 导数

该节用一条直线介绍导数,记住用斜率去理解导数就容易得多。

2.6 更多导数的例子

该节用曲线介绍导数,导数=纵轴变化量/横轴变化量。

2.7 计算图

该节介绍了计算图,说白了就是参数替换一步一步计算,最终求得想要的值。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第6张图片

2.8 计算图的导数计算

该节很有价值,传达了一个基本的正向传播、反向传播的思想,以及链式法则求导。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第7张图片
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第8张图片
对每一个中间变量或是原始变量求导,使用链式求导即可,反向传播也就是这个思想。
注意,python中使用 变量名da表示dJ/da的值。

2.9 logistic回归中的梯度下降

该节用上面计算图的方法,反向链式求导求得逻辑回归中参数w和b的偏导数,利用此偏导数则可进行梯度下降。每梯度下降一次,可以用新的参数计算一次代价,观察变化。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第9张图片
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第10张图片
利用微积分中所学求导公式,按照链式法则一步步求得基本参数的导数即可。

2.10 m个样本的梯度下降

上节谈到的是单个样本的梯度下降求法,m个的话只需要把每个样本的梯度累和起来并求平均值。逻辑回归中参数w和b为向量形式,上标(i)放到特征右上角。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第11张图片
用for循环依次计算每个样本参数的偏导数值,然后累和起来取平均值,最后完成一次梯度下降。(注意梯度下降需要迭代多次)

for循环用太多会大大降低程序效率,很多计算都要尽量采用向量化的形式,后面小节开始介绍。

2.11 向量化

该节用python代码分别用向量化(矩阵乘)和非向量化(for循环)方法计算了逻辑回归中的z,显示向量化方法所用时间远低于非向量化。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第12张图片
这里开始涉及到python编程,建议没学过的先把python的基本语法过一遍再往下走。

2.12 向量化的更多例子

该节再次给出了一些向量化的常用内置函数,没有太多可说的。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第13张图片

2.13 向量化logistic回归

该节进一步向量化,将原本对m个样本的for循环累和,改写成矩阵乘的形式,再次简化代码运算。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第14张图片
特征矩阵X维数为n_x * m,一列表示一个样本, w T w^T wT维数为1 * n_x,正好实现矩阵乘法,最后再加上一个1 * m元素全为b的向量则得到Z。(注意python代码具体实现细则)

2.14 向量化logistic回归的梯度输出

这一节内容比较重要,总结了逻辑回归的全过程以及python向量化实现过程。建议在纸上手写推一遍,加深理解。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第15张图片
上一小节已经通过向量化得到了A,通过A和Y可以求得dZ,再由dZ可以得到db和dw,以此求得两个参数的偏导数。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第16张图片
严格按照正向、反向过程一步步求得各个变量,最后需要的是dw和db,以此进行一次梯度下降,最终精简为上图右侧不带for循环的几行代码。(迭代仍需用for循环)

2.15 Python中的广播

python中的广播机制其实就是一个复制机制,目的仍是简化代码,方便用户。该节给的几个例子主要仍是矩阵与向量运算,向量与实数运算时,python会自动将后者复制到同一维度,然后再进行运算。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第17张图片
在这里插入图片描述
该写法为按列求和。

2.16 关于python/numpy向量的说明

该节只说明了一个点,就是在创建向量时,尽量不要使用秩为1的数组,而应创建行向量和列向量,这样在计算操作中才不会出现微妙BUG。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第18张图片

2.17 Jupyter/Ipython笔记本的快速指南

咱们用不上,略。

2.18 (选修)logistic损失函数的解释

该节给出了逻辑回归的损失函数和成本函数的推导过程,也可以自己手推一下加深印象。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第19张图片
首先根据约定归纳出两种情况的概率公式,然后取对数后就得到损失函数的形式。
吴恩达深度学习网课 通俗版笔记——(01.神经网络和深度学习)第二周 神经网络基础_第20张图片
对于成本函数,由联合概率分布可得就是每个样本预测概率的乘积,再根据最大似然估计取对数,即得到成本函数的形式。

你可能感兴趣的:(深度学习网课笔记)