【機器學習PAI實戰】—— 玩轉人工智慧之綜述

芊寶寶發表於2019-03-21
【機器學習PAI實戰】—— 玩轉人工智慧之綜述

模型訓練與線上預測服務、推薦演算法四部曲、機器學習PAI實戰、更多精彩,盡在開發者分會場

【機器學習PAI實戰】—— 玩轉人工智慧之商品價格預測

【機器學習PAI實戰】—— 玩轉人工智慧之你最喜歡哪個男生?

【機器學習PAI實戰】—— 玩轉人工智慧之美食推薦

【機器學習PAI實戰】—— 玩轉人工智慧之利用GAN自動生成二次元頭像

緒論

人工智慧並非新的術語,這個概念由來已久,大約從80年代初開始,電腦科學家們開始設計可以學習和模仿人類行為的演算法。人工智慧的發展曲折向前,伴隨著資料量的上漲、計算力的提升,機器學習的火熱,以及深度學習的爆發,人工智慧迎來快速發展,迅速席捲全球。

人工智慧的研究領域也在不斷擴大,已經涵蓋專家系統、機器學習、進化計算、模糊邏輯、計算機視覺、自然語言處理、推薦系統等多個領域。可以毫不誇張地說,人工智慧技術正在像100多年前的電力一樣,即將改變每個行業。每個企業都不希望在這次浪潮中掉隊,如何才能利用AI幫助自己的企業進行轉型呢?AI領域著名學者吳恩達在前不久針對該問題,發表了《AI轉型指南》。

機器學習,作為實現人工智慧的一種方法,對於人工智慧的發展起著十分重要的作用。而深度學習,作為機器學習中的一種技術,更是摧枯拉朽地實現了各種任務,極大推動了各個領域朝著人工智慧的方向邁進。下面這張圖,非常形象地概況了三者之間的關係。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

總之,人工智慧、機器學習、深度學習已經深入到企業生產和個人生活的方方面面。能夠熟練運用機器學習解決生活生產當中的應用,掌握人工智慧技術,對於企業和個人的長遠發展變得至關重要。

1. 機器學習演算法

機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法複雜度理論等多門學科。機器學習演算法根據解決的任務型別,可以分為分類演算法、迴歸演算法、聚類演算法等,深度學習作為機器學習中比較特殊的一類演算法,是神經網路演算法的延伸和擴充套件。

機器學習大致可以分為監督學習和非監督學習。監督式學習,由已有的資料包括輸入輸出,訓練模型函式;然後把新的輸入資料帶入模型函式,預測資料輸出。函式的輸出如果是一個連續的值,則稱為迴歸分析,如果輸出是離散數值,則稱作分類。與監督學習相對應的是無監督學習,此時資料沒有標註資訊,聚類是典型的無監督學習。

阿里雲機器學習平臺PAI(Platform of Artificial Intelligence),為傳統機器學習提供上百種演算法和大規模分散式計算的服務;為深度學習客戶提供單機多卡、多機多卡的高價效比資源服務,支援最新的深度學習開源框架;幫助開發者和企業客戶彈性擴縮計算資源,輕鬆實現線上預測服務。

PAI-Studio封裝常用機器學習演算法及豐富的視覺化元件,使用者無需程式碼基礎,通過拖拉拽即可訓練模型。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

如下圖示,在阿里雲機器學習平臺開通賬號之後,進入管理控制檯—視覺化建模,根據自己的需要新建專案,進入機器學習即可進入到PAI-Studio進行使用。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述
【機器學習PAI實戰】—— 玩轉人工智慧之綜述

PAI-Studio上通過拖拽演算法元件,構建實驗,進行模型訓練,訓練好的模型可以一鍵部署到PAI-EAS。機器學習模型線上部署功能可以將您的模型一鍵部署為Restful API,您可以通過HTTP請求的方式進行呼叫(使用說明文件)。

PAI-DSW(Data science workshop)是專門為演算法開發者準備的雲端深度學習開發環境,使用者可以登入DSW進行程式碼的開發並執行工作。目前DSW內建了PAI團隊深度優化過的Tensorflow框架,同時也可以通過開啟console對話視窗自行安裝需要的第三方庫。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

1.1 分類演算法

分類演算法應用廣泛,比如新聞內容分類、商品類目預測、文字情感分析、郵件垃圾過濾、影象分類、異常檢測等。常見的分類演算法有k近鄰、樸素貝葉斯、決策樹、SVM、利用adaboost增強弱分類器等。

