[譯]兩年前我對編程一無所知,現在我是一名AI工程師

本文翻譯自Medium上的一篇文章,原文標題:I had no idea how to write code two years ago. Now I’m an AI engineer. 點擊文末的閱讀原文可以跳轉到英文原文。

兩年前,我大學畢業,大學讀的經濟和金融學。我決定從事金融業,投資銀行和全球市場 - 這些都是理想的工作。畢業前9個月,我在一家投資銀行謀得一份職位,感到很自豪,因爲如果以前沒有在那家銀行任職,通常很難謀到這個職位。

工作了幾個月後,我學習了一些 Excel VBA,還學習瞭如何使用 Tableau,Power BI 和 UiPath(機器人過程自動化軟件)。我認識到我對選擇這些工具,學習編碼更感興趣,而不是學習銀行產品。曾經因其複雜性而令我着迷的銀行產品,現在僅被視爲銀行從客戶獲利的一種方式。

銀行業環境極大地衝擊了我的個人價值觀,但這是另一個話題。

同時,與我一起工作的同事爲我敞開了機器學習世界。一個人可以從某些輸入中預測某些結果的事實使我很感興趣。

我立刻被迷住了。

但是有一個問題 – 我只有初級的編碼技能。在我的字典中,Python 是蛇的一種,而 Pig ... 是一頭豬。

時光飛逝,兩年後,我進入 AI 行業,成爲 AI 工程師。這一路並不輕鬆,也不短。對我而言,轉戰 AI 行業僅僅是開始 - 我學習和成長的新開始。這就是我的旅程。

免責聲明

每個人的數據科學之旅都是不同的。本文不是探討如何進入人工智能,不應將其視爲手把手指南。我希望這是個人的軼事,我希望它能激發人們的信念,去做自己想做的事情,因爲生命太短暫了,不要去過沒有意義的生活。

我的旅途

登上 MOOC 快車

雖然具有經濟和金融學背景,但我不知道如何編碼。Excel VBA 非常近似於編程,但僅此而已。作爲一名優秀的學生,我想加入到數據科學的潮流中來,因此報名參加了一些的大規模開放在線課程(Massive Open Online Courses, MOOC)。不是一個,而是少量。這是我註冊的課程列表:

  • Python 訓練營:Python 3 從零開始到精通[Udemy]

  • 適用於數據科學和機器學習的Python訓練營 [Udemy]

  • 使用MySQL管理大數據[Coursera]

  • Java初學者教程[Udemy]

  • Web開發人員訓練營[Udemy]

  • 機器學習A-Z:動手實踐數據科學, Python 和 R [Udemy]

  • 使用Docker部署機器學習和NLP模型[Udemy]

不用說,我並沒有完成其中的大部分課程(只完成了黑體字的部分)。我陷入了所謂的 MOOC 自我延續週期。容易獲得知識使得從一門課程轉到下一門課程是很自然的,由於所涵蓋主題的簡短,使我的興趣短暫,常常無法完成前一門課程。

對我而言,這是 MOOC 的最大缺點 - 所涵蓋內容的過於簡單。也許我最初對 MOOC 可以推動我從事數據科學事業的期望太過幼稚。

爲了說明問題,典型的 MOOC 講授傳統的機器學習(ML)方法通常會浮於表面,而略過模型實際的作用。隨機森林被教導爲決策樹的集合,但是不涉及決策樹如何確定在哪個分支選擇了哪些特徵(比如熵的概念和數學知識)。支持向量機僅作爲分類方法進行講授,但是將不介紹如何確定超平面。

當我們研究諸如深度學習之類的更高級的 AI 領域時,我所知道的我所需要知道的之間的差異得到了體現。教深度學習的 MOOC 通常會在 Tensorflow 上使用諸如 MNIST 這樣的不錯的數據集編寫大量代碼,並得出結論,您現在是深度學習專家(我有點誇張,但您會明白要點)。這顯然與實際情況相去甚遠,因爲研究論文通常包含複雜的體系結構,涉及理解深度神經網絡模型中的特徵提取,以及其他更復雜的特徵,例如變換器和雙向編碼。理解爲什麼某些最新模型比其他模型更好地工作,以及遷移學習和元學習等概念也很重要。

我認爲,教學機器學習(ML)的 MOOC 常常給人一種錯誤的印象,即任何人都可以成爲 ML 實踐者。天真地認爲, ML 只是涉及 .fit() 和 .predict() 的幾行代碼,這是因爲 MOOC 以這樣一種方式表達:人們可以相對輕鬆地開始使用ML(也許可以將它們貨幣化,由於 ML 的大量宣傳,課程非常有利可圖)。

