首頁>體育>

最近騰訊舉辦的鬥地主錦標賽,在全民星賽中,棋王柯潔以9局8300分的成績一舉奪冠。

最近騰訊舉辦的鬥地主錦標賽,在全民星賽中,棋王柯潔以9局8300分的成績一舉奪冠。

說起柯潔大家都不陌生,作為中國圍棋職業九段棋手,17歲排名世界第一,是七次圍棋世界冠軍得主,也是史上最年輕的七冠王。

說起柯潔大家都不陌生,作為中國圍棋職業九段棋手,17歲排名世界第一,是七次圍棋世界冠軍得主,也是史上最年輕的七冠王。

絕大部分的網友都表示,圍棋選手算力和記憶力去打鬥地主就是降維打擊。

但這位天才級的頂尖棋手,也遭遇過滑鐵盧。2017年5月27日,一場被稱為“人類頂尖棋手與人工智慧的終極對決”的比賽中,代表人類出戰的中國年輕人柯潔最終以0:3不敵谷歌公司的圍棋電腦程式“阿爾法狗”。

賽後柯潔表示,當時“阿爾法狗”下了“令我感到絕望的一步棋”,“我感到渾身都在顫抖”,面對即將以0:3完敗收場的結果,柯潔難以抑制自身的絕望情緒,在比賽現場掩面而泣。

更令人意想不到的是,谷歌公司研發的阿爾法元只需輸入圍棋規則就在40天后打敗了阿爾法狗。有人說,未來的人機大戰,人類走第一步棋的時候就已經輸了,計算機從你的這一步已經快速推演出成千上萬條對策,並選出必勝的“最優解”。

擁有高記憶力和計算力的天才選手輸給了人工智慧,一時間,人工智慧與機器學習成為當下最炙手可熱的話題與研究方向。

關於機器學習

眾所周知,人工智慧中的“智慧”主要歸功於一種實現人工智慧的方法——機器學習。

但機器真的能自己學習嗎?並不能。

所謂的“機器學習”,就是在尋找一個數學公式。找到之後,我們可以利用該公式和一組輸入資料(訓練資料)進行運算,並與正確結果進行比較。我們希望該公式能對大多數新的(不同於訓練資料)取自相同或相似統計分佈的輸入資料進行正確運算。

但是,如果輸入資料發生微小改變那麼新的運算結果可能與正確結果截然不同。這就是為何會說機器根本不會學習的原因。

然而這並不影響"機器學習"逐漸成為一個被廣泛接受的名詞——構建一種計算機系統的科學和工程方法。使用“機器學習”構建的系統,無須明確地用指令程式設計,即可輸出正確結果。

作為電腦科學的一個分支,機器學習致力於研究如何利用代表某現象的樣本資料構建演算法。這些資料可能是自然產生的,可能是人工生成的,也可能來自於其他演算法的輸出。

同時,機器學習也可以定義為一套解決實際問題的流程,具體步驟包括收集資料、利用演算法對收集到的資料進行統計建模以及利用構建好的統計模型解決具體問題 。

監督學習

什麼是監督學習?

機器學習的方法主要有4種 :監督、半監督、非監督以及強化學習。

其中,監督學習需要一個數據集,其中全部樣本是有標籤樣本,表示為:

資料集中有N個元素,每個元素Xi為一個特徵向量。特徵向量的每個維度j=1,…,D可以理解為描述某樣本的一個角度。

每個維度的值稱為特徵,表示為X。舉個例子,如果每個X1樣本代表一個人,那麼第一特徵x可能對應身高,第二特徵X2對應體重,第三特徵X3表示性別,諸如此類。一個數據集中的所有樣本 ,特徵向量的同一個位置j必須包含同類資訊。如果某樣本Xi的第二特徵表示重量(千克),其他所有樣本的第二特徵都是以千克為單位的品質值。

