從銀行業(yè)務(wù)員轉(zhuǎn)行AI工程師:我經(jīng)歷了什么
兩年前,我大學(xué)畢業(yè)。由于我的專業(yè)是經(jīng)濟學(xué)和金融學(xué),因此我準備從事金融業(yè)。投資銀行和全球市場—;—;這些都是我夢寐以求的工作。在畢業(yè)前 9 個月,我在一家投資銀行謀到了一個職位,我感到很自豪,因為那家銀行非常難進,如果沒有在那家銀行實習(xí)過,通常是很難通過面試的。
工作幾個月后,我學(xué)會了 Excel VBA,并學(xué)會了如何使用 Tableau、Power BI 和 UiPath(一個機器人自動化軟件)。我意識到我更感興趣的是學(xué)習(xí)這些工具和代碼,而不是學(xué)習(xí)銀行產(chǎn)品。銀行產(chǎn)品曾一度因其復(fù)雜性而引起我的興趣,現(xiàn)在卻被視為銀行從客戶身上賺取利潤的一種方式。
另外,銀行業(yè)的工作環(huán)境和我的個人價值觀差異很大,這對我來說是一個巨大的挑戰(zhàn)。
在這個時候,我的一位同事帶我看到了「機器學(xué)習(xí)」的世界。一個人可以「預(yù)測」到哪些投入會產(chǎn)生怎樣的結(jié)果,這讓我非常感興趣。
但有一個問題:我對于編程了解的不是很多。在我的字典里,Python 是一種蛇,而 Pig 是......一頭豬。
兩年后的今天,我即將進入人工智能行業(yè),成為一名 AI 工程師。這段經(jīng)歷并不容易,時間也不短。對我來說,向人工智能產(chǎn)業(yè)的轉(zhuǎn)型僅僅是一個開始—;—;對我來說,這是一個學(xué)習(xí)和成長的新起點。本文就是我的經(jīng)歷。
免責(zé)聲明
每個人的數(shù)據(jù)科學(xué)之旅都是不同的。這篇文章不是關(guān)于「如何學(xué)會人工智能」的,不應(yīng)該被看作是一個循序漸進的指南。這只是我個人的經(jīng)歷,我希望能激勵人們?nèi)プ鏊麄兿胱龅氖拢驗樯塘?,不能活得沒有意義。
我的旅程
加入 MOOC 課程學(xué)習(xí)
雖然有經(jīng)濟和金融背景,但我不知道如何編碼。Excel VBA 和編碼很接近,但也只是相似。作為一個優(yōu)秀的人,為了進入數(shù)據(jù)科學(xué)的行業(yè),我報名參加了 MOOC 上的一些大規(guī)模的在線開放課程。以下是我報名參加的課程清單:
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]
但是,除了加粗的部分,大部分課程我都沒有完成。由于獲得知識太容易了,我陷入了惡性循環(huán),我很自然而然地在一門課程沒有學(xué)完的時候轉(zhuǎn)到另一門課,并且興趣轉(zhuǎn)瞬即逝。
對我來說,這是 MOOC 最大的缺點—;—;內(nèi)容的簡潔性。或者,我最初的期望是 MOOC 可以推動我從事數(shù)據(jù)科學(xué)的職業(yè),這可能太天真了。
為了讓人印象深刻,一個教授傳統(tǒng)機器學(xué)習(xí)(ML)方法的典型 MOOC 課程通常會略過諸如模型實際是做什么的這種基礎(chǔ)知識。你會學(xué)到隨機森林是決策樹的集合,但不會學(xué)到?jīng)Q策樹是如何決定在哪個分支(即熵的概念和數(shù)學(xué)原理)上選擇哪些特征不被覆蓋。支持向量機只是作為一種分類方法來教,但如何確定超平面將不包括在課程內(nèi)。
「我知道的」和「我需要知道的」之間的這種差異在我學(xué)習(xí)人工智能的更高級領(lǐng)域(如深度學(xué)習(xí))時得到了證明。教授深度學(xué)習(xí)的 MOOC 課程經(jīng)常在 Tensorflow 中向 MNIST 這樣一個好的數(shù)據(jù)集拋出一堆代碼,并告訴你,你現(xiàn)在是一個深度學(xué)習(xí)專家了。這顯然與現(xiàn)實相去甚遠,因為論文通常包括復(fù)雜的體系結(jié)構(gòu),其中涉及到深度神經(jīng)網(wǎng)絡(luò)模型中特征提取的理解,以及其他更復(fù)雜的特征,如 transformer 和雙向編碼。理解最先進的模型相比其他模型的優(yōu)勢在哪里,這一點也很重要,同時遷移學(xué)習(xí)和元學(xué)習(xí)等概念也是很重要的。
在我看來,MOOC 課程常常給人一種錯覺,即任何人都可以成為 ML 實踐者。它可能會讓初學(xué)者覺得,ML 只是涉及 .fit()和 .predict()的幾行代碼,這是因為 MOOC 為了讓人們可以相對輕松地開始使用 ML(也許由于 ML 相關(guān)的大量宣傳,將這些課程貨幣化及其有利可圖)而以這些作為教學(xué)材料。
別誤會我的意思,MOOC 課程很好,它為人們提供了一種快速而簡單的方式來獲取知識并開始某個話題。但是,它們會讓你成為專家嗎?顯然不能。你在完成課程后做什么,將決定你是否成為專家。
學(xué)習(xí)更多技能
在完成了幾次 MOOC 課程之后,我知道自己還是什么都不會。當然,我知道了 Python 中的一些基本技能,知道如何使用 sci kit 從.fit()和.predict()。
為了提高我的編程技能,我在 Hackerrank 上練習(xí)并完成了 SQL 和 Python 相關(guān)的題目。同時,我希望有一個真實的 Python 項目。就在那時,我開始研究一種可以為我預(yù)訂羽毛球場的機器人。這個項目主要包括使用 Selenium 與瀏覽器交互、瀏覽網(wǎng)頁、最終下單并支付羽毛球場的費用。其動機是,新加坡的羽毛球場通常提前兩周就預(yù)訂滿了,很多人每天都會在發(fā)售時間在預(yù)訂網(wǎng)站扎營,而羽毛球場通常在一兩秒鐘內(nèi)就被預(yù)定完了。
盡管我對用 Python 編寫代碼有信心,但我對代碼效率一無所知。時間和空間復(fù)雜度對我來說完全是陌生的。面向?qū)ο缶幊淘谖业哪X海中是一個從未有過的概念。
在 ML 方面,我是 Jupyter notebook 的專家。我可以將我的 Jupyter notebook 的主題改為「黑暗模式」,并熟練使用所有的快捷鍵。顯然,我已經(jīng)準備好擔(dān)當數(shù)據(jù)科學(xué)家的角色。
然而,我在面試中慘敗。在進入「數(shù)據(jù)科學(xué)」領(lǐng)域之前,涉及到代碼的測試就已經(jīng)將我拒之門外了。我申請了技術(shù)分析師的職位,但被推薦到另一個部門,因為他們覺得我更適合做業(yè)務(wù)分析師。
我離我該去的地方很遠。
課堂學(xué)習(xí)遠遠不夠
為了深入了解 ML 并磨練我在 Python 方面的技能,我決定在 Singapore Management University 攻讀 AI 專業(yè)的 IT 商業(yè)碩士。
我學(xué)習(xí)了傳統(tǒng) ML 模型背后的數(shù)學(xué)知識,并在一個數(shù)據(jù)集上應(yīng)用了最先進的深度學(xué)習(xí)架構(gòu)。我學(xué)習(xí)了一些關(guān)于人工智能的重要概念,包括常用的搜索算法、Q-學(xué)習(xí)和深度 Q-學(xué)習(xí)。我了解了算法設(shè)計,包括圖形算法、時間和空間復(fù)雜度、名稱匹配算法以及更多的算法,它們刷新了我的認知。從本質(zhì)上講,這門課程為我提供了 MOOC 所缺乏的學(xué)術(shù)嚴謹性。
在這個時候,我手上有幾個項目。它們不是成熟的項目,其數(shù)據(jù)集通常是從 Kaggle 獲得的。深度學(xué)習(xí)模型在 Docker 上運行是為了保持一致性,但從來沒有考慮到部署的任何方面。畢竟,他們是學(xué)校的項目。
在我看來,碩士階段的學(xué)習(xí)為人工智能專業(yè)人士提供了必要的學(xué)術(shù)嚴謹性,但缺乏實際應(yīng)用方面的知識。碩士課程不會告訴你什么是獲得數(shù)據(jù)科學(xué)工作的必要條件,你必須自己去弄清楚。軟件工程和開發(fā)技能通常是數(shù)據(jù)科學(xué)家工作范圍的一部分(盡管不全面)。代碼的協(xié)作在大型組織中也很重要。因此,了解如何設(shè)置 Docker 環(huán)境、啟動 AWS EC2 實例、在 Azure blob 存儲上托管數(shù)據(jù)集、高效地組織代碼以及使用 GitHub 或 GitLab 進行版本控制,是一些需要的關(guān)鍵技能,但課堂上沒有講授。
去嘗試吧,即使你覺得自己不夠好。
我繼續(xù)面試,盡管大多數(shù)面試都不及格,但我積累了大量技術(shù)面試和非技術(shù)面試的經(jīng)驗。它們讓我知道了自己的知識漏洞,我花時間學(xué)習(xí)了這些技能。更重要的是,它讓我了解了不同類型的工作內(nèi)容,不同的公司對同一個職位的要求是什么。
兩年后,我得到了一個 AI 工程師的職位。對我來說,這是一個很好的機會,我可以在一個我熱愛的領(lǐng)域?qū)W習(xí)和成長。更重要的是,我的經(jīng)歷證明了任何人都可以完成他們打算做的事情,盡管有些人可能需要比其他人花更長的時間。
歸根結(jié)底,職業(yè)生涯是一場馬拉松,而不是短期沖刺。做你喜歡做的事,因為你將花費一生中很大一部分的時間工作。
如果你感到迷茫,記住 Elsa 所說的話:做下一件正確的事。