隨即指出了最關鍵的問題“但你構建的這兩個結構卻是等價的,這裡存在一個巨大的問題,如果兩者本身就是等價的,為什麼以複雜的形態訓練效果會好,而簡單的情況訓練效果則會差呢?”
“這不數學。”席爾瓦給孟繁岐的想法下了一個結論。
這裡麵從數學邏輯上來說,存在一個套娃一樣的悖論。
那就是有強烈意義的操作,兩個分支數學上就合並不了,至於沒用的操作最開始就在數學上等價,沒必要拆開。
“網絡結構的分支合並是沒有辦法越過非線性算子的,如果越過,則不能合並對吧。”戴密斯如此抽絲剝繭道。
網絡結構的重參數化,最終目的是要得出與合並之前一樣的運算結果,因此非線性的激活函數是沒法包含在殘差裡的,否則就沒法合並。
比如最常用的激活函數,re,其實說白了就是保留所有大於0的數字,小於0的數字歸零。
“這個非線性函數操作必須在分支合並之外,而不可以在分支合並之內。”
這個很好理解,假設一個原本的數字x是1,而他fx運算之後得出的結果是2。
那麼refx+x,和refx+x的結果是完全不同的。
前者為0+1,後者為re2+10。
小主,這個章節後麵還有哦,請點擊下一頁繼續後麵更精彩!
所有的可合並分支,必須不含有非線性激活算子,才能夠滿足結合律和分配率。
但問題又來了,如果構造出來的幾個分支都可以等價轉換為一個,那為什麼不從一開始就隻訓這一個分支呢?這不是快很多嗎?
最後的效果為什麼會不一樣呢?
這從直覺上和數學上都是不大合理的事情。
這不就相當於小學數學分開算嗎?
2x拆成x+x去訓練,這怎麼會有區彆呢?
“我們不能這麼去想,殘差鏈接的想法也沒有脫離線性變換,也隻是加了一個相同形狀的張量x而已呀。”孟繁岐自己也不知道具體的原理,這個世界上沒人能解釋得清楚。
“但是殘差鏈接在你的實際應用當中,是跨越了非線性激活函數的,你的公式看上去很簡單,但代碼裡卻很複雜。”戴密斯無情地指出了這個說法的問題所在。
“那理論上說,是不是3x3的卷積核一定好過1x1的卷積?隻要九宮格外麵的八個數字都是0,那麼3x3的卷積核其實就變成了一個1x1的卷積,因為外麵8個數字不參與運算。”
孟繁岐想了想,又換了一個例子來嘗試證明。
“呃好像確實是這個道理。”
就好像有某種物品,一定好過沒有,因為再不濟你也可以把它扔掉嘛,這樣你現在就也沒有這個東西,大家都一樣了。
“那為什麼我這裡結果顯示,同一個位置上麵,1x1+3x3的性能卻明顯好於3x3+3x3,也就是說一個強結構加一個弱結構好於兩個強結構相加,這難道不奇怪嗎?”
“而且,批歸一化雖然推理時是線性的,但訓練時其實還是非線性的,也就是說即便沒有專門的非線性函數,這種可重構的結構設計,多個分支內在訓練的時候仍舊是具備非線性能力的。”
理論很美好,但實驗結果很骨感。
即便席爾瓦和戴密斯的數學再紮實,也終究沒法解釋孟繁岐獲得了提升的實驗結果。
兩個人能做的也隻有喃喃自語同一句話。
這特麼根本不數學啊!
喜歡重生之ai教父請大家收藏101novel.com重生之ai教父101novel.com更新速度全網最快。