日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从逻辑回归到最大熵模型

發布時間:2024/7/5 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从逻辑回归到最大熵模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

在《邏輯回歸》與《sigmoid與softmax》中,小夕講解了邏輯回歸背后藏著的東西,這些東西雖然并不是工程中實際看起來的樣子,但是卻可以幫助我們很透徹的理解其他更復雜的模型,以免各個模型支離破碎。

?

本文中,小夕將帶領大家從另外一個角度看待邏輯回歸,從這個角度出發,又可以輕易的衍生出一系列如最大熵模型條件隨機場,甚至一般化的無向圖模型

?

?

還是回到邏輯回歸這個熟悉的假設函數上來:

?

?

根據《sigmoid到softmax》,我們很容易通過將sigmoid推廣到softmax來將邏輯回歸也推廣到多類分類器(此時叫softmax分類器)。這時的假設函數:

?

?

至此,有疑問的同學乖乖的回去看《sigmoid與softmax》哦~

?

而根據《邏輯回歸到受限玻爾茲曼機》中的做法,上面假設函數中的大分母就可以表示成一個配分函數Z,其作用就可以看作是用來歸一化的(通俗的講就是將不限制范圍的“親密度”值轉化為限制在0-1之間的值,即概率)。

?

好啦~重點開始了。既然假設函數h算的就是當前樣本屬于某個類別的概率,既然Z就是用來將輸出值轉換為概率值的,那么我們就不管Z了,反正信息量就聚焦在分子上。而當前樣本是用特征向量表示的,所以將分子畫出來后其實看起來跟神經網絡差不多:

?

?

這個圖即樣本用3個特征表示,通過參數w將這三個特征的值加權得到某類別的判別程度。然而這個圖,其實我們可以換一種角度來表示,比如我們假設每一維度的特征有兩個取值0和1,那么上圖可以表示成:

?

?

也就是說,我們可以將X的每一維度特征下的每個取值與某個類別配對,并同樣的用一個參數來描繪這個配對的緊密程度(認為這一對完全不可能成的話即讓這一組的參數為0唄),這樣的表示看起來好像等價于上一種表示方法,然而實際上我們也注意到了,模型的參數由3個變成了6個,這說明后一種表示方法更加靈活,理論上可以建模更多的信息。為什么這樣說呢?

?

試想一下,實際上,很多機器學習問題下,某一個特征下的每個取值并不是都有助于判斷其所屬類別的,比如我們的機器學習任務是判斷男女,樣本的一個特征選擇為身高,身高分為兩個值:1、180以下; 2、180以上。那么當該特征的值為2時,它可以很大程度上判斷出來類別為男(小心誤傷。。。),也就是說屬于強特征!然而當特征的值為1時,它對于分類其實是沒有太大作用的,180以下的男生跟女生都非常多,且比例相差不算大,也就是說這時身高又屬于弱特征了。

?

顯然,當我們用前一種傳統的邏輯回歸表示時,一旦身高的值為1,這時反而容易引入噪聲,更不利于分類了。但是用后一種表示的話,我們就可以讓“身高=180以下與男生”和“身高=180以下與女生”的參數為0,甚至直接將這兩個配對關系刪掉!理論上在很多場合下會有更佳的表現。

?

那么這個所謂的配對關系的正式名字叫什么呢?就叫特征函數。如前所述,它的粒度更小,直接將某個特征下的某個取值(當然這里是機器學習意義上的取值,因此值當然也可以代表180以下這種區間的形式)與某個類別封裝成一個特征函數,基于一系列的特征函數去做進一步的分類等工作。所以可以形式化的將特征函數表示為:

?

?

然后對于其他的情況,如果我們覺得沒什么用,就可以直接不定義特征函數啦~然后就可以去yy其他的強特征加進來了~當然,就算全加上也沒關系,只要訓練數據足夠足夠好的話,是能學出來無效的特征函數的特征的值對于每個類別的參數是幾乎相等的。

?

