前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【机器学习】向量化计算 -- 机器学习路上必经路

【机器学习】向量化计算 -- 机器学习路上必经路

作者头像
计算机魔术师
发布2022-08-23 09:52:07
7750
发布2022-08-23 09:52:07
举报
文章被收录于专栏:计算机魔术师

👋👋欢迎来到👋👋 🎩魔术之家!!🎩 该文章收录专栏 ✨— 机器学习 —✨ 专栏内容 ✨— 【机器学习】浅谈正规方程法&梯度下降 —✨ ✨— 【机器学习】梯度下降之数据标准化 —✨ ✨— 【机器学习】logistic分类回归算法—✨ ✨— 第十届“泰迪杯“感谢学习总结—✨

【机器学习】向量化计算 ---机器学习路上必经路

一、求解矩阵

在求解矩阵中,往往有很多很好的,经过高度优化的线性代数库,如octave,matlib,python numpy, c++,java.

我们使用这些线性代数库,可以短短几行实现 所要的效果。

阅读本文内容(需要一点点线性代数的知识)

二、例一

例如 求公式:

h(x) = \sum_{i=1}^n\theta_i*x_i

我们可以通过循环每一个值来求 每一个i 所对应的结果,但此时循环的时间复杂度为O(n) , 我们可以把 \theta_i(i=1,2,3...n) 看为n 维的列向量,x_i 作为 n 维的列向量,则原公式即为求两个向量的内积 \theta^T*x_i 来求得方程,这样在numpy中仅仅需要一行代码。如下图(演示代码为octave(matlib开源版)

c++实现

三、例二

  • 再看一个复杂一点的例子:

(对梯度下降还不了解建议先食用文章:机器学习】浅谈正规方程法&梯度下降

在梯度下降(Gradient descent)同步更新参数\theta_i(i=1,2,3...m)中

我们可以通过循环i 得到每个参数更新,但我们是否能用例子一的方法 简化呢,

如图:

我们将所求式子变为 向量之间的运行,\theta = \theta - \alpha * δ

(其中:

是一个实数,x_i 是特征维度的列向量)

此时参数 \theta_i 也能同步更新,符合要求

四、写在最后

在面对,数据为百万级别,千万级别,或者特征为百万级别,特征级别,向量化计算对提高运算效率非常高效,比for循环要好用得多,这在机器学习中是非常常见的,一定要掌握

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/07/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【机器学习】向量化计算 ---机器学习路上必经路
  • 一、求解矩阵
  • 二、例一
  • 三、例二
  • 四、写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档