機(jī)器學(xué)習(xí)將對你的業(yè)務(wù)產(chǎn)生深遠(yuǎn)的影響,但炒作正在引起混亂。以下是關(guān)于什么是機(jī)器學(xué)習(xí)以及如今怎么利用它的一個(gè)清晰的看法。
機(jī)器學(xué)習(xí)正在轉(zhuǎn)變業(yè)務(wù)。但即便隨著技術(shù)的進(jìn)步,企業(yè)仍然在艱難地利用這一技術(shù),主要是因?yàn)樗麄儾涣私馊绾卧趹?zhàn)略上實(shí)施機(jī)器學(xué)習(xí)來服務(wù)于業(yè)務(wù)目標(biāo)。炒作是沒有用的,這只會對機(jī)器學(xué)習(xí)究竟是什么,它的工作原理以及對企業(yè)可以做什么造成混亂。
下面,讓我們來提供了一個(gè)清晰的看法,了解什么是機(jī)器學(xué)習(xí),以及如今如何利用它。
什么是機(jī)器學(xué)習(xí)?
機(jī)器學(xué)習(xí)是人工智能的一部分,使系統(tǒng)能夠在沒有明確編程的情況下學(xué)習(xí)和預(yù)測結(jié)果。它通常與人工智能這個(gè)術(shù)語互換使用,因?yàn)樗瞧駷橹乖诂F(xiàn)實(shí)世界中產(chǎn)生最大影響的人工智能技術(shù),并且這是你最有可能在業(yè)務(wù)中使用的。聊天機(jī)器人、產(chǎn)品推薦、垃圾郵件過濾器、自動(dòng)駕駛汽車以及一系列利用機(jī)器學(xué)習(xí)的其它系統(tǒng),就像Siri和小娜這樣的“智能代理”。
機(jī)器學(xué)習(xí)通過學(xué)習(xí)大型的數(shù)據(jù)集來教計(jì)算機(jī)做決策,而不是編寫直接做出決策的算法和規(guī)則,或者使用一套規(guī)則、例外和過濾器把計(jì)算機(jī)編程得“智能化”。基于規(guī)則的系統(tǒng)在必須考慮到現(xiàn)實(shí)世界的復(fù)雜性時(shí),會迅速變得脆弱;機(jī)器學(xué)習(xí)可以創(chuàng)建代表和概括用于訓(xùn)練數(shù)據(jù)的模式的模型,并且可以使用這些模型來解釋和分析新的信息。
機(jī)器學(xué)習(xí)適用于分類,其包括識別圖像和視頻中的文本和對象的能力,以及查找數(shù)據(jù)中的關(guān)聯(lián)或?qū)?shù)據(jù)細(xì)分成群集(例如,查找客戶群)。機(jī)器學(xué)習(xí)也擅長于預(yù)測,例如計(jì)算事件或預(yù)測結(jié)果的可能性。機(jī)器學(xué)習(xí)也可用于生成丟失的數(shù)據(jù);例如,最新版本的CorelDRAW使用機(jī)器學(xué)習(xí)來插入你用鋼筆工具制作的多個(gè)粗略筆畫所畫出的平滑筆觸。
機(jī)器學(xué)習(xí)的核心是算法。有一些算法,如回歸、k均值聚類和支持向量機(jī)已經(jīng)被使用了幾十年。支持向量機(jī)使用數(shù)學(xué)方法來表示如何在分屬不同類別的東西之間劃分分界線。有效利用機(jī)器學(xué)習(xí)的關(guān)鍵是將正確的算法與你的問題相匹配。
神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)是一種基于互連節(jié)點(diǎn)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)算法,它可以很好地完成模式識別這樣的任務(wù)。
神經(jīng)網(wǎng)絡(luò)不是一種新的算法,但是大數(shù)據(jù)集的可用性和更強(qiáng)大的處理(尤其是可并行處理大量數(shù)據(jù)流的GPU)最近才使它們在實(shí)踐中變得有用。盡管名字是這樣叫,神經(jīng)網(wǎng)絡(luò)并非嚴(yán)格地基于生物神經(jīng)元。神經(jīng)網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都具有與輸入觸發(fā)的其它節(jié)點(diǎn)的連接。一旦觸發(fā),每個(gè)節(jié)點(diǎn)向其輸入添加權(quán)重,以標(biāo)記其執(zhí)行或與該節(jié)點(diǎn)的功能匹配或不匹配的概率。節(jié)點(diǎn)被組織在數(shù)據(jù)流經(jīng)的固定的層中,不同于大腦,其定期創(chuàng)建,移除和重組突觸連接。
深度學(xué)習(xí)
深度學(xué)習(xí)是基于深層神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)的一部分。深度神經(jīng)網(wǎng)絡(luò)是具有多個(gè)層次的神經(jīng)網(wǎng)絡(luò),用于在多個(gè)步驟中執(zhí)行學(xué)習(xí)。卷積深層神經(jīng)網(wǎng)絡(luò)通常通過處理特征層次來執(zhí)行圖像識別,其中每個(gè)層尋找更復(fù)雜的對象。例如,識別狗的品種的深層網(wǎng)絡(luò)的第一層可能被訓(xùn)練以在圖像中找到狗的形狀,第二層可能看起來像毛皮和牙齒的紋理,其它層識別耳朵、眼睛、尾巴和其它特征,最終層用來區(qū)分不同品種。遞歸深層神經(jīng)網(wǎng)絡(luò)用于語音識別和自然語言處理,其中序列和情境很重要。
有很多開源的深度學(xué)習(xí)工具包可用于構(gòu)建你自己的系統(tǒng)。Theano,Torch和Caffe是熱門的選擇,谷歌的TensorFlow和微軟認(rèn)知工具包(Microsoft Cognitive Toolkit)可讓你使用多個(gè)服務(wù)器來構(gòu)建更強(qiáng)大的系統(tǒng),而該系統(tǒng)在你的網(wǎng)絡(luò)中有更多的層。
微軟的分布式機(jī)器學(xué)習(xí)工具包(Distributed Machine Learning Toolkit)將其中幾個(gè)深度學(xué)習(xí)的工具包與其它機(jī)器學(xué)習(xí)庫打包在一起,AWS和Azure都提供預(yù)裝了深度學(xué)習(xí)工具的虛擬機(jī)。
實(shí)踐中的機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)的結(jié)果是你正在查看的數(shù)據(jù)與你的機(jī)器學(xué)習(xí)模型受訓(xùn)要找到的百分比確定性的匹配。所以,一個(gè)受訓(xùn)來識別照片和視頻中人臉的情緒的深度網(wǎng)絡(luò)可能會將圖片評分為“97.6%幸福、0.1%悲傷、5.2%驚喜、0.5%中立、0.2%憤怒、0.3%蔑視、0.01%厭惡、12%的恐懼”使用此信息意味著與可能性和不確定性打交道,而不是確切的結(jié)果。
概率機(jī)器學(xué)習(xí)(Probabilistic machine learning)使用概率概念,它使你能夠執(zhí)行機(jī)器學(xué)習(xí)而無需編寫算法。代替標(biāo)準(zhǔn)編程中變量的設(shè)定值,概率編程中的一些變量具有落在已知范圍內(nèi)的值,而其它變量具有未知值,不是像傳統(tǒng)編程那樣使用變量的固定值。處理你想要理解的數(shù)據(jù),就像這是代碼的輸出一樣,你可以逆向工作,填寫這些未知值將產(chǎn)生該結(jié)果的內(nèi)容。使用較少的編碼,你就可以做更多的原型和實(shí)驗(yàn);概率機(jī)器學(xué)習(xí)也更容易調(diào)試。
這是Outlook使用的“篩選”功能,它是一個(gè)能根據(jù)你過去閱讀、回復(fù)和刪除的消息過濾不那么有趣的消息的技術(shù)。它是由Infer.NET構(gòu)建的,它是一個(gè)可用于構(gòu)建自己的概率系統(tǒng)的.NET框架。
認(rèn)知計(jì)算是IBM為其沃森產(chǎn)品所使用的術(shù)語,因?yàn)樵缭?011年,當(dāng)早期版本在《危險(xiǎn)邊緣(Jeopardy)》節(jié)目一舉獲勝時(shí),“人工智能”一詞還未流行開來;在數(shù)十年來,人工智能已經(jīng)經(jīng)歷了炒作和摒棄的交替時(shí)期。
沃森(Watson)不是一個(gè)單一的工具。它是模型和API的組合,你也可以從其它供應(yīng)商(如Salesforce,Twilio,谷歌和微軟)獲得。這些為你提供所謂的“認(rèn)知”服務(wù),如圖像識別,包括面部識別,語音(和揚(yáng)聲器)識別,自然語言理解,情感分析以及其他認(rèn)知能力的識別API。無論是沃森還是微軟的認(rèn)知服務(wù),認(rèn)知術(shù)語真的只是圍繞一系列(非常有用的)技術(shù)的營銷品牌。你可以使用這些API從現(xiàn)有的常見問題頁面創(chuàng)建一個(gè)聊天室,可以回答文本查詢,還可以識別產(chǎn)品的照片以提供正確的支持信息,或使用貨架標(biāo)簽的照片來檢查庫存水平。
很多“認(rèn)知”API使用深度學(xué)習(xí),但是你不需要知道它們的構(gòu)建方式,因?yàn)楹芏嗍亲鳛槟銖淖约旱膽?yīng)用程序調(diào)用的REST API。有些讓你從自己的數(shù)據(jù)創(chuàng)建自定義模型。Salesforce Einstein擁有自定義的圖像識別服務(wù),微軟的認(rèn)知API(Cognitive API)可讓你為文本、語音、圖像和視頻創(chuàng)建自定義模型。
這通過遷移學(xué)習(xí)變得更容易,與其說它是一種技術(shù)不如說它是深度網(wǎng)絡(luò)的副作用。受訓(xùn)來做一件事情的深度神經(jīng)網(wǎng)絡(luò),比如英語和普通之間的翻譯一樣,被發(fā)現(xiàn)學(xué)習(xí)了第二個(gè)任務(wù),比如更有效地在英語和法語之間翻譯。這可能是因?yàn)榇泶罅亢痛蟮脑~之間的數(shù)學(xué)關(guān)系在某種程度上在語言之間是常見的,但是我們并不確切地知道。
遷移學(xué)習(xí)還未得到充分了解,但它可以讓你從較小的訓(xùn)練集中獲得良好的效果。微軟的自定義視覺服務(wù)(Microsoft Custom Vision Service)用遷移學(xué)習(xí)在短短幾分鐘內(nèi)對每個(gè)類別使用30到50張圖像來訓(xùn)練圖像識別器,而不是通常所需要的數(shù)千個(gè)精確結(jié)果。
建立自己的機(jī)器學(xué)習(xí)系統(tǒng)
如果你不想要預(yù)先構(gòu)建的API,并且你有可要處理的數(shù)據(jù),那么有很多用來構(gòu)建系統(tǒng)學(xué)習(xí)的工具,從R和Python腳本到使用Spark和Hadoop的預(yù)測分析到具體的人工智能工具和框架。
你可以使用云中的機(jī)器學(xué)習(xí)服務(wù)來構(gòu)建數(shù)據(jù)模型,而不是設(shè)置自己的基礎(chǔ)設(shè)施。使用云服務(wù),你不需要安裝一系列工具。此外,這些服務(wù)還內(nèi)建了獲得成功結(jié)果所需的更多專業(yè)技能。
亞馬遜機(jī)器學(xué)習(xí)(Amazon Machine Learning)提供了多種機(jī)器學(xué)習(xí)模型,你可以使用存儲在S3,Redshift或R3中的數(shù)據(jù),但是你不能導(dǎo)出模型,訓(xùn)練集大小相當(dāng)有限。微軟的Azure ML Studio具有更廣泛的算法,包括深度學(xué)習(xí),以及R和Python包,以及與它們一起工作的圖形用戶界面。它還提供了使用Azure Batch定期加載極大訓(xùn)練集的選項(xiàng),你可以使用經(jīng)過培訓(xùn)的模型作為API從您自己的程序和服務(wù)中調(diào)用。還有諸如SQL Azure數(shù)據(jù)湖等云數(shù)據(jù)庫中的圖像識別等機(jī)器學(xué)習(xí)功能,只要有數(shù)據(jù)就可以搞機(jī)器學(xué)習(xí)。
監(jiān)督式學(xué)習(xí)
很多機(jī)器學(xué)習(xí)技術(shù)使用監(jiān)督學(xué)習(xí),其中功能來自標(biāo)記的訓(xùn)練數(shù)據(jù)。開發(fā)人員選擇并標(biāo)注一組訓(xùn)練數(shù)據(jù),將一部分?jǐn)?shù)據(jù)用于測試,并從機(jī)器學(xué)習(xí)系統(tǒng)中得到結(jié)果,以幫助其改進(jìn)。訓(xùn)練過程可能很復(fù)雜,結(jié)果往往是概率性的,例如,有30%的可能性認(rèn)出了一只狗,而有80%的可能性認(rèn)為它是一只貓,甚至有2%確信它發(fā)現(xiàn)了一輛自行車。開發(fā)人員給系統(tǒng)的反饋可能是1和0之間的分?jǐn)?shù)來表示與正確答案的接近程度。
不要將系統(tǒng)訓(xùn)練得太契合于訓(xùn)練數(shù)據(jù),這點(diǎn)很重要;這就是所謂的過度擬合,這意味著系統(tǒng)將無法推廣以應(yīng)對新的輸入。如果數(shù)據(jù)隨著時(shí)間的推移發(fā)生顯著變化,那么由于某些研究人員將稱之為“機(jī)器學(xué)習(xí)衰退(ML rot)”的東西,開發(fā)人員將需要重新訓(xùn)練系統(tǒng)。
機(jī)器學(xué)習(xí)算法——何時(shí)使用它們
如果你已經(jīng)知道數(shù)據(jù)集中所有項(xiàng)目的標(biāo)簽,將標(biāo)簽分配給新示例是分類問題。如果你想根據(jù)房屋的大小來預(yù)測房屋的售價(jià),那么這是一個(gè)回歸問題,因?yàn)榉績r(jià)是一個(gè)連續(xù)而不是離散的類別(預(yù)測房屋是否會出高于或低于要價(jià)出售是一個(gè)分類問題,因?yàn)檫@是兩個(gè)不同的類別)。
如果你不知道所有標(biāo)簽,你就不能使用它們進(jìn)行培訓(xùn);相反,在監(jiān)督學(xué)習(xí)中,給結(jié)果評分,讓你的系統(tǒng)制定使其弄清楚答案正確與否的規(guī)則。最常見的無監(jiān)督學(xué)習(xí)算法是聚類,它通過查看數(shù)據(jù)中的變量之間的關(guān)系來獲取數(shù)據(jù)的結(jié)構(gòu)。亞馬遜的能告訴你“購買了某一物品的人還購買了什么”的產(chǎn)品推薦系統(tǒng)就使用了無監(jiān)督學(xué)習(xí)。
在強(qiáng)化學(xué)習(xí)的情況下,系統(tǒng)通過查看發(fā)生的情況來學(xué)習(xí)。你設(shè)置了一套清晰的獎(jiǎng)勵(lì),以便系統(tǒng)可以判斷其行動(dòng)有多成功。因?yàn)橛忻黠@的回報(bào),強(qiáng)化學(xué)習(xí)非常適合游戲。谷歌的DeepMind AlphaGo使用強(qiáng)化學(xué)習(xí)來學(xué)習(xí)圍棋(go),微軟的Malmo項(xiàng)目系統(tǒng)允許研究人員使用《我的世界(Minecraft)》作為強(qiáng)化學(xué)習(xí)環(huán)境,并且使用OpenAI的強(qiáng)化學(xué)習(xí)算法構(gòu)建的機(jī)器最近在Valve的Dota 2游戲中擊敗了幾名排名最高的玩家。
創(chuàng)造準(zhǔn)確有用的獎(jiǎng)勵(lì)的復(fù)雜性限制了強(qiáng)化學(xué)習(xí)的使用,但微軟一直在使用一種特定形式的強(qiáng)化學(xué)習(xí),稱為情境拉霸(基于多臂老虎機(jī)的概念),以顯著提高在MSN上的點(diǎn)擊率。該系統(tǒng)現(xiàn)在可用作微軟的自定義決策服務(wù)API。微軟還在試點(diǎn)項(xiàng)目中使用強(qiáng)化學(xué)習(xí)系統(tǒng),如果信息不是你所需要的,客戶服務(wù)聊天室可以監(jiān)控他們的自動(dòng)回復(fù)的有用程度,并提供給一個(gè)真實(shí)的人;人類代理也為機(jī)器人評分以幫助它改進(jìn)。
結(jié)合機(jī)器學(xué)習(xí)算法以獲得更好得結(jié)果
通常需要多種機(jī)器學(xué)習(xí)方法才能獲得最佳效果;綜合學(xué)習(xí)系統(tǒng)結(jié)合使用多機(jī)器學(xué)習(xí)技術(shù)。例如,在Go中擊敗專業(yè)人類棋手的DeepMind系統(tǒng)不僅使用強(qiáng)化學(xué)習(xí),而且還監(jiān)督深入學(xué)習(xí),以從數(shù)以千計(jì)的人類棋手之間的Go比賽中學(xué)習(xí)。這種組合有時(shí)被稱為半監(jiān)督學(xué)習(xí)。
類似地,Microsoft Kinect用于識別人類動(dòng)作的機(jī)器學(xué)習(xí)系統(tǒng)是通過組合的判別系統(tǒng)構(gòu)建的——為了建造這個(gè),微軟租用了好萊塢的動(dòng)作捕捉套件,提取骨架的位置并標(biāo)記各個(gè)身體部位以便對身體處于各種已知姿勢中的哪一種進(jìn)行分類——以及生成系統(tǒng),其使用每種姿勢的特征的模型來合成數(shù)千個(gè)圖像,以給予系統(tǒng)足夠大的數(shù)據(jù)集來學(xué)習(xí)。
預(yù)測分析往往和不同的機(jī)器學(xué)習(xí)和統(tǒng)計(jì)方法結(jié)合起來;一個(gè)模型可能會評估一組客戶流失的可能性,另一種模式預(yù)測你應(yīng)該使用哪個(gè)渠道與每個(gè)人聯(lián)系,并提供可能使其成為客戶的優(yōu)惠。
了解機(jī)器學(xué)習(xí)的缺點(diǎn)
因?yàn)闄C(jī)器學(xué)習(xí)系統(tǒng)沒有被明確地編程來解決問題,所以很難知道系統(tǒng)是如何得到結(jié)果的。這也叫“黑匣子”問題,它可能會產(chǎn)生后果,特別是在受監(jiān)管的行業(yè)。
隨著機(jī)器學(xué)習(xí)的廣泛應(yīng)用,你將需要解釋為什么機(jī)器學(xué)習(xí)驅(qū)動(dòng)的系統(tǒng)會做他們所做的工作。有些市場——如住房、財(cái)務(wù)決策和醫(yī)療保健——已經(jīng)有法規(guī)要求你對決定做出解釋。你可能還需要算法透明度,以便審計(jì)機(jī)器學(xué)習(xí)性能。只有使用中的訓(xùn)練數(shù)據(jù)和算法的細(xì)節(jié)是不夠的。深層次網(wǎng)絡(luò)中存在很多層次的非線性處理,這使理解深層網(wǎng)絡(luò)為什么做出特定的決定變得很困難。一種常見的技術(shù)是使用另一臺機(jī)器學(xué)習(xí)系統(tǒng)來描述第一臺機(jī)器的行為。
你還要意識到算法偏差的危險(xiǎn),例如機(jī)器學(xué)習(xí)系統(tǒng)加強(qiáng)了將男性與運(yùn)動(dòng)和女性與家務(wù)聯(lián)系在一起的數(shù)據(jù)集中的偏見,因?yàn)樗畜w育活動(dòng)的例子都包含男性,以及所有出現(xiàn)在廚房里的都是女性。或者當(dāng)關(guān)聯(lián)非醫(yī)療信息的系統(tǒng)對具有某種身體狀況的人做出不利的決策時(shí)。
機(jī)器學(xué)習(xí)的能力取決于它所受訓(xùn)的模型的數(shù)據(jù)及其處理的數(shù)據(jù),因此重要的是仔細(xì)檢查你使用的數(shù)據(jù)。機(jī)器學(xué)習(xí)理解背景數(shù)據(jù)或概念的方式也和人不一樣。例如,研究人員可以創(chuàng)建看起來像隨機(jī)靜態(tài)但被識別為特定對象的圖片。
在很多識別和分類問題上,機(jī)器學(xué)習(xí)可以比人類更快更有效地解決,而且在可預(yù)見的未來,最好將機(jī)器學(xué)習(xí)看作是一套支持工作而不是替代工作的工具。