【小宅按】機器學習(Machine Learning)是一門涉及統計學、系統辨識、逼近理論、神經網路、最佳化理論、計算機科學、腦科學等諸多領域的交叉學科,研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能,是人工智慧技術的核心。這都是官話和套話,聽得大家雲裡霧裡的。通俗一點說,什麼是機器學習呢?使用機器學習的目的是什麼?

一、機器學習的本質

機器學習的最終目的就是實現分類,其實機器學習的本質就是一個非線性的分類器。這裡劃重點,有兩個重點:一個是非線性,另外一個分類器。無論是迴歸演算法、聚類演算法,卷積神經網路演算法,這一切都是為了分類而生的。現實世界的許多問題,都可以轉換成分類問題,就拿下圍棋來說,也可以轉換成分類問題,先轉換落子機率問題,最終轉化成輸和贏(分類問題)。

1、線性分類器

要解釋清楚非線性的分類器,那麼就需要從線性分類器講起。剛開始的分類,就是使用簡單的數學公式去分類。例如:區分自然數中的奇數和偶數,數學公式就是自然數模2,如果結果等於0就是偶數,不等於0就是奇數。後來公式複雜一些,就是Y = wX+b 函式去分類,位於直線上面的一類,位於直線下面的一類。例如下圖:

你應該瞭解的機器學習演算法及平臺框架

2、非線性分類器

後來,由於特徵差異非常細微,使用複雜的數學公式也不能分類了,那麼機器學習演算法就誕生了。先用已經打好標籤的資料做樣本,訓練出來一個模型,使用這個模型去分類。這個模型就是一個非線性的分類器。這種型別的分類器就是普通機器學習的分類器,包括迴歸、分類、聚類等各種演算法。例如下圖就是一個典型的非線性分類。

你應該瞭解的機器學習演算法及平臺框架

3、深度卷積分類器

最近比較流行的是深度學習,其實也是一個非線性的分類器。因為普通的機器學習不能有效的區分現實世界裡的物體,那麼就需要更多維度的引數作為輸入引數和多層卷積來訓練模型,透過這個模型來分類,但本質還是為了精細化的分類,在更高緯度裡把相似的物體區分開來。

你應該瞭解的機器學習演算法及平臺框架

二、機器學習演算法

機器學習按照學習的方式分為:監督學習、非監督學習、強化學習。網上有大量的資料,不再囉嗦。下圖主要列舉出來常用的監督學習和非監督學習的演算法。

你應該瞭解的機器學習演算法及平臺框架

演算法的詳細實現過程,在Scikit_learning都有,並且還有詳細的Example。

連結:

http://

scikit-learn。org/stable

/

你應該瞭解的機器學習演算法及平臺框架

三、業界機器學習平臺框架的標杆企業

有了機器學習演算法,還需要平臺框架去承載。考慮到機器學習的演算法程式碼都已經開源,本節內容重點不會洞察這些機器學習演算法,洞察一些框架訓練平臺。

你應該瞭解的機器學習演算法及平臺框架

1、普通機器學習平臺庫的標杆企業

Spark Machine Learning Library(ML)提供了許多分類、迴歸和聚類演算法的具體實現,它還支援降維,特徵提取和一些最佳化方法。 該庫是Spark平臺的一部分,它提供了Java,Scala和Python的API。

Scikit-learning為Python開發人員提供了各種機器學習功能和演算法。 它支援分類,迴歸,聚類以及降維,模型選擇和預處理的其他方法。Scikit-learning是普通機器學習的標杆。

Apache Mahout是開發可伸縮演算法的數學環境。旨在讓數學家,統計學家和資料科學家快速實現他們自己的演算法。該環境可以與MLlib整合。

2、深度學習平臺框架的標杆企業

TensorFlow是一個以圖來表示計算的程式設計系統。TF是深度學習框架的標杆。

AWS Deep Learning AMI整合戰略,主流的深度學習框架全部整合(如 Apache MXNet 和 Gluon、TensorFlow、Microsoft Cognitive Toolkit、Caffe、Caffe2、Theano、Torch、Pytorch、Chainer 和 Keras )。透過生態來聚攏使用者,來提升AMI影響力,來對抗Google TensorFlow。

Deeplearning4j(Deep Learning for Java)是一個為Java和Scala編寫的開源深度學習框架是。 它可以與Spark和Hadoop整合,使其具有高度可擴充套件性並適合用於業務。 該框架已經在Apache 2。0許可下發布。

四、華為GTS使用機器學習演算法

GTS在網路最佳化、網路維護領域,使用了大量的機器學習演算法,不是說這些機器學習演算法拿來就直接能用,需要和電信業務做大量的適配,目前GTS AI專案組完成了60多種機器學習演算法和業務做了適配。後面會使用一個章節拿一個Case講演算法和業務如何適配。

下表列舉出來GTS AI專題使用的機器學習演算法:

你應該瞭解的機器學習演算法及平臺框架

五、GTS搭建的機器學習訓練平臺

那麼有了機器學習演算法,需要搭建一個訓練平臺,在GTS也是做了這方面的工作。做了一個MANAS平臺,平臺能力包括:

你應該瞭解的機器學習演算法及平臺框架

1、底層支援CPU/GPU的擴充套件、硬體資源的排程和分配、具有彈性計算能力。

2、資料的採集和資料解析,採集能力包括站點物理資訊、網路裝置的日誌、告警、配置、執行態資料、Debug等資料,採集上來的資料一般都是壓縮的資料,需要各種解析工具,解析成可以識別的資料。

3、集成了深度學習框架(TensorFlow)、Spark、機器學習。

4、模型的管理(模型載入、模型資源排程和分配、模型評估、模型部署)。

5、目前可以為站點勘測、質量驗收、網路規劃、網規網優、網路維護等領域的模型訓練和模型部署。

6、平臺加固和安全能力。

六、機器學習訓練平臺部署

平臺具備的能力是有了,那麼這些平臺如何部署?部署的原則是什麼呢?

1、資料安全的地域屬性原則:機器學習的平臺部署,要考慮網路安全(資料不能離開本地)的問題,考慮地域屬性問題。

2、覆蓋原則,部署的位置能儘量覆蓋一個區域的業務。

3、網路傳輸原則:部署區域的網路傳輸時延在一定的範圍內,例如:100ms範圍內。

基於以上三個原則,MANAS部署在“2+5”個節點。其中的2代表是德國和貴州,用於訓練態和執行態模型部署。5代表俄羅斯、迪拜、南非、墨西哥、巴西,這幾個節點主要是執行態,覆蓋就近的國家。執行態就是把訓練好的模型直接拿來,執行業務模型,直接為業務服務。詳細見下圖

你應該瞭解的機器學習演算法及平臺框架

可能大家對訓練態和部署態有一些疑惑,為什麼搞兩種部署環境呢?做一套不行嗎?這裡做一個解釋。訓練態大家都可以理解,就是考慮到模型訓練需要大量的計算資源,深度學習需要GPU,所以需要訓練態的環境。那麼為什麼訓練態的環境部署在中國(貴州)和德國呢?主要是從網路安全出發考慮的,因為歐洲的資料不能出歐盟,所以在德國部署一個點。

那為什麼需要執行態的環境呢?在網路側的人工智慧,難道不是部署在客戶的網路裡嗎?是的,這樣理解是對的。例如:網規網優、網路的故障預測預防,這都是和現網強相關,需要採集一些實時資料,是需要貼著現網部署。但GTS-AI不僅僅是為了客戶的網路服務的,有許多業務是我們內部效率改進的,例如:站點智慧勘測、質量智慧驗收、網路智慧設計等,都屬於工程作業類的活動,這些就不是隨著客戶的網路部署的。

那麼這就需要隨著我們的工程作業去部署,部署在俄羅斯(覆蓋大俄羅斯),迪拜(覆蓋中亞和中東),南非(覆蓋北非、東南非、西非),巴西(覆蓋拉美南),墨西哥(覆蓋拉美北、南美南),貴州(覆蓋中國區、東南亞、南太),德國(覆蓋歐盟)。環境部署完畢,有了訓練環境和執行環境,我們就可以在上面訓練模型,部署模型,做業務。

那麼這個MANAS平臺還有哪些差距呢?或者將來需要補齊的一些能力,簡單列舉一下

1、

執行態的部署必須支援輕量化的部署,這就要求我們的MANAS平臺能支援模組的裁剪,必須能做到各種模組的解耦

,例如:執行引擎與資源排程框架的解耦,元件依賴解耦等。只有做到這些,才能實現輕量化的部署。其實,一些關鍵的業務(例如:預測預防),都是直接部署在現網的,有實時性要求的,既然是要求部署在現網上的,那麼就必須考慮輕量化的部署,不要因為模組相互牽制和影響,平臺非常厚重,再加上採集資料量非常大,做著做著,就做成一個大機房,做成一個數據中心了,這是客戶吐槽多次的。這一定要避免。這方面就多參考TensorFlow和Deeplearning4j,看如何做到模組之間的解耦。

2、

平臺的易用性和低門檻

。平臺就是希望降低使用者的門檻,讓更多的工程師使用這個平臺。特別是服務一線海外的工程師,一線的訴求是最真實和迫切的,如果把一線的訴求傳遞給機關來做,時間不趕趟,另外實現的東西壓根不是一線想要的東西,乒乓來乒乓去的太麻煩了。如果一線工程師能在MANAS平臺上自己解決,那麼是最好不過的。這就對平臺的能力要求很高,簡單操作,易用的介面,邏輯合理,而不是許多東西拐來拐去的,實現一個東西恨不能繞幾個彎兒,這就不行。這方面需要長時間的積累,不是一時半會能搞定的。想要彌補這方面的短板,就必須加大測試力度,讓一線多試用,多反饋。降低人員能力要求的同時,簡化業務開發流程。詳細高手在民間,民間的問題他們自己解決是最快速的。機關只是搭建一個平臺,但不是說你搭建一個平臺就完了,讓大家都來試用,才是最終目的。這就需要花大力氣去最佳化和簡化的核心訴求。

更多精彩內容,請滑至頂部點選右上角關注小宅哦~

你應該瞭解的機器學習演算法及平臺框架