前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >怎样理解神经网络的反向传播算法-ML Note 53

怎样理解神经网络的反向传播算法-ML Note 53

作者头像
讲编程的高老师
发布2020-09-27 20:15:29
5240
发布2020-09-27 20:15:29
举报

本文是吴恩达《机器学习》视频笔记第53篇,对应第5周第3个视频。

“Neural Networks: Learning——Backpropagation intuition”

上一小节讲了神经网络的反向传播算法,晦涩难懂!那有没有办法直观地去理解它呢?

很多时候,因为我们是调用库或者包来实现神经网络的,所以大多时候把神经网络看成一个黑盒子、训练的事情交给库来实现就可以了!但是,在学习的时候我们还是要有个大概的思路的,知道它的内部实现机理才能更好的使用它。

相比于前面讲的线性回归、逻辑回归,神经网络没有那么容易理解。那有没有办法通过了解反向传播的一些步骤理解这个算法呢?我们看一下。

前向传播

假设有下图这样的网络,

两个输入、一个输出,中间有两个隐藏层。

中间隐藏层的每一个单元,都是前面的输入求和后输入给激活函数的,依次往后传播计算,当然在输入上都会乘以一个系数。如下图:

具体地,隐藏层上的一个单元的输入如下图:

反向传播

反过来由输出计算输入的过程类似,计算方向不同而已。

再回顾一下总的代价函数(Cost function):

如果简化一下,只有一个输出并忽略掉正则化项呢?如下图:

上图中,可以看出这个代价函数其实就是反映神经网络的输出与实际值的接近程度,可以近似看成是方差函数。

再回过头来看看反向传播是干嘛的。

到了这里,具体到某一层的某个神经元,这个反向传播的项好像是反映了这个单元上激活项的误差。进一步的说,它是一种一层又一层求偏导的过程。

更具体地,就是我们为了让神经网络的输出更接近目标值,我们需要对这些权值做些怎样的变化。这个思想和前面的梯度下降法是类似的。

那这些参数怎样变化呢?我们就从最后面的那个输出的误差一步步反过来往前推算前面的误差,如下图这样一个反向传播的过程。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 讲编程的高老师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前向传播
  • 反向传播
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档