所以用特征函數表示的“邏輯回歸”的假設函數即:

?

當然啦,顯然這里對所有的特征函數及其參數求和的操作就等效于前面邏輯回歸的向量內積的操作(只是說操作等效,不是說值相等!)。

?

那么問題來了,假如我們喪心病狂的定義了1000個特征函數,但是實際上訓練集中只能統計出其中100個特征函數的參數情況,剩下900個怎么辦呢?更廣義的說,我們只能統計出100個特征函數的分布情況,其他的特征函數或者有用但是觀測不到,或者對于分類本來就沒作用所以我們根本沒去統計,那怎么辦呢?

?

試想一下,對于那些訓練集中沒有覆蓋的特征函數,就相當于是未知事件。為未知事件我們無法評估啊,又不能直接假設他們不發生(大部分情況是發生了,但是沒有觀測到而已),如果假設不發生的話,那很顯然會導致模型的泛化能力受大影響,即容易過擬合。那么最優的情況是什么呢?當然就是假設那些未知事件等概率分布啦~還是舉個栗子吧:

?

比如,我們定義了關于體重與性別分類任務,將體重分3檔:90斤以下,90-120,120以上。因此顯然一共有6個特征函數(認為無用的特征函數可以不統計,當做沒有觀察值去處理)。用x1-x6表示:

?


90以下

90-120

120以上

x1

x2

x3

x4

x5

x6

?

然而我們的訓練集中只有120斤以上的人群,并且統計出來120斤以上60%是男生,40%是女生。這時怎么辦呢?一個很簡單的想法是嘗試解一個等式與不等式混合的方程組:

?

于是有以下方程組:

?

?

然而真正解的話,我們會發現解并不是唯一的,還是難以衡量最優的情況。那怎么辦呢?

?

想一下,我們所知道的信息就是

1、120斤以上的男女比例是6比4;

2、其他事件盡可能等概率分布

3、所有事件的概率和為1

?

試想,我們從所有特征函數構成的整個概率分布出發的話,第一條其實就是一個對概率分布情況的約束條件,第2、3就是表示讓未知事件保持最無序的狀態(等概率分布的時候就是最無序的,《信息論基礎》與《決策樹》中都有講吶,不理解的回去翻看哦)。而衡量無序度的指標就是熵!所以,既有約束條件,有要盡可能保持最無序的狀態,那目標狀態不就是滿足約束條件的情況下,熵最大的狀態嘛。這里的熵當然指的是條件熵(已知x的情況下y的無序度),因此我們的訓練目標,也就是目標函數即:

?

?至此,假設函數和訓練的目標函數都有了,其中假設函數就是換湯不換藥,很自然的這個新模型的特色就在于它的目標函數啦~所以它的名字就叫“最大熵模型(ME)”。

?

最后,根據《一般化機器學習》,還缺少最優化算法。它的優化算法自然也很特殊,是用稱為通用迭代尺度法(GIS)的算法和改進的迭代尺度法(IIS)去訓練的,這對于最大熵模型可謂是量身定做。限于篇幅和該優化算法的影響范圍,小夕就不在這里講啦~有興趣的同學可以看下面這篇文章,講的很詳細:

?

http://blog.csdn.net/itplus/article/details/26550369

?

在應用上,最大熵可謂是自然語言處理領域最成功的判別式分類模型,幾乎滲透在各個可以等效成分類任務的自然語言處理任務如主題分類、語言模型等,可謂是深度學習之前的最有效方法之一。當然啦,如今在樣本量不足的情況下,最大熵模型依然是最值得首先嘗試的模型。只不過其工程實現難度很大,建議還是采用別人已經寫好的工具啦,如下:

?

OpenNLP : http://incubator.apache.org/opennlp/?

Malouf: http://tadm.sourceforge.net/?

Tsujii: http://www-tsujii.is.s.u-tokyo.ac.jp/~tsuruoka/maxent/?

總結

以上是生活随笔為你收集整理的从逻辑回归到最大熵模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。