如何理解機器學習中雜訊影響模型複雜度問題?

在機器學習中,數據中往往會存在雜訊,當我們用模型去擬合帶有雜訊的數據時,往往將模型便得更加複雜?由此提出了,正則化和懲罰因子,目的是為了平衡模型複雜度和損失函數之間的關係,從而得到更優的測試結果。

我想問的是,這些理論是建立在雜訊影響了模型的複雜度之上,這好像是被大家廣泛認可的公理。但為什麼受雜訊影響,任何一種模型的複雜度就隨之增加嘛?是什麼內在因素影響了模型的複雜度?它們之間就沒有任何聯繫可以用來解釋嘛?


謝邀。針對你的問題來挨個的細化、解答。

【1、為什麼受雜訊影響,任何一種模型的複雜度就隨之增加嘛?】

【2、是什麼內在因素影響了模型的複雜度?它們之間就沒有任何聯繫可以用來解釋嘛?】

首先咱們回答第1個問題,這個問題很簡單,可以看下面第三幅圖:

顯然,最右邊的一幅圖是【過擬合】的狀態,它產生的原因是在分類的過程當中有兩個樣本數據存在噪音,我們可以這樣去理解這兩個樣本,他們的大部分特徵都表示他們屬於類別O,但是有兩個樣本存在特徵偏差使得我們誤分類為了X,或者可以說他的某些特徵跟O一樣,但是我們細分、深究之後得出這兩個樣本的分類實際上是X。可以用二分類{男人,女人}的例子,然後X代表男人,O代表女人,樣本數據中出現了兩個人妖。

所以呢,為了能夠區分出某些個特徵不是特別明顯的樣本,我們需要樣本給我們提供更多的特徵。特徵的增加,導致了我們用f(x)模型去判別y的時候,多項式的項增加了,所以模型的複雜度增加了。其實衝上面的最右邊那副圖我們也可以看出,假設樣本只有x_{1},x_{2} 兩個屬性,我們要生成一個模型f(x)去區分類別{X,O},顯然有噪音影響的時候藍色的線,即模型f(x),更加的複雜。

ps:相應的第二幅圖中我們為了讓模型更簡單,有意識的去忽略了某些個特別離奇的樣本(即人妖),這就是容錯,第二幅圖就是正則化後的圖像。

所以第一個問題解答的很清楚了,噪音樣本的增加肯定會導致模型的複雜度提高,因為我們為了擬合所有的樣本需要的多項式的項數越多。

第二個問題,影響模型複雜度的內在因素可以在資訊理論當中找到答案,資訊理論的內容很多,我就不一一介紹了,挺有意思的一本資料,可以自己去看看書。用我自己的話去解釋一下好了:

首先,我們得了解信息熵的定義,即:

H(X)= - sum_{i=1}^{n}{p_{i}log(p_{i}) } ,其中p_{i}=p(X=x_{i}) ; i=1,2....n

這個公式怎麼去理解呢?咱們先拆開來看,累加和的單項為:p_{i}log(frac{1}{p_{i}} )

p_{i}自然為x=x_{i}出現的概率,假設x_{i}只是出現了單位1次,則樣本總的次數為frac{1}{p_{i}}次,這個時候,如果我需要去判斷出現的某個樣本是不是有:x=x_{i},則平均的比較次數是log(frac{1}{p_{i}} ),為什麼是log(frac{1}{p_{i}} ),而不是frac{1}{p_{i}} ,很簡單,根據信息的存儲方式而言最簡單的就是生成決策樹,既然是樹形結構,我們的比較次數頂多也就是log(總次數).所以p_{i}log(frac{1}{p_{i}} )可以簡單的理解為每一個樣本,決策其為i類別的時候,需要的決策次數的期望值,而總的決策次數期望就是累加,即得到H(x).

首先這只是我自己的理解方式,我自己看過兩遍《資訊理論》,挺有意思的一本書,感覺如果與機器學習、數學去結合的話,這麼理解熵會更好:熵就是這麼個東西,它越大,說明你這個模型的複雜度就越高,複雜度越高導致你決策的不確定性就更大。用《數學之美》裡面的一句話說就是:「left( M 
ight) 信息熵的大小指的的是了解一件事情所需要付出的信息量是多少,這件事的不確定性越大,要搞清它所需要的信息量也就越大,也就是它的信息熵越大。」 所以說,模型的複雜度本質上是取決於你的樣本、決策本身的,data talk anything。

