• 关键字：求导、偏导、梯度、复合函数求导链式法则 矩阵转置、矩阵加减、矩阵乘法【矩阵乘法不满足交换律】 二、numpy （1）转置和加、乘 #coding:utf-8 import numpy as np print np.__version__ ...

一、数学基础
二、numpy

一、数学基础
关键字：求导、偏导、梯度、复合函数求导链式法则
矩阵的转置、矩阵加减、矩阵乘法【矩阵乘法不满足交换律】

二、numpy
（1）转置和加、乘

#coding:utf-8
import numpy as np
print np.__version__

# 1- create narray
array = np.array([1,2,3],dtype=np.uint8)
print "array:",array

# 2- zeros
mat1 = np.zeros((2,3)) #(2,3) tuple
print "mat1:",mat1

# 3- 高维矩阵
mat2 = np.zeros((1,2,3,4))
print mat2.shape
print mat2.size

# 4- 标准矩阵运算
# (1) 标量与矩阵相乘
scalar = 2
mat = np.ones((2,3))
mat3 = scalar * mat
print "mat3:",mat3
# (2) 矩阵转置 mat.T
mat = np.zeros((2,3))
tmat = mat.T
print mat.shape,tmat.shape
mat4 = np.array((1,2,3))
print "mat4:",mat4
tmat4 = mat4.T
print mat4.shape,tmat4.shape
# (3) 矩阵的加法
mat1 = np.array([[1,2],[3,4]])
mat2 = np.zeros((2,2))
mat3 = mat1 + mat2
print "mat3:",mat3
# (4) 矩阵的乘法
print "multi------------------"
mat1 = np.array([[1,2],[3,4]])
mat2 = np.ones((2,2))
mat3 = mat1.dot(mat2)
print "mat3:",mat3

（2）扩展运算

#coding:utf-8
import numpy as np
# 扩展运算
# (1) 对应元素相乘
mat1 = np.array([[1,2],[3,4]])
mat = mat1 * mat1
print "mat:",mat

# (2) 标量与矩阵相加
scalar = 2
mat1 = np.array([[1,2],[3,4]])
mat = scalar + mat1
print "mat:",mat

# (3) 高位矩阵维度改变
mat1 = np.zeros((1,2,3))
mat = mat1.transpose(0,2,1) # 维度调换
print mat1.shape,mat.shape

mat1 = np.ones((3,4))
vec = np.array([[1],[2],[3]])
print mat1+vec

（2）杂项运算

#coding:utf-8
import numpy as np

# 杂项操作
# (1) 生成随机数
rannum = np.random.randn(2,3)
print "rannum:",rannum
# 生成一个指定尺寸的矩阵
# 矩阵中的所有数字符合正态分布(normal distribution)
met = [1,2,3]
np.random.shuffle(met)
print "shuffle_met:",met

# (2) 对矩阵元素求和
print np.sum(rannum)

# (3) numpy axis
print np.sum(rannum,axis = 0) # 列
print np.sum(rannum,axis = 1) # 行

# (4) e的指数
print np.exp(rannum)

# (5) 求最大下标
a=[3,1,2,3,545,23,23,243]
print np.argmax(a)

转载于:https://www.cnblogs.com/Years4Nancy/p/8492521.html
展开全文
• ## 梯度

2012-10-06 18:55:33
这些量之间的运算遵循 一般的代数法则，称做“标量”。如质量、密度、温度、功、能量、路程、速率、体积、时间、热量、电 阻、功率、势能、引力势能、电势能等物理量。无论选取什么坐标系，标量
导数，就是函数在该点的切线的斜率。所以 导数为零的地方可能是极值也可能是拐点。
物理参数的梯度，也即该物理参数的变化率

什么是标量
亦称“无向量”。有些物理量，只具有数值大小，而没有方向，部分有正负之分。这些量之间的运算遵循
一般的代数法则，称做“标量”。如质量、密度、温度、功、能量、路程、速率、体积、时间、热量、电
阻、功率、势能、引力势能、电势能等物理量。无论选取什么坐标系，标量的数值恒保持不变。矢量和标
量的乘积仍为矢量。矢量和矢量的乘积，可构成新的标量，也可构成新的矢量，构成标量的乘积叫标积；
构成矢量的乘积叫矢积。如功、功率等的计算是采用两个矢量的标积。W=F·S，P=F·v。力矩、洛仑兹力
等的计算是采用两个矢量的矢积。M=r×F，F=qvB。

