对于吴恩达ML课程中Backpropagation计算方法的理解

对于吴恩达ML课程中Backpropagation计算方法的理解

今天在写吴恩达ML第四次作业的时候,感觉计算neural network中损失函数J对theta的偏微分太难理解了。。和玄学一样,看视频的时候也晕晕乎乎的,不知道那些式子是怎么来的。。想起暑假在B站上看的李宏毅讲的一节课,回过头去看了看,这才明白了吴恩达课程中给出的那些公式的推导过程。

在这里插入图片描述
在这里插入图片描述上面两张是吴恩达ML课程中给出的计算梯度的过程,直接抛出了一些公式,不知道为什么要这么算。
由上面这些步骤可以得到,对于每一笔数据,它给theta1带来的惩罚值如下:
在这里插入图片描述

下面具体看看这个式子是咋来的。
在这里插入图片描述在这里插入图片描述

下面说一下我理解的计算步骤,感觉这么更好理解。
在这里插入图片描述在这里插入图片描述具体描述一下:
1.计算损失函数J对网络的输出a(n)的偏导数

2.利用上一步的结果,计算J对z(n)的偏导数
J/z(n) = a/z(n) * J/a(n)
J/a(n)是上一步的结果
a(n)/z(n)为激活函数g对z(n)求偏导

3.利用上一步的结果,计算J对a(n-1)的偏导数
J/a(n-1) = z(n)/a(n-1) * J/z(n)
J/z(n)是上一步的结果
z(n)/a(n-1)为theta(n-1)

4.类似于第二三步
反复求J对z J对a的偏导
一直到第一层

5.这时已经知道了所有J对z的偏导
再求出z对theta的偏导,即为a
想乘
J/theta = z/theta * J/z
得出梯度结果

参考了李宏毅机器学习的视频,链接如下,感觉讲得真的很好,比吴恩达的好懂。https://www.bilibili.com/video/av35932863?t=1868&p=11

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值