多專家模型(mixture of experts)

Mixtures of experts

本小節介紹多專家模型(the mixture of experts model),該模型的思想是訓練多個神經網絡(也就是多個專家),每個神經網絡(專家)被指定(specialize)應用於數據集的不同部分。這就是說,數據集可能有着多個不同的來源(different regimes,意思是說數據集中的數據的產生方式不同,這裏我翻譯成了“不同的來源”),不同來源提供的數據差距較大(但真實),因此我們爲每一個來源的數據一個指定的神經網絡來處理,而且模型還有一個managing neural net用來判斷一個輸入應該交給哪一個神經網絡來處理。

對於較小的數據集,該模型的表現可能不太好,但隨着數據集規模的增大,該模型的表現會有明顯的提高。更重要的是,單個的模型往往善於處理一部分數據,不擅長處理另外一部分數據(在這部分數據上犯錯多),而多專家系統則很好的解決了這個問題:系統中的每一個神經網絡,也就是每一個專家都會有一個擅長的數據區域,在這組區域上其要比其他專家表現得好。

多專家系統是單一全局模型或者多個局部模型的一個很好的折中,但我們現在面臨的一個很重要的問題就是如何將數據集分成不同的部分。下圖展示了劃分數據集的幾種方法:按照輸入到輸出的映射,可以將圖中數據分成兩組,一組對應那條紅色的拋物線,一組對應那條綠色的拋物線;僅按照輸入作一個聚類的話,就被圖中那條藍色直線分成了兩類。這裏劃分訓練數據集的目的在於能夠從每一個cluster中的輸入和輸出很好得得到一個局部模型。

下面我們來介紹使模型cooperate的損失函數,下圖使用了前一小節介紹的東西,這樣訓練得來的模型要比單獨訓練每個模型的性能更好。

下圖給出了averaging models爲什麼能夠使模型cooperation的原因。下圖右側是除模型i外所有模型對某一輸入的預測的平均,中間的t是目標輸出,左側yi是模型i的預測。當我們加上yi去計算一個新的平均值時,這個值肯定要更接近t,從而實現了一點點修正。所以,爲了使平均值越來越接近t,我們就需要yi左移。

但實際上,我們希望做的是讓yi越來越接近目標t,而這種做法就會使得模型specialization。下圖給出了一個使模型specialization的損失函數。這裏的損失是一個期望值,其中的pi是我們在處理該組輸入數據時會使用模型i的概率。

多專家系統使用了第二種損失函數的形式,下圖給出了示意圖。在多專家系統中有一個softmax gating network,對於一個給定的輸入,該網絡輸出每一個專家對該輸入的處理的可靠度。而系統最終的損失函數就是每個專家的輸出與目標的差值平方再乘上可靠度。

下圖給出了兩個偏導。前一個偏導得到的梯度表示一個專家應做的修正:如果該專家的可靠度(Pi)較小,那麼該梯度值也就很小,也就意味着該專家(神經網絡)只需要做一個很小的調整(只需要爲現在犯的這個錯誤負很小的責任);如果該專家的可靠度(pi)較大,那麼該梯度也就比較大,也就意味着該專家(神經網絡)需要做一個大的修正(需要爲現在犯的這個錯誤負很大的責任)。後一個偏導得來的梯度用來修正專家的可靠度:如果一個專家犯的錯比平均錯誤來的小,那我們就要增大其可靠度;如果一個專家犯的錯誤比平均錯誤來的大,那我們就應該降低其可靠度。

在這一小節的最後hinton給出了多專家系統的一個更好的損失函數。

轉自:http://www.w2bc.com/article/144212


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章