全文共5830字,預(yù)計學(xué)習(xí)時長10分鐘 圖片來自Unsplash網(wǎng)站,chuttersnap攝 不論是在科研中還是在工業(yè)領(lǐng)域,機(jī)器學(xué)習(xí)都是個熱門話題,新的機(jī)器學(xué)習(xí)方法也層出不窮。機(jī)器學(xué)習(xí)發(fā)展迅速又很復(fù)雜。對初學(xué)者而言,緊跟其發(fā)展無疑十分困難,即便是對專家們來說也非易事。 為揭開機(jī)器學(xué)習(xí)的神秘面紗,幫助新手學(xué)習(xí)該領(lǐng)域的核心概念,本文會介紹十種不同的機(jī)器學(xué)習(xí)方法,包括簡單描述和可視化等,并一一舉例說明。 機(jī)器學(xué)習(xí)算法(模型)是個表示某一問題(常為商業(yè)問題)所包含數(shù)據(jù)信息的數(shù)學(xué)表達(dá)式。設(shè)計算法是為了分析數(shù)據(jù)從而獲取有用信息。比如,在線零售商想要預(yù)測下一季度的銷售額時,就可能會用到機(jī)器學(xué)習(xí)算法,根據(jù)之前的銷售額和其他相關(guān)數(shù)據(jù)來進(jìn)行預(yù)測。同樣,風(fēng)車制造商可以監(jiān)管重要的設(shè)備,他們給算法提供視頻數(shù)據(jù)使其在訓(xùn)練之后能夠識別設(shè)備上的裂縫。 本文介紹的十種機(jī)器學(xué)習(xí)方法可以讓你對機(jī)器學(xué)習(xí)有一個整體的了解,幫助你打下相關(guān)的知識和技能基礎(chǔ): 1. 回歸 2. 分類 3. 聚類 4. 降維 5. 集成方法 6. 神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí) 7. 遷移學(xué)習(xí) 8. 強(qiáng)化學(xué)習(xí) 9. 自然語言處理 10. 詞嵌入 最后,在介紹這些方法之前,還是先來區(qū)分一下監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)這兩種機(jī)器學(xué)習(xí)類別吧。 監(jiān)督學(xué)習(xí)用于在已有數(shù)據(jù)的情況下進(jìn)行預(yù)測或解釋,即通過先前輸入和輸出的數(shù)據(jù)來預(yù)測基于新數(shù)據(jù)的輸出。比如,監(jiān)督機(jī)器學(xué)習(xí)技術(shù)可用來幫助某服務(wù)企業(yè)預(yù)測未來一個月訂購該服務(wù)的新用戶量。 相比之下,無監(jiān)督機(jī)器學(xué)習(xí)是在不使用目標(biāo)變量進(jìn)行預(yù)測的情況下,對數(shù)據(jù)點(diǎn)進(jìn)行關(guān)聯(lián)和分組。換言之,它根據(jù)特征評估數(shù)據(jù),并根據(jù)這些特征,將相似的數(shù)據(jù)聚集在一起。例如,無監(jiān)督學(xué)習(xí)技術(shù)可用來幫助零售商對具有相似特征的產(chǎn)品進(jìn)行分類,而且無需事先指定具體特征是什么。 1. 回歸 回歸是一種監(jiān)督機(jī)器學(xué)習(xí)方法,在先前數(shù)據(jù)的基礎(chǔ)上預(yù)測或解釋特定數(shù)值。例如要想知道某房產(chǎn)的價值,可根據(jù)與之相似房產(chǎn)的定價來預(yù)測。 線性回歸是最簡單的回歸方法,用直線方程(y = m * x + b)來模擬數(shù)據(jù)集。通過計算直線的位置和斜率得到具有許多數(shù)據(jù)對(x,y)的線性回歸模型,在該直線上,所有數(shù)據(jù)點(diǎn)到它的距離之和最小。換言之,計算的是最接近數(shù)據(jù)中觀測值的那條線的斜率(m)和y截距(b)。 接著再來看一些具體的線性回歸例子。將建筑物的年齡、樓層數(shù)、面積(平方英尺)和墻上插入式設(shè)備的數(shù)量這些數(shù)據(jù)匯總在一起,用線性回歸方法來預(yù)測該建筑物的耗能情況(以千瓦時為單位)。由于有多種輸入值(年齡,面積等),可以選擇多變量線性回歸方法,原理和簡單的一元線性回歸一樣,但在這種情況下,由于有多個變量,最終創(chuàng)建出來的“線”是多維的。 下圖顯示了線性回歸模型與建筑物實(shí)際能耗的吻合程度。如果已知某建筑物的各項(xiàng)特征(年齡、面積等),但耗能情況未知,就可以用擬合線來對其進(jìn)行估算。 注意,線性回歸還可以用來估計各個因素對于最終耗能情況的影響程度。例如,有了公式,就可以確定建筑物的年齡、面積或高度是否為最重要的影響因素。 用來估算建筑物能耗(以千瓦時為單位)的線性回歸模型 回歸技術(shù)有簡單的(線性回歸),也有復(fù)雜的(正則化線性回歸、多項(xiàng)式回歸、決策樹和隨機(jī)森林回歸、神經(jīng)網(wǎng)絡(luò)等),你大可不必感到迷惑,可以先從簡單的線性回歸著手,掌握其中的技術(shù),然后繼續(xù)學(xué)習(xí)較復(fù)雜的類型。 2. 分類 分類是另一種監(jiān)督機(jī)器學(xué)習(xí)方法,這一方法對某個類別值進(jìn)行預(yù)測或解釋。比如可以用分類的方法來預(yù)測線上顧客是否會購買某一產(chǎn)品。輸出可分為是或否,即購買者或非購買者。但分類并不限于兩個選擇。例如,可通過分類來看某一圖像中是否有汽車或卡車。在這種情況下,輸出就有3個不同值,分別為1)圖像包含汽車、2)圖像包含卡車或3)圖像既不包含汽車也不包含卡車。 邏輯回歸是分類算法中最簡單的一類,這聽起來很像一個回歸方法,其實(shí)不然。邏輯回歸是基于一個或多個輸入來估計某一事件發(fā)生概率的一種算法。 例如,邏輯回歸可基于學(xué)生的兩次考試分?jǐn)?shù)來估計該生被某一大學(xué)錄取的概率。由于估計值是概率,輸出只能是介于0和1之間的數(shù)字,其中1表示完全確定。對該生而言,如果估計概率大于0.5,預(yù)測結(jié)果就是:他(她)能被錄取,如果估計概率小于0.5,預(yù)測結(jié)果則為:他(她)不會被錄取。 下圖顯示了先前學(xué)生的分?jǐn)?shù)以及他們最終的錄取結(jié)果。用邏輯回歸可繪制出一條代表決策邊界的線。 邏輯回歸決策邊界線:他們能否被大學(xué)錄??? 邏輯回歸是一個線性模型,因此是新手學(xué)習(xí)分類方法入門的不錯選擇。隨著不斷的進(jìn)步,就可以深入研究像決策樹、隨機(jī)森林、支持向量機(jī)和神經(jīng)網(wǎng)絡(luò)這些非線性分類了。 3. 聚類 聚類方法的目標(biāo)是對具有相似特征的觀察值進(jìn)行分組或聚類,是一種無監(jiān)督機(jī)器學(xué)習(xí)方法。聚類方法不借助輸出信息進(jìn)行訓(xùn)練,而是讓算法定義輸出。在這一方法中,只能使用可視化來檢驗(yàn)解決方案的質(zhì)量。 最流行的聚類方法是K均值聚類,其中“K”表示用戶選擇創(chuàng)建的簇的數(shù)量。(注意,選取K值時有多種技術(shù)可供選擇,比如肘部法則。) 大體上,K均值聚類法對數(shù)據(jù)點(diǎn)的處理步驟包括: 1. 隨機(jī)選擇數(shù)據(jù)中的K個中心。 2. 將每個數(shù)據(jù)點(diǎn)分配給最接近的隨機(jī)創(chuàng)建的中心。 3. 重新計算每個簇的中心。 4. 如果中心沒有變化(或變化很?。徒Y(jié)束此過程。否則,返回至第2步。(如果中心持續(xù)更改,為防止最終形成無限循環(huán),要提前設(shè)置最大迭代次數(shù)。) 下圖將K均值聚類法應(yīng)用于建筑物的數(shù)據(jù)集。圖中的每一列都表明了每棟建筑的效率。這四項(xiàng)測量的量涉及空調(diào)、插入式設(shè)備(微波爐,冰箱等)、家用燃?xì)夂涂扇細(xì)怏w。選擇K值為2進(jìn)行聚類,這樣就很容易地將其中一個聚類解釋為高效建筑群,另一個則為低效建筑群。左圖中可以看到建筑物的位置,右圖可以看到兩個輸入值:插入式設(shè)備和可燃?xì)怏w。 將建筑聚類成高效建筑群(綠色)和低效建筑群(紅色) 聚類方法中會涉及到一些非常有用的算法,比如具有噪聲的基于密度的聚類方法(DBSCAN)、均值漂移聚類、聚合層次聚類、基于高斯混合模型的期望最大化聚類等。 4. 降維 顧名思義,降維可用來刪除數(shù)據(jù)集中最不重要的數(shù)據(jù)。實(shí)踐中常會遇到包含數(shù)百甚至數(shù)千列(也稱為特征)的數(shù)據(jù)集,因此減少總量至關(guān)重要。例如,圖像中數(shù)千個像素中并不是所有的都要分析;或是在制造過程中要測試微芯片時,如果對每個芯片都進(jìn)行測試也許需要數(shù)千次測試,但其實(shí)其中很多芯片提供的信息是多余的。在這些情況下,就需要運(yùn)用降維算法以便對數(shù)據(jù)集進(jìn)行管理。 主成分分析(PCA)是最常用的降維方法,通過找出最大化數(shù)據(jù)線性變化的新向量來減小特征空間的維數(shù)。在數(shù)據(jù)的線性相關(guān)性很強(qiáng)時,主成分分析法可以顯著減小數(shù)據(jù)的維度,且不會丟失太多信息。(其實(shí),還可以衡量信息丟失的實(shí)際程度并進(jìn)行相應(yīng)調(diào)整。) t-分布鄰域嵌入(t-SNE)是另一種常用的方法,可用來減少非線性維數(shù)。t-分布鄰域嵌入通常用于數(shù)據(jù)可視化,但也可以用于減少特征空間和聚類等機(jī)器學(xué)習(xí)任務(wù)。 下圖顯示了手寫數(shù)字的MNIST數(shù)據(jù)庫分析。MNIST包含數(shù)千個從0到9的數(shù)字圖像,研究人員以此來測試聚類和分類算法。數(shù)據(jù)集的每一行是原始圖像的矢量化版本(大小為28×28 = 784)和每個圖像的標(biāo)簽(0,1,2,3,......,9)。注意,因此將維度從784(像素)減至2(可視化維度)。投影到二維使得能夠?qū)Ω呔S原始數(shù)據(jù)集進(jìn)行可視化。 手寫數(shù)字MNIST數(shù)據(jù)庫的t-分布鄰域嵌入迭代 5. 集成方法 假設(shè)你對市面上的自行車都不滿意,打算自己制作一輛,也許會從尋找各個最好的零件開始,然后最終會組裝出一輛最好的自行車。 集成方法也是利用這一原理,將幾個預(yù)測模型(監(jiān)督式機(jī)器學(xué)習(xí)方法)組合起來從而得到比單個模型能提供的更高質(zhì)量的預(yù)測結(jié)果。隨機(jī)森林算法就是一種集合方法,結(jié)合了許多用不同數(shù)據(jù)集樣本訓(xùn)練的決策樹。因此,隨機(jī)森林的預(yù)測質(zhì)量會高于單個決策樹的預(yù)測質(zhì)量。 集成方法可理解為一種減小單個機(jī)器學(xué)習(xí)模型的方差和偏差的方法。任何給定的模型在某些條件下可能是準(zhǔn)確的,但在其他條件下有可能不準(zhǔn)確,因此這種方法十分重要。如果換用另一個模型,相對精度可能會更低。而組合這兩個模型,就可以平衡預(yù)測的質(zhì)量。 絕大多數(shù)Kaggle競賽的獲勝者都會使用集成方法。最為流行的集成算法有隨機(jī)森林、XGBoost和LightGBM。 6. 神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí) 與線性模型的線性回歸和邏輯回歸相比,神經(jīng)網(wǎng)絡(luò)的目標(biāo)是通過向模型添加參數(shù)層來捕獲數(shù)據(jù)中的非線性模式。下圖中,簡單神經(jīng)網(wǎng)絡(luò)有四個輸入,一個帶有五個參數(shù)的隱藏層和一個輸出層。 具有一個隱藏層的神經(jīng)網(wǎng)絡(luò) 其實(shí),神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)十分靈活,可以構(gòu)建出我們所熟知的的線性回歸和邏輯回歸。深度學(xué)習(xí)一詞來自具有多個隱藏層的神經(jīng)網(wǎng)絡(luò)(見下圖),是對各種體系結(jié)構(gòu)的一個概括。 跟上深度學(xué)習(xí)發(fā)展的步伐尤為困難,部分原因在于研究和工業(yè)方面投入了大量精力來研究深度學(xué)習(xí),使得不斷有新方法涌現(xiàn)出來。 深度學(xué)習(xí):具有多個隱藏層的神經(jīng)網(wǎng)絡(luò) 為達(dá)到最佳效果,深度學(xué)習(xí)技術(shù)需要大量的數(shù)據(jù),同時也需要強(qiáng)大的計算能力作為支撐,因?yàn)樵摲椒ㄊ窃诖笮腕w系架構(gòu)中對許多參數(shù)進(jìn)行自我調(diào)整。鑒于此,就不難理解為什么深度學(xué)習(xí)從業(yè)者要用配備強(qiáng)大圖形處理單元(GPU)功能的計算機(jī)了。 深度學(xué)習(xí)技術(shù)在視覺(圖像分類)、文本、音頻和視頻領(lǐng)域的應(yīng)用最為成功。最常見的深度學(xué)習(xí)軟件包有Tensorflow和PyTorch。 7. 遷移學(xué)習(xí) 假設(shè)你是個零售業(yè)的數(shù)據(jù)科學(xué)家,已經(jīng)花了幾個月的時間訓(xùn)練高質(zhì)量模型,用來將圖像分為襯衫、T恤和Polo衫這三類。新任務(wù)是建一個類似的模型,把服裝圖像分為牛仔褲、工裝褲、休閑褲和正裝褲這幾類。那么能不能把第一個模型中已建立的知識轉(zhuǎn)移到第二個模型中呢?當(dāng)然可以,遷移學(xué)習(xí)可以做到。 遷移學(xué)習(xí)是指重復(fù)使用先前訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的一部分,并使其適應(yīng)類似的新任務(wù)。具體來說就是,使用先前任務(wù)中訓(xùn)練過的神經(jīng)網(wǎng)絡(luò),可以傳輸一小部分訓(xùn)練過的圖層,并將它們與用于新任務(wù)數(shù)據(jù)訓(xùn)練的幾個圖層組合在一起。通過添加圖層,新的神經(jīng)網(wǎng)絡(luò)就能快速學(xué)習(xí)并適應(yīng)新的任務(wù)。 遷移學(xué)習(xí)的主要優(yōu)點(diǎn)是訓(xùn)練神經(jīng)網(wǎng)絡(luò)所需的數(shù)據(jù)較少,這點(diǎn)尤為重要,因?yàn)樯疃葘W(xué)習(xí)算法的訓(xùn)練既耗時,(計算資源上)花費(fèi)又高。而且,通常也很難找到足夠的標(biāo)記數(shù)據(jù)來供培訓(xùn)使用。 還是回到上文的例子,假設(shè)襯衫模型中,你用了一個有20個隱藏層的神經(jīng)網(wǎng)絡(luò),幾次嘗試后,發(fā)現(xiàn)可以遷移其中的18個襯衫模型層,并能把它們與用來訓(xùn)練褲子圖像的某個新的參數(shù)層相結(jié)合。此時,褲子模型將有19個隱藏層。這兩個任務(wù)的輸入和輸出不同,但一些概括與兩者都有關(guān)的信息如布料、衣服上扣件和形狀等方面的參數(shù)層可重復(fù)使用。 遷移學(xué)習(xí)正變得越來越流行,現(xiàn)在已經(jīng)有很多固定的預(yù)訓(xùn)練的模型,可以用來完成一些常見的像圖像和文本分類的深度學(xué)習(xí)任務(wù)。 8. 強(qiáng)化學(xué)習(xí) 試想,迷宮中有只老鼠,在試圖尋找藏在某處的奶酪。老鼠進(jìn)迷宮的次數(shù)越多,它就越有可能找到奶酪。一開始,老鼠可能會隨機(jī)走動,但一段時間后,它就能意識到怎樣走可以找到奶酪。 老鼠找奶酪的過程反映了使用強(qiáng)化學(xué)習(xí)來訓(xùn)練系統(tǒng)或游戲的方法。一般來說,強(qiáng)化學(xué)習(xí)是一種幫助代理從經(jīng)驗(yàn)中學(xué)習(xí)的機(jī)器學(xué)習(xí)方法。通過在設(shè)定環(huán)境中記錄操作并使用試錯法,強(qiáng)化學(xué)習(xí)可以最大化累積獎勵。在上述示例中,代理是老鼠,環(huán)境是迷宮。老鼠的可能操作是:前移、后移、左移或右移,奶酪則是獎勵。 如果一個問題幾乎沒有任何歷史數(shù)據(jù),就可以選擇強(qiáng)化學(xué)習(xí)方法,因?yàn)樗恍枰孪忍峁┬畔ⅲㄟ@一點(diǎn)不同于傳統(tǒng)的機(jī)器學(xué)習(xí)方法)。在強(qiáng)化學(xué)習(xí)框架中,你可以隨時了解數(shù)據(jù)。因此強(qiáng)化學(xué)習(xí)的應(yīng)用在游戲方面的成功也就不足為奇了,特別是在國際象棋和圍棋這類“完美信息”型游戲上的應(yīng)用。在游戲中,可以迅速根據(jù)代理和環(huán)境的反饋?zhàn)龀稣{(diào)整,從而使模型能夠快速學(xué)習(xí)。強(qiáng)化學(xué)習(xí)的缺點(diǎn)則是如果問題很復(fù)雜,訓(xùn)練時間也許會很長。 IBM的Deep Blue曾在1997年擊敗了人類最佳國際象棋選手,同樣,基于深度學(xué)習(xí)的算法AlphaGo也于2016年擊敗了人類最佳圍棋選手。目前英國的DeepMind科技公司是深度學(xué)習(xí)研究的翹楚。 2019年4月,OpenAI Five團(tuán)隊擊敗了電子競技Dota 2世界冠軍隊伍,成為了首個取得此項(xiàng)成就的人工智能團(tuán)隊。Dota 2是一個非常復(fù)雜的視頻游戲,OpenAI Five團(tuán)隊之所以選擇它,是因?yàn)楫?dāng)時沒有一種強(qiáng)化學(xué)習(xí)算法能夠在游戲中獲勝。 這個擊敗Dota 2人類冠軍隊伍的AI團(tuán)隊還開發(fā)出了一個可重新定位一個塊(可以抓東西)的機(jī)器手。 強(qiáng)化學(xué)習(xí)可以說是一非常強(qiáng)大的人工智能,今后一定會取得更多更大的進(jìn)步,但同時也應(yīng)記住這些方法也有局限性。 9. 自然語言處理 世界上很大一部分?jǐn)?shù)據(jù)和知識都以人類語言的形式存在著。你能想象在幾秒內(nèi)閱讀、理解成千上萬的書、文章和博客嗎?顯然,計算機(jī)還不能完全理解人類語言,但經(jīng)訓(xùn)練可以完成某些任務(wù)。比如可以訓(xùn)練手機(jī)自動回復(fù)短信或糾正拼寫錯的單詞,甚至可以教一臺機(jī)器與人進(jìn)行簡單交談。 自然語言處理(NLP)本身不是一種機(jī)器學(xué)習(xí)方法,而是一種用于為機(jī)器學(xué)習(xí)準(zhǔn)備文本的技術(shù),其應(yīng)用十分廣泛。想像一下:有大量各種格式的文本文檔(詞語、在線博客…等),充滿了拼寫錯誤、缺少字符和字詞多余的問題。目前,由斯坦福大學(xué)的研究人員創(chuàng)建的NLTK(自然語言工具包)是使用最為廣泛的一種文本處理包。 將文本映射到數(shù)字表示,最簡單的方法是計算每個文本文檔中各個單詞的頻率。在一個整數(shù)矩陣中,每行代表一個文本文檔,每列代表一個單詞。這種單詞頻率矩陣通常稱為術(shù)語頻率矩陣(TFM)。在這個基礎(chǔ)上,可以用矩陣上的每個條目除以每個詞在整個文檔集中重要程度的權(quán)重,從而得到文本文檔的另一種流行矩陣表示。這種方法稱為術(shù)語頻率反向文檔頻率(TFIDF),通常更適用于機(jī)器學(xué)習(xí)任務(wù)。 10. 詞嵌入 TFM和TFIDF是文本文檔的數(shù)字表示,只根據(jù)頻率和加權(quán)頻率來表示文本文檔。相比之下,詞嵌入可以捕獲文檔中某個詞的上下文。根據(jù)語境,嵌入可以量化單詞之間的相似性,反過來這又方便了對詞的算術(shù)運(yùn)算。 Word2Vec是一種基于神經(jīng)網(wǎng)絡(luò)的方法,將語料庫中的單詞映射到了數(shù)字向量。然后,這些向量可用來查找同義詞、使用單詞執(zhí)行算術(shù)運(yùn)算,或用來表示文本文檔(通過獲取文檔中所有詞向量的均值)。比如,假設(shè)用一個很大的文本文檔來估計單詞嵌入,并且“king”、“queen”、“man”和“woman”這四個詞也是語料庫的一部分,向量(‘word’)是表示單詞“word”的數(shù)字向量。為了估計向量(‘woman’),可以用向量執(zhí)行算術(shù)運(yùn)算: 向量(‘king’)+向量(‘woman’)-向量(‘man’)~向量(‘queen’) 詞(向量)嵌入的數(shù)字運(yùn)算 有了單詞表示,可以計算兩個單詞的向量表示之間的余弦相似性,以此發(fā)現(xiàn)單詞之間的相似性。余弦相似性測量的是兩個矢量的夾角。 機(jī)器學(xué)習(xí)方法可用來計算單詞嵌入,但這往往是在頂部應(yīng)用機(jī)器學(xué)習(xí)算法的前提步驟。例如,假設(shè)我們能訪問數(shù)千名推特用戶的推文,并知道這些用戶中哪些人買了房子。為預(yù)測新用戶買房的概率,可以將Word2Vec與邏輯回歸結(jié)合起來。 你可以訓(xùn)練單詞嵌入或使用預(yù)訓(xùn)練(遷移學(xué)習(xí))單詞向量集。若需下載157種不同語言的預(yù)訓(xùn)練單詞向量,可查看FastText。 編譯組:張婷華、胡婷 |
|