1. 程式人生 > >ANGEL:一個新型的分散式機器學習系統

ANGEL:一個新型的分散式機器學習系統

引言

當前,人工智慧在多個領域的強勢崛起,讓人們領略到人工智慧技術的巨大潛力。在未來,人工智慧技術還將會改變包括金融、醫療、通訊、教育、交通、能源在內的所有行業[1]。現階段的人工智慧主要依賴機器學習技術和大資料,通過對海量資料進行抽象表示和建模,來幫助人們做出判斷和決策。

機器學習模型的求解方法大致分為兩類。頻率派方法將模型求解定義為一個優化問題,往往使用梯度下降(Gradient Descent)方法進行求解;貝葉斯學派的模型計算則通常使用蒙特卡羅(Monte Carlo)隨機抽樣方法對模型引數進行估計。而這兩類方法在目前的機器學習系統(Spark[2]Petuum[4]TensorFlow[5]

)中,都沒能得到良好的支援。Spark由於缺乏對共享引數的高效更新和同步操作,因而在面臨高維度的模型時效能下降;Petuum缺乏對資料的高效管理,其設計的模型求解演算法沒有考慮生產環境中的異構資訊;TensorFlow則忽略了資料的稀疏性,缺乏對分散式的有效支援。

因此,我們開發了一個新型的分散式機器學習系統——Angel[6,7]。它採用混合並行的方式加速蒙特卡羅隨機抽樣方法的收斂速度,並通過感知真實環境中的異構資訊來提升分散式隨機梯度下降演算法(SGD)的收斂速度。

Angel系統概述

當計算節點數目增加時,已有的引數伺服器系統都無法展現出良好的擴充套件性,因為它們只支援單獨的並行策略。資料並行可以提供較好的擴充套件性,但由於不同計算節點之間會產生模型的更新衝突,因而降低了演算法的收斂速度;模型並行通過對不同的節點計算進行排程,避免了不同的節點對同一個維度的模型進行更新,加快了演算法的收斂速度,但每次迭代都需要進行全域性同步操作,造成一定的效能損失。為了解決這個問題,

Angel將資料並行與模型並行有效地結合起來,支援混合並行策略來加速機器學習演算法的收斂速度,這樣可以同時利用資料並行方法的高擴充套件性和模型並行方法的收斂速度,達到更好的訓練效能。混合並行方法在常用的貝葉斯模型(如話題模型)中能夠得到較大的效能提升。

真實的生產環境往往存在資源競爭,導致不同計算節點的計算速度不同,從而產生掉隊者問題。為了降低掉隊者節點對機器學習演算法收斂速度造成的影響,我們設計了異構感知隨機梯度下降演算法DYNSGD(Dynamic Learning Rate SGD),根據節點的執行速度動態地調整節點的學習率。對於掉隊者節點,給它設定一個較小的權重,從而降低其對全域性收斂速度的影響,加快對優化問題的求解速度。我們通過理論證明了

DYNSGD演算法比已有的分散式隨機梯度下降演算法具有更快的收斂速度。

目前,Angel已經應用於具有大資料大規模挑戰的機器學習任務上,包括廣告推薦、特徵抽取和文字挖掘等等。Angel支援多種常用的機器學習演算法,包括使用梯度下降求解的邏輯迴歸(Logistic Regression, LR)、線性迴歸(Linear Regression, LR)、支援向量機(SVM)K-平均演算法(KMeans)、矩陣分解(MF)、樹模型(GBDT)以及使用蒙特卡羅抽樣求解的話題模型(LDA)。我們使用多種機器學習模型將AngelPetuumSparkTensorFlow以及XGBoost[8]在真實的叢集環境中進行了詳盡的實驗對比,證明Angel在多種機器學習演算法上都可以獲得更好的效能。

Angel系統架構與演算法設計

Angel的系統設計架構如圖1所示,主要包括四個元件:客戶端(Client)、主控節點(Master)、計算節點(Worker)和儲存節點(Server)

崔斌文章-圖1

1 Angel系統架構

1. 客戶端:任務啟動的入口。使用者通過使用AngelAPI介面編寫程式(目前Angel支援的語言包括JavaScala),通過客戶端將任務提交到YARN[3]。客戶端包含使用者對於任務的配置資訊和模型引數的定義,以及模型同步協議的選擇。

