matmul

matmul,第1张

matmul 为什么人工智能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对矩阵运算的加速能力。

这是与目前人工智能领域的理论基础有很大关系。

目前的人工智能是基于数学模型现时的人工智能已经往多方面发展,但基础的理论还是基于机器学习的。

而机器学习是以统计数学为基础,本质上是大量的数学运算。

其中矩阵运算是被大量用于表达数学模型。

比如你去看斯坦福大学的相关公开课你都可以看到许多的数学论证不会像一般编程语言那样使用for循环,取而代之是用数学符合表达。

有效提升计算性能在计算机的角度上看,矩阵运算很容易被分割成独立的运算模块,互相之间不影响。

因此非常适合做并行运算。

矩阵运算不是新技术在深度学习兴起之前,其实计算机业界一直都有使用矩阵运算。

在游戏开发中,关于画面显示的部分,显卡会承担着大量的矩阵运算。

因此,在深度学习流行起来后,TensorFlow作为支持一个做数学计算流图的软件库,无可争议地选择以矩阵运算作为计算基础。

未来的可能通过上述几点可以看出来,TensorFlow选择矩阵运算作为基础,可以说是适应当前的环境。

但计算机在未来这些年有大量的新技术出现,比如量子计算机。

加上目前人工智能技术远远未达到成熟,在未来的时间里,其底层基础也是有可能被推翻。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/4374123.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-10-30
下一篇2022-10-30

发表评论

登录后才能评论

评论列表(0条)

    保存