吴恩达深度学习课程疑难点笔记系列-神经网络和深度学习-第3周

本笔记系列参照吴恩达深度学习课程的视频和课件,并在学习和做练习过程中从CSDN博主何宽分享的文章中得到了帮助,再此表示感谢。


本周主要学习的内容有:神经网络概览、神经网络表示、计算神经网络的输出、多个例子中的向量化、向量化实现的解释、激活函数、为什么需要非线性激活函数、激活函数的导数、神经网络的梯度下降法、直观理解反向传播、随机初始化


一、本周学习内容要点:

多神经元网络模型结构,如图1所示在这里插入图片描述
图 1 图1 1

前向传播,四个方程:
Z [ 1 ] = W [ 1 ] X + b [ 1 ] (1) Z^{[1]}=W^{[1]}X+b^{[1]}\tag1 Z[1]=W[1]X+b[1](1)
A [ 1 ] = σ ( Z [ 1 ] ) (2) A^{[1]}= \sigma(Z^{[1]}) \tag2 A[1]=σ(Z[1])(2)
Z [ 2 ] = W [ 2 ] A [ 1 ] + b [ 2 ] (3) Z^{[2]}=W^{[2]}A^{[1]}+b^{[2]}\tag3 Z[2]=W[2]A[1]+b[2](3)
A [ 2 ] = σ ( Z [ 2 ] ) (4) A^{[2]}=\sigma(Z^{[2]})\tag4 A[2]=σ(Z[2])(4)

后向传播,六个方程,如图2所示

在这里插入图片描述
图 2 图2 2

二、本周学习内容的主要疑难点:神经网络的输出向量化实现和单个神经元的输出向量化实现之间的不同

  • 先回顾单个神经元模型的m个样本输出的向量化实现:
    单个神经元模型
    在这里插入图片描述
    图 3 图3 3
    其中激活函数为sigmoid函数,因此对于m个样本的单个神经元的输出向量化表示如图4中红色框框表示:
    在这里插入图片描述
    图 4 图4 4
    对于m个样本的单个神经元模型的输出向量化表示为:
    Z = W T X + b (5) Z=W^TX+b\tag5 Z=WTX+b(5)
    A = σ ( Z ) (6) A=\sigma(Z)\tag6 A=σ(Z)(6)

  • 我们再看看多个神经元模型m个样本的输出向量化实现:
    多个神经元模型如图5所示
    在这里插入图片描述
    图 5 图5 5
    对于m个样本的多个神经元模型的输出的向量化表示为:上文(1)(2)(3)(4)公式所示

对比(5)(6)和(1)(2)(3)(4)公式,不难发现W和X的乘积有些变化,单个神经元模型需要将权重参数矩阵W转置后再与特征向量X相乘,而多个神经元模型却直接将权重参数矩阵W与特征向量X相乘

其实,多个神经元模型的权重参数矩阵W是把每个节点参数W向量转置堆叠形成的,如图6所示
在这里插入图片描述
图 6 图6 6
从图6可以看出第1隐藏层的权重参数矩阵 W [ 1 ] W^{[1]} W[1]是由该层每个神经元节点权重参数向量 w 1 [ 1 ] w_1^{[1]} w1[1] w 2 [ 1 ] w_2^{[1]} w2[1] w 3 [ 1 ] w_3^{[1]} w3[1] w 4 [ 1 ] w_4^{[1]} w4[1]转置堆叠而成,即 W [ 1 ] W^{[1]} W[1]=[[ w 1 [ 1 ] T w_1^{[1]T} w1[1]T],[ w 2 [ 1 ] T w_2^{[1]T} w2[1]T],[ w 3 [ 1 ] T w_3^{[1]T} w3[1]T],[ w 4 [ 1 ] T w_4^{[1]T} w4[1]T]],所以在做本周吴恩达深度学习课程练习的时候,要特别注意权重参数矩阵 W [ 1 ] W^{[1]} W[1]的行(R)等于该层神经元的个数,而它的列(C)等于输入特征向量的行数

三、在做练习写代码的过程中,可以记住下面的思维逻辑线:

  • 1.Package 导入模块
  • 2.Dataset 导入数据
  • 3.*Simple Logistic Regression 简单的逻辑回归,为了与后面的神经网络做个对比 *
  • 4.Neural Network Model神经网络模型(本次练习的主菜)
    1)layer_size(X, Y) --> n_x, n_h, n_y 输入数据返回神经网络每层的节点个数
    2)initial_parameters(n_x, n_h, n_y) --> parameters(是一个字典,包括了W1,W2,b1,b2)
    3)forward_propagation(X, parameters) --> A2, cache (cache是一个字典,包含A1,A2,Z1,Z2)
    4)compute_cost(A2, Y, parameters) --> cost
    5)backward_propagation(parameters, cache, X, Y) --> gradient (是一个字典,包含了dW1,dW2,db1,db2)
    6)update_parameters(parameters, grads, learning_rate = 1.2) --> parameters(是一个字典,包括了W1,W2,b1,b2,这些参数是更新过一次的)
    7)nn_model(X, Y, n_h, num_iterations = 10000, print_cost=False) --> parameters(是一个字典,包括了W1,W2,b1,b2,这些参数是更新到最后的结果)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值