deep learning.ai 第一课笔记-神经网络和深度学习

第二周:神经网络基础

  1. numpy中的广播:

一个(m,n)的矩阵加减乘除(1,n)或者(m,1)的A向量,python会自动把A向量变成(m,n)维度

Eg:

 

  1. 在写代码中不要用shape=(5,)这种秩为1的数据类型,它既不是行向量也不是列向量,记得reshape(1,5)或者(5,1)
  2. 神经网络中,比如a[m](i),方括号中的m表示神经网络第m层,圆括号里面的i表示训练样本i。

 

第三周:浅层神经网络

  1. 神经网络中,可以用矩阵表示神经网络的向量化实现,比如说下面:横向表示了不同的样本,竖向表示了神经网络中的不同节点(隐藏单元,即样本特征以及计算得到的特征)。

eg这个双层神经网络的例子

  1. 初始化权重非常重要,如果把W全部初始化为0,那么所有的隐藏单元都是对称的,不管做多久梯度下降都毫无意义,比如,

  1. 因此随机初始化权重是个好方法,比如可以让W[1]=np.random.randn((2,2))*0.01(产生参数为(2,2)的高斯随机分布)得到一个很小的权重,我们喜欢较小的初始化权重,因为权重过大时,z值会非常大或者非常小,则激活函数会落在平缓部分,造成梯度过于平缓,训练太慢。对于b,则没有这个对称问题,则可以吧b初始化为0

2.反向传播图示

 

第四周  深层神经网络

  1. 怎么检查神经网络的权重矩阵?

前向传播:

W[l] = (n[l], n[l-1])

B[l] = (n[l], 1)

 

反向传播:

dW[l] =  W[l] = (n[l], n[l-1])

Db[l] = B[l] = (n[l], 1)

 

Z[l] = a[l]

向量化后,W,b,dW和db的维度应该始终是一样的,但是Z,A以及X的维度会在向量化后发生变化。比如下面的Z[1]:

 

  1. 一个梯度下降循环,记得缓存各种用到的参数

猜你喜欢

转载自blog.csdn.net/lrt366/article/details/81611925