人工智能系列(四)機器學習簡介

原力君在系列的第三篇《人工智能系列(三) 人工智能主要研究哪些內容》裡提到了人工智能的主要研究內容,其中認知建模、知識表示、知識推理是對人類智能模式的一種抽象,而機器感知、機器思維、機器學習、機器行為則是對人類智能的一種模擬實現,人工智能研究的最終要構建擬人、類人、超越人的智能系統。

人工智能系列(四)機器學習簡介

其實人工智能不是個新話題,早在上世紀中葉之前就已經開始有人工智能的研究了。後來,人工智能是幾起幾落,在人們的狂熱中爆發,在人們的失望中沉寂。而目前人工智能這麼火爆,說起來的話,它的好好感謝深度學習等機器學習算法的成功應用又給人們帶來了新的希望。

舉幾個簡單的例子。當年阿爾法狗大戰李世石和柯潔,以橫掃的姿態力壓群雄,讓所有人西瓜掉了一地,從此"你下棋下的跟狗一樣"成了一個讚揚;再看IBM超級電腦沃森,在美國最受歡迎的智力競猜電視節目《危險邊緣》中擊敗該節目歷史上兩位最成功的選手肯-詹寧斯和布拉德-魯特,成為《危險邊緣》節目新的王者,它的成績比這兩個牛人的成績之和還要多。有人說了,這兩個都是超級電腦,他們的服務器都可以佔據一層樓了,不太現實。好吧,那我們說一個個頭小的例子,谷歌無人駕駛車已經可以在大馬路上像個老司機一樣狂飆、換道、閃躲了;再說一個更小的,科大訊飛的翻譯機可以實時讓你和全球各種語言國家的人自如的交流了。

當然,以上成功案例並不僅僅使用了機器學習算法,還是用了機器感知、機器思維、機器行為、知識推理等人工智能技術,但是機器學習在裡面起到了舉足輕重的作用。目前階段,甚至可以說機器學習起到了最大的作用。

機器學習這個叫法起源於1959年,美國的大牛Arthur Samuel第一次這麼稱呼這類可以讓機器從數據中學習知識的方法。發展至今,機器學習出現了很多種定義,但是實踐家們最喜歡的一種定義是:

<strong>對於某類任務T和性能度量P,如果一個計算機程序在T上以P衡量的性能隨著經驗E而自我完善,那麼就稱這個計算機程序從經驗E中學習

從上面的表述,就可以感受到提出這個定義的人很NB。沒錯,他就是美國CMU的計算機科學家Tom Michael Mitchell,此處膜拜三分鐘。在這個定義中,我們需要著重注意的幾個關鍵詞就是:任務T、性能度量P、經驗E。

<strong>機器學習分類主要有監督學習、半監督學習、無監督學習、主動學習、和強化學習

傳統的機器學習分類中並沒有強化學習,原力君在這裡參考最新的材料進行分類。當然,隨著機器學習技術的進步,可能會出現更新的分類方式,此處不表。

監督學習,聽上去好像是有個人監督機器一樣。實際上,監督學習說的是機器用來學習的輸入輸出數據都有明確的對應關係。比如,給一張蘋果的圖片,對應的輸出是蘋果;給一張咬了一口的蘋果圖片,對應的輸出是蘋果;給一張掛在樹上的蘋果圖片,對應的輸出還是蘋果。而機器要做的就是,利用這些圖片以及每個圖片對應的輸出,來學習什麼是蘋果。在計算機中,這個學習到東西成為"模型"。在網絡上,最常見到機器學習方法的就是監督學習,因為監督學習數據明確,輸入輸出明確,容易驗證。

無監督學習,就比較厲害了,聽上去就是沒有人監督,你自己能學到什麼就是什麼吧。無監督學習用的數據沒有標籤,也就是所有的數據都是輸入數據,沒有對應的輸出,沒人告訴機器這是什麼數據,用來幹什麼的。那麼,機器能做的就是提取這些數據中的模式,或者結構。