ok,這就是我對第二個問題的理解。

ps:多說一句,發散一下思維,咱們看到熵的時候肯定很容易聯想到資料、教材當中講到過的決策樹構造演算法對吧?例如,ID3演算法就是直接使用【信息增益(相對熵)】來作為是否作為根節點的選擇條件,請聯繫一下上面我對熵的理解,回答個問題,該演算法為什麼選擇【信息增益(相對熵)】的分類節點來作為決策樹的根節點呢?

很顯然吧,因為熵越大不確定性越大,然後特徵就越活躍吧!(這句話很虛,我根據上面我自己理解的熵的意思,舉個例子,讓你來理解)

舉個例子,分類為:{C1:男人,C2:女人},給出「隨機均勻」樣本數據集(即:人的特徵集),樣本特徵可分為:{A1:有手/無手,A2:長發/短髮,A3:有喉結/無喉結},樣本列表如下:

D={

{有,長發,有,男人},

{有,短髮,有,男人},

{有,短髮,有,男人},

{有,長發,無,女人},

{有,長發,無,女人},

{有,短髮,無,女人},

}

根據信息增益的定義,首先數據集D的經驗熵為:H(D) = -p_{i}log(frac{1}{p_{i}} )-(1-p_{i})log(frac{1}{1-p_{i}} )=-2*0.5*log(0.5)=log(2)

然後咱們再看一下,每個條件熵:

H(D|A1) = sum_{i=1}^{2}{frac{|Di|}{|D|} } H(Di) = {frac{|D1|}{|D|} } H(D1) + {frac{|D2|}{|D|} } H(D2)

其中D1=D,D2=空集,其中D1為【有手】,D2為【無手】

同理可以求出,H(D|A2),H(D|A3)

有:H(D|A1) &> H(D|A2) &> H(D|A3)

根據咱們的熵的理解其實猜都可以猜出來,很顯然吧,A3特徵能將數據分離的特別對等,對等的時候-p_{i}log(frac{1}{p_{i}} )的累計和最大,從熵的角度出發,說明數據越活躍,不確定性越強吧。這個很容易理解的,比如上面,在確定特徵A1為【有手】的時候,我們壓根就沒法去確定是男是女,所以熵的值越大,我們了解一件事情所需要的信息就更多,說明這個數據越活躍吧。相反,當特徵A3確定的時候【有喉結】,完全可以確定是男的,這個時候H(D|有喉結)、H(D|無喉結)都是最小值等於0,熵的值最小,說明數據是完全確定的,我們不需要更多或者說很多的信息去了解一件事情。這就是上面《數學之美》中給熵定位的含義。

Ok,扯遠了,咱們再去看【信息增益】:g(D,A) = H(D) - H(D|A),【信息增益】的別名是【相對熵】。因為H(D|A)指代的是A確定的情況下,分類D的熵,即D數據分類的不確定性;所以在g(D,A)指代的是,A確定的情況下,D數據分類的確定性(相對於不確定性而言的)。所以g(D,A)即信息增益越大,代表A確定的情況下,數據分類的確定性更強,用《數學之美》的話理解就是:我們不需要更多的信息就可以相對確定判斷出數據的分類。所以這才是ID3演算法中用信息增益最大去衡量根節點選擇的由來。既然有了信息增益,什麼信息增益比也就是用比值去衡量的而已,主要是為了讓數據不至於相差太大,比值可以縮小為0~1,其實沒什麼卵用,實質意義不變,用信息增益比的ID3演算法叫做C4.5演算法。


噪音使得特徵失准,一般而言的雜訊相比常見的簡單模型要複雜,從而你如果不去除雜訊,至少需要同等複雜的模型才有可能得到觀感上較好的效果,而這往往是提高了複雜度的。


終於搞明白了


關於這個問題,嚴重同意樓上。另,要減少噪音的話可以 分箱;聚類;計算機和人工檢查結合;回歸


我想請問一下,這個log取的底數是e還是10呢?謝謝~


推薦閱讀:

研究生畢業做機器學習數據挖掘程序員發展前景如何?在這方面跟博士競爭差距會有多大?
知乎上有哪些關於大數據、推薦系統、機器學習之類的專欄?
文本分類中,CHI演算法、TFIDF演算法、TextRank演算法都應該對應哪個環節?如何選擇?
AlphaGo 的學習決策模型是否能用於股票市場的交易?

TAG:人工智慧 | 數據挖掘 | 機器學習 | 模式識別 |