由于新技術(shù)和新方法的出現(xiàn),機(jī)器學(xué)習(xí)正在經(jīng)歷一場革命。機(jī)器學(xué)習(xí)是一個(gè)使用程序開發(fā)功能的過程(例如通過分析數(shù)據(jù)而不是為確切的步驟編程)把垃圾郵件和可取的郵件區(qū)分開來,從而使用戶無需做出關(guān)于算法的工作方式的每一個(gè)決定。機(jī)器學(xué)習(xí)是一個(gè)強(qiáng)大的工具,不僅因?yàn)槊刻煊杏獍偃f人專注于繁瑣的編程步驟,還因?yàn)樗袝r(shí)會(huì)找到比人工操作更好的解決方案。
機(jī)器學(xué)習(xí)在大多數(shù)行業(yè)中都得到了應(yīng)用,在這些行業(yè)里,它為現(xiàn)有流程提供了改進(jìn)的絕佳機(jī)會(huì)。但是,很多企業(yè)都在努力跟上創(chuàng)新。誠然,找到熟練的數(shù)據(jù)科學(xué)家是困難的,但技能短缺并非故事的全部,特別是對于那些已經(jīng)做出投資但沒有意識(shí)到自身潛力的組織來說。最嚴(yán)重的障礙與這兩者間的差距有關(guān)——有能力實(shí)施各種方法的數(shù)據(jù)科學(xué)家和能夠推動(dòng)必要組織變革的商業(yè)領(lǐng)袖。
讓機(jī)器學(xué)習(xí)在組織中取得成功,這需要一個(gè)涉及專家和非專業(yè)人士的整體戰(zhàn)略。這需要關(guān)注組織,分析業(yè)務(wù)案例,以確定機(jī)器學(xué)習(xí)可以在什么地方增加價(jià)值并管理新方法的風(fēng)險(xiǎn)。例如,數(shù)據(jù)科學(xué)團(tuán)隊(duì)可能有興趣使用機(jī)器學(xué)習(xí),但由于時(shí)間限制,風(fēng)險(xiǎn)規(guī)避或熟悉度不夠而選擇不這樣做。在這些情況下,更好的方法可能是創(chuàng)建一個(gè)單獨(dú)的項(xiàng)目,把重點(diǎn)放在未來項(xiàng)目的奠基。一旦該組織有機(jī)器學(xué)習(xí)的實(shí)例,未來實(shí)施的門檻就會(huì)顯著降低。
這意味著組織中的非專業(yè)人員需要分擔(dān)機(jī)器學(xué)習(xí)的愿景,使其獲得成功,而這始于一種共識(shí)。學(xué)習(xí)蘊(yùn)藏在數(shù)據(jù)科學(xué)背后的分析和數(shù)學(xué)需要花費(fèi)數(shù)年時(shí)間,但對于業(yè)務(wù)領(lǐng)導(dǎo)者、分析師和開發(fā)人員來說,至少要了解應(yīng)用該技術(shù)的地方,方式以及基本概念。
使用機(jī)器學(xué)習(xí)需要一種別樣的解決問題的方法:讓機(jī)器學(xué)習(xí)算法解決問題。這是熟悉如何通過功能性步驟進(jìn)行思考的人的思維轉(zhuǎn)變。需要相信機(jī)器學(xué)習(xí)計(jì)劃會(huì)產(chǎn)生結(jié)果并且需要耐心。
機(jī)器學(xué)習(xí)和深度學(xué)習(xí)
為什么機(jī)器學(xué)習(xí)如此強(qiáng)大?機(jī)器學(xué)習(xí)的工作有很多不同的流程(有算法推動(dòng)),我將在下面詳細(xì)討論,但是處于領(lǐng)先地位的流程使用神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)與生物腦的結(jié)構(gòu)相似。神經(jīng)網(wǎng)絡(luò)具有多層連通性,當(dāng)它有很多復(fù)雜層次時(shí),我們就把它稱為深層神經(jīng)網(wǎng)絡(luò)。
深度神經(jīng)網(wǎng)絡(luò)直到最近才取得了有限的成功,當(dāng)時(shí)科學(xué)家利用了通常用于顯示3D圖形的GPU,他們意識(shí)到GPU具有大量的并行計(jì)算能力,并用它們來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。結(jié)果非常有效,以至于現(xiàn)任的數(shù)據(jù)科學(xué)家都措手不及。訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的過程稱為深度學(xué)習(xí)。
深度學(xué)習(xí)在2012年已經(jīng)成熟,當(dāng)時(shí)加拿大團(tuán)隊(duì)首次將GPU訓(xùn)練的神經(jīng)網(wǎng)絡(luò)算法引入重要的圖像識(shí)別競賽,并大幅度領(lǐng)先于競爭對手。第二年,60%的參賽作品使用深度學(xué)習(xí),次年(2014年)幾乎每一個(gè)參賽作品都使用它。
從那以后,我們看到硅谷出現(xiàn)了一些非凡的成功案例,讓谷歌、亞馬遜、貝寶和微軟等公司能夠?yàn)榭蛻籼峁┓?wù)并了解他們的市場。例如,谷歌使用DeepMind系統(tǒng)將數(shù)據(jù)中心冷卻所需的能源減少了40%。貝寶則用深度學(xué)習(xí)來檢測欺詐和洗錢。
除了這個(gè)重心之外,還有其它一些成功案例。例如,西奈山伊坎醫(yī)學(xué)院(Icahn School of Medicine at Mount Sinai)利用英偉達(dá)的GPU來構(gòu)建一個(gè)名為Deep Patient的工具,該工具可以分析患者的病史,以預(yù)測發(fā)病前一年內(nèi)將近80種疾病。日本保險(xiǎn)公司AXA采用深度學(xué)習(xí)模式,將汽車事故預(yù)測率從40%提高到78%。
有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)
在基本的層面上,有兩種類型的機(jī)器學(xué)習(xí):有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)。有時(shí)候這些類型會(huì)進(jìn)一步得到分拆(例如半監(jiān)督和強(qiáng)化學(xué)習(xí)),但本文將重點(diǎn)介紹基礎(chǔ)知識(shí)。
在監(jiān)督學(xué)習(xí)的情況下,你通過將已知的輸入和輸出傳遞給監(jiān)督學(xué)習(xí)來訓(xùn)練模型進(jìn)行預(yù)測。一旦模型看到了足夠的例子,它就可以從類似的輸入中預(yù)測到可能的輸出。
例如,如果你想要一個(gè)可以預(yù)測某人患病的概率的模型,那么你需要隨機(jī)人群的歷史記錄,其中有指示風(fēng)險(xiǎn)因素以及是否患有病癥的記錄。預(yù)測的結(jié)果再好也好不過用于訓(xùn)練的數(shù)據(jù)的質(zhì)量。數(shù)據(jù)科學(xué)家通常會(huì)扣留培訓(xùn)中的一些數(shù)據(jù),并用它來測試預(yù)測的準(zhǔn)確性。
在無監(jiān)督學(xué)習(xí)的情況下,你需要一種算法來查找數(shù)據(jù)中的模式,而你無法提供示例。在聚類的情況下,算法將數(shù)據(jù)分類為組。例如,如果你正在進(jìn)行市場營銷活動(dòng),則群集算法可以找到需要不同營銷信息的客戶群,并發(fā)現(xiàn)你可能不知道的特有群體。
在關(guān)聯(lián)的情況下,你希望算法找到描述數(shù)據(jù)的規(guī)則。例如,算法可能已經(jīng)發(fā)現(xiàn),在周一購買了啤酒的人也購買了尿布。知道了這些信息,你可以在星期一提醒啤酒顧客購買尿布,并嘗試提升特定品牌的銷售。
正如我上面提到的,機(jī)器學(xué)習(xí)的應(yīng)用除了要理解數(shù)學(xué)和算法外,還要有一些遠(yuǎn)見。他們需要理解業(yè)務(wù)的人員,理解算法的人員和能夠關(guān)注組織的領(lǐng)導(dǎo)者共同努力。
機(jī)器學(xué)習(xí)的流程
機(jī)器學(xué)習(xí)模型的實(shí)施除了簡單地執(zhí)行算法之外還涉及很多步驟。為了流程在組織的規(guī)模上工作,業(yè)務(wù)分析師和開發(fā)人員應(yīng)該參與一些步驟。工作流通常被稱為生命周期,它可以通過以下五個(gè)步驟進(jìn)行總結(jié)。請注意,某些步驟不適用于無監(jiān)督學(xué)習(xí)。
1.數(shù)據(jù)收集:要讓深度學(xué)習(xí)發(fā)揮良好的作用,你需要大量準(zhǔn)確一致的數(shù)據(jù)。有時(shí)數(shù)據(jù)要從不同的來源收集并得到關(guān)聯(lián)。盡管這是第一步,但它往往是最困難的。
2.數(shù)據(jù)準(zhǔn)備:在這一步中,分析人員確定數(shù)據(jù)的哪些部分成為輸入和輸出。例如,如果你試圖確定客戶取消服務(wù)的可能性,那么你可以將單獨(dú)的數(shù)據(jù)集合在一起,挑選模型所需的相關(guān)指標(biāo),并消除這些指標(biāo)中的歧義。
3.培訓(xùn):這一步由專家接管。他們選擇最好的算法并反復(fù)對它進(jìn)行微調(diào),同時(shí)將其預(yù)測值與實(shí)際值進(jìn)行比較,以查看它的工作效果。依據(jù)學(xué)習(xí)類型的不同,你可以期望自己會(huì)知道其準(zhǔn)確性水平。在深度學(xué)習(xí)的情況下,這一步可能是計(jì)算密集型的,它需要占用數(shù)小時(shí)的GPU時(shí)間。
4.推論:如果目標(biāo)是要讓模型進(jìn)行預(yù)測(例如監(jiān)督學(xué)習(xí)),那么你可以部署模型,以便它對查詢做出快速響應(yīng)。除了輸出是預(yù)測之外,你給它與數(shù)據(jù)準(zhǔn)備期間選擇的輸入相同。
5.反饋:這是一個(gè)可選步驟,來自推理的信息用于更新模型,以便提高其準(zhǔn)確性。
以下例子顯示了監(jiān)督學(xué)習(xí)模型的工作流程的部分內(nèi)容。Kinetica上的大數(shù)據(jù)存儲(chǔ)是由GPU加速的數(shù)據(jù)庫,其中所包含的訓(xùn)練數(shù)據(jù)可通過利用數(shù)據(jù)庫的機(jī)器學(xué)習(xí)特性的模型作為學(xué)習(xí)步驟的一部分進(jìn)行訪問。然后將模型部署到生產(chǎn)系統(tǒng),該系統(tǒng)里的應(yīng)用程序要求低延遲的回應(yīng)。來自應(yīng)用程序的數(shù)據(jù)被添加到訓(xùn)練數(shù)據(jù)集中,以改進(jìn)模型。
使用正確的分析平臺(tái)也很重要,因?yàn)橐恍C(jī)器學(xué)習(xí)工作流可能會(huì)在業(yè)務(wù)用戶和數(shù)據(jù)科學(xué)團(tuán)隊(duì)之間造成瓶頸。例如,像Spark和Hadoop這樣的平臺(tái)在開始工作之前可能需要將大量數(shù)據(jù)移動(dòng)到GPU處理節(jié)點(diǎn),這可能需要幾分鐘或幾小時(shí)的時(shí)間,同時(shí)限制了業(yè)務(wù)用戶的可訪問性。像Kinetica這樣的高性能GPU驅(qū)動(dòng)的數(shù)據(jù)庫可以通過取消數(shù)據(jù)移動(dòng),把處理能力直接帶給數(shù)據(jù),以此來加速機(jī)器學(xué)習(xí)的進(jìn)度。在這種情況下,幾秒鐘內(nèi)就能返回結(jié)果,這些結(jié)果會(huì)啟用交互式進(jìn)程。
機(jī)器學(xué)習(xí)算法
在GPU對超深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練進(jìn)行提升之前,這些實(shí)施方法由各種算法主導(dǎo),其中一些算法比計(jì)算機(jī)的存在還早。由于這些算法的簡單性和速度,它們在很多用例中仍然占有一席之地。很多入門數(shù)據(jù)科學(xué)課程都是從連續(xù)變量的預(yù)測線性回歸和預(yù)測類別的邏輯回歸開始講起的。K-means聚類也是無監(jiān)督學(xué)習(xí)的常用算法。
深度神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的后盾,它與大多數(shù)傳統(tǒng)的機(jī)器學(xué)習(xí)算法有很多相同的應(yīng)用,但它可以擴(kuò)展到更復(fù)雜的用例。推理相對較快,但培訓(xùn)是計(jì)算密集型的,它通常要占用好幾個(gè)小時(shí)的GPU時(shí)間。
下圖是圖像識(shí)別的深度學(xué)習(xí)模型的圖形表征。在這個(gè)例子中,輸入是一個(gè)圖像,節(jié)點(diǎn)是神經(jīng)元,它們逐漸挑選出更復(fù)雜的特征,直到輸出一個(gè)指示結(jié)果的代碼為止。
人們把圖像識(shí)別的例子稱為卷積神經(jīng)網(wǎng)絡(luò)(CNN),因?yàn)槊總€(gè)神經(jīng)元都包含圖像蒙版,并使用名為卷積的技術(shù)將蒙版應(yīng)用于圖像數(shù)據(jù)。還有其它類型的深度神經(jīng)網(wǎng)絡(luò),例如遞歸神經(jīng)網(wǎng)絡(luò)(RNN),它可以處理時(shí)間序列數(shù)據(jù),以進(jìn)行財(cái)務(wù)預(yù)測和通用的多層網(wǎng)絡(luò),這些網(wǎng)絡(luò)可以使用簡單的變量。
我們需要考慮的一個(gè)重要問題是,深度神經(jīng)網(wǎng)絡(luò)與很多傳統(tǒng)的機(jī)器學(xué)習(xí)算法不同,它很難進(jìn)行逆向工程,或不可能進(jìn)行逆向工程。更重要的是,你并不總能確定推理是如何進(jìn)行的。這是因?yàn)樗惴赡軙?huì)在成千上萬個(gè)神經(jīng)元中填充權(quán)重,并找到人類無法理解的解決方案。信用評分是一個(gè)例子,如果你想了解分?jǐn)?shù)是如何確定的,就不應(yīng)該在這個(gè)例子中使用深度神經(jīng)網(wǎng)絡(luò)。
機(jī)器學(xué)習(xí)框架
從頭開始編寫機(jī)器學(xué)習(xí)模型可能很乏味。為了簡化實(shí)施方法,可以使用框架來規(guī)避復(fù)雜性并減少數(shù)據(jù)科學(xué)家和開發(fā)人員的障礙。以下是一些比較流行的機(jī)器學(xué)習(xí)框架。
例如,谷歌提供了一個(gè)名為TensorFlow的流行框架,它以支持圖像和語音識(shí)別的能力而聞名,并在TensorBoard中提供了一系列模型可視化工具。
TensorFlow的設(shè)計(jì)目的是使并行和多GPU上的深度神經(jīng)網(wǎng)絡(luò)更容易訓(xùn)練,但它也支持傳統(tǒng)的算法。它可以與大數(shù)據(jù)平臺(tái)(如Hadoop和Spark)一起使用,以實(shí)現(xiàn)大規(guī)模并行工作負(fù)載。在數(shù)據(jù)移動(dòng)可能成為瓶頸的情況下,Kinetica平臺(tái)使用本地的TensorFlow集成,把GPU加速的工作負(fù)載直接帶給大數(shù)據(jù)集。
TensorFlow在模型(稱為估計(jì)器)和算法(稱為優(yōu)化器)之間進(jìn)行抽象,它可以讓用戶在訓(xùn)練模型時(shí)從多種算法中進(jìn)行選擇。例如,專家可以以簡單線性回歸作為算法來編寫監(jiān)督學(xué)習(xí)模型,然后將其與深度神經(jīng)網(wǎng)絡(luò)算法進(jìn)行比較。
歷史重演
機(jī)器學(xué)習(xí)的興起與互聯(lián)網(wǎng)的興起有著驚人的相似之處。這兩項(xiàng)研究數(shù)十年來都是由大學(xué)研究人員展開的,并得到了有限的商業(yè)使用?;ヂ?lián)網(wǎng)基于1969年啟動(dòng)的一個(gè)網(wǎng)絡(luò),它在90年代已經(jīng)成熟,這些網(wǎng)絡(luò)擾亂了有這種在位企業(yè)的行業(yè)——反應(yīng)遲鈍,直到業(yè)務(wù)被邊緣化。現(xiàn)在和互聯(lián)網(wǎng)一同崛起的公司都在引領(lǐng)機(jī)器學(xué)習(xí)的發(fā)展,而在位的公司則試圖了解其重要性,并從數(shù)據(jù)科學(xué)投資中提取價(jià)值。
任何讓組織洞察業(yè)務(wù)的軟件項(xiàng)目都需要業(yè)務(wù)用戶和具備將業(yè)務(wù)需求轉(zhuǎn)換為代碼的技能的人員之間的密切參與。大多數(shù)投資了軟件的組織都熟悉這種模式。一個(gè)關(guān)鍵的區(qū)別是,雖然機(jī)器學(xué)習(xí)需要對問題進(jìn)行定義,但它的目的是尋找解決方案。
機(jī)器學(xué)習(xí)的廣泛采用要求業(yè)務(wù)分析師和軟件開發(fā)人員在與數(shù)據(jù)科學(xué)團(tuán)隊(duì)進(jìn)行交流時(shí)至少了解黑匣子級別(black-box level)的知識(shí)。還要求業(yè)務(wù)領(lǐng)導(dǎo)者了解如何通過機(jī)器學(xué)習(xí)解決以前通過認(rèn)真定義的規(guī)則解決的問題,從而實(shí)現(xiàn)價(jià)值。成功使用機(jī)器學(xué)習(xí)并不需要大多數(shù)人來了解機(jī)器學(xué)習(xí)的細(xì)節(jié)。但是他們需要足夠的了解,這樣才能向數(shù)據(jù)科學(xué)專家提出正確的問題。
作者簡介:
Chad Juliano是Kinetica的高級解決方案架構(gòu)師。此前,Chad是甲骨文的高級首席顧問。在加入甲骨文之前,他曾在Quorum Business Solutions擔(dān)任軟件工程師。Chad還在門戶軟件方面有過經(jīng)驗(yàn)。Chad在達(dá)拉斯的南衛(wèi)理公會(huì)大學(xué)獲得電氣工程和數(shù)學(xué)雙學(xué)位。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。