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