01.04 從銀行業務員轉行AI工程師,我經歷了什麼

從銀行業務員轉行AI工程師,我經歷了什麼

Jakub Kriz 發佈在 Unsplash 上的照片

兩年前,我大學畢業。由於我的專業是經濟學和金融學,因此我準備從事金融業。投資銀行和全球市場——這些都是我夢寐以求的工作。在畢業前 9 個月,我在一家投資銀行謀到了一個職位,我感到很自豪,因為那家銀行非常難進,如果沒有在那家銀行實習過,通常是很難通過面試的。

工作幾個月後,我學會了 Excel VBA,並學會了如何使用 Tableau、Power BI 和 UiPath(一個機器人自動化軟件)。我意識到我更感興趣的是學習這些工具和代碼,而不是學習銀行產品。銀行產品曾一度因其複雜性而引起我的興趣,現在卻被視為銀行從客戶身上賺取利潤的一種方式。

另外,銀行業的工作環境和我的個人價值觀差異很大,這對我來說是一個巨大的挑戰。

在這個時候,我的一位同事帶我看到了「機器學習」的世界。一個人可以「預測」到哪些投入會產生怎樣的結果,這讓我非常感興趣。

但有一個問題:我對於編程瞭解的不是很多。在我的字典裡,Python 是一種蛇,而 Pig 是......一頭豬。

兩年後的今天,我即將進入人工智能行業,成為一名 AI 工程師。這段經歷並不容易,時間也不短。對我來說,向人工智能產業的轉型僅僅是一個開始——對我來說,這是一個學習和成長的新起點。本文就是我的經歷。

每個人的數據科學之旅都是不同的。這篇文章不是關於「如何學會人工智能」的,不應該被看作是一個循序漸進的指南。這只是我個人的經歷,我希望能激勵人們去做他們想做的事,因為生命太短了,不能活得沒有意義。

我的旅程

加入 MOOC 課程學習

雖然有經濟和金融背景,但我不知道如何編碼。Excel VBA 和編碼很接近,但也只是相似。作為一個優秀的人,為了進入數據科學的行業,我報名參加了 MOOC 上的一些大規模的在線開放課程。以下是我報名參加的課程清單:

  • Python BootCamp: Go from zero to hero in Python 3 [Udemy]

  • Python for Data Science and Machine Learning Bootcamp [Udemy]

  • Managing Big Data with MySQL [Coursera]

  • Java Tutorial for Beginners [Udemy]

  • The Web Developer Bootcamp [Udemy]

  • Machine Learning A-Z: Hands-On Python & R in Data Science [Udemy]

  • Deploy Machine Learning & NLP Models with Docker [Udemy]

但是,除了加粗的部分,大部分課程我都沒有完成。由於獲得知識太容易了,我陷入了惡性循環,我很自然而然地在一門課程沒有學完的時候轉到另一門課,並且興趣轉瞬即逝。

對我來說,這是 MOOC 最大的缺點——內容的簡潔性。或者,我最初的期望是 MOOC 可以推動我從事數據科學的職業,這可能太天真了。

為了讓人印象深刻,一個教授傳統機器學習(ML)方法的典型 MOOC 課程通常會略過諸如模型實際是做什麼的這種基礎知識。你會學到隨機森林是決策樹的集合,但不會學到決策樹是如何決定在哪個分支(即熵的概念和數學原理)上選擇哪些特徵不被覆蓋。支持向量機只是作為一種分類方法來教,但如何確定超平面將不包括在課程內。

「我知道的」和「我需要知道的」之間的這種差異在我學習人工智能的更高級領域(如深度學習)時得到了證明。教授深度學習的 MOOC 課程經常在 Tensorflow 中向 MNIST 這樣一個好的數據集拋出一堆代碼,並告訴你,你現在是一個深度學習專家了。這顯然與現實相去甚遠,因為論文通常包括複雜的體系結構,其中涉及到深度神經網絡模型中特徵提取的理解,以及其他更復雜的特徵,如 transformer 和雙向編碼。理解最先進的模型相比其他模型的優勢在哪裡,這一點也很重要,同時遷移學習和元學習等概念也是很重要的。

在我看來,MOOC 課程常常給人一種錯覺,即任何人都可以成為 ML 實踐者。它可能會讓初學者覺得,ML 只是涉及 .fit和 .predict的幾行代碼,這是因為 MOOC 為了讓人們可以相對輕鬆地開始使用 ML(也許由於 ML 相關的大量宣傳,將這些課程貨幣化及其有利可圖)而以這些作為教學材料。