2. 主控節點:由YARN啟動的程序,用來管理Angel任務的生命週期,包括向YARN資源管理器申請資源,啟動計算節點和儲存節點,停止任務等等。除此之外,主控節點上維護了資料分割槽、模型分割槽、任務時鐘以及儲存節點的SNAPSHOT資訊,掌控任務的執行狀態,並通過WEB介面向用戶進行展示,方便使用者觀測任務的進行和除錯。主控節點定時將全域性資訊寫入分散式檔案系統HDFS中,用於在錯誤發生時進行任務恢復。

3. 儲存節點:作為模型引數的分散式記憶體儲存系統,向所有計算節點維護一份全域性的模型引數。在任務提交階段或任務執行階段,模型矩陣通過劃分形成多個模型分割槽,每個儲存節點維護一個或者多個分割槽。儲存節點上支援儲存各種型別的模型矩陣,包括稠密、稀疏、浮點或整型,用於滿足各種機器學習演算法的需求。模型引數記錄了機器學習演算法的收斂程序,因此儲存節點會定時將模型引數寫入HDFS,用於錯誤恢復。

4. 計算節點:用於計算任務的程序。每個計算節點通過從HDFS讀取訓練資料,並且從儲存節點上讀取模型引數來進行模型訓練。當計算節點完成一輪演算法的計算時,將模型的更新發送到儲存節點上進行模型同步。計算節點中提供了三種資料儲存的方式,用於保證任務可以在不同資源條件下完成訓練。

這四種節點構成了Angel系統的組成架構,其中客戶端和主控節點只有一個,而計算節點和儲存節點的個數可由使用者根據任務的資料量和模型複雜程度自行設定。

混合並行

貝葉斯模型的求解方法常常使用馬爾可夫蒙特卡羅(MCMC)隨機採用方法來對模型的後驗分佈進行估計。常用的MCMC方法(如吉布斯取樣)是序列的方法,其分散式的變種目前有兩種,即資料並行和模型並行。

我們以貝葉斯模型中常用的話題模型(LDA)[10]為例來描述這兩種並行方式(見圖2)。話題模型中詞-話題(word-topic)模型矩陣需要在多個計算節點中共享。在資料並行中,每個計算節點維護一份獨立的模型矩陣,每個節點獨立進行運算,節點之間沒有太多等待和約束,因而可以獲得較高的並行度,但同時也造成了模型更新衝突,降低了演算法的收斂速度;模型並行則加強了計算節點之間的約束,保證同一個時刻不同的計算節點在更新不同的模型維度,由此避免了模型更新衝突,加速了收斂,但同時帶來了排程的同步開銷。

崔斌文章-圖2

2 資料並行與模型並行

因此,Angel採用了混合並行的策略,將計算節點劃分成多個節點組,在組內做模型並行,在組間做資料並行,在減少引數更新衝突的同時,獲得較高的併發度,使得機器學習演算法可以擴充套件到大規模的叢集之中。

組間資料並行:Angel根據計算節點的數目,將資料自動劃分並分配到各個節點組中,每個節點組根據自己的訓練資料進行引數的更新和計算。組間資料並行確保Angel可以獲得較高的併發度。

組內模型並行:Angel將多個計算節點組成一個節點組,在節點組內選取一個協調節點,用於排程節點組內計算節點之間的執行方式。在同一個時間分片,不同節點可以並行更新不同維度的模型,避免在進行模型更新時產生衝突,從而加速模型演算法的收斂速度。

異構感知隨機梯度下降演算法DYNSGD

梯度下降方法是求解優化問題的常用方法,而SGD演算法由於具有快速的收斂速度和較小的記憶體消耗,是目前主流的分散式機器學習模型求解方法。為了降低SGD演算法在分散式環境中的等待時間,目前的引數伺服器系統提出了有限非同步協議隨機梯度下降演算法(Stale Synchronous Parallel SGD, SSPSGD)[9]。但是SSPSGD演算法的問題在於它沒有考慮在異構環境下計算節點產生的更新具有滯後性,而直接將計算節點的更新累加到全域性的模型引數,當全域性引數已經接近最優點時,來自掉隊者的更新將會導致全域性引數遠離最優點。在異構環境中,由於節點之間的效能差異較大,該問題將會更加嚴重從而導致演算法不收斂。