半監督學習,聽上去好像是有個人一會兒監督一會兒不監督。實際上,半監督學習說的是機器用來學習的輸入數據,只有一部分有明確的輸出數據,而另一部分沒有。那麼,機器只能利用有明確輸入輸出關係的數據,和剩下的沒有對應輸出的輸入數據來學習模型。用百度百科的話說,半監督學習是監督學習與無監督學習相結合的一種學習方法。半監督學習使用大量的未標記數據,以及同時使用標記數據,來進行模式識別工作。因其所需人工比較少,同時準確性又比較高,半監督學習目前正越來越受到人們的重視,也是模式識別和機器學習領域研究的重點問題,。

主動學習,聽上去就是機器學習慾望比較強烈,從"要我學"變成"我要學"。在實際工程中,有明確輸入輸出關係的數據相對比較少,而大部分數據都是機器的輸入數據而輸出數據未知。如果所有輸入數據都要人工去給定輸出數據,需要耗費大量人力物力,則不太現實。是否有一種方法,可以用來挑選最有價值的數據,從而可以減少人工成本?主動學習就是用來解決這一問題。主動學習利用已知輸入輸出關係的數據(我們稱其為訓練樣本)進行學習,然後利用學習到的知識去判斷那些沒有對應輸出的輸入數據中,哪些更有助於它學習知識。這些更有價值的數據,會被主動學習算法"主動"推送給操作人員進行手動標註其輸出數據,然後標註完成的數據再送回到算法的訓練樣本中,進行下一步的學習。

強化學習與前面所說的集中學習方法都有所區別。強化學習沒有大量的數據,只有給定的幾個動作。系統利用一定的策略,從給定的動作中選擇一個動作去執行,然後接收任務環境反饋的數據,這個數據會被轉化為一種"獎勵值"或"懲罰值"。強化學習系統會根據獎勵值或懲罰值的大小去改變動作,從而讓返回的獎勵值更大或懲罰值更小。對於某些相似的場景,系統所需要執行的最優動作往往也相似,強化學習系統在多次重複實驗之後,就會學習到某個場景下最優的動作。這樣,已經學習到足夠經驗的系統,以後就可以從容地應對相似的場景。

<strong>機器學習方法多種多樣,適合的才是最好的

前面關於機器學習的分類,都在糾結學習過程中所使用的數據是預處理過的、沒處理過的、算法主動要求處理的、或者獎勵值懲罰值。但是,不管學習過程中所用的數據如何,我們最終得到的是一個"模型",而這個模型包含了機器學習到的知識。從另一個角度看,這個模型也包含了我們對所學知識的認識。這個知識的結構是明確的、模糊的、還是完全未知的?不同的知識結構,需要用到不同的方法去表徵,從而會得到不同類型的模型。

從機器學習模型的基礎來分,目前已有的機器學習方法涉及到線性迴歸、K-means、決策樹、隨機森林、主成分分析、關聯規則、人工神經網絡、歸納邏輯、支持向量機、聚類分析、貝葉斯網絡、相似性度量、稀疏字典等等。

基於人工神經網絡的學習方法,尤其是其中的深度學習方法,目前最受人們歡迎。這主要是因為計算機硬件技術有了更進一步的發展,GPU/TPU加速計算技術讓深度學習的速度大大提高。另外,深度學習得到的模型在實際中應用效果令人滿意,也是一個很重要的原因。

人工智能系列(四)機器學習簡介

<strong>老規矩,一句話總結:機器學習有監督學習、無監督學習、半監督學習、主動學習、強化學習這5種學習方式;而根據所學知識(或模型)結構不同,可以使用諸如神經網絡、決策樹、規則、貝葉斯網絡等方法去構建學習算法;深度學習目前可以說是一種基於神經網絡的學習方法。


分享到:


相關文章: