只用 4 個月打造機器學習必備技能,這位工程師成功翻轉職涯人生

原標題:My 3 Month Deep Learning Career Pivot——A self-study guide to becoming a deep learning non-experthtml

https://medium.com/towards-data-science/my-3-month-deep-learning-career-pivot-af94cd8d6a31
譯文:https://buzzorange.com/techorange/2017/10/01/4-months-of-machine-and-deep-learning/
相似的:https://mp.weixin.qq.com/s/WZcCH7LGGmalR51yOxa6bw前端

這其實就是線性代數,不是什麼高深的學問。node

我作了什麼?怎麼作到的?python

這裏,我就再也不介紹原先的學習計劃以及隨後在 LinkedIn 上的跟進討論了。若是你不怕冗繁的細節,能夠從新去看原文:git

學習計劃:
https://medium.com/towards-data-science/my-3-month-deep-learning-career-pivot-af94cd8d6a31github

跟進討論:
https://www.linkedin.com/pulse/self-study-guide-becoming-deep-learning-non-expert-jason-carter面試

長話短說:我學完了,如今開始找工做 算法

 

想立刻知道接下來的事情嗎?且聽我說。我並無徹底照着一開始的計劃,循序漸進地學習,而更像是 一段長達 4 個月的、擠滿額外內容的學習經歷。 如今,我立刻就要完成這段職業生涯的轉型經歷了,因此想和大家分享一下個人體會。編程

先分享一下我最終版的學習日程,而後再跟您們討論這中間的變更以及我這樣作的緣由,最後是給初學者的一些建議。網絡

順便說一句,文章開篇這句「這其實就是線性代數,不是什麼高深學問」,意味的是機器學習或深度學習並不簡單。

個人學習日程

這段時間,我一直全身心的投入在學習上,天天學習 10-14 小時。 我天天都努力完成時間安排,而且沒有放下健身房和午飯的休息時間。大部分時候均可以正常完成, 有時候也會熬到凌晨 1 點或 2 點再睡覺,但也有幾天什麼事情也沒完成。 有時候是由於個人懶惰(夏天實在容易變懶),其餘時候是由於太累了。

這裏還要提一下我學這些的背景—教育基礎,我有一個軟件工程學位和 Udacity 數據分析師(Nanodegree)的認證。除了工做經驗,仍是一名開發者和分析師。

第一個月

1. 深度學習-第 1 部分(開始): https://medium.com/towards-data-science/fast-ai-the-toc-of-practical-deep-learning-part-1-70c89187d654

2. 嘗試 Kaggle 競賽:  https://www.kaggle.com/

3. 分享經驗:中級

4. 參加本地研討會(通常 AI 討論)

第二個月

1. 深度學習 – 第 1 部分(完成)

2. 從頭開始構建深度學習框架

3. MNIST 對抗挑戰(使用 500px 面試項目進行實踐)

4. 數據科學家與 Python,職業培訓營 DataCamp(開始)

5. 分享經驗:中級

6. 參加本地研討會(AI 講座和小組討論)

第三個月

1. 深度學習- 第 2 部分(開始+暫停)

2. 數據科學家與 Python,職業培訓營 DataCamp(完成)

3. 吳恩達的機器學習:Coursera(已完成)

4. 分享經驗:中級

5. 更多本地研討會(DeepLearning:TensorFlow 和 Kubernetes)

第四個月

1. 深度學習,第 2 部分(開始)

2. Capstone:構建和部署端到端深度學習產品(開始)

3. 分享經驗:中級

雜項

1. 就像一個筆記,每一個課程或程序都有不少閱讀材料(例如,部落格文章、史丹佛大學在線 CNN 課程,學術論文等),和往常同樣,終究要花功夫學習額外的知識。我雖然作了大量的「額外」閱讀,但確定有一些地方跳了過去或者沒有興趣繼續瞭解下去。

2. 我目前已經學習到第四個月(到 7 月中旬其實是 3.5 個月,我提早了),可是打算不久以後就開始找工做,不會一整個月都拿來學習。

細節

我對原來的時間表作了 3 個比較大的改動:

1. 數據科學家與 Python(DataCamp)

2. 吳恩達的機器學習(Coursera)

3. Capstone 項目(端到端深刻學習項目)

在開始深度學習的第 2 部分以後,我決定參加 Datacamp 舉辦的數據科學家與 Python 培訓營。 要多從實踐的角度思考所學的內容,由於我目前的角色並不能簡單的劃分紅單純的深度學習或單純的經典機器學習。因此儘管 動手實踐深度學習的經歷很棒 ,但若是在接受面試時,我不瞭解 KNN 和 k-means 算法之間的區別,就真的會很尷尬。

另外,儘管 Fast AI program 是用 Python 教你課程內容 ,但它並不教授 Python,而 DataCamp 的職業生涯訓練營則有許多 Python 在數據分析和操做方面的課程。

因爲我以前已經完成了 Udacity 的數據分析課程, 因此 DataCamp 的課程對我來講,更多的像是複習(固然也有一些新的提示和技巧),但這正是我須要的。

總結起來就是:

1. DataCamp 課程適合進行深刻的學習,且涵蓋範圍普遍。它這種讓你一行一行實踐 Python 代碼的方式很是棒!

2. Udacity 課程則爲每一個機器學習算法提供了很是多的細節,方便你瞭解如何使用它們並構建優秀的大型項目。

史丹佛大學機器學習課程 ,由吳恩達在 Coursera 上教授的多是網絡上最有名的機器學習課程。這大概就是我想學它的主要緣由。另外,我也從朋友那裏據說這是一個很棒的課程。

