深度学习中独立同分布假设原因?是必要的吗?
獨立同分布的假設指的是對于input的features,要求對于不同的采樣是服從獨立同分布的。那么為什么要這個假設呢?
要明白這個假設的原因,我們需要先了解深度學習的基本原理。深度學習或者說神經網絡的基本原理就是用一群基函數去逼近真實的features和target之間的關系。在實變函數中,有一個定理是,我們可以用階梯函數去逼近任意的可測函數,這個定理給神經網絡提供了理論基礎,這也是為什么基函數往往是階梯函數的變形或者引申,比如sigmoid函數就形似階梯函數,不過其是可導的,這個對于梯度優化方法來說是相當必要的。
因為我們沒有對input和target之間的關系做任何的預設,所以只有訓練集內范圍內的input被訓練到的,一旦新的測試集的input或者拿來預測,且新的input值較大偏離了訓練集范圍,那么模型對這樣的input就無能為力了,因為并沒有訓練到。對于sigmoid基函數,對于訓練集范圍外的函數近似,兩端將是平緩的曲線,自然沒有預測能力。
這里要特地說明的是,上述的訓練集范圍外并不是說沒有訓練到的樣本。舉個具體的例子,假設只有一個feature,訓練集中feature的值為1 1.1 1.3 1.5 1.7 2.1 … ,該值的范圍最小值為1,最大值為3,且在1-3之間分布較為稠密,那么這個訓練集外指的是小于1或大于3的值,并不是說1.11111這種雖然不在訓練集內但是在范圍1-3之間的值,因為訓練集在1-3之間分布較為稠密,故這個范圍內盡管沒有被訓練到但是依然被近似了。
因此,為了不讓新的預測樣本常偏離訓練集范圍,就提出了獨立同分布假設,這個假設可以保證訓練集的樣本可以代表新的預測樣本,只要訓練集數據夠多,那么預測誤差就會夠小。這就是獨立同分布假設的作用。
那么這個假設是有必要的嗎?實際上這個假設是個過于強的假設,現實中很難存在獨立同分布的情況。因為我們的目的是為了不讓太多的新的預測樣本偏離訓練樣本,為了滿足這個目的,首先獨立這個假設其實是不必要的,我們可以將其弱化到弱平穩(對于時序而言),因為弱平穩就可以保證值不會太偏離,不像隨機游走那樣走到不知道哪里去。
當然那只是理論上,現實中還可以更加弱化,因為我們的目的是為了不讓新的預測input過多偏離訓練集,那么只要我們的訓練集足夠大,大到現實中跳出訓練集范圍外的新的input的概率很小(注意這個范圍的定義,上文有說明,不是指現實中每個樣本都訓練到),因為現實不同于理論,現實中input的值往往具有范圍,這樣我們就可以實現范圍內都訓練到即可,這樣我們對分布就不需要做出任何假設,在現實中也同樣具有很強的應用性,這實際上也是當前很多應用模型的真實情況。
所以獨立同分布在理論上可以弱化,而且在現實中,甚至可以不對input分布做任何的要求。
最后要強調的一點是,預測模型的一個最基本的隱含假設是input和target之間的關系是具有穩定性的,這樣我們才可以用歷史去預測未來,假如現實中因為某些原因導致這個關系發生了某些結構性的變化,那么我們就需要重新訓練模型。
總結
以上是生活随笔為你收集整理的深度学习中独立同分布假设原因?是必要的吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: APP产品设计流程图
- 下一篇: 关于人脸识别SDK的详解。包括【face