时间过得好快,夜幕就要降临,转眼就来到了第四周,加油!消化!
1. Deep L-Layer neural network——2019-07-04
本周的课程主要就是对之前三周的东西进行总结,而且本周的编程任务要重一点!
加油鸭!本周作业的目的:加深你对神经网络的理解并能的一个让你引以为豪的深度学习模型!
- 深度神经网络:层数要多的(注意说神经网络的层数的时候是不包括输入层的!只计算隐藏层和输出层)
- 第一章主要讲了这些记录的符号,用L表示层,用n表示个数等等
2. Forward Propagation in a Deep Network——2019-07-04
- 自己写代码的时候都会非常注意每一层的维度之间的关系,可以大大减少代码的错误!
- 这一章主要就是说明了了一个多层的神经网络其实就是不断的重复一个通项公式,而且这里就是用的for循环进行的,前面的课程讲过要尽量避免for循环而应该优先使用向量化。但是这里的for循环是唯一不能被替换的!
总结起来就下面一张图,还是关于表示和推广的!
3. Getting your matrix dimensions right——2019-07-04
-
检查矩阵的维度可以使你更容易的使用深度网络,更容易的去Debug
比如说给定一个这样的神经网络:
-
关于矩阵和Bias的维度,不是一般性的,具有以下规律:
-
当我们进行反向传播的时候,dW 和db的 维度也是和W和b的维度一样的,不是一般性的为:
-
网络中的Z和A就基本没啥要说的了关于维度的事情,因为他俩维度就是一样的,和给定的网络结构图一样!
-
但是在矢量化的过程中,维度会发生一点点的变化,参数其实还好还是一样的!但是主要发生变化的就是Z和A的维度了
但是要注意的是A和Z他俩永远是保持同一个维度的,要变的知识第二个维度,从之前的[n,1]变成了[n,m],这里的n指的就是每一层的神经单元数量,m指的就是总的训练样例,相当于把一个一个的训练样例堆叠在了一起,对于Z或者A来说,一列就是一个新的训练样例的结果!行数还是代表的是神经单元的数量,并不发生改变!b就会利用Python的广播机制自动给列从1维补成m维,这是不影响的!W的话还是以前的维度!因为输入的第一个维度并没有变化,还是神经元单元的个数!
4. Why deep representations?——2019-07-04
老说deep deep deep的那到底为啥deep就能有比较好的效果呢在那么多的任务上?
- 深度学习的深度神经网络原指有很多的隐藏层的网络,但是现在深度学习已经是一个很大的包罗万象的概念了
- 从浅层学习边角信息,深层学习语义信息的概念大概讲了一下有效性
- 也从电路的门大概讲了一些有效性!
基本就是这个样子啦!
5. Building blocks of deep neural networks——2019-07-04
-
要记得缓存Z[l]的值,放在cache里面,这对后续的反向传播非常有用!
-
在计算某一层时候,数据关系如下:输入前一层,输出后一层,同时缓存Z[l],也就是还没有激活的,还有要学习的W和b
-
反向传播过程中输入就是da[L],输出是da[l-1],还有同时得到的参数的倒数,流程如下:
-
非常重要!非常重要!非常重要!实现深度神经网络的基本框架:
前向传播中存储的缓存可以当做输入用在后向传播中,后向传播就得到了参数的倒数,用参数的倒数就可以更新参数!实现优化过程!
6. Forward and Backward Propagation——2019-07-05
-
前向传播:
-
反向传播:
-
总结:
当对这些不了解不熟悉的时候最好的就是去实现!
7. Parameters vs Hyperparameters——2019-07-05
嗯这个我知道,基本上就是下面这些东西:
8. What does this have to do with the brain?——2019-07-05
再一次的,前向传播和后向传播:
神经网络和人脑的对比
第一波的课程基本到此就告一段段落了,希望在接下来的路上越来越好!加油鸭!不要只当一个搬运工,而是要充当一个思考者!