矢量场
假设有一个n维空间，并给该空间的每一个点都赋予一个“量”，那么整个n维空间就充满了“量“，该充
满“量”的n维空间在数学上就叫做“场”。 　　如果我们给空间的每一个点所赋予的“量”既有大小，
又有方向，即矢量(vector)，那么整个空间就变成充满了矢量，这个场就叫做矢量场。 　　例如在一个
湍急的水流中，水中每个点的运动速度都不同，那么整个水流的速度的分布就是一个矢量场（此时是速度
场）。
标量场
标量场就是矢量场的一部分，既然有矢量场，他们的数值不就是标量场么，所以标量场就是矢量场的特殊
形式。比如你试验扔硬币的正反面的问题，正面是1，反面是0，然后多次试验得出概率，那么0和1这个标
量场不就得到了应用么？
我知道矢量场的梯度就是个标量场？

标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快的方向，梯度的长度是这个最
大的变化率
在单变量的实值函数的情况，梯度只是导数，或者，对于一个线性函数，也就是线的斜率。
欧氏空间：
就是欧几里德几何所能形容的空间，此外还有非欧几何

梯度的汉语词义，用法。
《现代汉语词典》附：新词新义
梯度 1.坡度。
2.单位时间或单位距离内某种现象（如温度、气压、密度、速度等）变化的程度。


展开全文
• 为了提高压铸模使用寿命,用有限元方法对涂层...功能梯度材料性能参数采用简单混合物运算法则计算。应用有限元法对有功能梯度材料涂层模具和没有功能梯度材料涂层模具温度场、应力场进行比较分析,并对不同厚度功
• ## 对梯度回传的理解

千次阅读 2019-04-08 22:22:00
神经网络每一层可以看做是使用一个函数对变量...反向传播时一种计算链式法则的算法，使用高效特定运算顺序。 设x是实数，f和g是从实数映射到实数函数。假设y=g(x)并且z=f(g(x))=f(y)。那么链式法则是 ...
       神经网络的每一层可以看做是使用一个函数对变量的一次计算。在微分中链式法则用于计算复合函数的导数。反向传播时一种计算链式法则的算法，使用高效的特定运算顺序。

设x是实数，f和g是从实数映射到实数的函数。假设y=g(x)并且z=f(g(x))=f(y)。那么链式法则说的是

$\frac{dz}{dx}=\frac{dz}{dy}\frac{dy}{dx}$

可以将这种标量情况进行扩展。假设x$\in$$R^m$，y$\in$$R^n$，g是从$R^m$到$R^n$的映射，f是从$R^n$到R的映射。如果y=g(x)并且z=f(y)，那么

$\frac{dz}{dx_i}=\sum_j\frac{dz}{dy_i}\frac{dy}{dx_i}$

使用向量记法，可以等价地写成

$\bigtriangledown_x z = (\frac{\partial y}{\partial x})^T \bigtriangledown_yz$

这里$\frac{\partial y}{\partial x}$是g的nxm的Jacobian矩阵。

从这里我们看到，变量x的梯度可以通过Jacobian矩阵$\frac{\partial y}{\partial x}$和梯度$\bigtriangledown_yz$乘积来得到。反向传播算法由由图中每一个这样的Jacobian梯度的乘积操作所组成。通常我们将反向传播算法应用于任意维度的张量，而不仅仅是用于向量。从概念上讲，这与使用向量的反向传播完全相同。唯一区别的是如何将数字排成网络以形成张量。可以想象，在运行反向传播之前，将每个张量变平为一个向量，计算一个向量值梯度，然后将该梯度重新构造成一个张量。从这种重新排列的观点上看，反向传播仍然只是将Jacobian乘以梯度。

为了表示值z关于张量X的梯度，记为$\triangledown _X z$，就像X是张量一样。X的索引现在有多个坐标------例如，一个3维的张量由3个坐标索引。可以通过使用单个变量i来表示完整的索引元组，从而完全抽象出来。对所有可能的元组i，$\triangledown _X z_i$给出$\frac{\partial z}{\partial X_i}$。这与向量中索引的方式完全一致，$(\triangledown _x z)_i$给出 $\frac{\partial z}{\partial X_i}$。使用这种记法，可以写出适用于张量的链式法则。如果Y=g(X)并且z=f(Y)，那么


