機器學習的建模問題

今天分享的主題是機器學習的建模問題,這其實是個非常大的問題。但是今天為什麼還是分享這個呢?主要是兩個原因,一個是因為在整個機器學習過程中,最重要的部分就是建模問題,建模就是把實際生活中遇到的場景數學化;第二個原因是在學習過程中,建模問題實際上是輔助瞭解機器學習的更好途徑,對於整個機器學習的骨架都建立了一個比較完善的知識體系。

一、如何定義機器學習

機器學習本質上是從數據中發現規律的學科,也就是說機器學習興起時實際上是用在科研中的,在科研中很多時候都要用到預測,能完成預測的過程就是機器學習的一個過程。從另一方面,機器學習=特徵+模型,這裡面的機器學習問題特化為了兩個問題,第一個就是所謂的特徵。

特徵:現在在網上查找所謂的特徵工程方面的內容,會發現他們分享的都非常侷限於表格數據,電商和生活中用的比較多,強調這種特徵工程可能就會讓大家陷入一種誤區。聲音、音頻、圖像或者其他各種的數據類型,這是機器學習更多的面對的數據類型,如何處理這種類型是現在這個階段需要處理的問題,所以特徵工程並不僅僅侷限於表格問題。

第二個就是模型。

模型:整個機器學習的核心,它特化為很多的機器學習方法,比如支持向量機、邏輯迴歸、線性迴歸等這都是一些簡單的機器學習算法,但是它們具有通用性,內核是一致的。在2012年後,深度學習進入爆發時期,之後再解決機器學習問題就傾向於使用深度學習模型。

將二者有機結合起來才是目前階段所有機器學習的靈魂。

機器學習的建模問題


實際上很多機器學習過程就是尋找一種可靠的方式去擬合函數。函數變量就是特徵,這個變量都是數值型的變量,沒有文字或字符類型。為什麼會有人畫圖,是因為我們把函數映射到空間之中,函數和空間有一定的對應關係,由於函數有多個變量,所以是多維空間,這個時候我們才可以給它畫圖。這是機器學習的第一種方式,試圖用空間曲面的方式去解決機器學習問題。我們所建立的函數就是從數據中得到的知識,也就是模型。

那麼我們多建立的所有模型,最基本的目標:第一,快速;第二,精度。精度和速度是不能兼得的。

最樸素的機器學習過程就是從數據中發現函數,最簡單的就是插值

如圖:

機器學習的建模問題


插值是在數據量較少的時候一種無奈的選擇。

接下來看一個非常直觀的機器學習過程

氣壓和高度的關係公式:

機器學習的建模問題


線性迴歸:

機器學習的建模問題


接下來列舉兩個非機器學習的例子:

機器學習的建模問題


非機器學習問題:數值模擬問題

機器學習的建模問題


非機器學習問題:最優路徑(用機器學習很難去建立一個函數)

機器學習的建模問題


二、如何定義多種數據特徵

特徵

做特徵的時候有兩個選擇,一個是做,一個是不做。有人覺得特徵工程整個決定了機器學習的效果上限,個人覺得過度誇大其作用。其實在做特徵的時候很多沒有必要去做,可以交給模型去做,比如給一個簡單的特徵,然後去建立一個比較複雜的模型,去完成我們的預測工作,這是深度學習的意義。

這裡我們定義特徵是“人為”的從數據中發現的已知規律,也就是說在興起之前,我們用的簡單的機器學習方法,需要人為的去發掘一些特徵。當然,人為也可以用機器,這是都是基於規則的,基於規則的變化可能不太適用於數據,但是依然能得到一個相對不受影響的結果,機器學習不太強調精度,因此得到一個可用的結果就可以了。

表格類型和數據特徵

最早遇到的機器學習類型就是表格類型。

每一行看成一個樣本,每一列都是每個樣本有多少屬性。

最常見例子:

機器學習的建模問題

直線分類邊界

機器學習的建模問題


很多機器學習模型實際上都是線性模型,雖然精度不夠但是速度非常理想。很多人說線性模型是一種非常容易欠擬合的模型,也就是說它沒法完成非常複雜的曲線擬合,這個想法沒有什麼大的問題,但這是我們沒有做任何特徵工程前提下所引發的問題。

