深度學習的學習歷程

2021-09-12 12:28:21 字數 1983 閱讀 2790

我剛入門深度學習的時候,看了各種深度學習相關的資料,花書、cs231n、neural networks and deep learning、cs224d等等。

看來看去,感覺好像什麼都懂了,不就那些模組嗎,conv、lstm、pooling、fc、drop out等等,這些模組的公式早就能背得滾瓜爛熟。alexnet、vgg、googlenet、resnet等網路就像樂高一樣,把這些模組當積木一樣組合起來,好像也沒啥特別的。

又好像什麼都不懂,學會這些模組的公式就算會深度學習了嗎?整個深度學習的學習週期是怎樣的,我下一步應該幹啥?這些模組看起來平平無奇,為什麼組合在一起就能發揮這麼大威力?為什麼drop out能起到正則作用?l1正則和l2正則有什麼區別?cnn、rnn、dnn除了公式不一樣外到底有啥區別?誒,最後乙個fc層看起來跟多類別lr分類器好像啊,它們是一回事嗎?各種各樣的問題,不一而足,而每個問題我都不知道答案。

看的這些資料裡面要麼沒講到這些問題,要麼用比較數學的方式解釋,對初學者非常不友好。

我覺得初學者最缺的不是深度學習的資料,以及那一堆公式,而是乙個指路人,他能用通俗易懂的方式把深度學習在你面前掰開,又親手把它給捏回去,還能告訴你深度學習整個的學習週期是怎樣的,這樣就能讓你少走很多彎路,提高學習的效率。

如果現在可以穿越到我剛入門的時候,我會這樣跟當時的自己講:

深度學習的資料汗牛充棟,不過入門看其中一兩本經典的書就夠了,比如花書《deep learning》和stanford的cs231n。

入門不要貪多,不要貪圖一下就啥都能理解。入門一定要快,不要戀戰,比較難理解的知識點先跳過去。入門的目的是對深度學習的歷史、概貌有個大致了解,知道深度學習能幹什麼。

深度學習入門的確容易,就那麼幾個模組,conv、rnn、relu、pooling、fc等等,只要你懂線性代數、求導,然後看一兩本經典的書就入門了。

但是想學好實際上卻不那麼容易。我覺得學習深度學習分為三個階段。

一、看山是山

conv、rnn、relu、pooling、fc等等模組的公式背得滾瓜爛熟,定義爛熟於心,但是別人要問兩個為什麼,立馬就招架不住了。

這個階段主要是看教材、課程,打好基礎。

二、看山不是山

conv不就是模板匹配+sliding window嘛,跟用hog進行行人檢測的過程多類似呀,只不過conv裡的模板引數可以學;drop out不就是整合學習的思想嘛,它跟random forest多像啊;l1正則和l2正則是加在模型上的prior,比如l1正則假定了乙個拉普拉斯分布,l2正則假定了乙個高斯分布;fc不就是矩陣裡空間變換嘛;最後一層fc加softmax不就是多分類lr嘛,之前的部分可以看做乙個特徵提取器,然後用多分類lr對特徵進行分類。

cnn和rnn是加了assumption的dnn。cnn的assumption是資料在二維空間上存在著相關性,rnn的assumption是資料在一維空間上存在著相關性。心想「誒,一維空間是二維空間的特例,那cnn豈不是可以用來解決需要使用rnn的問題?我擦,大發現,看來可以搞一波事情了,谷歌了一下,發現facebook已經用cnn來做翻譯了,holy ****,晚了一步」。

這個階段主要是思考上個階段看的東西,將書本裡的知識內化為自己的知識。

三、看山還是山

慢慢意識到,沒有最好的模型,只有最合適的模型。之前聽到實驗室學弟問「深度學習這麼厲害,為啥還要學lr、***** bayes、svm這些low的模型」,我想這應該是很多初學者的疑問,我當初也有這樣的疑問。

尺有所長,寸有所短。每個模型都有它適用的範圍(其實也就是assumption),深度學習也不例外,超過了適用範圍,啥模型都得嗝屁。比如你的資料天然是線性可分的,那lr或者svm將會是最好的選擇,如果你選了高大上的深度學習,結果反而會適得其反。

面對乙個任務,分析這個任務的assumption,然後去你的**庫(也就是各種模型)裡尋找跟這個assumption匹配的**,知己知彼,方能百戰不殆。不要瞧不起svm這樣的匕首,也不要太高看深度學習這樣的屠龍刀。

這個階段就是要融會貫通,無招勝有招。大音希聲,大象無形,武功高強者,飛花摘葉俱可傷人。

深度學習發展歷程

一 神經元 1943年,心理學家mcculloch和數學家pitts參考了生物神經元的結構,發表了抽象的神經元模型mp。1 結構 神經元模型是乙個包含輸入,輸出與計算功能的模型。輸入可以模擬為神經元 的樹突,而輸出可以模擬為神經元的軸突,計算則可以模擬為細胞核。下圖是乙個典型的神經元模型 包含有3個...

深度學習project歷程(一)

作為乙個機器學習深度學習方面零基礎的人,選修的深度學習課程,老師全程在預設大家都有專案經驗的基礎上上課,還沒入門,就已綜述?沒辦法,只能從入門級別看起。先從把我繞暈的概念寫起。所以,深度學習為什麼這麼難!數學 計算機就是這麼難嗎!人工智慧 ai 是電腦科學的乙個分支,事實上,它不止包含電腦科學,還包...

機器學習的學習歷程

最近在跟stanford大學放在coursera上的機器學習課程,講師是著名的華人andrew ng.這是我見過為數不多的為期10個星期的課程,而且每個星期巨大的工作量也是罕見。機器學習大致分為兩類 supervised learning和unsupervised learning,我自行翻譯一下是...