展开全文
• 神经网络主要训练方法是BP算法，BP算法基础是导数链式法则，也就是多个导数乘积。而sigmoid导数最大为0.25，且大部分数值都被推向两侧饱和区域，这就导致大部分数值经过sigmoid激活函数之后，其导数都非常...
梯度消失
神经网络主要的训练方法是BP算法，BP算法的基础是导数的链式法则，也就是多个导数的乘积。而sigmoid的导数最大为0.25，且大部分数值都被推向两侧饱和区域，这就导致大部分数值经过sigmoid激活函数之后，其导数都非常小，多个小于等于0.25的数值相乘，其运算结果很小。且由于数据分布一般不是正态分布，数值偏离中心，所以大部分数值都被推向两侧饱和区域，这就导致大部分数值经过sigmoid激活函数之后，其导数都非常小。随着神经网络层数的加深，梯度后向传播到浅层网络时，基本无法引起参数的扰动，也就是没有将loss的信息传递到浅层网络，这样网络就无法训练学习了
1)使用其它激活函数，如ReLU等；2)层归一化：BN；3)优化权重初始化方式；4)构建新颖的网络结构，如highway net，而capsule net意图取消BP学习过程，釜底抽薪。
sigmoid函数的导数：

优化权重初始化方式

因为上述的方法中是由于权值输入 ∣z∣的方差很大导致这一现象的发生，因此应该限制他的方差。具体的方法为使用均值为0标准差为  的高斯随机分布初始化权重，但是继续用均值为0标准差为1的高斯分布来对偏置进行初始化。这样权值输入 ∣z∣ 的均值仍然是0，根据独立随机变量和的方差是每个独立随机变量方差的和，方差的计算公式如下：

得到具有尖锐峰值的高斯分布：

梯度爆炸
在深层网络或循环神经网络中，误差梯度可在更新中累积，变成非常大的梯度，然后导致网络权重的大幅更新，并因此使网络变得不稳定。在极端情况下，权重的值变得非常大，以至于溢出，导致 NaN 值。 网络层之间的梯度（值大于 1.0）重复相乘导致的指数级增长会产生梯度爆炸。梯度爆炸会引起网络不稳定，无法从训练数据中学习，而最坏的结果是出现无法再更新的 NaN 权重值。
在循环神经网络中，梯度爆炸会导致网络不稳定，无法利用训练数据学习，
训练过程中出现梯度爆炸会伴随一些细微的信号，如：
模型无法从训练数据中获得更新（如低损失）。
模型不稳定，导致更新过程中的损失出现显著变化。
训练过程中，模型损失变成 NaN

如何修复梯度爆炸：

重新设计网络模型：更少的层数
使用 ReLU 激活函数
使用长短期记忆网络
使用梯度截断
使用权重正则化


