deeplearning AI 笔记-1.1

之前吴恩达的deeplearning系列的课程,看完就忘了,所以这次做个笔记的主要目的是为了方便复习所用。大多数内容都是从黄海广博士的笔记里面摘抄过来的。如有错误,烦请指正,补充。

一、 第一周 : 深度 学习 引言

  • 神经网络非常擅长计算从x到y的精准映射函数。
  • 推动深度学习变得如此热门的主要因素。包括数据规模、计算量及算法的创新。
image

神经网络方面的一个巨大突破是从 sigmoid 函数转换到一个 ReLU函数,使用 sigmoid 函数和机器学习问题是,在这个区域,也就是这个 sigmoid 函数的梯度会接近零,所以学习的速度会变得非常缓慢,因为当你实现梯度下降以及梯度接近零的时候,参数会更新的很慢,所以学习的速率也会变的很慢,而通过改变这个被叫做激活函数的东西,神经网络换用这一个函数,叫做 ReLU 的函数(修正线性单元),ReLU 它的梯度对于所有输入的负值都是零,因此梯度更加不会趋向逐渐减少到零。而这里的梯度,这条线的斜率在这左边是零,仅仅通过将 Sigmod 函数转换成 ReLU 函数,便能够使得一个叫做梯度下降(gradient descent)的算法运行的更快。


image

下面是关于第一门课的一些细节,这门课有四周的学习资料:
第一周:关于深度学习的介绍。在每一周的结尾也会有十个多选题用来检验自己对材料的理解;
第二周:关于神经网络的编程知识,了解神经网络的结构,逐步完善算法并思考如何使得神经网络高效地实现。从第二周开始做一些编程训练(付费项目),自己实现算法;
第三周:在学习了神经网络编程的框架之后,你将可以编写一个隐藏层神经网络,所以需要学习所有必须的关键概念来实现神经网络的工作;
第四周:建立一个深层的神经网络。

第二周:神经网络的编程基础

2.1二分类问题

引入:为什么神经网络的训练过程可以分为前向传播和反向传播两个独立的部分。
解答:以逻辑回归为例讲解,逻辑回归是一个用于二分类(binary classification)的算法。

image

2.2 逻辑回归(Logistic Regression)

本节将主要介绍逻辑回归的 Hypothesis Function(假设函数)。

image

现在你已经知道逻辑回归模型是什么样子了,下一步要做的是训练参数w和参数b,你需要定义一个代价函数,下一节课对其解释。

2.3 逻辑回归的代价函数(Logistic Regression Cost Function )

为什么需要代价函数:为了训练模型里面的参数,需要定义一个代价函数,通过训练代价函数来得到参数。
逻辑回归的输出函数是:

image

损失函数(误差函数)---用来衡量算法的运行情况,Loss function:L(y^,y)

  • L称为损失函数,来衡量预测输出值和实际值有多接近,一般用预测值和实际值的平方差或者他们平方差的一半,但在逻辑回归中不这样做。因为当我们在学习逻辑回归参数的时候,会发现我们的优化目标不是凸优化,只能找到多个局部最优值,梯度下降法很可能找不到全局最优值。我们在逻辑回归中用到的损失函数是:
损失函数
  • 最终的目的是让损失函数尽可能的小,即让误差尽可能的小,使用上面的损失函数可以达到同样的目的,因此可以将逻辑回归的损失函数定义成上面的样子。
  • 损失函数是在单个训练样本中定义的,它衡量的是算法在单个训练样本中表现如何,为了衡量算法在全部训练样本上的表现如何,我们需要定义一个算法的代价函数,算法的代价函数是对m个样本的损失函数求和然后除以m :
代价函数

损失函数只适用于像这样的单个训练样本,而代价函数是参数的总代价,所以在训练逻辑回归模型时候,我们需要找到合适的w和b,来让代价函数 J 的总代价降到最低。逻辑回归可以看成是一个非常小的神经网络,接下来会看到神经网络会做什么。

