學習日誌 深度學習 李巨集毅 深度學習的一些技巧

2021-10-16 21:10:51 字數 1985 閱讀 7068

過擬合的很重要乙個評判標準:在訓練集上結果足夠好

只有在訓練集很好 且 測試集不好的時候用

如果訓練集效果很差,dropout之後只會更差

這個是由梯度消失導致的,靠近輸入端的引數的梯度會很小,更新速度慢.

為什麼會這樣呢?可以從微分的定義角度來看這個問題:即自變數的微小改變對因變數的影響大小.

然後再結合sigmoid的特性,即實數域到(0,1)的對映.巨集觀來看是一種縮小,每sigmoid一次,就會縮小一次

那麼自變數對因變數的影響,也自然而然的縮小

為了避免上面那個sigmoid導致的問題,提出的新的啟用函式,用於中間層啟用

有個問題就是relu不可微,這個要怎麼解決?可以理解成只有在z=0的時候不可微,即大多數情況是可微分的,

我們可以看到,在maxout方法裡,沒有了固定的啟用函式,而是新增了額外的引數.

relu只是一組特定的引數

也就是說,這種方法會從所有(線形狀的)啟用函式中選擇最優的,而這個過程又是在訓練中完成的.

但是又有了經典問題,這個東西怎麼微分呢?

答案是把除了max路徑外的節點忽略掉,就變成了乙個可微的線性模型了.

而這也就意味著,根據不同的輸入,訓練的也是不同的子網路(感覺很高階呢)

然後在這裡也解決了上一堂課關於max pooling要怎麼訓練的問題.

很自然而然的一種想法,就是在還沒過擬合的時候停止訓練,就不會過擬合了.

但是有乙個問題,就是要在**停下來呢?這裡就引入了驗證集(和testing set很像,相當於模擬考)

正則這件事的意思就是:每次更新引數的時候,先讓原引數向零靠近.(權重衰減 weight decay)

就像我在上課的時候,每堂課其實都會把上一節課的內容忘記一點(但不多),這樣上著上著,到最後聽完課可能知識細節就不記得了,但是整體的知識框架會被學下來.這就防止了過擬合

(嗯,很合理的學習方法)

但是往往來說,正則化對於過擬合的效果不是很顯著

因為本質上就是不希望離零太遠,但是該擬合還是會擬合的.

(正則化這個方法出現在svn中,因為svn沒有訓練的過程,一次就出結果,所以才在損失函式上做文章.所以其實和早停止都是一種比較樸素的方法)

每一次在做update的時候,每個節點要做一次判定,有機率不參與此次update.

效果:使train的結果變差,test的結果變好.

在測試的時候,每個權重要乘以dropout率.

直覺上,確實會差兩倍(見下圖)

因為總是有一半的人不在,但結果卻總是一樣,那麼當大家都湊齊了,從期望上來說,結果確實會大兩倍

李巨集毅《深度學習》 深度學習簡介

深度學習分為三部分 定義一系列方程,計算方程的loss,然後選出最好的方程 深度學習神經網路類似於人類的大腦的神經網路,每個方程可以看做乙個神經元,不同神經元連線會產生不同結果,在這裡我們介紹一下fully connect feedforward network 每個神經元都與下一層全部的神經元連線...

學習日誌 深度學習 李巨集毅 網路壓縮

網路中有很多神經元的輸出總是0,或者有某些權重非常接近0,那麼這些划水的就可以被去掉了.修剪過程 評估 去除 再訓練 為什麼要修剪?而不是直接訓小的網路呢.1.大的網路的區域性最優比較少,容易收斂 2.大樂透假設 大的網路設定了乙個隨機權重 通過訓練和修剪之後,得到了小的網路.如果用乙個和該小網路相...

學習日誌 深度學習 李巨集毅 指標網路

需要解決的都是一些演算法問題,比如 在輸入點中選擇盡可能少的點,使這些點的連線能包住其他所有點 因為輸入和輸出都是序列,符合s2s的情景 但是有乙個問題 s2s在輸出的時候是在乙個範圍內做多道選擇題,也就是必須給出答案的範圍 當輸入的數量發生變化,超出訓練時的最大範圍之後,模型就失效了 拋棄了seq...