欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Headsong 神经网络 数学基础学习 第 3 级 矩阵 神经网络 矩阵推导

最编程 2024-04-05 20:14:46
...


前言

这几天一直在看B站王木头的视频,仔细阐述了我最初认识神经网络的遇到的但是好像没人在意的问题,讲得非常棒。


矩阵的求导运算

对于机器学习或者是说深度学习来讲,所有的优化模型的求解都是通过求导数来进行的。

先来回忆一下标量的求导

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_头歌神经网络学习之数学基础第三关矩阵


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_头歌神经网络学习之数学基础第三关矩阵_02


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_深度学习_03


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_函数调用_04



标量 y 对 n 维列向量 x=(x1,x2,⋯,xn)T 求导,其结果还是一个 n 维列向量。

标量 y 对 n 维行向量 xT=(x1,x2,⋯,xn) 求导,其结果还是一个 n 维行向量。

形状规则:标量 y 对向量 x 的每个元素求导,然后将各个求导结果按向量 x 的形状排列。

原文地址:

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_深度学习_05


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_标量_06


向量链式法则

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_头歌神经网络学习之数学基础第三关矩阵_07


标量求导转换到向量尤其要注意形状。

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_函数调用_08


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_深度学习_09


L2归一化:将一组数变成0-1之间。pytorch调用的函数是F.normalize。

几种范数的解释 l0-Norm, l1-Norm, l2-Norm, … , l-infinity Norm

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_标量_10


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_标量_11


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_函数调用_12


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_深度学习_13


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_头歌神经网络学习之数学基础第三关矩阵_14


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_函数调用_15


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_标量_16


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_标量_17


头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_标量_18

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_标量_19


自动求导代码实现

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_头歌神经网络学习之数学基础第三关矩阵_20


在我们计算y 关于 x 的梯度之前,我们需要一个地方存储它,

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_标量_21


现在我们来计算 y

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_头歌神经网络学习之数学基础第三关矩阵_22


通过调用反向传播函数来自动计算 y 关于 x 每个分量的梯度

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_标量_23


现在我们计算 x 的另一个函数

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_函数调用_24

深度学习中 ,我们的目的往往不是计算微分矩阵,而是批量中每个样本单独计算的偏导数之和

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_深度学习_25


将某些计算移动到记录的计算图之外

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_头歌神经网络学习之数学基础第三关矩阵_26


即使构建函数的计算图需要通过Python控制流(例如,条件、循环或任意函数调用),我们仍然可以计算得到的变量的梯度

头歌神经网络学习之数学基础第三关矩阵 神经网络矩阵求导_标量_27


突然意识到自己都是贴的图片,应该把代码放上来 链接:https://pan.baidu.com/s/1tj6qHFFuQ1GmVuWzwS1TLw 提取码:d2lc


推荐阅读