展开全文
• 在深层网络中，一方面由于求导法则，计算越前面层次或者时刻的梯度，会出现很多乘法运算，很容易导致梯度消失和梯度爆炸，另一方面还受到激活函数影响，Sigmoid函数和tanh函数会出现梯度为0 区域，前面也说了...
• 本文从向量的概念与运算扩展到矩阵运算的概念与代码实现，对机器学习或者是深度学习的入门者提供最基础，也是最实用的...而如果不了解矩阵的运算法则及意义，甚至我们都很难去理解一些如矩阵因子分解法和反向传播算法之
• 讨论了粗信息矩阵、粗粒度矩阵性质及运算法则。给出粗信息矩阵与粗集、S-粗集关系定理、粗信息矩阵与其粗粒度矩阵关系定理，粗信息矩阵不仅是研究粗系统结构特征新理论工具，而且是粗系统理论研究与应用研究...
• 梯度下降法 　既然在变量空间某一点处，函数...　同时梯度和偏导数都是向量，那么参考向量运算法则，我们在每个变量轴上减小对应变量值即可，梯度下降法可以描述如下： 　 　 　以上就是梯度下降法由来，...
• 利用微分求梯度的方法计算量太大，而误差反向传播算法的出现提高了计算效率，误差反向传播算法主要基于链式法则,主要有以下几条规则。 1.如果是由a + b = y，则反向传播时a b 的梯度相等，且等于y的梯度 2.如果是a ...
• 图1运算法则： 输入X乘以权重W得到y，再通过激活函数得到输出(O)。在这里，激活函数是sigmoid函数。 E是loss函数值，这里是输出值(output)与真实值(target)欧式距离。 E大小是评价感知器模型好坏指...
• 神经网络主要训练方法是BP算法，BP算法基础是导数链式法则，也就是多个导数乘积。而sigmoid（激活函数）导数最大为0.25，且大部分数值都被推向两侧饱和区域，这就导致大部分数值经过sigmoid激活函数之后，...
• 文章目录感知机的梯度推导单输出单层感知机多输出感知机梯度推导链式法则多层感知机反向传播Logistic regressionQ1: why not maximize accuracy?Q2 : why call logistic regressionsoftmax交叉熵EntropyCross ...
• 向量的运算根据平行四边形法则和右手螺旋法则，这里就不再赘述了。 Schwarz不等式：(A⋅B)2≤∣A∣2∣B∣2(A\cdot B)^{2}\leq \left | A \right |^{2} \left | B \right |^{2}(A⋅B)2≤∣A∣2∣B∣2 R3R^{3}R3空
• 需要服从链式求导法则，由后端开始反向传递，节点左边（前端）的梯度等于该节点求导结果乘上右边（后端）求导梯度（箭头上端是正向输入，下端是反向梯度，这里最末端的梯度1.0是提前假设）。 2.1 引入Sigmoid...
• 一、问题的引入——格林公式、高斯公式、斯托克斯公式 ...3. 散度与旋度的运算法则 四、积分公式的向量形式 1. 微积分基本公式（定积分、曲线积分） 2. 通量计算 3. 环流量的计算 ...
• 深度学习中需要矩阵计算摘要介绍复习：标量求导法则向量计算和偏导数矩阵计算Jacobian 矩阵生成向量元素级二元运算符导数涉及标量运算的导数向量归约和(sum reduction)链式法则Single-variable chain ruleSingle...
• 深度学习矩阵微积分基础预备知识矩阵微积分雅可比矩阵泛化两向量间逐元素运算的导数向量与标量运算的导数向量求和规约操作链式法则单变量链式法则单变量全微分链式法则向量链式法则激活函数的梯度神经网络...
• 四则运算法则 复合函数求导法则 神经网络激活函数导函数求解 高阶导数 导数与函数单调性 极值定理 导数与函数凹凸性 一元函数泰勒展开 线性代数基础 向量与其运算 行向量和列向量 向量加减、数乘、内积、转置 向量...
• 向量场的微积分基本定理问题引入向量场的积分梯度、散度与旋度散度与旋度的运算法则积分公式的向量形式应用举例例题1例题2练习例子，弧长积分求面积，注意极坐标的弧长微分公式对坐标的曲线积分回顾格林公式回顾 ...
• 建立了外微分理论与场论之间一些对应法则，指出外微分形式是场论中众多命题数学模型，得到用外微分运算解决场论中梯度、旋度、散度以及环量与通量计算和几种重要矢量场：梯度场、旋度场、调和场证明新方法...
• 高等数学常见函数求导导数运算法则复合函数求导方向导数与梯度（难点）凸集与凸函数一元函数求极值多元函数求极值（了解）拉格朗日乘子法泰勒公式展开空间解析几何和向量代数线性代数 矩阵定义，矩阵转置单位...
• 本节目录1 线性代数1.1 矩阵定义1.2 特殊矩阵1.3 矩阵运算1.3.1 矩阵乘法1.3.2 矩阵转置1.3.3 运算法则1.3.4 矩阵逆（除法）2 微积分基本知识2.1 导数2.2 偏导数2.3 方向导数2.4 梯度2.5 凸函数和凹函数3 概率...
• 1.训练样本大量情况下，计算偏导数计算量过大 解决：随机梯度下降 将从样本中抽取部分样本分成若干份，然后做梯度下降。...消除链式法则中发生连乘式每一项绝对值小于1情况。 1.初始化一个合适w 有可...
• 一些比较基础的知识点，例如卷积层的运算，梯度下降的运算法则等，将不再赘述。本文中不会出现过多的数学解释，全文以实践为目的。 目录 1. 在训练集上效果不佳时，可采取的措施 · 选择合适的损失函数 · m...
• b) 熟悉导数链式法则及常见函数导数 c) 熟悉常见优化方法，梯度下降，随机梯度下降等 d) 熟悉矩阵和向量乘加运算 e) 熟悉全连接层、损失函数反向传播 卷积定义 ​ 对于输入图像III , 使用维度为k1...
• 反向传播 计算复杂函数的解析梯度，（每个变量的导数指明了整个表达式对于该变量的值的...更复杂的情况是，各个变量，比如上面局部梯度的x,y,z是向量的时候，局部梯度就变成了雅可比矩阵 但是当维数太大以及一次需...
• b) 熟悉导数链式法则及常见函数导数 c) 熟悉常见优化方法，梯度下降，随机梯度下降等 d) 熟悉矩阵和向量乘加运算 约定说明 a) 对于一个nnn层神经网络,第iii层表示为li,&amp;amp;amp;amp;nbsp;1≤i...
• 最小二乘法和梯度下降法 之前有讲过线性回归求解...最小二乘法则可以直接解出结果，但是运算量大，数据量大时会很慢。 数据归一化和标准化 可以看到归一化是把所有数据全部缩放到0-1之间，而样本标准差是所有...