別誤會我 - MOOC很棒。它們爲人們提供了快速簡便的方法來獲取知識並進入某個領域。它們會讓您成爲專家嗎?不。完成課程後,您要做什麼,將決定您是否成爲專家。

動手實踐

完成了幾門 MOOC 之後,我知道自己再不會有所收穫。當然,我掌握了一些 Python 的基本技能,並且知道如何以 .fit() 和 .predict() 的方式使用 sci-kit learn,但是僅此而已。

爲了提高我的編碼技能,我在 Hackerrank 上進行了練習,並完成了有關 SQL 和 Python 的問題。同時,我希望有一個可以使用 Python 的真實項目。我開始做一個可以爲我預訂羽毛球場的機器人的項目。這主要涉及使用 Selenium 與瀏覽器進行交互以瀏覽網頁,並最終加入購物車並向羽毛球館付費(這類似於秒殺運動鞋機器人)。這樣做的動機是,新加坡的羽毛球場通常兩週之前就預訂一空,很多人常常每天蹲守網站,守候發佈時間(他們通常在一兩秒鐘之內就預訂了)。

即使我對用Python編寫代碼更有信心,但我對代碼效率一無所知。時間和空間的複雜性對我來說完全陌生。面向對象的編程在我腦海中是一個永遠不會發光的概念(更不用說最終被遺忘了)。

在 ML 方面,我是 Jupyter notebook 專家。我可以將 Jupyter notebook 的主題更改爲暗模式,並會使用所有鍵盤快捷鍵。顯然,我已做好擔任數據科學家角色的準備。

現實檢驗 - 我的面試慘敗。還沒等我提及數據科學,涉及代碼的技術測試便擋住了我的腳步。我申請的技術分析師的職位使我轉到了另一個部門,因爲他們認爲我會更好地擔任業務分析師。

我離我要去的地方還很遠。

實踐還不夠

爲了深入瞭解 ML 並磨練我的 Python 技能,我決定前往新加坡管理大學攻讀商業 IT 碩士學位(專門研究 AI )。

我瞭解了傳統 ML 模型背後的數學原理,並在自定義數據集上應用了最新的深度學習架構。我瞭解了有關 AI 的重要概念,包括常見的搜索算法,Q-learning和深度Q-learning。我學習了算法設計,包括圖形算法、時間和空間複雜度、名稱匹配算法以及許多幾乎使我的非計算機科學頭腦爆裂的算法。從本質上講,該課程爲我提供了 MOOC 所缺乏的學術嚴謹性。

在這個時候,我有幾個導師的項目。它們不是完整的項目,因爲數據集通常是從 Kaggle 提供或獲取的,並且通常在Jupyter notebook中展現。爲了確保一致性,在Docker上運行了深度學習模型,但從未考慮過部署方面。它們畢竟是學校的項目。

我認爲,碩士課程爲 AI 專業人員提供了嚴格的學術要求,但缺乏實際應用方面的鍛鍊。碩士學位課程不會告訴您從事數據科學工作的必要條件 - 您必須自己弄清楚這一點。數據科學家的工作範圍通常需要軟件工程和 DevOps 技能(儘管範圍不廣)。在大型組織中,代碼協作也很重要。因此,瞭解如何設置 Docker 環境、啓動 AWS EC2 實例、在 Azure blob 存儲上託管數據集、有效地組織代碼以及使用 GitHub 或 GitLab 進行版本控制是一些必需的關鍵技能,但課堂上並未講授這些技能。

即使您認爲自己不夠出色,也要嘗試

我繼續進行面試,在技術面試和非技術面試中積累了很多經驗(儘管大多數都不及格)。它還使我知道了我不知道的內容,並花了一些時間來學習這些技能。更重要的是,它使我能夠理解公司爲相同角色提出的不同類型的職位描述,以及這些職位描述如何與公司在採用 AI 方面的成熟度相對應。

兩年後,我獲得了一個AI 工程師的職位。對我來說,這是一個學習和發展自己充滿激情的領域的絕佳機會。不僅如此,這證明了任何人都可以完成他們打算要做的事情,儘管有些人可能要花更長的時間。

歸根結底,職業是馬拉松,而不是短跑。做自己喜歡做的事情,因爲它將佔據你生命中的大部分時間。

如果您感到迷茫,請記住 Elsa 所說的話,然後做對的事情


很高興收到任何評論:)

發佈了180 篇原創文章 · 獲贊 447 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章