神經網路一直以來都被人看做是乙個黑盒,我們很想知道它究竟學到了什麼,為什麼能達到那麼好的效果,接下來我們從乙個例子入手:
對於乙個函式y=2x,我們對其進行學習,很容易達到很好的效果,甚至我們只需要乙個輸入和乙個輸出,乙個權重。這個時候計算機學到的就是可優化引數w,這個數會非常接近2,這也是我們希望看到的;但是我們一般的結構中還有乙個偏置項,當然加入這個數,不會有很大影響,因為其會被學習的很接近0。
那麼對於乙個更加複雜的函式神經網路會學到什麼?
我們不會用神經網路學習乙個已知的函式,這樣做只能浪費資源,對於乙個未知函式我們像之前的方法做,首先我們不知道什麼樣的模型最適合它(不幸的是,我們至今也沒有能做到這樣的方法),所以我們只能用乙個很通用的神經網路模型來進行計算,當然這樣得到的結果效果也很好,那麼我們的神經網路學到了什麼呢?
還是之前的例子y=2x,我用很大的網路進行學習,這個時候我們就完全看不懂他學到什麼了。但是我們可以通過一些辦法來測試,如果我們採用n組資料進行訓練,那麼當我們使用的網路夠大,在這個例子中大於2的n次方個隱藏單元的2層全連線網路將會將所有情況記下來。舉個例子,給你十張告訴你這些都是蝴蝶,下次你看到很像的都會說是蝴蝶,但是這個情況的神經網路只會記得這十張上的東西是蝴蝶,而對於新來的東西,他就會不是很確定,即使在你的眼中他們很像。相關的實驗是,科學家做了乙個簡單的實驗,乙個卷積分類網路,他們對於其中乙個加入了隨機雜訊,肉眼看上去並沒有很大變化,但是神經網路就變現了不同分類情況。
那我們選擇更多的資料或者更小的模型呢?答案是我們可以得到好一點情況,但是還是不能克服之前實驗中的問題,神經網路也是很會「偷懶」的孩子,那我們怎麼處理這種情況呢,資料集增強是最好最實用的方法,當然也有對抗訓練的模式進行優化,這不是本文的重心,我們不做**。
從神經網路的意義上又是什麼樣的呢?
神經網路的目的是最小化誤差,他也會這樣去做,但是它也是乙個對映器,那麼他想的就是把訓練資料對映正確就行了,他認識的世界和我們的不同,資源允許,他就很簡單的給資料給乙個標籤,這樣也是最簡單也是效果最好的模型。他理解我們想法的方式只有我們如何定義,給什麼引數,怎樣優化,所以在處理問題前必要的分析必要且有用,最後如有錯誤,還望斧正。
神經網路學習(十五)神經網路學習到了什麼
系列部落格是博主學習神經網路中相關的筆記和一些個人理解,僅為作者記錄筆記之用,不免有很多細節不對之處。這一節,我們看看到底神經網路學習到了什麼。原本是要對卷積神經網路進行研究的,但是卷積神經網路的訓練太慢了,我們就以bp網路為例,簡單探尋一下吧。那麼,我們如何去探尋乙個神經元學習到了什麼呢?我們可以...
今日的學習學到了什麼
感覺對api不熟練,吧一些老書翻了出來,重新讀一遍 andriod studio 複寫系統方法快捷鍵ctrl o,哇,爽的一筆。乙個完整的生命週期,oncreate建立初始化,onstart由不可見變為可見,onresume準備好與使用者進行互動,此時在棧頂,onpause去啟動另外乙個活動時,與o...
到底什麼是深度學習?
什麼是學習?說到 深度學習 追根溯源,我們需要先知道什麼是 學習 著名學者赫伯特 西蒙教授 herbert simon,1975 年圖靈獎獲得者 1978 年諾貝爾經濟學 獎獲得者 曾對 學習 下過乙個定義 如果乙個系統,能夠通過執行某個過程,就此改進了它的效能,那麼這個過程就是學習 大師果然名不虛...