0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于PyTorch重写的机器学习工具包HyperLearn

DPVg_AI_era 来源:未知 作者:李倩 2018-11-20 09:23 次阅读

基于PyTorch重写的机器学习工具包HyperLearn,速度更快、内存使用更少,效率提高了一倍。

HyperLearn是一个基于PyTorch重写的机器学习工具包Scikit Learn,它的一些模块速度更快、需要内存更少,效率提高了一倍。

专为大数据而设计,HyperLearn可以使用50%以下的内存,并在某些模块上运行速度提高50%以上。将支持GPU,并且所有模块都是并行化的。

项目作者DanielHan-Chen,毕业于澳大利亚新南威尔士大学,专注于AI、NLP和无监督机器学习的推荐和匹配算法

基于HyperLearn,作者展示了如何让很多机器学习算法更快、更高效。

其中一些很酷的算法:

最小二乘法/线性回归的拟合时间相比sklearn减少70%,内存使用减少50%

由于新的并行算法,非负矩阵分解的拟合时间相比sklearn减少50%

Euclidean算法/余弦相似度算法加快40%

LSMR迭代最小二乘法时间减少50%

新的Reconstruction SVD算法——使用SVD来估算丢失的数据,比mean imputation方法好约30%稀疏矩阵运算速度提高50%——并行化

RandomizedSVD,速度加快20%~30%

New Incremental SVD和Incremental Eig,RandomizedSVD / Truncated SVD

等等

项目地址:

https://github.com/danielhanchen/hyperlearn

并且,作者写了一本电子书:Modern Big Data Algorithms,介绍了12个新算法以及一些更新的算法:

红色:新算法;绿色:更新的算法;蓝色:即将发布

让我们先大致看一下“奇异值分解”(SVD)这一章,这是最重要的算法之一。SVD将PCA、线性回归、岭回归、QDA、LDA、LSI、推荐系统、压缩算法、L2 distance等多种算法联系在一起,可以说是机器学习中最重要的算法了。

Page on SVD

Page on Reconstruction SVD

Using SVD to reconstruct missing data

提速50%+,RAM使用减少50%+

提速50%+,RAM使用减少50%+,GPU支持的重写Sklearn,使用Statsmodels组合新的算法。

HyperLearn完全用PyTorch, NoGil Numba, Numpy, panda, Scipy 和 LAPACK编写,镜像主要是Scikit Learn。HyperLearn还嵌入了统计推断方法,可以被想Scikit Learn语法(model.confidence_interval_)一样调用。

速度/内存的比较

时间表示Fit + Predict的时间。RAM(mb) = max( RAM(Fit), RAM(Predict) )

以下是N = 5000,P = 6000时的初步结果:

关键方法和目标

令人尴尬的并行循环

速度提升50%+,精简50%+

为什么Statsmodels有时会慢得让人无法忍受?

使用PyTorch的深度学习模块

代码量减少20%+,更清晰的代码

访问旧算法和令人兴奋的新算法

1. 令人尴尬的并行循环

包括内存共享,内存管理

通过PyTorch和Numba的CUDA并行性

2. 50%+ Faster, 50%+ Leaner

矩阵乘法排序:

https://en.wikipedia.org/wiki/Matrix_chain_multiplication

Element Wise矩阵乘法将复杂度从O(n^3)降低到O(n^2):https://en.wikipedia.org/wiki/Hadamard_product_(matrices)

将矩阵运算简化为Einstein Notation:https://en.wikipedia.org/wiki/Einstein_notation

连续评估一次性矩阵操作以减少RAM开销。

如果p >> n,则可能分解X.T优于分解X.

在某些情况下,应用QR分解SVD可能会更快。

利用矩阵的结构来计算更快(例如三角矩阵,Hermitian矩阵)。

计算 SVD(X),然后获得pinv(X) ,有时比单纯计算pinv(X)更快

3. 为什么Statsmodels有时会慢得让人无法忍受?

对线性模型的置信度、预测区间,假设检验和拟合优度检验进行了优化。

尽可能使用 Einstein Notation和Hadamard Products。

仅计算需要计算的内容(计算矩阵对角线,而不是整个矩阵)。

修复Statsmodels在符号、速度、内存方面的问题和变量存储上的缺陷。

4. 使用PyTorch的深度学习模块

使用PyTorch创建Scikit-Learn

5. 代码量减少20%+,更清晰的代码

尽可能使用 Decorators和Functions。

直观的中层函数名称,如(isTensor,isIterable)。

通过hyperlearn.multiprocessing轻松处理并行

6. 访问旧算法和令人兴奋的新算法

矩阵补全算法——非负最小二乘法,NNMF

批相似性隐含狄利克雷分布(BS-LDA)

