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

举报
计算机魔术师 发表于 2022/08/29 22:38:01 2022/08/29
【摘要】 🤵‍♂️ 个人主页: @计算机魔术师👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。🌐 推荐一款找工作神器网站: 牛客网🎉🎉|笔试题库|面试经验|实习招聘内推 还没账户的小伙伴 速速点击链接跳转牛客网登录注册 开始刷爆题库,速速通关面试吧🙋‍♂️该文章收录专栏✨— 机器学习 —✨@toc@[toc](【机器学习】向量化计算 —机器学习路上必经路) 一、求解矩阵在求...

在这里插入图片描述

🤵‍♂️ 个人主页: @计算机魔术师
👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。

🌐 推荐一款找工作神器网站: 牛客网🎉🎉|笔试题库|面试经验|实习招聘内推
还没账户的小伙伴 速速点击链接跳转牛客网登录注册 开始刷爆题库,速速通关面试吧🙋‍♂️

该文章收录专栏
✨— 机器学习 —✨

@toc

@[toc](【机器学习】向量化计算 —机器学习路上必经路)

一、求解矩阵

在求解矩阵中,往往有很多很好的,经过高度优化的线性代数库,如octave,matlib,python numpy, c++,java.
我们使用这些线性代数库,可以短短几行实现 所要的效果。

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

二、例一

例如 求公式:

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

三、例二

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

(对梯度下降还不了解建议先食用文章:机器学习】浅谈正规方程法&梯度下降
在梯度下降(Gradient descent)同步更新参数 θ i ( i = 1 , 2 , 3... m ) \theta_i(i=1,2,3...m)中


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

如图:
在这里插入图片描述

我们将所求式子变为 向量之间的运行,
θ = θ α δ \theta = \theta - \alpha * δ
(其中: δ δ = x = 1 n h θ ( x ) y i 2 n x i \sum_{x=1}^n \frac{(h_\theta(x) - y_i)^2}{ n }*x_i , h θ ( x ) y i h_\theta(x) - y_i 是一个实数, x i x_i 是特征维度的列向量)
在这里插入图片描述

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

四、写在最后

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。