1、機器學習的演化為了找到實現(xiàn)人工智能的方法人們經(jīng)歷了一段異常艱難的歲月,終于找到一種完全不同的方式,穩(wěn)健地構(gòu)建出一種通用技術(shù)。這種方式的名稱是“機器學習”。如果你曾經(jīng)涉足數(shù)據(jù)挖掘領(lǐng)域,應(yīng)該對這個名字耳熟能詳。相對于人工智能以往的種種方法,機器學習要強大得多,是一種潛力無窮的工具,正如本章前文所介紹過的,以往的方法僅能依據(jù)人預先提供的知識進行搜索和判斷,機器學習要高級得多。
機器學習出現(xiàn)之前,機器僅能在已輸入的數(shù)據(jù)中搜尋答案。大家的關(guān)注點都在機器如何能更快地從已有的知識中抽離出相關(guān)問題的知識。這樣,機器就能更快地回答一個它已知的問題,但是,一旦碰到它未知的問題,它就不行了。
另一方面,機器學習領(lǐng)域中,機器的學習是照本宣科的。機器可以依據(jù)它學習的知識回答未知的問題。那么,機器是如何學習的呢?這里的“學習”到底是什么含義?簡單地說,學習就是機器獲得能夠?qū)栴}劃分成“是”或“不是”能力的過程。本章接下來的內(nèi)容中我們會提供更進一步的細節(jié),我們現(xiàn)在所能說的是機器學習就是一種模式識別的方法。我們認為,從根本上說,這個世界上的每個問題都可以用答案為“是”或者“否”的問題所替換。舉個例子,“你喜歡什么顏色?”這個問題,可以通過“你喜歡紅色嗎?喜歡綠色嗎?喜歡藍色嗎?喜歡黃色嗎?……”這樣的問題所替代。
機器學習中,使用高速計算和處理能力作為武器,機器用大量的訓練數(shù)據(jù),將復雜的問題替換為答案為“是/否”類型的問題,找出哪些數(shù)據(jù)答案為“是”,哪些數(shù)據(jù)答案為“否”的規(guī)律(換句話說,它在學習)。之后,使用學習的結(jié)果,機器可以對新提供的數(shù)據(jù)進行分析,判斷它們的結(jié)果為“是”還是“否”,并返回答案結(jié)果。概括來說,機器學習可以通過辨識和歸類給定數(shù)據(jù)的模式,來回答未知數(shù)據(jù)的問題。實際上,這種方法并沒有想象中那么難。
人們也經(jīng)常無意識地對數(shù)據(jù)進行模式分類。譬如,如果你在一個聚會上碰到了一個你感興趣的男人/女人,你可能會非常急切地想要了解你面前的他/她是否對你有同樣的感覺。在你的腦海里,你會對他/她的說話方式、樣貌、面部表情或者姿態(tài)進行分析,與你之前的經(jīng)歷(也就是數(shù)據(jù))進行比較,通過這些進一步?jīng)Q定你是否要去約會。這和基于模式識別的推斷是同一個道理。機器學習是一種以機械的方式,由機器主導而非人主導,進行模式識別的方法。那么,機器是如何識別模式,并對它們進行分類的呢?機器學習的分類標準是一種基于數(shù)學公式的推算,名叫“概率統(tǒng)計模型(Probabilistic Statistical Model)”。
這種方式基于多種數(shù)學模型,已經(jīng)被研究得非常透徹了。學習,換句話說,就是模型參數(shù)的調(diào)整,一旦學習完成,就意味著模型構(gòu)建完成。接下來,機器就可以將未知數(shù)據(jù)劃分到最可能的模式中(即最適合的模式中)。按照數(shù)學對數(shù)據(jù)進行分類是一個重大優(yōu)點。
對人類而言,我們幾乎無法對多維的數(shù)據(jù),或者多模式的數(shù)據(jù)進行處理,而機器學習卻可以使用幾乎同樣的數(shù)值公式完成分類。機器需要的僅僅是增加一個向量,或者矩陣中的維度數(shù)(本質(zhì)上說,進行多維分類時,它并不是由分類直線或者分類曲線完成,而是由超平面完成的)。發(fā)明這一方法之前,機器在沒有人為幫助時幾乎沒有任何能力處理未知數(shù)據(jù);通過機器學習,機器甚至能處理即使人也無法處理的數(shù)據(jù)。研究人員為機器學習帶來的可能性歡欣雀躍,積極地投身到改善機器學習的工作中。
機器學習概念的歷史悠久,不過由于科學家們?nèi)狈ψ銐虻臄?shù)據(jù),長期以來無法進行大量的研究,證明它的有效性。不過,最近很多開源數(shù)據(jù)出現(xiàn)在互聯(lián)網(wǎng)上,研究人員能比較容易地利用這些數(shù)據(jù),對他們的算法進行實驗。由此,人工智能的第三波浪潮隨之而來。機器學習周邊的環(huán)境也給了它極大助力。機器學習在能正確地識別模式之前需要學習大量的數(shù)據(jù)。除此之外,它還需要有能力處理這些數(shù)據(jù)。它處理的數(shù)據(jù)和模式類型越多,數(shù)據(jù)的數(shù)量以及計算的次數(shù)也越大。因此,很明顯,之前的技術(shù)無法支持機器學習的發(fā)展。不過,時代在進步,機器的處理能力得到了大幅增強。除此之外,網(wǎng)絡(luò)也日益成熟,互聯(lián)網(wǎng)的觸角已經(jīng)延伸到世界的各個角落,因此開放的數(shù)據(jù)也日益增加。隨著這一波的變化,只要能夠從互聯(lián)網(wǎng)上抓取數(shù)據(jù),每個人都可以進行數(shù)據(jù)挖掘。
整個外部環(huán)境都已就緒,每個人都能很容易地接觸、學習機器學習。網(wǎng)絡(luò)是一個文本數(shù)據(jù)的寶盒。充分利用機器學習領(lǐng)域中的文本數(shù)據(jù),我們可以預期巨大的成長機會,特別是在統(tǒng)計自然語言處理方面。機器學習在圖形圖像識別、語音識別方面也取得了巨大的成就,研究人員正朝著發(fā)掘更高精度方法的方向努力。機器學習在商務(wù)世界的各個方面被廣泛使用。自然語言處理領(lǐng)域中,提到輸入方法編輯器(Input Method Editor,IME),預測轉(zhuǎn)換可能很快就浮現(xiàn)在你腦海里了。搜索引擎中的圖像識別、語音識別、圖像搜索以及語音搜索也都是很好的例子。當然,機器學習的應(yīng)用并不局限于這些領(lǐng)域。它也被大量應(yīng)用于各個領(lǐng)域,從營銷目標(Marketing Targeting),譬如特征產(chǎn)品的銷售預測(或者廣告優(yōu)化、商店貨品陳列、基于人類行為預測的空間規(guī)劃),到預測金融市場的動向??梢哉f,之前企業(yè)界使用數(shù)據(jù)挖掘的大多數(shù)方法,現(xiàn)在都轉(zhuǎn)而采用了機器學習。是的,機器學習就是這么厲害。目前,如果你聽到“人工智能”這個詞,通常情況,它實際代表的是由機器學習完成的處理。軟件開發(fā)實現(xiàn)
2、機器學習的局限性機器學習通過收集數(shù)據(jù),預測答案。實際上,機器學習非常有用。由于機器學習,之前人類無法在可接受的時間窗口內(nèi)回答的問題(譬如,使用100維超平面進行分類),機器可以很輕松地完成。最近,“大數(shù)據(jù)”變成了一個時髦術(shù)語,不過,分析海量數(shù)據(jù)所依靠的也主要是機器學習。
然而,不幸的是,即便是機器學習也無法創(chuàng)造人工智能。從“它能否真正實現(xiàn)人工智能”這個角度而言,機器學習存在著一個巨大的缺陷。機器學習和人類的學習之間存在著巨大的差異。你可能已經(jīng)注意到這二者之間的差異,不過讓我們慢慢道來。機器學習是一種依據(jù)輸入數(shù)據(jù)進行模式分類和預測的技術(shù)。如果是這樣的話,那么到底什么是輸入數(shù)據(jù)呢?它能夠使用任何數(shù)據(jù)嗎?當然……它不能。結(jié)論很明顯,它不能依據(jù)無關(guān)的數(shù)據(jù)預測正確的結(jié)果。
為了讓機器正確地學習,它需要有恰當?shù)臄?shù)據(jù),那么問題就來了。機器無法辨別哪些數(shù)據(jù)是合適的數(shù)據(jù),哪些數(shù)據(jù)又是不合適的。只有接受正確的數(shù)據(jù),機器才能找到正確的模式。無論一個問題難或者簡單,人們都需要為它提供正確的數(shù)據(jù)。
我們思考下這個問題:“你面前的對象是一個人還是一只貓?”對任何一個普通人而言,答案太明顯了。我們可以毫不費力地區(qū)分出二者?,F(xiàn)在,讓我們通過機器學習來完成同樣的事。首先,我們需要準備機器讀取的數(shù)據(jù)格式,換句話說,我們需要準備人和貓的圖像數(shù)據(jù)。這看起來并沒有什么特別的。問題出現(xiàn)在接下來的這一步。
你大概希望直接采用這些圖像數(shù)據(jù)作為輸入,但這是行不通的。正如前文所述,機器無法自身明確要從數(shù)據(jù)中學習什么。機器學習的東西,需要人事先從原始圖像數(shù)據(jù)提取創(chuàng)建后提供給它。也就是說,這個例子中,我們需要使用可以區(qū)分出人類和貓的數(shù)據(jù)作為輸入,譬如臉色、面部位置、面部輪廓等等。人定義并提供作為輸入的這些值被稱為“特征(Feature)”。機器學習無法完成特征工程(Feature Engineering)。這是機器學習的致命死穴。顧名思義,特征就是機器學習中的模型變量。
因為這個值以定量的方式表示了對象的特征,促使機器可以恰當?shù)貓?zhí)行模式識別。換句話說,你如何設(shè)置這些標識值會對預測的精確度產(chǎn)生巨大的影響。潛在而言,機器學習有兩種類型的局限性:·有的算法僅能在數(shù)據(jù)滿足訓練數(shù)據(jù)假設(shè)時才表現(xiàn)良好。這些訓練數(shù)據(jù)的分布通常都有一定的差異。大多數(shù)時候,出現(xiàn)這種問題表明學習模型沒有泛化好?!ぜ幢闶怯柧毩己玫哪P?,依舊無法做出良好的元-決策(Meta-Decision)。
因此,很多情況下,機器學習只能在一個非常狹窄的領(lǐng)域取得成功。讓我們看一個簡單的例子,以便你更容易地理解特征對模型預測精度的巨大影響。假設(shè)有這樣一家公司,它希望依據(jù)客戶的資產(chǎn)量情況,向他們推銷資產(chǎn)管理的一攬子解決方案。公司希望能推薦適合用戶的產(chǎn)品,不過它又不能詢問過于私人的問題,因此需要預測客戶可能擁有多少資產(chǎn),并預先進行準備。
這種情況下,我們應(yīng)該把哪些類型的潛在客戶作為特征呢?我們可以假設(shè)各種各樣的因素,譬如他們的身高、體重、年齡、居住地址諸如此類作為分析的特征,不過,顯而易見的是相對于身高和體重,年齡或者居住地址的相關(guān)性要高得多。
如果你讓機器學習基于身高或者體重進行分析,很可能無法得到好的結(jié)果,因為這時預測基于的數(shù)據(jù)是沒有相關(guān)性的,這意味著所進行的是一種隨機的預測。由此我們可以知道,機器學習只有在讀入恰當?shù)奶卣髦蟛拍転閱栴}找出符合要求的答案。
然而,不幸的是,機器學習無法判斷什么樣的特征是恰當?shù)模虼?,機器學習的準確性嚴重依賴于特征工程!機器學習有大量的方法,然而,這些林林總總的方法都無法解決特征工程的問題。人們研發(fā)了各種各樣的方法,互相比拼算法的精確度,不過當達到一定的精確度之后,最終判斷機器學習算法優(yōu)良的標準是人們發(fā)現(xiàn)特征的能力。
這絕非算法上的差異,更多的時候像是人類的直覺,或者品味,或者對參數(shù)的調(diào)優(yōu),這些工作毫無創(chuàng)新可言。各式各樣的方法被創(chuàng)造出來,不過歸根到底,最難的事情是如何選擇最優(yōu)特征(Identity),而這部分工作目前只能由人來完成。
文章參考:深度學習,java語言實現(xiàn), 成都軟件開發(fā)公司