k近鄰演算法(kNN),簡單地說,是採用測量不同特徵值之間距離的方法進行分類。kNN的工作原理是:存在一個樣本集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料(最近鄰)的分類標籤。一般來說,我們只選擇樣本資料集中前k個最相似的資料,這就是k-近鄰演算法中k的出處。最後,選擇k個最相似資料中出現次數最多的分類,作為新資料的分類。

決策樹,比較容易理解,以下圖為例,根據某個人的特徵(年齡、是否學生、信用情況)來進行分類,判斷是否可以放貸款給他。生成的決策樹如下圖示。決策樹思想,實際上就是尋找最純淨的劃分方法,主要通過決策樹的構造和剪枝。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

儘管有剪枝等等方法,一棵樹的生成肯定還是不如多棵樹,因此就有了隨機森林,解決決策樹泛化能力弱的缺點。根據訓練資料,構造m個CART決策樹,這m個CART形成隨機森林,通過投票表決結果,決定資料屬於哪一類(投票機制有一票否決制、少數服從多數、加權多數),這就是隨機森林的方法。

樸素貝葉斯,其中的樸素一詞的來源就是假設各特徵之間相互獨立。這一假設使得樸素貝葉斯演算法變得簡單,但有時會犧牲一定的分類準確率。貝葉斯公式定義如下:

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

公式的右邊是總結歷史,公式的左邊是預知未來,如果把Y看出類別,X看出特徵,P(Yk|X)就是在已知特徵X的情況下求Yk類別的概率,而對P(Yk|X)的計算又全部轉化到類別Yk的特徵分佈上來。樸素貝葉斯演算法邏輯簡單,容易實現,計算過程中的時間空間開銷也比較小。樸素貝葉斯假設屬性之間相互獨立,這種假設在實際過程中往往是不成立的。在屬性之間相關性越大,分類誤差也就越大。

支援向量機(Support Vector Machine, SVM)的基本模型是在特徵空間上找到最佳的分離超平面使得訓練集上正負樣本間隔最大。SVM是用來解決二分類問題的有監督學習演算法,在引入了核方法之後SVM也可以用來解決非線性問題。一般SVM有下面三種:(1)硬間隔支援向量機(線性可分支援向量機):當訓練資料線性可分時,可通過硬間隔最大化學得一個線性可分支援向量機。(2)軟間隔支援向量機:當訓練資料近似線性可分時,可通過軟間隔最大化學得一個線性支援向量機。(3)非線性支援向量機:當訓練資料線性不可分時,可通過核方法以及軟間隔最大化學得一個非線性支援向量機。

AdaBoost,每種分類演算法都有自己的優缺點,我們把分類效果不是很好的分類器叫做弱分類器,分類效果好的分類器叫做強分類器。Adaboost演算法基本原理就是將多個弱分類器(弱分類器一般選用單層決策樹)進行合理的結合,使其成為一個強分類器。Adaboost採用迭代的思想,每次迭代只訓練一個弱分類器,訓練好的弱分類器將參與下一次迭代的使用。也就是說,在第N次迭代中,一共就有N個弱分類器,其中N-1個是以前訓練好的,其各種引數都不再改變,本次訓練第N個分類器。其中弱分類器的關係是第N個弱分類器更可能分對前N-1個弱分類器沒分對的資料,最終分類輸出要看這N個分類器的綜合效果。

上面依次對常用的分類演算法進行了介紹,PAI-Studio中也提供了相應的演算法元件,如果想要使用,可以直接拖拽對應元件,配置相關引數即可。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

1.2 迴歸問題

迴歸與分類的不同,就在於其目標變數是連續數值型。迴歸分析根據已知資料訓練出模型(即迴歸方程),對新的資料預測時,只需要代入到模型,計算出預測數值。迴歸幾乎可以應用到任何事情,比如預測商品價格、股價趨勢預測、預測明日氣溫、預測某種情況發生概率(可根據概率大小轉化為分類問題)、預測廣告點選率進行排序等。比較常用的迴歸方法主要有線性迴歸和邏輯迴歸。

線性迴歸比較簡單,描述了自變數和因變數之間的簡單線性關係,我們的目標是通過特徵的組合來學習到要預測函式式(線性式),我們用X1,X2..Xn 去描述feature裡面的分量,我們可以做出一個估計函式:​

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

​,θ在這兒稱為引數,在這的意思是調整feature中每個分量的影響力。如果我們令X0 = 1,就可以用向量的方式來表示了:​

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

​, 我們也需要一個機制去評估我們θ是否比較好,所以說需要對我們做出的h函式進行評估,一般這個函式稱為損失函式(loss function)或者錯誤函式(error function),描述h函式不好的程度,在下面,我們稱這個函式為J函式,我們要做的就是調整θ以使得J(θ)取得最小值。如下所示:

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