因此我們提出了DYNSGD演算法,給每一個計算節點的更新賦予一個staleness值,該staleness值定義了一個更新相對於全域性引數的滯後程度。一般來說,越慢的計算節點產生的更新的staleness值越大。為了減少慢節點產生的更新對全域性引數造成的影響,DYNSGD演算法給每個更新賦予不同的學習率,對於慢節點產生的更新,其學習率會較小,對於快節點的更新,其學習率則會較大。

3給出了DYNSGD演算法的一個例子,u1u2u3都是從同一個全域性引數副本計算得到的更新,當u1被計算節點推送到引數伺服器時,其staleness=1,則學習率為1;當u2到達時,其staleness=2,因為已經有一個更新到達了,這時我們需要將u2的學習率設為1/2,因為u1已經被累加到全域性引數上了,所以需要將u1的更新進行修正;當u3到達時,其staleness=3,學習率為1/3,這時我們需要修正u1u2的更新。

SSPSGD演算法相比,DYNSGD演算法避免了直接將更新累加到全域性引數上,通過對不同延遲的更新使用不同的學習率,從而減少了延遲更新對收斂帶來的影響。

崔斌文章-圖3

3 DYNSGD演算法示例

引數同步、資料管理與容錯

在引數獲取時,Angel通過流式的方式獲取模型矩陣的引數,這樣可以將計算操作和網路操作重合起來,降低網路延遲;同時,由於訓練資料往往具有稀疏性,每個計算節點上可能需要的引數只是全部引數的一部分,Angel利用這種資料稀疏性對每個計算節點建立維度索引,減少獲取引數時的網路開銷。此外,Angel採用非同步執行的方式進行引數的更新操作,將梯度計算與引數更新操作並行化,減少引數更新的開銷。

在對大規模資料進行訓練的過程中,訓練資料的清洗和儲存是一個很大的開銷。Angel可以自動地對訓練資料進行劃分,根據計算節點的數目將訓練自動地劃分成多個均衡的分割槽,從而避免由於負載不均衡造成的掉隊者問題。Angel還可以對訓練資料進行自動化管理,將訓練資料儲存在記憶體、磁碟或在記憶體和磁碟中進行混合儲存。靈活的儲存方式可以供使用者自由選擇,從而減少了計算節點的記憶體開銷。

Angel還提供了對主控節點、儲存節點和計算節點的高效容錯機制,從而保證在錯誤發生時任務可以繼續執行。由於客戶端負載很低,並不影響任務的進行,Angel沒有對客戶端的錯誤進行處理。

實驗對比

我們使用真實的資料集在騰訊公司的叢集環境中進行了測試,並對四種演算法進行了對比,包括邏輯迴歸(LR)、矩陣分解(MF)GBDTKMeans和話題模型(LDA)。其中LRMFGBDTKMeans都使用SGD進行求解,而LDA使用MCMC進行求解。我們對比的系統包括SparkPetuumTensorFlow,在GBDT演算法的對比中,我們將AngelXGBoost進行了對比。

實驗中使用的資料集資訊如表1所示。我們使用了公開的資料集,包括Kdd2010NetflixPubMED;還使用了騰訊公司業務中真實的資料集Gender,用於進行使用者性別的預測。

1 實驗使用的資料集資訊

崔斌文章-表1

邏輯迴歸:在LR演算法上,Angel具有比其他三個系統更快的收斂速度(見圖4)。Spark需要在每輪迭代時進行模型引數的廣播和彙總,嚴重影響了效能;Petuum採用了SSPSGD演算法,需要在一次迭代中間進行多次的模型同步才能保證模型收斂,多餘的模型同步操作影響了效能;TensorFlow對張量(tensor)大小的限制,也需要在一次迭代過程中進行多次模型同步。

崔斌文章-圖4

4 邏輯迴歸

KMeans:我們在PubMEDKdd2010這兩個資料集上對KMeans演算法進行測試,計算SparkPetuumAngel達到同一個目標值的時間(見圖5)。在PubMED資料集上,AngelPetuum更快,並且比Spark2倍;在Kdd2010資料集上,Angel的效能是Spark8倍左右,而Petuum,由於只能將引數矩陣按照行進行劃分,因而無法完成對高維度資料集的計算。

崔斌文章-圖5

5 KMeans

