首页后端开发Python为什么人工智能tensorflow运算是以矩阵运算作为基础的

为什么人工智能tensorflow运算是以矩阵运算作为基础的

时间2023-06-06 18:56:01发布访客分类Python浏览198
导读:为什么人工智能tensorflow运算是以矩阵运算作为基础的?tensorflow作为深度学习框架,背后的理论以矩阵运算为基础矩阵运算,能极大加速计算过程,如果不用矩阵运算,模型训练时间太长理论基础和对速度的要求,使得以矩阵运算成为必然。深...

为什么人工智能tensorflow运算是以矩阵运算作为基础的?

tensorflow作为深度学习框架,背后的理论以矩阵运算为基础

矩阵运算,能极大加速计算过程,如果不用矩阵运算,模型训练时间太长

理论基础和对速度的要求,使得以矩阵运算成为必然。深度学习的理论基础以矩阵为基础

tensorflow是Google开发的深度学习框架,而深度学习,作为一种数学模型,是以数学为基础的,具体来讲是以线性代数和概率论为基础。而矩阵和张量 (Tensor, 对,就是Tensorflow中的Tensor)是线性代数的基本数学概念。

优化算法中的最速下降法离不开对矩阵求导

深度学习绝大多数都是监督学习,或者想办法转为监督学习,比如猫狗分类、销量预测等等。深度学习作为机器学习的一种,优化算法本质上是梯度下降法,对应数学的最速下降法。

看看回归中的求导算法:

背后求导都是基于矩阵的,会涉及矩阵的求逆、惩罚运算等。

深度学习中的基本模块离不开矩阵运算

以近两年自然语言处理中火热的BERT模型为例,里面的模型架构都已 Transformer为基础,看看这个模型的内部结构:

里面的线性层(Linear)本质上就是两个矩阵的相乘, 注意力机制模型 (Attention)见下面两幅图,明显也是矩阵相乘(MatMul)紧密相关。

矩阵(张量)运算可以加速训练

计算机硬件本质上是对应的都是电路,背后都是数字的加减乘除基本运算,最底层是信号的与或非等基本电路。

理论上而言,也不可以用矩阵,直接用标量写个多重For循环计算,但是这样速度太慢。

而利用向量化能明显加速计算过程,python中常用numpy背后都是以向量化为基础的矩阵运算。

再进一步到英伟达的GPU或者Google的TPU, 用专门的芯片来专门做矩阵运算。见下图,是16年某论文的截图,可以看到对GPU而言,在k=[0, 128]区间范围内,对上千维的矩阵相乘(2560×2048, 2048×k),时间是恒定不变的,可见 GPU对矩阵运算的加速能力。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 为什么人工智能tensorflow运算是以矩阵运算作为基础的
本文地址: https://pptw.com/jishu/64349.html
手机上有像scratch一样的编程工具吗 python的乘号在键盘什么地方

游客 回复需填写必要信息