深度学习笔记数学方面——矩阵计算,自动求导
坚持每天打卡学习深度学习,今天学了数学部分。
1.列向量的导数是横向量
2 分子布局符号
分母布局符号对于分子布局和分母布局的结果来说,两者相差一个转置。
3.一些求导公式,加粗为向量
4.自动求导,计算一个函数在指定值上的导数,有别于符号求导,数值求导(高数中的)
5.计算图:将代码分解为操作子,将代码表示为一个无环图。
构造方式:显式构造,用于数学(Tensorflow,MXNet,Theano)
隐式构造(MXNet,PyTorch)
6. y.backward()在PyTorch中是求导
7.PyTorch 是一种用于构建深度学习模型的功能完备框架,是一种通常用于图像识别和语言处理等应用程序的机器学习。使用 Python 编写,因此对于大多数机器学习开发者而言,学习和使用起来相对简单。PyTorch 的独特之处在于,它完全支持 GPU,并且使用反向模式自动微分技术,因此可以动态修改计算图形。这使其成为快速实验和原型设计的常用选择。
8.深度学习中,我们的目的不是计算微分矩阵, 而是批量中每个样本单独计算的偏导数之和
9.梯度是一个向量,是一个n元函数f关于n个变量的偏导数,梯度会指向各点处的函数值降低的方向。更严格的讲,梯度指示的方向是各点处的函数值减少最多的方向。因为方向导数=cos(\theta)×梯度,而\theta是方向导数的方向和梯度方向的夹角。所以,所有的下降方向中,梯度方向下降的最多。深度学习中, 神经网络的主要任务是在学习时找到最优的参数(权重和偏置),这个最优参数也就是损失函数最小时的参数。但是,一般情况下,损失函数比较复杂,参数也很多,无法确定在哪里取得最小值。所以通过梯度来寻找最小值(或者尽可能小的值)的方法就是梯度法。
10MXNet 是开源深度学习框架,允许用户在多种设备(无论是云基础设施还是移动设备)上定义、训练和部署深度神经网络。该框架具备高度可扩展性,可以进行快速的模型训练,并支持灵活的编程模型和多种语言。
利用 MXNet 可以混合符号和命令式编程,以更大限度提升效率和生产力。该框架的核心是动态依赖性调度程序,可自动即时并行处理符号式操作和命令式操作 图形优化层使符号执行速度更快、内存效率更高。
MXNet 库可移植并且规模小巧。它采用 NVIDIA Pascal™ GPU 加速,可以跨多个 GPU 和多个节点进行扩展,从而更快地训练模型。