基于PyTorch重寫的機(jī)器學(xué)習(xí)工具包HyperLearn,速度更快、內(nèi)存使用更少,效率提高了一倍。
HyperLearn是一個(gè)基于PyTorch重寫的機(jī)器學(xué)習(xí)工具包Scikit Learn,它的一些模塊速度更快、需要內(nèi)存更少,效率提高了一倍。
專為大數(shù)據(jù)而設(shè)計(jì),HyperLearn可以使用50%以下的內(nèi)存,并在某些模塊上運(yùn)行速度提高50%以上。將支持GPU,并且所有模塊都是并行化的。
項(xiàng)目作者DanielHan-Chen,畢業(yè)于澳大利亞新南威爾士大學(xué),專注于AI、NLP和無監(jiān)督機(jī)器學(xué)習(xí)的推薦和匹配算法。
基于HyperLearn,作者展示了如何讓很多機(jī)器學(xué)習(xí)算法更快、更高效。
其中一些很酷的算法:
最小二乘法/線性回歸的擬合時(shí)間相比sklearn減少70%,內(nèi)存使用減少50%
由于新的并行算法,非負(fù)矩陣分解的擬合時(shí)間相比sklearn減少50%
Euclidean算法/余弦相似度算法加快40%
LSMR迭代最小二乘法時(shí)間減少50%
新的Reconstruction SVD算法——使用SVD來估算丟失的數(shù)據(jù),比mean imputation方法好約30%稀疏矩陣運(yùn)算速度提高50%——并行化
RandomizedSVD,速度加快20%~30%
New Incremental SVD和Incremental Eig,RandomizedSVD / Truncated SVD
等等
項(xiàng)目地址:
https://github.com/danielhanchen/hyperlearn
并且,作者寫了一本電子書:Modern Big Data Algorithms,介紹了12個(gè)新算法以及一些更新的算法:
紅色:新算法;綠色:更新的算法;藍(lán)色:即將發(fā)布
讓我們先大致看一下“奇異值分解”(SVD)這一章,這是最重要的算法之一。SVD將PCA、線性回歸、嶺回歸、QDA、LDA、LSI、推薦系統(tǒng)、壓縮算法、L2 distance等多種算法聯(lián)系在一起,可以說是機(jī)器學(xué)習(xí)中最重要的算法了。
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還嵌入了統(tǒng)計(jì)推斷方法,可以被想Scikit Learn語法(model.confidence_interval_)一樣調(diào)用。
速度/內(nèi)存的比較
時(shí)間表示Fit + Predict的時(shí)間。RAM(mb) = max( RAM(Fit), RAM(Predict) )
以下是N = 5000,P = 6000時(shí)的初步結(jié)果:
關(guān)鍵方法和目標(biāo)
令人尷尬的并行循環(huán)
速度提升50%+,精簡50%+
為什么Statsmodels有時(shí)會(huì)慢得讓人無法忍受?
使用PyTorch的深度學(xué)習(xí)模塊
代碼量減少20%+,更清晰的代碼
訪問舊算法和令人興奮的新算法
1. 令人尷尬的并行循環(huán)
包括內(nèi)存共享,內(nèi)存管理
通過PyTorch和Numba的CUDA并行性
2. 50%+ Faster, 50%+ Leaner
矩陣乘法排序:
https://en.wikipedia.org/wiki/Matrix_chain_multiplication
Element Wise矩陣乘法將復(fù)雜度從O(n^3)降低到O(n^2):https://en.wikipedia.org/wiki/Hadamard_product_(matrices)
將矩陣運(yùn)算簡化為Einstein Notation:https://en.wikipedia.org/wiki/Einstein_notation
連續(xù)評(píng)估一次性矩陣操作以減少RAM開銷。
如果p >> n,則可能分解X.T優(yōu)于分解X.
在某些情況下,應(yīng)用QR分解SVD可能會(huì)更快。
利用矩陣的結(jié)構(gòu)來計(jì)算更快(例如三角矩陣,Hermitian矩陣)。
計(jì)算 SVD(X),然后獲得pinv(X) ,有時(shí)比單純計(jì)算pinv(X)更快
3. 為什么Statsmodels有時(shí)會(huì)慢得讓人無法忍受?
對(duì)線性模型的置信度、預(yù)測區(qū)間,假設(shè)檢驗(yàn)和擬合優(yōu)度檢驗(yàn)進(jìn)行了優(yōu)化。
盡可能使用 Einstein Notation和Hadamard Products。
僅計(jì)算需要計(jì)算的內(nèi)容(計(jì)算矩陣對(duì)角線,而不是整個(gè)矩陣)。
修復(fù)Statsmodels在符號(hào)、速度、內(nèi)存方面的問題和變量存儲(chǔ)上的缺陷。
4. 使用PyTorch的深度學(xué)習(xí)模塊
使用PyTorch創(chuàng)建Scikit-Learn
5. 代碼量減少20%+,更清晰的代碼
盡可能使用 Decorators和Functions。
直觀的中層函數(shù)名稱,如(isTensor,isIterable)。
通過hyperlearn.multiprocessing輕松處理并行
6. 訪問舊算法和令人興奮的新算法
矩陣補(bǔ)全算法——非負(fù)最小二乘法,NNMF
批相似性隱含狄利克雷分布(BS-LDA)
相關(guān)回歸(Correlation Regression)
可行的廣義最小二乘法FGLS
Outlier Tolerant Regression
多維樣條回歸(Multidimensional Spline Regression)
廣義MICE
使用Uber的Pyro進(jìn)行貝葉斯深度學(xué)習(xí)
《現(xiàn)代大數(shù)據(jù)算法》電子書下載地址:
https://github.com/danielhanchen/hyperlearn/blob/master/Modern%20Big%20Data%20Algorithms.pdf
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8503瀏覽量
134596 -
pytorch
+關(guān)注
關(guān)注
2文章
809瀏覽量
13954
原文標(biāo)題:基于PyTorch重寫sklearn,《現(xiàn)代大數(shù)據(jù)算法》電子書下載
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
恩智浦車規(guī)級(jí)深度學(xué)習(xí)工具包使新一代汽車應(yīng)用性能提高30倍
Facebook推出ReAgent AI強(qiáng)化學(xué)習(xí)工具包
Python人工智能學(xué)習(xí)工具包+入門與實(shí)踐資料集錦
求LabVIEW2014 機(jī)器學(xué)習(xí)工具包
固件工具包
單片機(jī)開發(fā)調(diào)試工具包
Google Kubernetes機(jī)器學(xué)習(xí)工具包Kubeflow發(fā)布0.1版
Python網(wǎng)頁爬蟲,文本處理,科學(xué)計(jì)算,機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘工具集

清華大學(xué)發(fā)布首個(gè)開源自動(dòng)圖學(xué)工具包
Microchip(微芯)推出MPLAB機(jī)器學(xué)習(xí)開發(fā)工具包

評(píng)論