2.4 梯度下降法(Gradient Descent )

导数和梯度下降法

参数更新

2.5 导数(Derivatives )

导数就是斜率,而函数的斜率在不同的点是不同的。

2.7 计算图(Computation Graph)

一个神经网络的计算,都是按照前向或反向传播过程组织的。首先我们计算出一个新的网络的输出(前向过程),紧接着进行一个反向传输操作。后者我们用来计算出对应的梯度或导数。


蓝线是前向的计算

2.8 计算图的导数计算(Derivatives with a Computation Graph )上图红色的部分

2.9 逻辑回归中的梯度下降(Logistic Regression Gradient Descent )

单个样本的代价函数定义如下: L(a,y) = −(ylog(a) + (1 −y)log(1− a)) 其中a是逻辑回归的输出,y是样本的标签值。
复习下梯度下降法,w和b的修正量可以表达如下:



首先我们需要反向计算出代价函数L(a,y)关于a的导数。然后再求对z的,然后计算对w和b的。如下图所示:


逻辑回归中的梯度下降-单个样本的

2.10 m 个样本的梯度下降(Gradient Descent on m Examples)


但这种计算中有两个缺点,也就是说应用此方法在逻辑回归上你需要编写两个for循环。第一个 for 循环是一个小循环遍历𝑛个训练样本,第二个 for 循环是一个遍历所有特征的 for循环。然而使用for循环的效率低。所以这里有一些叫做向量化技术,它可以允许你的代码摆脱这些显式的 for 循环。

2.11 向量化(Vectorization)

向量化实现将会非常直接计算w的转职*x,代码如下z=np.dot(w.T,x)+b。



2.12 向量化的更多例子(More Examples of Vectorization )

numpy 库有很多向量函数。比如 u=np.log 是计算对数函数(log)、 np.abs(),是 计 算 数 据 的 绝 对 值 、 np.maximum() 计 算 元 素y中 的 最 大 值 , 你 也 可 以np.maximum(y,0)

2.13 向量化逻辑回归(Vectorizing Logistic Regression)

image.png

numpy 命令是Z= np.dot(w.T,X)+b。这里在 Python 中有一个巧妙的地方,这里 b 是一个实数,或者你可以说是一个 1 × 1 矩阵,只是一个普通的实数。但是当你将这个向量加上这个实数时,Python 自动把这个实数 b 扩展成一个 1 × m的行向量。在Python中称为广播。

2.14 向量化 logistic 回归的梯度输出(Vectorizing Logistic Regression's Gradient )

对m个训练数据

接下来求db和dw
总结如下
前向传播和反向传播
梯度下降参数更新
  • w:= w − a ∗ dw
  • b:= b − a ∗ db
    但如果你希望多次迭代进行梯度下降,那么仍然需要 for循环,放在最外层。不过我们还是觉得一次迭代就进行一次梯度下降,避免使用任何循环比较舒服一些。

2.15 Python 中的广播(Broadcasting in Python )

在 numpy 中,0 轴是垂直的,也就是列,而 1 轴是水平的,也就是行。
广播的一般原则如下:



注:当我们写代码时不确定矩阵维度的时候,通常会对矩阵进行重塑来确保得到我们想要的列向量或行向量。重塑操作 reshape 是一个常量时间的操作,时间复杂度是𝑃(1),它的调用代价极低。

2.16 关于 python _ numpy 向量的说明(A note on python or numpy vectors)

a = np.randomrandn(5),这样会生成存储在数组 a 中的 5 个高斯随机数变量。之后输出 a,从屏幕上可以得知,此时 a 的 shape(形状)是一个(5,)的结构。这在 Python 中被称作一个一维数组 。它既不是一个行向量也不是一个列向量,这也导致它有一些不是很直观的效果。

Ng建议,当在编程练习或者在执行逻辑回归和神经网络时,不要使用这些一维数组。而是使用下面的形式。

2.17介绍了jupyterNotebook
2.18讲解了logistics损失函数(!!!)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容