相关回归(Correlation Regression)

可行的广义最小二乘法FGLS

Outlier Tolerant Regression

多维样条回归(Multidimensional Spline Regression)

广义MICE

使用Uber的Pyro进行贝叶斯深度学习

《现代大数据算法》电子书下载地址:

https://github.com/danielhanchen/hyperlearn/blob/master/Modern%20Big%20Data%20Algorithms.pdf

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8406

    浏览量

    132567
  • pytorch
    +关注

    关注

    2

    文章

    807

    浏览量

    13200

原文标题:基于PyTorch重写sklearn,《现代大数据算法》电子书下载

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    恩智浦车规级深度学习工具包使新一代汽车应用性能提高30倍

    恩智浦半导体推出汽车车规级深度学习工具包eIQ Auto,扩展了公司eIQ机器学习产品系列。该工具包旨在帮助客户从开发环境快速地转向满足汽车
    发表于 11-06 11:46 758次阅读

    Facebook推出ReAgent AI强化学习工具包

    Facebook近日推出ReAgent强化学习(reinforcement learning)工具包,首次通过收集离线反馈(offline feedback)来实现策略评估(policy evaluation)。
    发表于 10-19 09:38 1577次阅读

    Python人工智能学习工具包+入门与实践资料集锦

    本资料的主要内容详细介绍的是Python工具包合集包括了:网页爬虫工具集,文本处理工具集,Python科学计算工具包,Python机器
    发表于 11-22 14:46

    求LabVIEW2014 机器学习工具包

    有哪位大神有labview2014 机器学习工具包啊,分享一下,急需!!非常感谢!
    发表于 03-15 23:08

    并口开发调试工具包 (推荐)

    并口开发调试工具包 (推荐):
    发表于 05-27 10:15 35次下载
    并口开发调试<b class='flag-5'>工具包</b> (推荐)

    固件工具包

    固件工具包 修改工具包 高兴向大家公布这个信息! 首先介绍一下这个工具地用途: 1、修改固件 - 通过此工具能够修改固件中绝大多数地信息及配置。 2、...
    发表于 03-16 14:49 71次下载

    单片机开发调试工具包

    单片机开发调试工具包学习51单片机必备的工具
    发表于 12-17 10:45 19次下载

    WEBENCH 设计工具包综合概述

    WEBENCH 设计工具包综合概述
    发表于 09-15 09:28 6次下载
    WEBENCH 设计<b class='flag-5'>工具包</b>综合概述

    Google Kubernetes机器学习工具包Kubeflow发布0.1版

    Google自家推出的Kubernetes机器学习工具包Kubeflow终于发布了0.1版。 Google表示,虽然该项目仅成立5个多月,但是目前在GitHub上,已经有超过3,000名用户收藏该项目,“而在GitHub平台的关
    发表于 05-17 08:17 1803次阅读

    Microchip苹果配件开发工具包

    这一讲是Microchip苹果配件开发工具包苹果配件开发工具包
    的头像 发表于 06-06 13:45 2288次阅读

    Python网页爬虫,文本处理,科学计算,机器学习和数据挖掘工具

    本文档的主要内容详细介绍的是Python工具包合集包括了:网页爬虫工具集,文本处理工具集,Python科学计算工具包,Python机器
    发表于 09-07 17:14 37次下载
    Python网页爬虫,文本处理,科学计算,<b class='flag-5'>机器</b><b class='flag-5'>学习</b>和数据挖掘<b class='flag-5'>工具</b>集

    清华大学发布首个开源自动图学工具包

    如何应用自动机器学习 (AutoML) 加速图机器学习任务的处理?清华大学发布全球首个开源自动图学习工具
    的头像 发表于 12-22 16:32 1648次阅读

    使用 OpenVINO™ 工具包监控机器操作员

    使用 OpenVINO™ 工具包监控机器操作员
    的头像 发表于 01-03 09:45 725次阅读
    使用 OpenVINO™ <b class='flag-5'>工具包</b>监控<b class='flag-5'>机器</b>操作员

    OneInstall工具包

    电子发烧友网站提供《OneInstall工具包.exe》资料免费下载
    发表于 08-18 14:54 0次下载
    OneInstall<b class='flag-5'>工具包</b>

    Microchip(微芯)推出MPLAB机器学习开发工具包

    机器学习(ML)正成为嵌入式设计人员开发或改进各种产品的标准要求。为满足这一需求,Microchip(微芯)近日推出了全新的MPLAB®机器学习开发
    的头像 发表于 09-12 18:26 1030次阅读
    Microchip(微芯)推出MPLAB<b class='flag-5'>机器</b><b class='flag-5'>学习</b>开发<b class='flag-5'>工具包</b>