-
1 # 宇宙中微小的塵埃
-
2 # 吾皇巴扎黑
關於深度學習,網上的資料很多,不過貌似大部分都不太適合初學者。 這裡有幾個原因: 1.深度學習確實需要一定的數學基礎。如果不用深入淺出地方法講,有些讀者就會有畏難的情緒,因而容易過早地放棄。 2.中國人或美國人寫的書籍或文章,普遍比較難一些。我不太清楚為什麼,不過確實是這樣子的。
深度學習,確實需要一定的數學基礎,但真的那麼難麼?這個,還真沒有。不信?聽我來給你侃侃。看完,你也會覺得沒那麼難了。
本文是針對初學者,高手可以無視,有不對的地方,還請多多批評指正。
這裡,先推薦一篇非常不錯的文章:《1天搞懂深度學習》,300多頁的ppt,臺灣李宏毅教授寫的,非常棒。不誇張地說,是我看過最系統,也最通俗易懂的,關於深度學習的文章。
我們先來談談自學深度學習最大的問題。
現在搞深度學習的,十之八九並不是“科班出身”。
這就導致:如果你想要跨行成為一名深度學習工程師,從頭到尾的一切,都基本靠自學。但是,開發者很快就會發現自己遇到了第一個障礙:
絕大多數的學習資源以理論研究為導向,輕工程實踐。
其實這也難怪。這幾年,深度學習是火了,但大牛們都來自學界,例子不勝列舉:比如谷歌雲首席科學家李飛飛、主管 FAIR 的 Yann LeCun、在谷歌大腦的 Ian Goodfellow,以及在過去三年裡任百度首席科學家的吳恩達。大牛出身高校,他們編寫的教材、錄製的慕課也是,不可避免帶有很強的學術屬性,總給人一種“聽大學老師講課”的感覺(本來就是)。即便有意避免研究導向,甚至弱化數學理論部分(比如吳恩達老師在 Coursera 上的“Machine Learning”),仍然離產業界的需求相去甚遠。
用一句話來概括:現有的深度學習資源,對學生群體很友好,但對在職工程師並不如此。許多人花大半年時間(有毅力的會更久)研讀了幾本深度學習教材,發現實際操作時仍然不知道該怎麼實現一個具體的東西。
Jason Brownlee 的故事
我們的老熟人——澳大利亞的機器學習(ML)專家 Jason Brownlee,就常用自己的“慘痛經歷”勸誡深度學習學習者切勿迷信學校裡的東西。
他本是一名普通的軟體工程師,對 ML 感興趣之後,花幾百澳刀買了幾本教材自學,但效果不是很好,以為需要“科班”學習經歷才能讀懂那些學術語言。一咬牙辭職,從 AI 專業的研究生讀到博士。畢業了,卻發現“搞” ML(而不是研究 ML),其實在 IT 技能的基礎上,一步步邊實踐邊摸索就夠了,饒了一大圈回來,還是重拾程式猿的老本行,成為一名幾年前的自己其實就能勝任的 ML 工程師。
有感於自己繞的彎路,Jason Brownlee 建立了一個 ML 學習網站 Machine Learning Mastery,把自己的學習心得分享給大家。他寫的教程和書,首重開發者最關心的具體模型的實現,對其背後的理論一帶而過,結果大受工程師的歡迎。
如今, “Machine Learning Mastery” 已成為業界最知名的 ML 教育品牌之一。
這直接反映出:工程實踐導向的深度學習、ML 學習資源有多匱乏。
面向開發者的培訓
有句話怎麼說來著——“需求產生供給”。巨大的市場缺口,吸引著越來越多產業界的 ML 工程師投身教育培訓。比如說,除了 Machine Learning Mastery,國外的英偉達 DLI 深度學習學院(詳情見雷鋒網此前報道“你聽說過英偉達深度學習學院 DLI 嗎?”)、fast.ai,國內雷鋒網創立的 mooc.ai,都是以工程實踐為導向、面向開發者的深度學習培訓專案。這些培訓,彌補了大多數深度學習慕課偏重理論講解、缺乏程式碼實現的短板,可說是互為表裡。
但由於深度學習開發者培訓需要經驗豐富的工程師現場指導如何設定環境、如何操作開發工具,以及如何 troubleshooting,慕課的萬人線上、線上學習形式難以滿足要求。高品質的培訓,往往線上下進行,這大幅限制了參與人數,導致資源依舊稀缺。
鑑於此,AI 慕課學院(mooc.ai)聯合 fast.ai 中文社群,邀請了四名中外深度學習工程師,6 月 17 -18 日在北京太庫(Techcode)進行“12小時零基礎入門深度學習”線下培訓,目標是提供業內對新手最友好的深度學習入門指導,降低學習者跨行從事深度學習開發的門檻。開課前夕,幾位指導老師同雷鋒網進行了交流——為什麼在他們眼中,深度學習可以“零基礎入門”。
零基礎入門?
雷鋒網對指導老師中的三位:楊傑、Max 和趙伊丹進行了採訪。
其中,楊傑老師曾在南方航空動力機械有限公司從事多年的生產線設計,轉型深度學習後進行演算法金融專案的研發;Max 本是金融學博士,在“深度學習”和“無人駕駛”領域有豐富教學經驗;趙伊丹老師在致力於深度學習之前,從事校園 VC 的深度學習與無人駕駛專案。
為什麼實戰培訓如此重要?
楊傑:現在的學習資源太傾向數學理論。比如 Ian Goodfellow、Yoshua Bengio、Aaron Courville 編寫的教科書《Deep Learning》,初學者看了也不知道該怎麼做。深度學習的理論研究已經進入到很深的層次,對於想要真正做好、精通的人,我認為這本書是必讀的,但不適合初學者。
Max(經雷鋒網編譯,下同):fast.ai 的創始人 Jeremy Howard 喜歡舉這麼個例子:對於足球運動員,不需要學習物體的物理運動原理,只需要喜歡這項運動,然後去踢,不斷在練習中提高技藝。對於開發者,在一開始上手時,只需要知道怎麼做,而不需要知道為什麼。
楊傑:(補充道) 數學理論可以上手後再慢慢學。一開始就往裡鑽容易產生畏難情緒, “覺得不是他的菜”,因而放棄。可以先用起來,感興趣之後慢慢再研究理論。
新手入門深度學習的主要障礙是什麼?
楊傑:心理障礙。
Max :知識點太多,需要理解的術語、概念太多。因此在一開始深度學習看上去很難。但真正上手之後,會發現其實沒有想象中那麼難。
趙伊丹:環境配置(楊傑和 Max 點頭贊同)。這一關會把很多初學者嚇跑——很多人靠自己很難把第一步的開發環境設定起來。這裡需要的東西很多也很麻煩,容易遇到各種系統問題。因此,“12小時零基礎入門深度學習”會把環境調好讓大家可以直接上手。
新手最需要掌握的技能是什麼?
Max :Python 和 numpy。
楊傑:什麼都不需要,一張白紙最好。什麼都沒學過更容易入門,不然容易和以前學到的程式設計知識混淆。雖然深度學習開發必須要用 Python,但一開始不會 Python 用不著介意。相比主流程式語言,比如 C++,Python 上手更簡單,對普通人更友好。
趙伊丹:基礎程式設計技巧,以及計算機命令列。雖然這些可以慢慢學,但事先就會的話能省些功夫。
推薦哪些輔助開發工具、框架?
三位老師:Keras+TensorFlow,後者已經成為行業標準,前者是後者的 API。
conda 和 Anaconda。
另外,由於硬體基本都是用 GPU,需要 CUDA。
對於各個深度學習模型,你們認為新手應從哪一個上手?
Max:CNN。影象處理問題一般基於 CNN,它也很適合應用於分類問題。簡單來說就是:它最基礎,應用頻繁,很多更復雜的模型都是基於 CNN,非常適合入門。
三年前,世界屈指可數的頂級研究機構才能實現的一些演算法,現在任何一個開發者都可以利用各種開發工具藉助 CNN 實現。
深度學習入門課程,比如”12 小時零基礎入門深度學習“,能為學習者帶來的最大的提升在於哪個方面?
楊傑:信心——明白“I can do it”。
趙伊丹:指導老師手把手帶著嘗試過了,在實戰中就知道怎麼去做、朝什麼方向去做。
你們當初入門深度學習的過程中都遇到了哪些困難,又是如何解決的?
Max:搭建環境是個很大的坎兒。另外,當時我沒有 GPU,訓練速度特別慢。後來就想辦法減少資料加快速度。
我覺得新手可以多看看 “help”幫助文件。再有就是 Google 和百度——從我的經驗來看,99%的問題都能搜尋解決。絕大多數問題別人已經遇到過,並且已經解決過了,只需要多點耐心找出來。
趙伊丹:缺乏實踐專案的磨鍊, 理論學得太多,但不知道怎麼用。舉個例子,有很多深度學習模型的最佳化方法,但只憑理論是無法判斷出應該用哪個的,也不知道怎麼去調。這裡就需要實踐經驗並結合實際專案來做選擇。
有許多原本從事其他行業的程式設計師、甚至非程式設計師,想要跨行做深度學習,對他們的建議是?
楊傑:(笑)我們以前就是跨行的。這次的培訓也是針對這一點,不需要深厚基礎,不需要對深度學習數學理論有多深的理解。程式設計師也未必優勢很大,他們上手新程式語言更容易,僅此而已。
Fast.ai 的座右銘是”make deep learning uncool again“,即“讓深度學習不再高冷”。你們的理解是?
Max:深度學習不應該是隻有科學家才能做的事情。各行各業的技術人員,都應該有能力把深度學習技術整合進他們的工程應用中,把產品做得更好。現在,只有谷歌等少數網際網路巨頭才稱得上是大範圍地應用深度學習。但在不遠的將來,無數公司的服務、產品都會有這個需要。這其中的關鍵,就是讓深度學習不侷限於內行、專家,讓任何專業背景的技術人員藉助工具都能掌握。而且,它本來就不難學。
趙伊丹:(補充道)現在還存在大片市場空白。在許多尚未涉及的領域,一旦應用深度學習就很容易產生很大的效果。
-
3 # 使用者1958754376653
入門的話只要你是有一定的Python方面的語言基礎就可以了,然後經過後期的系統學習,好好學習,未來的發展空間還是很大的
-
4 # 歲月緩緩歸
對於深度學習的學習
還真得需要一點程式設計基礎。
但是沒有基礎的小夥伴也不用擔心。
U就業聯合中科院專家推出的深度學習課程有贈送Python第一階段基礎課程
回覆列表
深度學習是機器學習的分支,是一種以人工神經網路為架構對資料進行表徵學習的演算法,嗯,至今已有數種深度學習框架這種要求。應用在計算機視覺語音識別,自然語言處理,音訊識別於生物資訊等領域獲得了極好的效果。所以說他還是有一定的入門要求的,可能要求你具備一定的基礎的資訊儲備才可以進進入學習。