別誤會我的意思,MOOC 課程很好,它為人們提供了一種快速而簡單的方式來獲取知識並開始某個話題。但是,它們會讓你成為專家嗎?顯然不能。你在完成課程後做什麼,將決定你是否成為專家。

學習更多技能

在完成了幾次 MOOC 課程之後,我知道自己還是什麼都不會。當然,我知道了 Python 中的一些基本技能,知道如何使用 sci kit 從.fit和.predict。

為了提高我的編程技能,我在 Hackerrank 上練習並完成了 SQL 和 Python 相關的題目。同時,我希望有一個真實的 Python 項目。就在那時,我開始研究一種可以為我預訂羽毛球場的機器人。這個項目主要包括使用 Selenium 與瀏覽器交互、瀏覽網頁、最終下單並支付羽毛球場的費用。其動機是,新加坡的羽毛球場通常提前兩週就預訂滿了,很多人每天都會在發售時間在預訂網站紮營,而羽毛球場通常在一兩秒鐘內就被預定完了。

儘管我對用 Python 編寫代碼有信心,但我對代碼效率一無所知。時間和空間複雜度對我來說完全是陌生的。面向對象編程在我的腦海中是一個從未有過的概念。

在 ML 方面,我是 Jupyter notebook 的專家。我可以將我的 Jupyter notebook 的主題改為「黑暗模式」,並熟練使用所有的快捷鍵。顯然,我已經準備好擔當數據科學家的角色。

然而,我在面試中慘敗。在進入「數據科學」領域之前,涉及到代碼的測試就已經將我拒之門外了。我申請了技術分析師的職位,但被推薦到另一個部門,因為他們覺得我更適合做業務分析師。

我離我該去的地方很遠。

課堂學習遠遠不夠

為了深入瞭解 ML 並磨練我在 Python 方面的技能,我決定在 Singapore Management University 攻讀 AI 專業的 IT 商業碩士。

我學習了傳統 ML 模型背後的數學知識,並在一個數據集上應用了最先進的深度學習架構。我學習了一些關於人工智能的重要概念,包括常用的搜索算法、Q-學習和深度 Q-學習。我瞭解了算法設計,包括圖形算法、時間和空間複雜度、名稱匹配算法以及更多的算法,它們刷新了我的認知。從本質上講,這門課程為我提供了 MOOC 所缺乏的學術嚴謹性。

在這個時候,我手上有幾個項目。它們不是成熟的項目,其數據集通常是從 Kaggle 獲得的。深度學習模型在 Docker 上運行是為了保持一致性,但從來沒有考慮到部署的任何方面。畢竟,他們是學校的項目。

在我看來,碩士階段的學習為人工智能專業人士提供了必要的學術嚴謹性,但缺乏實際應用方面的知識。碩士課程不會告訴你什麼是獲得數據科學工作的必要條件,你必須自己去弄清楚。軟件工程和開發技能通常是數據科學家工作範圍的一部分(儘管不全面)。代碼的協作在大型組織中也很重要。因此,瞭解如何設置 Docker 環境、啟動 AWS EC2 實例、在 Azure blob 存儲上託管數據集、高效地組織代碼以及使用 GitHub 或 GitLab 進行版本控制,是一些需要的關鍵技能,但課堂上沒有講授。

去嘗試吧,即使你覺得自己不夠好。

我繼續面試,儘管大多數面試都不及格,但我積累了大量技術面試和非技術面試的經驗。它們讓我知道了自己的知識漏洞,我花時間學習了這些技能。更重要的是,它讓我瞭解了不同類型的工作內容,不同的公司對同一個職位的要求是什麼。

兩年後,我得到了一個 AI 工程師的職位。對我來說,這是一個很好的機會,我可以在一個我熱愛的領域學習和成長。更重要的是,我的經歷證明了任何人都可以完成他們打算做的事情,儘管有些人可能需要比其他人花更長的時間。

歸根結底,職業生涯是一場馬拉松,而不是短期衝刺。做你喜歡做的事,因為你將花費一生中很大一部分的時間工作。

如果你感到迷茫,記住 Elsa 所說的話:做下一件正確的事。

via:https://towardsdatascience.com/i-had-no-idea-how-to-write-code-two-years-ago-now-im-an-ai-engineer-13c530ab8227

雷鋒網雷鋒網雷鋒網


分享到:


相關文章: