神经网络中前向传播与反向传播意义及其参数的更新方式

查看 88|回复 6
作者:RiiiickSandes   
前向传播与反向传播意义及其参数的更新方式
一、前言
因为本身非科班出身,数学又学的很差,一直都是傻瓜式地用tensorflow和pytorch搭网络。前一段时间竞赛的时候尝试着用简单神经网络做了个题,同学突然问起反向传播的具体原理,一时语塞,遂下决心把这个问题搞明白。这篇学习笔记将以我的认知顺序也就是由浅至深的顺序叙述,里面可能涉及到一些神经网络的基础知识,比如学习率、激活函数、损失函数等,详情可以看看这里,本文不再赘述
写文章的时候查阅了一些资料,感觉写得最好的是这篇文章,我的一些思路也有所参考,推荐去看看,记得给大佬点star  : )
二、前反向传播的作用
这个问题应该大部分接触过神经网络的人都有所了解,我最开始的认知也就停留在这一步
前向传播,也叫正向传播,其实就是参数在神经网络中从输入层到输出层传输过程
反向传播,其实就是根据输出层的输出实际值的差距,更新神经网络中参数的过程
而一次正向传播加上一次反向传播就是一次网络的学习
话虽如此,参数在网络中到底是如何变化的呢
三、前向传播
首先我们来看一个神经网络,这个神经网络是如此的简单,这种简单结构的网络可以使我们更好地理解神经网络的工作方式。


image-20230224085831070.png (67.74 KB, 下载次数: 0)
下载附件
2023-2-24 12:52 上传

所谓前向传播,其实就是将神经网络的上一层作为下一层的输入,并计算下一层的输出,一直到输出层位置
如上图,假如输入层输入x,那么参数前向传播到隐藏层其实就是输入x权重矩阵相乘加上偏置项之和再通过激活函数,假设我们使用的激活函数为


image.png (10.95 KB, 下载次数: 0)
下载附件
2023-2-24 12:56 上传

此时输入层的输出就是


image.png (13.78 KB, 下载次数: 0)
下载附件
2023-2-24 12:56 上传

当参数继续向前传播,通过隐藏层的输出到输出层,其值为


image.png (28.99 KB, 下载次数: 0)
下载附件
2023-2-24 12:57 上传

上面的式子的值其实就是神经网络的输出了,这样两个算式描述了一次前向传播的全部过程
四、反向传播
由于反向传播涉及到导数运算,而我的数学能力已经退化到小学水平了,所以这里我们直接使用一个1  1  1的 “神经网络” 来做演示


image-20230223232314424.png (39.94 KB, 下载次数: 0)
下载附件
2023-2-24 12:53 上传

这里我们的损失函数选择使用最常见的均方误差(MSE),即定义损失值为预测值与实际值的差的平方除以样本数,这个损失函数对异常值比较敏感,适用于回归问题


image.png (15.91 KB, 下载次数: 0)
下载附件
2023-2-24 12:57 上传

而更新参数的依据,就是使最后预测的结果朝着损失函数值减小的方向移动,故我们用损失函数对每一个参数求偏导,让各个参数往损失函数减小的方向变化。假设我们这里的激活函数为


image.png (2.52 KB, 下载次数: 0)
下载附件
2023-2-24 12:57 上传

损失函数对各参数求偏导的结果如下


image.png (96.91 KB, 下载次数: 0)
下载附件
2023-2-24 12:58 上传

反向传播算法建立在梯度下降法的基础上,已经算出各参数偏导的情况下,需要使用梯度下降法进行参数更新,我们以学习率为μ为例,各参数的更新如下


image.png (62.69 KB, 下载次数: 0)
下载附件
2023-2-24 12:58 上传

为什么这里要引入学习率的概念呢,有一篇博客非常形象的说明了这个问题,感兴趣的可以看看原文,省流量的可以看下面这个表格,这个表格说明了当学习率等于1的时候可能遇到的困境
[table]
[tr]
[td]轮数[/td]
[td]当前轮参数值[/td]
[td]梯度x学习率[/td]
[td]更新后参数值[/td]
[/tr]
[tr]
[td]1

神经网络, 参数

RiiiickSandes
OP
  

发完才发现吾爱的md编辑器好像没有对公式的支持,只好用截图代替,大佬们请见谅
RiiiickSandes
OP
  

因为原来接触这个领域不多,文章肯定有写的不好或者不对的地方,敬请各位不吝赐教
paypojie   

人工智能的话 感觉对数学要求比较高 科不科班其实也没那么重要
RiiiickSandes
OP
  


paypojie 发表于 2023-2-24 16:59
人工智能的话 感觉对数学要求比较高 科不科班其实也没那么重要

所以对我这种数学不好又不科班的就很不友好
paypojie   


RiiiickSandes 发表于 2023-2-24 17:12
所以对我这种数学不好又不科班的就很不友好

没事 楼主恶补数学就好 加油
RiiiickSandes
OP
  


RiiiickSandes 发表于 2023-2-24 13:01
发完才发现吾爱的md编辑器好像没有对公式的支持,只好用截图代替,大佬们请见谅

可以用简书或知乎的公式接口,返回的应该是svg图片
您需要登录后才可以回帖 登录 | 立即注册

返回顶部