如何系統型的學習深度學習?
不知小伙伴們遇到沒遇到這樣的情況,對于想學習一個科目,總想把全部的資料收集起來,然后通過各種渠道了解總共需要學習哪些知識點,最后做一個看著非常努力而又詳細的路線圖時間表。 好似我們知道學習什么,資料也有了,路線圖也有了,我們就真的會系統的學習,成為明日大牛了。 小編有過這種經歷,如果是自己想學習的科目,而無任何考試或其他外在壓力,按照這種路線,基本是整一次失敗一次。我把這種經歷最后歸結為起步階段的“完美主義”。 經歷了幾次,小編發現學習真的是學才行,如果你真的想系統的學習某一個領域知識,建議不要總是在起步階段打轉,行動起來,不管怎樣資料沒有收集完的時候,路線圖時間表沒有一次就完美的情況,做個大致規劃,開始了再說。 最后,小編摘抄了幾個知乎高贊回答,都是小伙伴們自身實踐的經驗,大家可以看看。
01
作者:機器學習入坑者
https://www.zhihu.com/question/305745486/answer/557055667
一開始,我每天固定兩個小時學Python,兩個小時看吳大佬的有題目的視頻教程,兩個小時自己實現課后習題。這期間感覺自己進步很大,但是總覺得哪里出了問題,卻又說不出來。
兩個多月以后,課程完結,開始學習tensorflow,看書敲代碼,出現問題就百度。雖然自己能實現類似resnet這種基礎網絡,但是自我感覺沒有之前那么好了,好像越學越糊涂。
再后來,我開始看論文了,找那些有開源實現的論文,看一篇論文,學習一篇代碼。在這樣穩扎穩打的步伐下,我感覺自己又進入了快速上升期。
既然能搞懂別人的論文了,能不能自己來一篇?于是我開始去怎么提出新東西,進而意識到我應該先對自己領域現存方法有所了解,知道它們的優點和不足。按照這種想法,我開始有意識的泛讀自己領域的頂會論文,了解最流行的方法。我意識到,最簡單的創新實際上就是把別的領域的東西搬過來用,所以我從nlp找了點思想用到對抗上(此時我并不知道已經有人這么做了,畢竟自己掌握的文獻還不夠)。不管怎么說,我算是有自己的成果了。
這就足夠了嗎?不是的。我越發感覺到自己的不足,深度學習僅僅在cv領域就有各個子分支,每個分支就算整個研究生生涯都不一定能吃透。
更要命的是,我發現我一直都是在寫算法,從沒考慮過如何部署模型,也就是整天紙上談兵。所以我最近開始學網絡知識,學習什么是客戶機服務器模式,學習flask,想把自己的模型部署到web服務器上。
總得來說,我沒有采納我當初所看見的建議,那些建議有的列出來一系列書單,有的列出來一系列課程,對我個人來說是不太可行的計劃我一般都不去做。
我覺得應該從自己想解決的問題入手,舊問題的解決往往伴隨新問題的誕生。我最開始只是想知道啥玩意是反向傳播,后來卻自己搞出一篇論文,是那些困擾我的問題激勵著我進一步研究,每次解決問題都會有那種喜悅的心理,這是我進步的源泉。
02
作者:Jason金
https://www.zhihu.com/question/305745486/answer/798114557
系統性我不太了解,但是我可以講講我的學習經歷,我主要分為四個階段:
1.初學階段
啃吳恩達的機器學習的課程,然后看的是黃海廣博士等人翻譯的課程和筆記,這一階段主要了解相關的概念,一定要有一個整體的結構,每個名字大概是什么意思,有什么用。
然后就是代碼方面的事情,我沒有馬上跟上代碼,而是去學習了一下一些以后會用到的基礎的python庫,比如pandas,numpy,matplotlib等
2.初探代碼階段
當時因為一些偶然因素要做深度學習方面的東西,然后去kaggle上下載了一段完整的訓練代碼。這里有一些了解的初學者可能會問到底選什么深度學習平臺好,tensorflow?pytorch?keras?每個平臺之間并沒有絕對的優勢,主要還是看自己的具體情況。
我的方向是和醫學圖像相關的東西,所以選擇了keras,因為他上手快,可以快速構建出一個模型,但是靈活性要稍微差一些;pytorch是另一個熱門選擇,我的很多師兄師姐都是用的pytorch,他們很多事做的和人臉相關的方向;tensorflow不太建議初學者,相比之下前期學習花銷大且代碼量也比較多。
回到正題,上面說的那段完整的訓練代碼,我進行了一次精讀,理解他每個步驟都在干些什么,然后用到了哪些有關的庫,然后對訓練過程有了一個整體了解,還有就是熟悉這個框架的一些函數。
3.“照葫蘆畫瓢”階段(最艱難但進步最快)
這個階段,就如小標題所說的一樣,跟著別人的代碼一步一步來,然后化為己用。
雖然對那段代碼進行了精讀,但是直接拿來自己用還是比較牽強,各個專業名詞越來越混,也不知道要如何下手。沒辦法,只能繼續鞏固基礎,我就去把keras的官方文檔給琢磨了一遍,然后照著它給的最簡單的分類網絡實現了一遍,之中有很多坎坷和挫折,但是堅持下來就是勝利。然后就是將自己的數據集放入到模型中了,結果根本不好,但起碼能跑起來。
接下來就是調參的過程,不會或者疑惑的地方就百度谷歌還有問師兄師姐,自己感受一遍和只看書是完全不一樣的。
4.進階階段
到了這個階段,已經對網絡結構和訓練流程有了一定認知了,接下里就是要訓練出一個表現不錯的模型了。又要回到專業名詞中去,去看別人是怎么優化的,提出了什么網絡結構,有什么創新的思路,相關的paper當然是要讀的,然后就是嘗試去優化自己的模型。
接下來的階段我也還在摸索,但是最重要的事就是要不斷學習,不斷去理解深度學習,把它化作自己能用的東西。
03
作者:瘋貓子
https://www.zhihu.com/question/305745486/answer/557090589
分享一下我的學習路徑。
首先,基本的數學素養是必須具備的,這個自不必細說。
正是開始學習前,先了解神經網絡的實現原理,在動手寫一遍代碼,是自己動手實現神經網絡的算法。
有了這個基礎,再開始學習深度神經網絡的原理及用代碼擼一遍。
開始逐步加深難度,學習激活函數并加入神經網絡。學習反向傳播,學習損失函數,學習梯度下降。動手擼一遍代碼。
自此,基本原理搞明白之后,就可以開始熟悉主流框架,包括tensorflow keras等,能夠閱讀代碼之后,開始研究各種成熟網絡的結構和調參。
主要包括基本的cnn,RNN,GAN。這個過程不是孤立的學習,需要看論文,做一些小項目來實踐,所以過程較長。
當然,人生苦短,這個過程,你還需要弄塊好顯卡來給深度神經網絡加速。
這個過程,我大概每天平均2-3小時的學習,也差不多用了9個月,所以,祝好,祝學習快樂。
04
作者:yuquanle
https://www.zhihu.com/question/305745486/answer/558653688
個人感覺有了些基礎常識之后就開始在實踐中學習吧,系統的學里面涉及那么多知識,學一遍怕的黃花菜都涼了~遇到不懂的概念利用百度谷歌,然后理解學習這個概念,若是概念難懂,就多看不同的人對這些概念的理解,有的時候有些人能深入淺出的講解一些很不錯的資料,我覺得這種有目的性的實踐學習方式學來的東西更加印象深刻~
這樣即鍛煉了個人能力(獨立查找資料文獻也是能力),又能達成某些目的~這樣過了一段時間之后,你好像又懂很多東西了,但是好像又有很多方面不了解,其實這就是你在某個點有點深度了,但是廣度還不夠。如果此時有大把閑置的時間,就可以去刷刷那些不錯的系統性課程,刷課的時候會發現很多概念理解起來輕松多了,或者說似曾相識(理解的知識點又得到了復習并再次確認自己的理解了的知識點和這些老師講的是否一致)。
每天進步一丟丟
使用邏輯回歸處理多標簽的分類問題 使用哪一種方法來處理多分類問題取決于具體問題的定義。如果一個樣本只對應于一個標簽,我們可以假設每個樣本屬于不同標簽的概率服從于幾何分布,使用多項邏輯回歸(Softmax Regression)來進行分類。(多項邏輯回歸實際上是二分類邏輯回歸在多標簽分類下的一種拓展。) 當存在樣本可能屬于多個標簽的情況時,我們可以訓練k個二分類的邏輯回歸分類器。第i個分類器用以區分每個樣本是否可以歸為第i類,訓練該分類器時,需要把標簽重新整理為“第i類標簽”與“非第i類標簽”兩類。通過這樣的辦法,我們就解決了每個樣本可能擁有多個標簽的情況,
-
Web
+關注
關注
2文章
1266瀏覽量
69572 -
python
+關注
關注
56文章
4801瀏覽量
84867 -
深度學習
+關注
關注
73文章
5510瀏覽量
121345
原文標題:如何系統地學習深度學習(從初級到高級,初學者必看)
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論