深度學習(摸不清頭腦的可以看一下)

二郎本身不是做深度學習的,但是,學術界受深度學習的影響挺大的,嚴重衝擊着傳統研究領域,尤其是圖像。。。。於是,二郎想看看深度學習是咋回事

二郎做過深度學習科普式講解,PPT100多頁,但是直到現在,二郎還是覺得,一提起深度學習,還是沒有概念。

之前一直聽師兄和同事在談,調參,調參,調參,參數好了,結果好了,就可以發論文了。。。找個框架,改改,就能發論文。水論文。。二郎沒去做,二郎專心做基礎研究

近期,在做一個專利,關於深度學習的,寫着寫着有所感悟,所以分享給大家

深度學習並不神奇,只是設計了一個方程,這個方程很大,讓這個方程可以做到:咱們給一個x,它能輸出一個y。整體就是這麼一個過程。。。。
爲什麼會有很難的感覺???
大家都難,然而,學者們大部分是半路出家,一知半解就開始拿別人的代碼來跑了。所以,看不懂也沒事,會用就行(就像手機,你肯定不會造手機,但是你會用。ps也是,程序肯定不是你編的,會用就行。)
這裏還吐槽一下,那些教0基礎深度學習的,很多都往數學上鑽,這樣很容易讓很多人無功而返的。。。。。

1.設計網絡
大牛設計網絡當然是一步一步規劃好了,普通研究人員是拿別人設計好的網絡過來和別的網絡組合一下,跑出好結果,就說自己的研究是好的。(所以,那些能發到頂會的論文,雖然看起來解決了個小問題,但是他們大部分還是對設計網絡有貢獻,設計了新的網絡結構,其他人只是拿現有的過來跑一下。)因此,你可能說看起來網絡好難,那麼多層,不知咋辦………………大家都不知咋辦,只是拿來用,覺得好用,改,也是小改,多改一點就可以發論文了。所以,不用糾結,看不懂網絡,因爲有些網絡就是那樣設計的,外行人直接看懂,那怎麼體現設計人的水平。

2.優化網絡
這個可以成爲一個行業了,確實需要懂的知識比較多。高明的研究人員會知道哪部分影響哪部分,有計劃地修改網絡結構和訓練方法。普通的研究人員只是看結果,改了哪裏,結果好了,哪裏就需要改。大部分人是,看網上和其他研究說,改哪裏好,就改哪裏,然後改好網絡了,再想着怎麼說明爲什麼這麼改好,說明道理,然後發論文。優化網絡(讓訓練速度更快,結果更好,所需數據量更少)

3.測試集和訓練集
其實都是一堆圖片(二郎是研究CV的),一部分用來訓練網絡,一部分用來測試訓練後的網絡是否好用。

4.訓練網絡
網絡設計好後有很多參數和權重是未知的,需要將數據代入,然後獲得未知量,和解方程類似。如何獲得的????一般情況下是有圖像對,原圖和結果圖,把原圖放入網絡,得到處理結果,結果和結果圖對比,發現誤差,然後調節未知量。經過多次調節,得到最優的未知量組合(其實做不到最優,需要考慮時間成本)

5.基於物理模型的網絡??
這個噱頭不錯,很多專家也說了,這是一個研究方向。讓網絡自動獲得原來需要估計的未知量,例如去霧的DCP算法中,之前需要估計的未知量是深度信息和天空光,現在,直接用網絡獲得深度信息和天空光,然後將獲得的深度信息和天空光代入大氣成像模型中,獲得復原圖像。
那麼如何訓練呢?
估計深度信息的網絡,提前已經有了數據對,原圖和深度圖;估計天空光的,也是人爲標定後(這個可以用多種方法)。

6.損失函數
這個可能大家都摸不着頭腦,咋設置,看着數學推理好高級………………
其實核心在於,直接拿來用,是的,大部分人都是直接拿來用。高級點的是自己設計一個,而且能講清道理,這個,可以發SCI了…………

7.搭環境
很多搞深度學習的上來的工作就是搭環境,因爲很多大牛公佈的代碼需要特定的環境才能跑(這個是因爲學者大部分不想看裏面詳細的代碼,不想改代碼適應環境,只想拿來用)。環境:需要的tensorflow版本(裏面的模塊版本也很多,很多都不是版本兼容的,二郎曾經懷疑過,有些代碼環境很難搭是因爲發佈代碼的人不太想讓你輕易地就能用它)。
還有另一個環境就是服務器,很多代碼是用服務器跑的,那個跑的比較快。
服務器是啥???(比較厲害的電腦,其實就是電腦,運行速度很快罷了。)

說了這麼多,二郎也吐槽了好多,向真心做科研的大佬們致敬,向只是想發SCI的人們投去xx的目光(OOOOO)。

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