python向量运算为什么快_向量运算在机器学习中有多重要?

本文介绍了向量化在机器学习中的应用,通过对比非向量化的代码与向量化的代码,展示了向量运算在提升效率和简化代码方面的作用。以线性回归和梯度下降法为例,说明了如何利用向量表示来优化算法实现。作者强调了线性代数基础知识对于理解和实践机器学习的重要性,并建议在学习机器学习前重温线性代数。
摘要由CSDN通过智能技术生成

本文是吴恩达《机器学习》视频笔记第32篇,对应第2周第14个视频。

“Octave Tutorial——Vectorization”,是第二周内容的最后一个视频。

引言

几乎所有的语言,包括Matlab、Python、Java,甚至C++、C,都会有一些能够进行线性代数运算的包、库等等,而这些包或者库都是由一些具有博士、硕士学位的数值分析的专家开发的,非常优秀。

当进行机器学习编码的时候,尽管好好的调用它们就好了。而直接调用这些线性代数的方法实现一些矩阵或向量运算会使一些特定的数学运算变得更高效。

向量运算的妙处

先看一个简单的例子,这样的一个函数,

我们知道上图中的函数,是我们进行线性回归分析的一种假设的模型函数。

那,这个函数如果使用向量形式表示,就变成了:

上图左边是非向量化的实现代码,而右边是向量化的实现代码。 很显然右边的代码更简单,而且Octave内置的一些向量运算实现方法可能比我们自己写的for循环更高效。

再看一个稍微复杂一点的例子,梯度下降法。

梯度下降法的更新算法如下图:

我们不停地更新这些\theta,找到更合适的那组\theta,使得Cost最小。

那有没有办法用向量来实现这个算法呢?

上图中那三个式子,实际上可以用一个向量式子来表示(图中红色矩形框内):

总结

这次视频,一句话总结就是:线性代数在机器学习中非常基础、非常重要。

机器学习的很多东西都是用矩阵、向量来表示的,向量是机器学习中的一个基本单位,在计划学习Machine Learning之前一定要翻一翻线性代数的教材,而且要常常翻看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值