另一方面標籤 Yi可能是一個有限類別集合裡的一個元素{1,2,…,C}, 既可能是一個實數,也可能具有更復雜的結構,比如向量、矩陣、樹或者圖 。我們重點討論前兩種情況,即類別和實數標記。類別可以理解為一個樣本的某個屬性。例如,如果我們想用監督學習方法檢測垃圾郵件,標籤就有兩類——{“垃圾郵件”,“非垃圾郵件”}。

監督學習演算法利用有標籤資料集生成一個模型。以一個樣本的特徵向量作為輸入 ,模型可以輸出用於判斷該樣本標記的資訊。例如, 一個癌症預測模型可以利用某患者的特徵向量,輸出該患者患有癌症的概率 。

監督學習如何工作?

在深入探討之前,我們先大概解釋一下監督學習的工作原理。我們從監督學習開始,因為它是最常見的機器學習方法。

監督學習的第一步是採集資料 。每個資料點需要以(輸入,輸出) 的形式成對出現。輸入檔案的格式可以是多樣的,比如電子郵件、圖片或者感測器讀數等。輸出格式則通常為一個實數值, 或者代表類別的標籤(例如,“垃圾郵件” “非垃圾郵件” “貓” “ 狗 ” “老鼠 ” 等)。某些情況下,輸出也可能是向量(例如,一個圖片中人物所在區域的4點座標)、序列[例如 “一隻貓” 所對應的詞性 (“數詞” “量詞” “名詞” )或其他形式。

我們還是用過濾垃圾郵件為例說明。假設現在我們已經收集了一萬封郵件,並將每個郵件標記為“垃圾郵件”或“非垃圾郵件”(可以請人幫忙,也可以自己動手標註)。接下來,我們要把每個郵件轉變成特徵向量。

如何用特徵向量表示一個客觀存在的事物(如一封郵件),通常由資料分析師通過經驗來決定。一種常用的將文字轉化為特徵向量的模型叫作“詞袋模型”。舉個例子,我們可以使用3500個常用漢字表(按筆畫排列)作為一個詞袋模型的特徵。

● 如果一封郵件中包含漢字“一”,那麼第一個特徵的值為1;否則為0。

● 如果該郵件包含漢字“乙”,那麼第二個特徵的值為1;否則為0。

● 如果該郵件包含漢字“罐”,那麼第二個特徵的值為1;否則為0。

通過以上過程,每個收集來的郵件都可以轉變成一個3500維的特徵向量,每個維度的值是1或0。

現在,輸人資料就可以被計算機識別了,不過標籤仍是文字。大多數機器學習演算法要求將標籤轉化為數字格式才能正常執行,比如用數字0和1表示“非垃圾郵件”和“垃圾郵件"。接下來,我們要以支援向量機( Support Vector Machine,SVM)演算法為例進行具體解釋。該演算法需要用數字+1(正數1)表示陽性標籤(“垃圾郵件”),而陰性標籤(“非垃圾郵件”)為-1(負數1)。

轉化之後,我們就有了一個數據集和一個演算法。下一個問題是如何利用這個演算法從該資料集中學習模型。

SVM演算法將每個特徵向量看成一個高維度空間中的一個點(在我們的例子中,該空間有3500維)。演算法把所有的點畫在一個3500維的空間中,再用一個3499維的超平面將陽性樣本和陰性樣本分開。在機器學習術語中,分隔兩類樣本的邊界叫作決策邊界。

該超平面可以用以下線性方程來描述。該方程中含有兩個引數,一個實數向量w,與輸入特徵向量x具有的維度相同,以及一個實數b:

如果讀者現在對某些公式還不太理解,沒關係,我們後續會系統複習機器學習所用到的數學和統計學概念。

現在,我們可以用以下公式來預測某個輸入特徵向量x的標籤了:

這裡的sign是一個數學運算,用來取一個數值的符號。如果數值為正就返回+1;如果數值為負,就返回-1。

SVM演算法的訓練目標是利用資料集找到引數W和b的最優值w"和b"。找到之後,我們的模型f (x)變成以下形式:

接下來,使用訓練好的模型預測一封郵件是不是垃圾郵件。我們只需要把郵件文字轉化成特徵向量,與w"相乘,再減去b"。最後,sign運算得到了一個預測結果(+1代表“垃圾郵件”,-1代表“非垃圾郵件”)。

那麼,要怎麼找到最優值w"和b"呢這是一個有約束的優化問題,可用計算機解決。

這裡的約束是什麼?首先,我們想要訓練後的模型能準確地預測1萬個樣本的標籤。每個樣本i=1,…,10 000的格式是一對(x,y),其中x,是特徵向量、y,是值為+1或-1的標籤。那麼,這裡的約束可以被表示為:

與此同時,我們也希望分割正負樣本的超平面間隔最大。該間隔由決策邊界定義為兩類樣本的最近距離。間隔大的模型具有更好的泛化性,也就是模型對新樣本的處理能力更強。為此,我們需要最小化w的歐幾里德範數‖w‖,可通過計算以下公式得出。

這樣依賴,我們需要計算機解決的優化問題可以被寫成:

其中,表示式 y(wx-b)≥1 同時包含了兩個約束。

該優化問題的解w"和b"即為統計模型,簡稱為模型。我們稱構建該模型的過程為訓練。

下圖展示了一個 SVM 模型的圖例。在圖 1.1中,特徵向量為二維。其中,藍色和紅色的圓圈分別表示正負樣本;紅線代表決策邊界,用 wx-b=0 表示。

一個對二維特徵向量進行分類的SVM模型例項

那麼,為什麼將w 的範數最小化可以幫我們找到正負樣本之間最大間隔呢?如圖 1.1 所示,wx-b=1和 wx-b=-1 定義了兩個相互平行的超平面。在幾何學中,兩個超平面的距離是2。因此,範數‖w‖越小,超平面間的距離越大。

以上是支援向量機的基本原理。使用該演算法構建的模型可稱為性模型。之所以稱為線性,是因為它的決策邊界是一條直線(也可能是一個平面或超平面)。SVM 也可以通過利用加入核來獲得任意非線性的決策邊界。很多情況下,由於資料中的噪聲、錯誤的標註以及極端值(與資料集中其他樣本截然同的樣本),我們無法完全區分兩類樣本。另一個版本的SVM可以通過超引數對訓練樣本中對某些特定類別的分類失誤進行懲罰。

從原則上來說,任何一個分類學習模型都直接或間接地構建一決策邊界。決策邊界可能是一條直線或者弧線,可能具有更復雜的形態,也可能由多個幾何形態疊加組成。該邊界的形式決定了模型的確率,準確預測樣本佔總樣本數的比率)。各種學習演算法區別在於計算決策邊界的方法有所不同。

在實踐中,還有兩個區分學習演算法的因素需要考慮:模型構建需時間和預測所需時間。在許多實際案例中,我們可能因為需要一可以快速生成的模型或者可以快速做出預測的模型,從而選擇準確率偏低的模型。

通俗易懂的《機器學習精講》

大多數關於機器學習技術的教科書有個共同特點:深、厚、難。大部分書籍動輒上千頁,充滿了數學公式和大段大段的公式推導,普遍內容深奧,閱讀門檻較高。

這讓剛入門的讀者望而卻步,想實現書中所介紹的演算法所需要的工程量較大,很難快速應用於實際問題。

因此,非同步君給大家推薦一本更容易上手的機器學習好書《機器學習精講》。這本書就像是一本科普讀物,任何具備基本代數知識的讀者都可以理解其大部分內容,可以學到機器學習必備的知識和技能。

而且書中篇幅適中,章節清晰,適合通讀與精讀。還有很多實用技巧也可以幫助大家快速上手實踐,少走彎路。

  • 為了抗癌,男子堅持吃下為狗驅蟲的“芬苯達唑”,後來如何了?
  • 華人舉重女將更換國籍,為他國贏得金牌後,聲稱只是在中國暫住過