GBDT:圖6給出了在GBDT演算法上的效能對比。由於AngelGBDT進行了針對性的優化[12],從而在高維的資料上效能更優。由於XGBoost使用了AllReduce的方式來進行引數的彙集操作,因而當特徵的數目增加時,效能也會下降。當特徵數是50K時,Angel的效能是XGBoost1.11倍;當特徵數是330K時,Angel的效能是XGBoost2.55倍。同時,Angel的效能還是Spark4.8~21倍。

崔斌文章-圖6

6 GBDT

矩陣分解:在矩陣分解模型上,我們使用交叉最小二乘法(Alternative Least Squares, ALS)來進行求解。圖7給出SparkPetuumAngel在該演算法上的效能對比,可以看出Angel的效能是Petuum4倍,是Spark1.3倍。

崔斌文章-圖7

7 矩陣分解

話題模型:圖8給出了在話題模型上PetuumAngel的效能對比。我們設定話題的個數為1000。達到同樣的目標值時Angel的效能是Petuum5倍左右,這是由於AngelLDA會根據文字資訊選擇最好的取樣器[11],並且採用了混合並行的策略,而Petuum只有模型並行。對於PubMED資料集,Spark會因為產生太多的網路通訊而導致效能特別差。

崔斌文章-圖8

8 話題模型

實際應用

目前Angel已經在騰訊公司的推薦業務和資料分析業務中得到了實際的應用,使用範圍包括視訊推薦,興趣構建和廣告推薦等。

視訊推薦:在騰訊視訊的業務中,需要向用戶推薦他可能喜歡的視訊。通常使用的演算法是邏輯迴歸。對於一個新的使用者請求,我們通過邏輯迴歸模型計算出該使用者對不同視訊喜歡的概率,從而向他推薦他可能喜歡的視訊。在實際的推薦業務中,我們使用Angel1.7億條訓練樣本進行邏輯迴歸的模型訓練,模型維度達到2600萬。相比於SparkAngel的效能提升了10倍左右。

微信文章推送:微信的朋友圈和公眾號有很多文章,我們會嘗試幫助使用者對文章進行篩選,給使用者推薦並推送該使用者可能喜歡的文章。我們採用L1正則化的邏輯迴歸進行微信文章的推薦工作,使用ADMM(Alternating Direction Method of Multipliers)邏輯迴歸演算法對1億條樣本進行模型訓練,模型維度達到1000萬。相比於SparkAngel的效能可以提升12倍。

使用者興趣構建:為了提升對使用者的推薦效果,我們會使用話題模型來構建出使用者的興趣,並給物品打上標籤。在實際業務中,對379萬個物品和5億個使用者的資料進行訓練,使用者行為總數達到200億,模型的維度達到40億。相比於SparkAngel的效能提升了8倍。

總結與展望

本文介紹了一個新型的分散式機器學習系統——Angel,用於對大規模的機器學習任務進行模型求解。Angel使用混合並行加速了MCMC演算法的收斂速度,提出了異構感知的DYNSGD演算法加速了分散式SGD演算法的速度,因此Angel可以在大部分機器學習模型上獲得良好的模型求解效能。目前Angel已經全面開源1,並且打造出強大的引數伺服器能力來擴充套件Spark進行大規模模型的訓練,建立了Spark-on-Angel系統。

之後我們會重點加強深度學習和線上學習的研製工作。利用Angel的高維模型訓練能力,為深度學習系統和流式處理系統提供分散式的功能並且提高其分散式模型訓練的效能。

註釋:

1 https://github.com/Tencent/angel

參考文獻:

     [1] 李航.對於AI,我們應該期待什麼?[J].中國計算機學會通訊, 2016,12(11): 50-54.

[2] Zaharia M, Chowdhury M, Franklin M J, et al. Spark: cluster computing with working sets[C]//Proceedings of the 2nd USENIX conference on Hot topics in cloud computing. USENIX Association, 2010:10-10.

[3] Vavilapalli V K, Murthy A C, Douglas C, et al. Apache Hadoop YARN: yet another resource negotiator[C]//Proceedings of the 4th annual Symposium on Cloud Computing. ACM Press, 2013:5.

[4] Xing E P, Ho Q, Dai W, et al. Petuum: A New Platform for Distributed Machine Learning on Big Data[C]//Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM Press, 2015: 1335-1344.

[5] Abadi M, Barham P, Chen J, et al. TensorFlow: a system for large-scale machine learning[C]//Proceedings of the 12th USENIX conference on Operating Systems Design and Implementation. USENIX Association, 2016: 265-283.