我學這門課的目標是爲了強化本身的知識基礎。雖然在以前我已經學習過 Udacity 和 DataCamp 的課程,這兩個課程都從不一樣的角度講述機器學習,但我認爲再多學習一門這個領域中最好的課程絕對有利無害。

這門課很是有意思,有趣且具備挑戰性。像其餘一切同樣,有一些我徹底理解的部分,也有一些我尚未徹底搞清楚的部分。

我不認爲 Octave 會在任何新項目裏幫到我,但對於完成幾回做業來講,這個軟件並不難上手。雖然這門課是一個很棒的經歷,但我仍然相信 Udacity 的數據分析 Nanodegree 更有用處。

最後一件幫助我完成學習目標的事,是 Capstone 的端到端深度學習項目 。數據科學或機器/深度學習不只僅是關於理論、算法、研究和出版論文!對於我來講,我一直想要構建產品,作一個實踐者,作一些事情。

在個人 Capstone 項目中,我將定義一個問題、潛在的解決方案、源數據、構建和測試模型、生成模型、實現 API、UI 前端並部署到「生產」上。本質上,我將要創建一個端到端的深刻學習管道,從而打造一個直播產品。

…… 或者至少,這是一個計劃。

我對初學者的建議

開始學習。你沒有什麼好的藉口能夠不去學習,哪怕是換了職業。

學幾門數學課程,但幾門也就夠了。

但我仍是要差一句話,這不是說你不須要數學,而是說你只須要了解術語表明什麼意思,如何解釋它們,以及如何根據他們的訊息來修正模型(或參數)便可。但在實際實施機器學習和深度學習的世界中,並不須要博士學位: 這其實就是線性代數,不是什麼高深學問。

可是,如今並不建議你開始着手一個大的項目,由於它將佔滿你的學習時間。嘗試作一些實際動手的工做, 使用真實的數據進行練習,你須要它們來增加經驗和參加面試 ,而不是立刻就開始處理你開始新的職業生涯以後纔會遇到的,更重要的現實世界的問題。

我以爲個人腦子裏已經充滿了機器學習和深度學習的「東西」,老是會還有一篇要去讀的新論文或發表的文章。因此,仍是得慢慢來,而我很肯定我尚未達到我想要的程度。

綜上所述,我建議你學習的課程包括:

1. 數據科學家與 Python(DataCamp)

2. 數據分析 Nano degree(Udacity)

3. 吳恩達 Andrew Ng(Coursera) 的機器學習

4. 深度學習(fast.ai

5. 進行我的項目或參加 Kaggle 競賽進行練習(在進行步驟 1-4 的時候)

另外,這裏還有我正在更新的一些「閱讀列表」,以記錄我在學習過程當中作的更重要的事情。你能夠在個人 blog 上找到它們:http://jasonicarter.github.io/deep-learning-reading-list

個人深度學習閱讀列表(英文數據)

課程

1. 深度學習 – 第 1 部分:MOOC 版本   和  USF,數據研究所:深度學習 – Fast.ai  的 第 1 部分

2. 數據科學家與 Python 軌道 – DataCamp

3. 史丹佛大學機器學習 – Coursera

影片 

1. 深刻學習神祕化

2. 卷積神經網絡的工做原理

書籍、論文、文章和部落格好文

1. 神經網絡架構

2. 在 11 行 Python 編程中的神經網絡

3. Standford CS231n:視覺識別的積卷神經網絡

4. Grokking 深度學習

5. 設計出優秀的數據產品

6. 開始使用 TensorFlow

7. 深刻 MNIST 專家

8. TensorFlow 機械學 101

9. 遞歸神經網絡的驚人效果

10 .Breaking Linear Classifiers

11. Explaining and Harnessing Adversarial Examples

12. 如何欺騙神經網絡把熊貓誤認成一隻禿鷹

13. 用 Adversarial Examples 攻擊擊機器學習

14. GAN by Example using Keras on Tensorflow Backend

15. Perceptual Losses for Real-Time Style Transfer and Super-Resolution

16. 藝術風格的神經算法

17. 積卷神經算術教程

我接下來的計劃

找工做。個人最後一件事固然是恢復工做。我會嘗試儘量有選擇地去找工做,不是說我之前沒有這樣作,而是我認爲這是一個職業變化,認真審視這個過程的每一方面都是很好的。

到目前爲止,我一直在被動地審查公司,調查他們在機器學習和深度學習領域中究竟作了什麼。所謂的「機器學習工程師」在深度學習方面作的不多,而其餘「數據工程師」則須要不少 CNN 或 NLP 的知識以及 Docker 和 Apache Spark 等的技術。

到目前爲止,我學到的兩件事

1. 沒有真正的「深度學習工程師」角色,它只是被附加到了 ML 的描述中,因此得記得仔細閱讀工做責任部分。

2. 數據科學家,數據工程師甚至數據分析師的角色可能因公司和工做職責而異。這個能夠細分紅企業需求和創業公司的需求。

對於我我的來講,根據個人興趣,我將尋找一個職位,讓我可以擴展我在深度學習中的專長(它自己就是一個大領域),同時還能使用一些「經典」的機器學習技術。若是他們能丟給我一些 UI 開發工做,甚至會更好。

那麼,瞭解完個人這段經歷,你認爲,任何人都有機會能成爲全端機器學習工程師嗎?

附上文章原文網址:https://medium.com/towards-data-science/4-months-of-machine-deep-learning-89f6ab56a2fd

相關文章
相關標籤/搜索