《基于PyTorch重写的机器学习工具包HyperLearn.doc》由会员分享,可在线阅读,更多相关《基于PyTorch重写的机器学习工具包HyperLearn.doc(4页珍藏版)》请在三一文库上搜索。
1、基于PyTorch重写的机器学习工具包HyperLearn基于PyTorch重写的机器学习工具包HyperLearn,速度更快、内存使用更少,效率提高了一倍。HyperLearn是一个基于PyTorch重写的机器学习工具包Scikit Learn,它的一些模块速度更快、需要内存更少,效率提高了一倍。专为大数据而设计,HyperLearn可以使用50以下的内存,并在某些模块上运行速度提高50以上。将支持GPU,并且所有模块都是并行化的。项目作者DanielHan-Chen,毕业于澳大利亚新南威尔士大学,专注于AI、NLP和无监督机器学习的推荐和匹配算法。基于HyperLearn,作者展示了如何让
2、很多机器学习算法更快、更高效。其中一些很酷的算法:最小二乘法/线性回归的拟合时间相比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
3、SVD等等项目地址:https:/github/danielhanchen/hyperlearn并且,作者写了一本电子书:Modern Big Data Algorithms,介绍了12个新算法以及一些更新的算法:红色:新算法;绿色:更新的算法;蓝色:即将发布让我们先大致看一下“奇异值分解”(SVD)这一章,这是最重要的算法之一。SVD将PCA、线性回归、岭回归、QDA、LDA、LSI、推荐系统、压缩算法、L2 distance等多种算法联系在一起,可以说是机器学习中最重要的算法了。Page on SVDPage on Reconstruction SVDUsing SVD to recons
4、truct 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),
5、 RAM(Predict) )以下是N = 5000,P = 6000时的初步结果:关键方法和目标令人尴尬的并行循环速度提升50+,精简50+为什么Statsmodels有时会慢得让人无法忍受?使用PyTorch的深度学习模块代码量减少20+,更清晰的代码访问旧算法和令人兴奋的新算法1. 令人尴尬的并行循环包括内存共享,内存管理通过PyTorch和Numba的CUDA并行性2. 50%+ Faster, 50%+ Leaner矩阵乘法排序:https:/en.wikipedia/wiki/Matrix_chain_multiplicationElement Wise矩阵乘法将复杂度从O(n)降
6、低到O(n):https:/en.wikipedia/wiki/Hadamard_product_(matrices)将矩阵运算简化为Einstein Notation:https:/en.wikipedia/wiki/Einstein_notation连续评估一次性矩阵操作以减少RAM开销。如果p n,则可能分解X.T优于分解X.在某些情况下,应用QR分解SVD可能会更快。利用矩阵的结构来计算更快(例如三角矩阵,Hermitian矩阵)。计算 SVD(X),然后获得pinv(X) ,有时比单纯计算pinv(X)更快3. 为什么Statsmodels有时会慢得让人无法忍受?对线性模型的置信度、
7、预测区间,假设检验和拟合优度检验进行了优化。尽可能使用 Einstein Notation和Hadamard Products。仅计算需要计算的内容(计算矩阵对角线,而不是整个矩阵)。修复Statsmodels在符号、速度、内存方面的问题和变量存储上的缺陷。4. 使用PyTorch的深度学习模块使用PyTorch创建Scikit-Learn5. 代码量减少20+,更清晰的代码尽可能使用 Decorators和Functions。直观的中层函数名称,如(isTensor,isIterable)。通过hyperlearn.multiprocessing轻松处理并行6. 访问旧算法和令人兴奋的新算法矩阵补全算法非负最小二乘法,NNMF批相似性隐含狄利克雷分布(BS-LDA)相关回归(Correlation Regression)可行的广义最小二乘法FGLSOutlier Tolerant Regression多维样条回归(Multidimensional Spline Regression)广义MICE使用Uber的Pyro进行贝叶斯深度学习现代大数据算法电子书下载地址:https:/github/danielhanchen/hyperlearn/blob/master/Modern%20Big%20Data%20Algorithms.pdf
链接地址:https://www.31doc.com/p-3411667.html