[6] Jiang J, Cui B, Zhang C, et al. Heterogeneity-aware Distributed Parameter Servers[C]//Proceedings of the 2017 ACM International Conference on Management of Data. ACM Press, 2017:463-478.

[7] Jiang J, Yu L, Jiang J, et al. Angel: A New Large-scale Machine Learning System[C]. NSR’2017.

[8] Chen T, Guestrin C. XGBoost: A Scalable Tree Boosting System[C]//Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM Press, 2016: 785-794.

[9] Ho Q, Cipar J, Cui H, et al. More effective distributed ml via a stale synchronous parallel parameter server[C]//Advances in Neural Information Process Systems. 2013: 1223-1231.

[10] Blei D M, Ng A Y, Jordan M I. Latent Dirichlet Allocation[J]. The Journal of Machine Learning Research, 2003(3): 993-1022.

[11] Yu L, Zhang C, Shao Y, et al. LDA*: A Robust and Large-scale Topic Modeling System[J]. Proceedings of the VLDB Endowment, 2017(10):11.

[12] Jiang J, Jiang J, Cui B, et al. TencentBoost: A Gradient Boosting Tree System with Parameter Server[C]//Proceedings of 2017 IEEE 33rd International Conference on Data Engineering. IEEE, 2017.

相關推薦

ANGEL一個新型分散式機器學習系統

引言 當前,人工智慧在多個領域的強勢崛起,讓人們領略到人工智慧技術的巨大潛力。在未來,人工智慧技術還將會改變包括金融、醫療、通訊、教育、交通、能源在內的所有行業[1]。現階段的人工智慧主要依賴機器學習技術和大資料,通過對海量資料進行抽象表示和建模,來幫助人們做出判斷和決策。 機器學習模型的求解方法大致分為

Ng第十一課機器學習系統的設計(Machine Learning System Design)

未能 計算公式 pos 構建 我們 行動 mic 哪些 指標 11.1 首先要做什麽 11.2 誤差分析 11.3 類偏斜的誤差度量 11.4 查全率和查準率之間的權衡 11.5 機器學習的數據 11.1 首先要做什麽 在接下來的視頻將談到機器

騰訊高效能分散式機器學習平臺 Angel 2.0.0 釋出

   Angel 2.0.0 版本已釋出,在 2.0.0-alpha 版本上修復了大量 bug 並對穩定性做了較多的優化;同時對部分演算法進行了重構。 Angel Core [ISSUE-418] 對 PS 端 Matrix 儲存方式進行了優化,當模型格式配置為稀疏

分散式機器學習框架MxNet

前言: caffe是很優秀的dl平臺。影響了後面很多相關框架。 cxxnet借鑑了很多caffe的思想。相比之下,cxxnet在實現上更加乾淨,例如依賴很少,通過mshadow的模板化使得gpu和cpu程式碼只用寫一份,分散式介面也很乾淨。 mxnet是cxxnet的

分散式機器學習框架MxNet 前言

Minerva: 高效靈活的並行深度學習引擎          不同於cxxnet追求極致速度和易用性,Minerva則提供了一個高效靈活的平臺讓開發者快速實現一個高度定製化的深度神經網路。          Minerva在系統設計上使用分層的設計原則,將“算的快”這一對於系統底層的需求和“好用”這一對於

分散式機器學習平臺大比拼Spark、PMLS、TensorFlow、MXNet

  本論文從分散式系統的角度開展針對當前一些機器學習平臺的研究,綜述了這些平臺所使用的架構設計,對這些平臺在通訊和控制上的瓶頸、容錯性和開發難度進行分析和對比,並對分散式機器學習平臺的未來研究工作提出了一些建議。文中的工作由 Murat Demirbas 教授與他的研究生 Kuo Zhang 和 Salem

書單 | 《分散式機器學習演算法、理論與實踐》——理論、方法與實踐的全面彙總(文末有福利)...

編者按:人工智慧和大資料時代,分散式機器學習解決了大量最具挑戰性的問題。為了幫助機器學習從業者更

分散式機器學習如何快速從Python棧過渡到Scala棧

首先介紹下我的情況和需求,如果你跟我類似,那麼這篇文章將很有幫助; 我之前的技術棧主要是**Java**、**Python**,機器學習方面主要用到是**pandas**、**numpy**、**sklearn**、**scipy**、**matplotlib**等等,因為工作需要使用spark,所以理所應

機器學習系統構建

情況 tracking center best water 這就是 錯誤分析 pos ext 看了NG視頻關於機器學習系統構建的建議,感覺非常有用,記錄下來作為聽課筆記。 首先是機器學習系統構建的流程: NG推薦方法:首先高速實現一個可能並非非常完美的算

機器學習系統設計》讀書筆記

stat 工具 cluster sig img idt 讀書筆記 wid ima 1、 scipy中的工具包如下:(會用到的有:stats、interpolate、cluster、signal) 《機器學習系統設計》讀書筆記

智能小車29自動駕駛與機器學習

數據 adas 控制 如何 判斷 comm 規律 擁有 ext 要讓我的小車能自動去倒一杯咖啡。需要的做的事還有很多,其中一個很難的問題就是自動駕駛,怎麽才能讓我的小車自動駕駛到咖啡機旁邊去呢? 1.DeepDriving,網址http://deepdriving.cs.p

[機器學習系統設計(一)]數據導入,預處理與一次二次擬合

畫圖 標簽 參數 殘差 res 模型 pri itl 創建模型 目錄: 1.數據的讀取 2.數據的預處理 3.一次擬合 4.二次擬合 5.分段擬合 6.畫圖 案例:已收集某個網頁每個小時被點擊的次數,第一行數據為小時,第二行數據表示點擊次數。現在需擬合出點擊次數與時間的

25個Java機器學習工具和庫

重點 推薦系統 mine 很多 .sh 分類器 ssi 包括 eve 轉自:http://www.cnblogs.com/data2value/p/5419864.html 本列表總結了25個Java機器學習工具&庫: 1. Weka集成了數據挖掘工作的機器學習算法

機器學習系統設計(Building Machine Learning Systems with Python)- Willi Richert Luis Pedro Coelho

切分 秘密 閾值 isa 占用 第二版 思考 並且 了解 機器學習系統設計(Building Machine Learning Systems with Python)- Willi Richert Luis Pedro Coelho 總述 本書是 2014 的,看完以後才

(原創)一個完整的機器學習項目是怎麽建立起來的

時間 port 所有 散點 平均值 註意 sklearn 重復數 因此 在這篇文章中,將介紹機器學習項目的流程 明確問題 首先,我們需要預覽這個項目。項目的目的是什麽,以房價預測為例,數據為StatLib的加州房產數據,那麽目的就是預測街區的房產價格中位數。 劃定問題及分析

吳恩達機器學習筆記 —— 12 機器學習系統設計

不知道 cor 算法 項目 詞語 樣本 我們 們的 ... http://www.cnblogs.com/xing901022/p/9362339.html 本章主要圍繞機器學習的推薦實踐過程以及評測指標,一方面告訴我們如何優化我們的模型;另一方面告訴我們對於分類的算法

Andrew Ng-ML-第十二章-機器學習系統設計

image block 勝利 創建 向量 使用 回歸 神經網絡 邏輯回歸 1.確定執行的優先級 圖1.郵件垃圾分類舉例 選擇100個單詞作為指示是否是垃圾郵件的指標,將這些單詞作為特征向量,只用0/1表示,出現多次也只用1表示,特征變量用來表示郵件。 通常情況下,會

[吳恩達機器學習筆記]11機器學習系統設計5數據量對機器學習的影響

ril 預測 數據 教程 擬合 mic 因此 效果 數據集 11. 機器學習系統的設計 覺得有用的話,歡迎一起討論相互學習~Follow Me 參考資料 斯坦福大學 2014 機器學習教程中文筆記 by 黃海廣 11.5 數據量對機器學習的影響 Data For Mac

Andrew Ng機器學習(零)什麽是機器學習

中學 修正 style tar 輸入 color 情況 html 知識 1.什麽是機器學習? 自動化:讓計算機處理繁瑣和重復的工作。 編程:設計一種算法,適用於解決特定的問題。 機器學習:可以解決更廣泛的而不是特定的問題。類比於人類從經驗中學習這種活動,從已有的數據中發現自

機器學習系統設計》高清中文版+高清英文版+源代碼

51cto images mar tex blog proc 中文版 對比 com 下載:https://pan.baidu.com/s/1SxtjUnSoeRbbIF8k5MPH3Q 《機器學習系統設計》高清中文版+高清英文版+源代碼 帶目錄和書簽,中英文兩版可以對比學習