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

摘要: 基於人工智能火熱的大背景下,經過阿里雲的機器學習平臺PAI在真實場景中的應用,詳細闡述相關算法及使用方法,力求可以讓讀者讀後可以立刻動手利用PAI搭建屬於本身的機器學習實用方案,真正利用PAI玩轉人工智能。html

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

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

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

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

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

緒論

人工智能並不是新的術語,這個概念由來已久,大約從80年代初開始,計算機科學家們開始設計能夠學習和模仿人類行爲的算法。人工智能的發展曲折向前,伴隨着數據量的上漲、計算力的提高,機器學習的火熱,以及深度學習的爆發,人工智能迎來快速發展,迅速席捲全球。框架

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

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

總之,人工智能、機器學習、深度學習已經深刻到企業生產和我的生活的方方面面。可以熟練運用機器學習解決生活生產當中的應用,掌握人工智能技術,對於企業和我的的長遠發展變得相當重要。函數

1. 機器學習算法

機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及機率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。機器學習算法根據解決的任務類型,能夠分爲分類算法、迴歸算法、聚類算法等,深度學習做爲機器學習中比較特殊的一類算法,是神經網絡算法的延伸和擴展。

機器學習大體能夠分爲監督學習和非監督學習。監督式學習,由已有的數據包括輸入輸出,訓練模型函數;而後把新的輸入數據帶入模型函數,預測數據輸出。函數的輸出若是是一個連續的值,則稱爲迴歸分析,若是輸出是離散數值,則稱做分類。與監督學習相對應的是無監督學習,此時數據沒有標註信息,聚類是典型的無監督學習。

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

PAI-Studio封裝經常使用機器學習算法及豐富的可視化組件,用戶無需代碼基礎,經過拖拉拽便可訓練模型。

以下圖示,在阿里雲機器學習平臺開通帳號以後,進入管理控制檯—可視化建模,根據本身的須要新建項目,進入機器學習便可進入到PAI-Studio進行使用。

PAI-Studio上經過拖拽算法組件,構建實驗,進行模型訓練,訓練好的模型能夠一鍵部署到PAI-EAS。機器學習模型在線部署功能能夠將您的模型一鍵部署爲Restful API,您能夠經過HTTP請求的方式進行調用(使用說明文檔)。

PAI-DSW(Data science workshop)是專門爲算法開發者準備的雲端深度學習開發環境,用戶能夠登陸DSW進行代碼的開發並運行工做。目前DSW內置了PAI團隊深度優化過的Tensorflow框架,同時也能夠經過打開console對話窗口自行安裝須要的第三方庫。

1.1 分類算法

分類算法應用普遍,好比新聞內容分類、商品類目預測、文本情感分析、郵件垃圾過濾、圖像分類、異常檢測等。常見的分類算法有k近鄰、樸素貝葉斯、決策樹、SVM、利用adaboost加強弱分類器等。

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

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

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

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

公式的右邊是總結歷史,公式的左邊是預知將來,若是把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中也提供了相應的算法組件,若是想要使用,能夠直接拖拽對應組件,配置相關參數便可。

1.2 迴歸問題

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

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

​,θ在這兒稱爲參數,在這的意思是調整feature中每一個份量的影響力。若是咱們令X0 = 1,就能夠用向量的方式來表示了:​

​, 咱們也須要一個機制去評估咱們θ是否比較好,因此說須要對咱們作出的h函數進行評估,通常這個函數稱爲損失函數(loss function)或者錯誤函數(error function),描述h函數很差的程度,在下面,咱們稱這個函數爲J函數,咱們要作的就是調整θ以使得J(θ)取得最小值。以下所示:

其中,最經常使用的方法是梯度降低法。

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

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

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

固然,PAI-Studio中也提供了這些算法組件。

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提供了經常使用的聚類算法組件。

1.4 深度學習

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

神經網絡是多個神經元鏈接起來構成,以下圖示。

 


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

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

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

pai上的深度學習解決方案

1.5 小結

PAI(Platform of Artificial Intelligence: http://pai.alibaba-inc.com)做爲阿里巴巴集團的機器學習算法平臺,能夠支持客戶結合各自業務場景打造專業、高效的智能解決方案。

2. 實戰案例

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

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

2.1 文章一: 商品價格預測

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

利用PAI進行商品價格預測,文章連接:https://yq.aliyun.com/articles/692330?spm=a2c4e.11155435.0.0.198c3312GZLeWS

2.2 文章二:誰最具魅力

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

文章連接:https://yq.aliyun.com/articles/692343?spm=a2c4e.11153959.0.0.6fd17158ySDeJO

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

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

文章連接:https://yq.aliyun.com/articles/692349?spm=a2c4e.11155435.0.0.9ea93312sjbx5D

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

GAN(生成對抗網絡)主要的應用是自動生成一些東西,包括圖像和文本等,好比隨機給一個向量做爲輸入,經過GAN的Generator生成一張圖片,或者生成一串語句。Conditional GAN的應用更多一些,好比數據集是一段文字和圖像的數據對,經過訓練,GAN能夠經過給定一段文字生成對應的圖像。

如何利用GAN自動生成二次元頭像,文章連接:https://yq.aliyun.com/articles/692342?spm=a2c4e.11153959.0.0.78c47158aCVib7

3. 常見問題

阿里雲機器學習平臺:https://help.aliyun.com/product/30347.html?spm=a2c4g.11186623

【待補充】

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

海量資源點擊領取

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

 

原文連接 更多技術乾貨 請關注阿里云云棲社區微信號 :yunqiinsight

相關文章
相關標籤/搜索