微积分在神经网络中的本质

calculus

在一个神经网络中我们通常将每一层的输出结果表示为: a [ l ] a^{[l]} a[l]

为了方便记录,将神经网络第一层记为:

1 \] \[1\] \[1

对应的计算记录为为:
a [ l ] : 第 l 层 a [ j ] : 第 j 个神经元 a^{[l]}:\textcolor{red}{第l层}\\ a_{[j]}:\textcolor{green}{第j个神经元}\\ a[l]:第l层a[j]:第j个神经元

代价函数为:

其中y为实际值,

而对于 d C 0 d w {d{C_0}\over dw} dwdC0是求斜率,或者具体的解释是 w \textcolor{green}{w} w的数值变动对 C 0 \textcolor{red}{C_0} C0的影响:

根据链式法则:
具体计算过程:

所以 w \textcolor{green}{w} w的数值变动对 C 0 \textcolor{red}{C_0} C0的影响与:真实值与计算值的偏差、激活函数 σ \sigma σ,上一层的输出值有关

如果理解了上述的内容,其他的代价函数 ∇ C \nabla C ∇C就只是换偏导对象即可:

比如,如果要计算 d C 0 d b {d{C_0}\over db} dbdC0,只需要替换一项即可:

同理,应用在BP中可以计算 w j k L ; 一条线的权值的影响 w^{L}_{jk}\textcolor{red}{;一条线的权值的影响} wjkL;一条线的权值的影响(其中jk分别代表 L − 1 L-1 L−1和 L L L层中的不同点):

也可以计算 a k L − 1 ; 前一层的输出值的影响 a^{L-1}_{k}\textcolor{red}{;前一层的输出值的影响} akL−1;前一层的输出值的影响:

相关推荐
Json_8 分钟前
Vue Methods Option 方法选项
前端·vue.js·深度学习
Naomi52116 分钟前
Trustworthy Machine Learning
人工智能·机器学习
星霜旅人32 分钟前
K-均值聚类
人工智能·机器学习
Json_42 分钟前
Vue v-bind指令
前端·vue.js·深度学习
Json_1 小时前
JS中的冒泡简洁理解
前端·javascript·深度学习
Json_1 小时前
Vue 自定义指令
前端·vue.js·深度学习
机器鱼2 小时前
1.2 基于卷积神经网络与SE注意力的轴承故障诊断
深度学习·机器学习·cnn
牙牙要健康3 小时前
【目标检测】【深度学习】【Pytorch版本】YOLOV2模型算法详解
pytorch·深度学习·目标检测
大脑探路者3 小时前
【PyTorch】继承 nn.Module 创建简单神经网络
人工智能·pytorch·神经网络