其中,最常用的方法是梯度下降法。

邏輯迴歸,logistic迴歸本質上是線性迴歸,只是在特徵到結果的對映中加入了一層函式對映,即先把特徵線性求和,然後使用函式g(z)將最為假設函式來預測。g(z)可以將連續值對映到0和1上。logistic迴歸的假設函式如下,線性迴歸假設函式只是​

【機器學習PAI實戰】—— 玩轉人工智慧之綜述
【機器學習PAI實戰】—— 玩轉人工智慧之綜述

logistic迴歸還可以用來分類0/1問題,也就是預測結果屬於0或者1的二值分類問題。

此外,常用的迴歸方法還有對於線性迴歸做了約束變化的嶺迴歸,非線性的樹迴歸等。

當然,PAI-Studio中也提供了這些演算法元件。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

1.3 聚類演算法

聚類演算法是比較典型的非監督學習。聚類演算法的應用也是十分廣泛的,在新聞熱門話題聚類、影象分割、使用者畫像分析聚類進行個性化推薦、基因工程等多個領域都有很好的應用。聚類演算法直觀地理解,就是將相似的物件歸到同一個簇中,將不相似的物件歸到不同簇,簇內的物件越相似,聚類的效果越好。常見的聚類演算法有K-means、K-medoids、DBSCAN、層次聚類、譜聚類等。

K-means聚類是發現給定資料集的k個簇,簇個數k是使用者提前設定的超引數,每一個簇通過其質心,即簇中所有點的中心來描述。K-means的工作流程是這樣的:1) 隨機確定k個初始點作為質心。 2)將資料集中的每個點分配到一個簇中,具體就是為每個點找距其最近的質心,並將其分配給該質心所對應的簇。3)更新每個簇的質心,即更新為該簇所有點的平均值。4)重複步驟2和3,直至收斂,即滿足迭代次數或者質心基本不再變化。K-medoids演算法是K-means演算法的變型,其中最主要的不同在於以下兩點:第1步驟中Kmedoids選取的質心必須是某些樣本點的值,而不是任意值;更新質心的時候需要先計算cluster內所有樣本點到其中一個樣本點的曼哈頓距離和(絕對誤差),然後選出使cluster絕對誤差最小的樣本點作為質心。

K-medoids聚類可以理解為K-means聚類的變種,其中K-means的初始簇中心點是隨機的,K-medoids的初始中心點必須是樣本中的點;K-means在迭代過程中重新計算質心是計算的平均值,而K-medoids則是先計算所有樣本點到其中一個樣本點的曼哈頓距離之和(絕對誤差),然後選擇使絕對誤差最小的樣本點作為質心。此外K-medoids聚類的時間複雜度更高,對於大規模的資料效能更好,最後聚類的簇中心點也一定是樣本點中的一個。

DBSCAN聚類,英文全寫為Density-based spatial clustering of applications with noise,是一種基於資料密度的無監督聚類演算法。 在聚類空間中的一定區域內,用給定的半徑閾值和數量閾值,篩選出核心點及核心點的領域點,通過密度可達、密度相連的定義,實現資料點的聚類。 在 2014 年,DBSCAN在資料探勘會議 KDD 上獲頒發了 Test of Time award,該獎項是頒發給一些於理論及實際層面均獲得持續性的關注的演算法。和傳統的K-Means演算法相比,DBSCAN最大的不同就是不需要輸入類別數k,當然它最大的優勢是可以發現任意形狀的聚類簇,而不是像K-Means,一般僅僅使用於凸的樣本集聚類。同時它在聚類的同時還可以找出異常點,這點和BIRCH演算法類似。一般來說,如果資料集是稠密的,並且資料集不是凸的,那麼用DBSCAN會比K-Means聚類效果好很多。如果資料集不是稠密的,則不推薦用DBSCAN來聚類。

此外,常用的聚類演算法還有EM聚類、譜聚類等,其中PAI-Studio提供了常用的聚類演算法元件。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

1.4 深度學習

神經網路是深度學習的基礎,深度學習就是包含多個隱藏層(hidden layer)的深度神經網路。神經網路的基本組成單元叫做神經元(neuron),感知器(perceptron)是一種早期的神經元結構,在上個世紀五六十年代就被提出來了,如下圖示,通過下圖可以理解神經元的基本結構和原理。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

神經網路是多個神經元連線起來構成,如下圖示。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

深度神經網路比淺層神經網路有更多結構上的優勢,能夠進行更多層次的抽象,在NLP、影象、語音等領域都有廣泛的應用。深度學習是一個框架,每個領域每個具體場景都可以設計相應的網路結構來解決相應的問題。深度學習的演算法也非常多,比如CNN、RNN、LSTM等都屬於深度學習比較常用的演算法框架。最近幾年,深度學習發展迅速,各種學習框架層出不窮,其中有很多比較前沿也比較火爆的演算法提出,比如GAN(生成對抗網路)、Bert模型等。

在PAI上想實現深度學習的解決方案,有兩種方法,一種是利用PAI-Studio提供的框架Tensorflow和Caffee,在該元件上傳入相應的python原始碼並配置相應輸入輸出和引數,即可利用阿里雲背後支撐的資源進行深度學習的訓練,如下圖。

【機器學習PAI實戰】—— 玩轉人工智慧之綜述

另外一種深度學習解決方案是利用PAI-DSW(Data science workshop),該方案是專門為演算法開發者提供的雲端深度學習開發環境,詳情及使用可參考使用文件

pai上的深度學習解決方案

1.5 小結

PAI(Platform of Artificial Intelligence: pai.alibaba-inc.com)作為阿里巴巴集團的機器學習演算法平臺,可以支援客戶結合各自業務場景打造專業、高效的智慧解決方案。

2. 實戰案例

結合上一節介紹,PAI為機器學習提供了高效的解決方案,其中主要可分為PAI-Studio、PAI-EAS、PAI-DSW三個部分,PAI-Studio提供了視覺化的機器學習元件,簡單拖拽及配置即可構造機器學習解決方案,生成的演算法模型可在PAI-EAS部署,提供線上預測服務。PAI-DSW則為開發者提供了整套的雲端深度學習開發環境,演算法開發者可以非常方便的在該環境進行開發實戰。

接下來讓我們通過具體的實戰案例,來進一步瞭解機器學習、PAI、實際案例是如何完美結合的。

2.1 文章一: 商品價格預測

某收藏愛好者,欲購買某知名品牌的積木套裝。為了瞭解現在的市場行情,他收集了關於該品牌積木的生成日期,是否為全新的,積木數量,原始價格等特徵和已交易的價格。他想要根據這些資料,來預估現在市場上正在出售的積木價格,才可以選擇合適的價格購入,但他發現經憑藉經驗來預測這些價格,往往不夠準確,而且繁瑣重複的工作相當耗費精力。

利用PAI進行商品價格預測,文章連結:yq.aliyun.com/articles/69…

2.2 文章二:誰最具魅力

單身王女士經常逛某相親網站,前前後後瀏覽了1000個男生,並給他們打標了,不喜歡、一般喜歡、很喜歡三個類別。該相親網站的工程師,決定開發一個演算法推薦模型,給王女士依次推薦很喜歡,一般喜歡的男生。並可以將這個演算法模型應用到網站,吸引更多的單身青年註冊使用,並可以找到自己喜歡的男/女朋友。

文章連結:yq.aliyun.com/articles/69…

2.3 文章三:手把手實現商品推薦

在生活中,我們經常給朋友推薦一些自己喜歡的東西,也時常接受別人的推薦。怎麼能保證推薦的電影或者美食就是朋友喜歡的呢?一般來說,你們兩個人經常對同一個電影或者美食感興趣,那麼你喜歡的東西就很大程度上朋友也會比較感興趣。在大資料的背景下,演算法會幫我尋找興趣相似的那些人,並關注他們喜歡的東西,以此來給我們推薦可能喜歡的事物。

文章連結:yq.aliyun.com/articles/69…

2.4 文章四:利用GAN自動生成二次元頭像

GAN(生成對抗網路)主要的應用是自動生成一些東西,包括影象和文字等,比如隨機給一個向量作為輸入,通過GAN的Generator生成一張圖片,或者生成一串語句。Conditional GAN的應用更多一些,比如資料集是一段文字和影象的資料對,通過訓練,GAN可以通過給定一段文字生成對應的影象。

如何利用GAN自動生成二次元頭像,文章連結:yq.aliyun.com/articles/69…

3. 常見問題

阿里雲機器學習平臺:help.aliyun.com/product/303…

【待補充】

人人用得起的機器學習平臺↓↓↓↓

【機器學習PAI實戰】—— 玩轉人工智慧之綜述



海量資源點選領取

更有kindle、技術圖書抽獎活動,百分百中獎


原文連結

本文為雲棲社群原創內容,未經允許不得轉載。


相關文章