非直線分類邊界

機器學習的建模問題


例子:

機器學習的建模問題


機器學習的建模問題


網上很多做特徵一般到上面就截止了,但是面對其他數據時該怎麼解決呢?

一維連續數據特徵

機器學習的建模問題


這是一個波形數據。

機器學習的建模問題


在信號分析中最常用的一種作特徵的方式是傅里葉變換,是通過頻譜分析聲音大概在哪個頻率的。

二維連續數據特徵

生活中更常見的是二位連續數據,大家最直觀的是圖片,涵蓋面非常廣。

機器學習的建模問題


機器學習的建模問題


二維卷積/互相關提取特徵:

機器學習的建模問題


Harry小波:

機器學習的建模問題


通過這個獲取圖像特徵,然後就可以把得到的特徵輸入到機器學習的模型中能得到自己想要的結果,人臉檢測這個過程中就可以用這個小波去完成識別。

因此,機器學習有一部分的精力需要放在這些固定特徵的提取之上,雖然有了深度學習,但是固定特徵的變化實際上體現了機器學習在建模過程中的設計感,這種設計感一方面是基於自己的心理,另一方面還能顯著的減低計算的負擔。

純粹基於特徵提取都可以完成機器學習

Harry小波+文本相似哈希:

機器學習的建模問題


三、如何建構模型

特徵與模型:

特徵不夠,模型來湊,這是沒有問題的。

機器學習模型通用性

在建模過程中需要強調的一點:我們在學習機器學習的過程中我們有很多的模型,比如說線性迴歸、深度神經網絡、支持向量機等等算法,但各種算法之間都有通用型。

模型例子:

機器學習的建模問題


機器學習的建模問題


機器學習的建模問題


如何看待多種機器學習算法

在做傳統模型的時候常常強調特徵,如果特徵提取非常困難的話,我們可以讓網絡本身去完成提取過程。

深度學習建模

深度學習是最適合入門的機器學習算法。

機器學習的建模問題


如果對數據不是非常熟悉的話就可以用深度學習來代替。

我們付出的代價是整個計算複雜度提高。

在深度學習中,最強調的是概率的依賴關係。

機器學習的建模問題


深度學習對於概率關係最常見的:

對於卷積神經網絡來說,特徵就是感受野

機器學習的建模問題


循環神經網絡,特徵就是時序依賴

機器學習的建模問題


四、建模實例

1、圖片分類

機器學習的建模問題


在做圖片分類的時候,在卷積神經網絡之後又加入了一個全連接網絡,實際上加入全連接就是為了處理整張圖片的信息,相當於每一個輸出節點之間跟圖像的每一個像素都建立了矩陣上的聯繫,這種聯繫帶有概率上的依賴,所以說加入全連接網絡可以完成所有圖像分類的任務。

2、文本分詞

機器學習的建模問題


文本分詞建模

機器學習的建模問題


雙向神經網絡,可以解決概率依賴關係。

最常用的方式就是畫圖。

五、深度學習模型過度使用問題

深度學習非常簡單便捷,它弱化了特徵工程,是一種非常理想的機器學習模型,但是它存在一個過度使用的問題。比如我們所有的深度學習問題都想用神經網絡來解決,思維沒有問題,但結果可能並不好,因為這會導致訓練過程非常非常漫長。另外一方面,如果給定數據出現問題,模型可能不收斂,其次計算時間也會非常常,深度學習模型並不適合部署手機端。

訓練數據構建問題

機器學習的建模問題


模型複雜度過高問題

如果想要進行更具體的特徵提取,需要搭建比較複雜的模型,但是如果用三層、四層已經能完成很複雜的任務,搭建十層顯然就沒有必要,這就是過度建模。過度建模很使得計算成本顯著增加,同時也是非常難以訓練的。如何把握這個度,所需要的特徵數量和網絡的層數一定要匹配,這個才是建模的根本。

今天分享的內容就到這裡。希望大家有時間可以多看看相關內容。

以上就是本次線上直播的主要內容,相信你對產品經理的相關知識有了一定的認識。想了解更多更詳細內容的小夥伴們,可以關注服務號:FMI飛馬網,點擊菜單欄飛馬直播,即可進行學習。


分享到:


相關文章: