赞
踩
N维数组是机器学习和神经网络的主要数据结构
最后一个子区域代表::3为每三行选1个。::2为每2列选1个
1、首先将导数拓展到向量
1.x和y都是标量,最终结果也是标量
2.x标量,y向量,最终结果是向量(若y是行向量,则求导结果是行向量。否则是列向量)
3.x向量,y标量,最终结果是向量(若x是行向量,则求导结果是列向量。否则是行向量)
4.x和y都是向量,最终结果也是矩阵(先将y向量拆解,最后将拆解的内容按照原来y的排列生成一个矩阵)
自动求导计算一个函数再指定值上的导数。与符号求导和数值求导有区别
向量的链式法则:
由于深度学习的神经网络普遍几百层,一层层使用链式求导很复杂,则获得自动求导方法:
具体针对具体值的求导:
自动求导的两种模式:
正向累积和反向传递
反向传递过程需要使用到正向累计中计算结果。当反向传播时,有些结点的值是不需要计算的。
反向累积前,需要先正着来一遍计算复杂度0(n),然后反向累积的计算复杂度O(n)。(正向+反向)
反向累积内存复杂度高O(n),因为需要把正向的中间结果储存下。所以深度神经网络很耗GPU资源。
下图中,上面的正向只反向的第一步,下面的正向指正向累积。
正向累积的好处是,内存复杂度O(1),不管多深,不用存储中间结果,但是缺点是,每计算一个变量的梯度需要扫一遍O(n)。所以神经网络中不太用,因为神经网络需要对每一层算梯度,正向累积计算复杂度太高。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。