什麼是機器學習?

機器學習無疑是當下最熱門的技術之一,在不經意之間我們已經享受了機器學習技術帶來的便利。微信基於語音識別技術的語音轉文字功能,豆瓣 FM 的智能音樂推薦等都是機器學習的實際應用。本文將對機器學習做一個簡單的介紹,涉及的話題包括基本概念和術語的介紹,以及機器學習的大致過程。希望讀完本文你能對機器學習有一個更加具體的認識。

什麼是機器學習

那麼,什麼是機器學習?我們也許可以在網絡上找到一個權威的定義,但是看完定義對我們的理解也許並無多大的助益。其實我們可以從機器學習所做的事情來理解這個概念,機器學習的核心就是在數據中尋找模式,並利用模式來預測未來。舉個例子,銀行可以使用機器學習來做風險控制,因為銀行擁有大量的信用卡交易數據。這些數據可以讓銀行發現高風險的行為模式,利用這個模式就能夠預測某筆交易是否存在欺詐的可能性。

機器是怎麼學習的呢?你可以停下來思考一下,你是怎麼學習的。人類學習也是一個尋找模式的過程,比如我們小時候學寫漢字的時候,要學習並記住構成漢字的筆畫,然後根據一定的模式,我們便可使用筆畫寫(拼湊)出漢字。機器學習也一樣,無非就是在數據中識別出一定的模式。例如,假設我們現在有一組信用卡交易數據,如下表所示:

姓名 金額(元) 是否為欺詐
王三 1976
李四 2200
王五 998
趙六 9760

從上表中的數據來看,欺詐交易有什麼模式?姓王的都是詐騙犯?這顯然不符合客觀事實,如果數據太少就容易找到錯誤的模式,如果數據不夠多就無法找到具有預測意義的模式。那我們就來看看更多的數據,這些數據包含的信息更加豐富:

姓名 金額(元) 發卡地 交易地 年齡 是否為欺詐
詹姆斯 1976.23 美國 俄羅斯 23
李四 2200.22 中國 中國 26
王五 998.12 中國 日本 43
趙六 9760.67 中國 美國 36
布川內酷 1760.32 日本 英國 27
艾倫 1602.23 美國 俄羅斯 25
艾伯特 1530.75 美國 俄羅斯 20
艾力克斯 2260.40 英國 韓國 68
亞度尼斯 2637.31 美國 俄羅斯 56
尼王八 5725.21 美國 俄羅斯 21

這次我們又能從數據中發現什麼模式呢?如果你仔細看了,就會發現當信用卡的發卡地為美國,交易地為俄羅斯,且持卡者年齡為20多歲時,則該筆交易很可能就是欺詐交易。然而,這個模式真的具有預測意義嗎?上表的數據量並不大,故此模式很大可能也沒什麼意義。為了找出具有預測意義的模式,我們必須要有足夠多的數據,多到單憑人力無法從中發現模式,多到只能用軟件來識別模式,這時機器學習就能派上用場了。

機器學習的過程

機器學習的過程如下圖所示。首先你收集大量含有模式的數據,然後將這些數據「喂」給機器學習算法,讓算法識別出數據中的模式。機器學習算法在處理完數據之後,會生成一種被稱為模型(model)的東西。簡單地說,模型就是能夠在新的數據中識別出模式的代碼。我們可以使用這種模型,讓軟件判斷新的數據是否符合相關模式。例如,給軟件輸入當前的交易的數據,軟件就可以判斷當前交易為欺詐行為的概率。

機器學習過程

當然,上述過程是簡化之後的,真正的機器學習過程是一個不斷迭代的過程,要比上述過程復雜很多。真正的機器學習過程如下圖所示:

機器學習詳細過程

從上圖可以看出,我們首先需要采集原始數據,數據的采集也需要按照一定的規則進行,因此這一步往往需要一些領域專家的參與。例如如果需要采集信用卡交易的數據,那你就需要對信用卡欺詐行為非常了解的專家,這樣才能采集到合適的數據。采集到的數據我們稱之為原始數據(raw data),由於原始數據往往比較混雜,可能會缺了某部分數據,也可能有重復或者無效的數據,因此並不能直接用於機器學習,必須經過數據預處理。處理好的數據便可以作為機器學習算法的輸入數據,但是在這個過程中又會發現更多的問題,這時必須再次對數據進行預處理,因此這是一個迭代的過程。事實上,一般的機器學習項目中,大部分時間都花在了數據預處理這階段。數據處理好之後,就可以讓機器學習算法進行學習了,學習的結果的就是模型,但這並不是最終模型,學習的過程也是一個迭代的過程。因此,你必須不斷的重復這幾個過程,直到得到你覺得滿意的模型為止。有了滿意可用的模型,你就可以在應用程序中使用它了。盡管如此,這個過程也沒有結束,你必須不斷重復上述過程。為什麼呢?因為這個世界在變,你也必須保證你模型能夠符合最新的狀況,才能讓你的應用程序正常運轉。

一些術語

機器學習有一些特定的術語,我們必須了解這些術語,這樣閱讀別人的文章的時候,才知道他們在說什麼。首先我們來說說訓練數據(Traning Data),所謂訓練數據,就是我們處理好的,用於創建模型的數據。為什麼稱為訓練數據呢?在機器學習的語境中,創建模型過程也叫做訓練模型,因此用於創建模型的數據也叫訓練數據。

另外,機器學習技術可以分為兩大類,一類是有監督學習(supervised learning),另一類事無監督學習(unsupervised learning)。有監督學習是指你需要預測的值本身就在訓練數據之中的學習。例如,在前文提到的信用卡交易數據中,每條記錄中都包含了該交易是否為欺詐行為的數據,這種數據在機器學習中被稱為標注數據(labeled data)。因此,上述關於某筆交易行為是否為欺詐的預測,采用的是有監督學習。反之,無監督學習是指你需要預測的值不在訓練數據之中的學習。這兩種學習方法都有人在使用,但相對而言,有監督學習更為常用。

總結

機器學習是一門很重要,並且將會越來越重要的技術。因此,每個人都應該有所了解,本文可以作為你了解這門技術的第一步。

0%