神经网络与深度学习-Stanford吴恩达教授-Week2(神经网络基础)

逻辑回归是一个用于二分类(binary classification)的算法。

符号定义 :

逻辑回归的Hypothesis Function(假设函数)

[参考:https://blog.csdn.net/weixin_36815313/article/details/105309095(非常详细)]

Logistic 回归损失函数 (Logistic Regression Cost Function)

为了训练逻辑回归模型的参数 w和参数 b,需要一个代价函数,通过训练代价函数来得到参数 w  和参数 b 。先看一下逻辑回归的输出函数:

区分:损失函数或误差函数(在单个训练样本中定义,衡量了在单个训练样本上的表现),代价函数或成本函数(衡量在全体训练样本上的表现)。

梯度下降法 (Gradient Descent)

由于逻辑回归的代价函数(成本函数) J ( w , b ) 特性,我们必须定义代价函数(成本函数) J ( w , b )  为凸函数。 对于逻辑回归几乎所有的初始化方法都有效,因为函数是凸函数,无论在哪里初始化,应该达到同一点或大致相同的点。

计算图 (Computation Graph)

一个神经网络的计算,都是按照前向或反向传播过程组织的。

计算图的导数计算 (Derivatives with a Computation Graph)

这是一个计算流程图,就是正向或者说从左到右的计算来计算成本函数 J ,你可能需要优化的函数,然后反向从右到左计算导数。

Logistic 回归的梯度下降法 (Logistic Regression Gradient Descent)

我们初始化   J=0,  dw1=0, dw2=0,db=0

    以上只应用了一步梯度下降。因此需要重复以上内容很多次,以应用多次梯度下降。

当应用深度学习算法,会发现在代码中显式地使用for循环使算法很低效,同时在深度学习领域会有越来越大的数据集.

向量化 (Vectorization)

向量化是非常基础的去除代码中for循环的艺术。

下面看一个例子

向量化 Logistic 回归的梯度输出

之前实现的逻辑回归,可以发现,没有向量化是非常低效的。

向量化表示为

现在,利用前五个公式完成了前向和后向传播,也实现了对所有训练样本进行预测和求导,再利用后两个公式,梯度下降更新参数。所以就通过一次迭代实现一次梯度下降,但如果希望多次迭代进行梯度下降,那么仍然需要for循环,放在最外层。不过还是觉得一次迭代就进行一次梯度下降,避免使用任何循环比较舒服一些。

关于 Python Numpy 的说明

assert语句以及 reshape 操作的使用。

你可能感兴趣的:(神经网络与深度学习-Stanford吴恩达教授-Week2(神经网络基础))