機器學習開篇之路

語言: CN / TW / HK

theme: smartblue

《底層邏輯》把智慧分為三個層次:博弈、定力、選擇。

博弈:代表你要用雙贏的思維,去贏得你選擇賽道的勝利。

定力:代表你要堅定自己選擇的賽道,不隨意更換,來贏得長期的紅利。

選擇:代表你的選擇要能順應時代的趨勢,做正確的事要比正確的做事更重要。

而這個時代的趨勢,選擇“機器學習”這個賽道就是正確的事,可能遠遠比你在工程領域去正確的做事,能收穫更大的時代紅利。讓我產生這個想法,也是自己在招聘市場看到的現象,我們專案組要同時招聘Java工程師和演算法工程師,從薪資、經驗、發展三個方向來看,演算法工程師這個職位都是完勝的。

  • 薪資:Java工程師的頂薪只是演算法工程師的起薪。
  • 經驗:Java工程師市場供給遠遠大於需求,企業挑選人才的標準也就高了,不僅要畢業學校好,還要有大廠經歷。而演算法工程師,明顯市場需求大於供給,有名校和大廠畢業的就更少了,企業挑選人才的範圍少了,要求自然不會有這麼高。
  • 發展:演算法這個行業更看重你底層的功底和能力,未來更注重你思維邏輯和演算法經驗;而不像工程可能還存在拼體力的過程,任務緊張,需要你去拼時間來完成工作量。

雖然如此,但是要你再在一個新的領域重新開始時,你依然會糾結和彷徨,再三對比和衡量得失。時代的趨勢在不停向前發展,大的方向其實大家心裡都或多或少有所瞭解,那就從此刻開始改變吧,人生最好開始的時刻要麼在10年前,要麼在此刻。

我理解的“機器學習”

機器學習學的是輸入和輸出之間的對映關係,這種對映關係最後會以模型的形式展現。

那麼模型就可以表示為:輸入輸出符合的概率分佈,或者輸入輸出之間的數量關係。從資料的角度看,如果這個模型可以用一組有限且固定數目的引數完全刻畫,求出的模型就是引數模型;反過來,不滿足這個條件的模型就是非引數模型。

引數模型

引數模型優勢在於只用少量引數就可以完整地刻畫出資料的概率特性,每個引數都具有明確的統計意義。經典的數學模型包括:典型概率分佈,離散變數的二項分佈B(n,p)只包含兩個引數,分別代表:獨立重複試驗的次數和每次試驗中事件發生的概率。

為什麼引數模型中,有限的引數就能夠描述無限的資料呢?

來源於超強的先驗假設,所有資料符合特定型別的概率分佈。在實際的學習任務中,我們並非對問題一無所知,通常都具有一定的先驗知識。先驗知識並不源於對資料的觀察,而是先於資料存在,引數模型正好就是先驗知識的體現和應用。

引數模型雖然簡單實用,但其得到的結論就一定可信?

引數模型的可信度依賴於先驗知識的可信度。如果先驗知識可信度本身就不符合實際,那麼不管訓練資料集的體量多大,學習演算法的效能多強,學習出來的結果都會與事實真相南轅北轍,背道而馳。

當對所要學習的問題知之甚少的時候,就不要使用先驗資訊。

非引數模型

不依賴於先驗經驗,完全靠資料進行學習得到的模型就是非引數模型。

非引數模型意味著模型引數的數目是不固定的,並且極有可能是無窮大,這決定了非引數模型不可能像引數模型那樣用固定且有限數目的引數完全刻畫出來。

非引數模型不存在關於資料潛在模式和結構化特性的任何假設,資料的所有統計都源於資料本身,所見即所得。

因此對比引數模型,非引數模型的時空複雜度都會比引數模型大得多。但可以證明的是,當訓練資料趨於無窮多時,非引數模型可以逼近任意複雜的真實模型。

更系統和專業的概念

非引數模型可以理解為一種區域性模型。在區域性上,相似的輸入會得到相似的輸出,而全域性的分佈就是所有區域性分佈的疊加。

引數模型具有全域性的特性。所有資料都滿足統一的全域性分佈,一組全域性分佈的引數就可以表示所有的資料。

從模型構造的角度來看,引數模型對應的就是資料模型非引數模型對應的就是演算法模型

著名統計學家佈雷曼,最看重的就是學習演算法從資料中獲取有用結論和展示資料規律的能力。從一點出發,將輸入x和輸出y的關係看成黑盒。資料模型認為這個黑盒裡裝著一組未知的引數,學習的物件是這組引數;演算法模型則認為這個黑盒裡裝著一個未知的對映函式,學習的物件就是這個對映函式

資料模型最典型的方法是線性迴歸,輸出結果表示為輸入特徵的線性加權組合,演算法通過訓練資料來學習權重係數。

演算法模型最典型的方法是隨機森林演算法,隨機森林是一種整合學習方法,構成這座森林的每一顆樹都是決策樹,每一顆決策樹都用隨機選取資料和待選特徵構造出來,再按照少數服從多數的原則從所有決策樹的結果中得到最終輸出。

決策樹本身是具有較好的可解釋性的資料模型,它表示的是幾何意義上的對特徵空間的劃分,但是精確度卻不堪理想。隨機森林解決了這個問題:通過綜合使用建立在同一個資料集上的不同決策樹達到出人意料的良好效果,在精確度上提升了數倍,但換來的就是可解釋性的下降。

從學習方法上看,資料模型和演算法模型具有相同的本質。此外還有一種針對學習物件的劃分方式,就是生成模型和判別模型之分。

生成模型:學習的物件是輸入x和輸出y的聯合分佈p(x,y)。

判別模型:學習的則是已知輸入x的條件下,輸出y的條件分佈p(y|x)。

這兩個模型可以通過貝葉斯定理建立聯絡。

生成模型的求解更加複雜,當資料量趨於無窮大時,漸進條件下的精確性也更差,但其收斂的速度更快,在較少資料的訓練後就可以收斂到錯誤的下限。

判別模型更加簡單,在分類問題上的表現也更差,卻不能提供關於資料生成機制的資訊。

當下,引數模型還是機器學習的主流,非引數模型在應用範圍上還是效能表現上都要略遜一籌。

後續計劃

  • 模型的設計準則

  • 模型的驗證方法

  • 模型的評估指標

  • 實驗設計