有關(guān)機(jī)器學(xué)習(xí)每個人都應(yīng)該了解的東西
在過去的幾個月中,我與很多的決策者交流了有關(guān)人工智能特別是機(jī)器學(xué)習(xí)方面的問題。其中有幾名高管已經(jīng)被投資者詢問了有關(guān)他們在機(jī)器學(xué)習(xí)(Machine Learning)方面的戰(zhàn)略,以及在哪些方面運(yùn)用了機(jī)器學(xué)習(xí)。那么這個技術(shù)課題為什么突然會成為公司董事會討論的話題呢?
本文引用地址:http://www.ex-cimer.com/article/201711/370980.htm計算機(jī)應(yīng)該為人類解決問題。傳統(tǒng)的方法是“編寫”所需的程序,換句話說,就是我們教電腦問題解決的算法。該算法詳細(xì)描述了解決問題的過程,就像食譜一樣。很多任務(wù)都可以用算法來描述。例如,在小學(xué)里,我們學(xué)習(xí)了數(shù)字加法算法。當(dāng)涉及到要快速、完美地運(yùn)行這種算法時,計算機(jī)比人類更勝任這個工作。
然而,這個問題解決的過程是有局限性的。我們?nèi)绾巫R別一張貓的照片呢?這個看起來很簡單的任務(wù)卻難以用一種算法來描述。讓我們稍等片刻,仔細(xì)想想。即使是簡單的說明(如“有四條腿”或“有兩只眼睛”)也有其缺點(diǎn),因為這些特點(diǎn)可能會被隱藏,或照片可能只顯示了貓的一部分。如果我們遇到識別腿或眼睛的任務(wù)時,那與識別貓一樣的困難。
這正是機(jī)器學(xué)習(xí)展現(xiàn)其實(shí)力的地方。計算機(jī)不需要開發(fā)算法來解決問題,而是使用示例來學(xué)習(xí)算法本身。我們用樣本來訓(xùn)練計算機(jī)。對于識別貓這個例子,我們需要使用大量的標(biāo)注了貓的照片來訓(xùn)練系統(tǒng)(監(jiān)督學(xué)習(xí))。通過這種方式,算法會發(fā)生進(jìn)化,繼而成熟,并最終能夠識別出陌生圖片上的貓。
事實(shí)上,在這種情況下,計算機(jī)通常不會學(xué)習(xí)經(jīng)典程序,甚至都不會學(xué)習(xí)模型中的參數(shù),例如網(wǎng)絡(luò)中的邊緣權(quán)重。這個原理可以與我們大腦(包含了神經(jīng)元)的學(xué)習(xí)過程相比較。像大腦一樣,與傳統(tǒng)程序不同,這種具有邊緣權(quán)重的網(wǎng)絡(luò)幾乎不可能被人類所理解。
在這種情況下,被稱為深度學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方法得到了巨大的成功。深度學(xué)習(xí)是一種特殊的機(jī)器學(xué)習(xí),反過來又是人工智能的一門學(xué)科,是計算機(jī)科學(xué)研究的主要分支。早在2012年,谷歌研究小組成功地訓(xùn)練了一個擁有16000臺計算機(jī),并從1000萬段YouTube視頻中識別貓(和其他對象類別)的網(wǎng)絡(luò)。他們采用的就是深度學(xué)習(xí)技術(shù)。
許多與練習(xí)有關(guān)的問題更傾向于屬于“識別貓”這個類別,而不是“數(shù)字加法”,因此,很難用人類編寫的算法來解決這些問題。這些問題通常是在某些數(shù)據(jù)中識別模式,例如識別圖像中的對象、語言中的文本或交易數(shù)據(jù)中的欺詐行為。
這里有一個簡單的例子,我們來看一下預(yù)測性維護(hù)。想象一下許多傳感器正在發(fā)送數(shù)據(jù)流,有時,某些機(jī)器會發(fā)生故障?,F(xiàn)在的難題就是學(xué)習(xí)導(dǎo)致故障的數(shù)據(jù)流的模式。一旦學(xué)會了這種模式,就可以在正常操作期間識別出這種模式,從而預(yù)防潛在的故障。
雖然機(jī)器學(xué)習(xí)的原理并不新鮮,但目前深受大眾的追捧。這主要有三個原因:首先,用于應(yīng)用和訓(xùn)練的大量數(shù)據(jù)的可用性(“大數(shù)據(jù)”);其次,我們現(xiàn)在擁有巨大的計算能力,特別是在云端;第三,一系列的開源項目使得每個人或多或少會使用一些算法。
機(jī)器學(xué)習(xí)不能代替?zhèn)鹘y(tǒng)編程,而是對傳統(tǒng)編程的補(bǔ)充。它提供了一些工具,使得我們能夠解決迄今為止難以甚至不可能解決的很多類問題??偠灾?,這些給我們帶來了新的機(jī)會,而現(xiàn)有的系統(tǒng)也越來越多地被改造并加入了機(jī)器學(xué)習(xí)功能。
遵循某種模式的重復(fù)操作就是一個典型的例子。假設(shè)有一個計算機(jī)程序,你可以通過點(diǎn)擊一系列復(fù)雜的菜單來使用它的一百個功能,但你每天只主動地使用其中的某些功能。通過觀察你平時點(diǎn)擊的步驟,計算機(jī)可以學(xué)習(xí)預(yù)測你的下一步動作,從而提高你操作的效率。計算機(jī)通過“學(xué)習(xí)”這些重復(fù)的數(shù)據(jù)和對象,可以使得許多步驟自動化執(zhí)行,從而加快了速度。
在每個領(lǐng)域都可以找到更多的例子:針對個別學(xué)生(特別是“大型開放式在線課程”,即MOOC)定制學(xué)習(xí)教材、疾病的早期診斷、在線營銷目標(biāo)群體、客戶流失、自動識別數(shù)據(jù)質(zhì)量問題,或通過約會服務(wù)匹配用戶個人信息。
由于Spark擁有很多先進(jìn)的工具,它(集成在Hadoop中)已經(jīng)在機(jī)器學(xué)習(xí)領(lǐng)域成為領(lǐng)先的大數(shù)據(jù)框架。 Talend也正向著這個目標(biāo)發(fā)展,并且通過建模能夠抽象出一個更高的層次。建模可以降低復(fù)雜度,同時還會弱化與發(fā)展迅速并且門檻較高的基礎(chǔ)技術(shù)之間的依賴關(guān)系。
只有少數(shù)專家需要真正了解機(jī)器學(xué)習(xí)方面的算法細(xì)節(jié)。但是,如果每個人都能理解機(jī)器學(xué)習(xí)相關(guān)概念的話也是有好處的,比如知道機(jī)器學(xué)習(xí)是從示例中學(xué)習(xí)模式,并且能夠應(yīng)用到新的數(shù)據(jù)集上。最終,機(jī)器學(xué)習(xí)擴(kuò)大了機(jī)器可以解決問題的類別,從而實(shí)現(xiàn)自動化:具體來說就是通過決策來實(shí)現(xiàn)。這正是計算機(jī)學(xué)到的東西;它根據(jù)從訓(xùn)練數(shù)據(jù)積累到的知識,對新的數(shù)據(jù)做出決策。一方面,我們可以通過自動化的決策,將機(jī)器學(xué)習(xí)應(yīng)用在我們的業(yè)務(wù)或圈子中。另一方面,我們自己本身就是一個數(shù)據(jù)源,其他的機(jī)器可以對我們進(jìn)行分析并優(yōu)化他們自己的業(yè)務(wù)。
總而言之,我想給大家留下這樣一幅畫面:計算機(jī)現(xiàn)在不僅能夠遵循明確的指令(例如數(shù)字相加),還可以通過例子進(jìn)行學(xué)習(xí)(例如通過訓(xùn)練樣例來識別貓的圖片)。根據(jù)要解決的問題的不同,某個方法可能比另外一個更合適。然而,當(dāng)這兩個方法以某種方式結(jié)合起來使用的話,最終能為自動化帶來更多的機(jī)會。
評論