眾(lian)所(pi)周(yao)知(hou),我是自學轉行演算法的。算轉行比較成功的吧。雖然不是那種手握幾篇頂會的大佬。但總算進入了阿里這樣的大廠,成為了別人眼中的大廠演算法工程師。今天,我想總結一下自己轉行自學的過程中踩過的一些坑,希望對你有所幫助和啟發。

不要看看不懂的書和影片

既然是自學,途徑無非就是看書和看影片兩種途徑。這些資料,今天已經非常的豐富了。每個人都可以有很多選擇。

但這就帶來另一個問題:究竟該從什麼書,什麼影片開始呢?

然後你去問身邊已經是演算法工程師的朋友,知乎上搜索,發現答案也是五花八門。有的說看西瓜書,有的說直接肝李航書,有的說什麼年代了,直接花書走起!有的說那誰誰誰的影片不錯,可以認真看看。

顯然,這麼多答案,等於沒有答案。

很多朋友最可能的選擇是,選被推薦次數最多的書或者影片來看。然後發現看的腦袋大,最後從入門到放棄。

這樣的過程我都經歷過,當初硬啃

李航

書,有很多地方不理解,怎麼也想不明白,一度懷疑人生。

回頭看,之所以看不懂,不過是當時不具備讀那本書的知識基礎而已。

自學要想成功,在我看來有兩點最關鍵:

持續激發興趣

構建

知識結構

興趣是最好的老師,始終保持一個濃厚的興趣,學習新知識就不再是一個負擔,而是一個快樂的探索過程。好的學習資料一定是每學完一部分,都有種發現新大陸的感覺。如果你在學習的過程中經常有這樣的感嘆:

“我去,還可以這樣!”

“哦,原來是這麼回事兒!”

“666!這解法帥呆了!”

那這份資料一定是適合你的!

初入一個領域,越快構建完整的知識結構,越有利於自學。知識結構這個東西,是一個指引,能幫助你判斷自己現在學習的怎麼樣,哪些地方比較薄弱,那些地方是掌握比較好的。

比如,你隱馬爾可夫模型學習的不夠好。如果你有完整的知識結構,你就可以明白,隱馬屬於

機率圖模型

的一種,你需要先學習機率圖模型。

機率圖模型屬於貝葉斯派,你又要去理解貝葉斯派和頻率派的聯絡和區別。

和隱馬相關的模型有最大熵隱馬爾可夫和條件隨機場,你需要進一步從機率圖模型的角度來學習三者的聯絡和區別。

從這個例子可以看出,有了知識結構,我們的學習會更加系統,更加主動,而不是東一榔頭西一棒子。

一份好的資料一定是時刻注重幫你構建良好清晰的知識結構的。

能做到以上兩點的資料,必然是能讓你看的懂的資料。那些看不懂的資料,自然就不適合用來入門。這些資料,隨著你段位的不斷提高,到該看的時候你自然會找來學習。

不要盲目地去實現演算法

程式設計師領域有句行話:程式碼面前,了無秘密。

很多人學習演算法時自然會想,如果能把每一種演算法都實現一遍,就一定能夠徹底掌握這個演算法。然後網上一搜,發現很多人支援鼓勵實現一遍演算法。於是一頭紮在程式碼裡,沉迷不可自拔。

我當時學習的時候,就看了一本python實現各種經典演算法的書籍,可以說是跟著抄了一遍程式碼,對裡面的每一行程式碼都力求深入理解。由此還發現了幾個bug,當時出生牛犢不怕虎,跟現在某一線公司AILab的負責人大佬專門交流指出,因為書是他翻譯的。

回頭來看,我並不覺得這樣的做法值得提倡。

歡迎關注我的公眾號:演算法的秘密

我們自學的目的是什麼,是轉行,而且是儘可能快地轉行。

我們的時間精力,必須投向那些最能幫助我們達成目標的事情。

清晰的目標感,會讓我們明白,實現演算法絕對是一個非常低效達成目標的方式。

如果你去面試,面試官不可能讓你用程式碼實現邏輯迴歸,實現GBDT或者Transformer。他最多是讓你寫寫

公式

,問問裡面的技術細節。而這些,都是可以在學習原理的過程中就完全掌握的。在時間有限的情況下,強烈不建議你去學習那些演算法的實現細節。

為防槓精,我有必要補充兩點。我是認同實現演算法就能全面徹底,更深刻地掌握演算法的。我所不認同的是,時間有限,目標是轉行的情況下,投入大量精力去實現很多演算法。

當轉行成功後,結合工作中用到的演算法模型,去學習裡面的實現細節,我覺得會是更好的選擇。這樣,實現演算法的過程就可以直接促進工作。

不要埋頭學習,忽略和工業界朋友的交流

記得我有段時間,真的是完全沉迷學習,對每一個演算法都學的津津有味。

一天天過去,當我準備找工作時,才發現。有個很重要的模型一直沒有學,就是xgboost。當時是2017年,xgboost如日中天,而我看的書上並沒有這個模型。而工業界使用xgboost已經是非常普遍了。

可想而知,面試時,我下很多精力學習的Adaboost沒有什麼人問,但是xgboost卻是每面必問。

後來,我透過讀論文,做專案,迅速掌握了這個模型,這是後來的事兒。

反思這件事兒。我們不難發現一個事實。

機器學習

,深度學習都處在一個飛速發展的時代,新的模型層出不窮,而且很多模型從論文到工業運用已經縮短到了一兩個月的時間,甚至更短。

經典的模型固然要學深悟透,但最前沿的進展也同樣要時刻關注,因為新的模型經驗做法一旦被運用到工業界,就會成為面試的重點,如果你不能很好的掌握,是很難透過面試的。

獲得這些新的進展最好的辦法就是多和工業界的朋友交流,他們身在一線,最清楚哪些模型好用,哪些模型只是博士碩士們畢業的墊腳石。這樣,就可以有意識地重點學習那些工業界主流的模型,面試的時候就會更有把握。

有的朋友可能說,我沒有工業界的朋友怎麼辦呢?

很簡單,很多公眾號都有自己的微信群。加進去,活躍一點。沒事兒多觀察大家聊天的內容,發現裡面的大佬,主動請教問題,發個小紅包活躍活躍氛圍。這不就解決了嗎?而且樂意在群裡解答大家問題的大佬,一般也是熱心幫助人的,你放低姿態請教,都會認真回答的。

最後,下決心要趁早

現在AI領域的求職競爭越來越激烈,很多人開始猶豫,要不要入行,擔心學了半天找不到工作。

我沒有辦法告訴你自學完能不能找到工作。你可以在某乎上搜一下一些大佬們的觀點建議。

我只想說,無論你是決定轉還是不轉,都要早下決心。

時間不會等待猶豫觀望的人。

祝好!

歡迎關注我的公眾號:演算法的秘密。

也可以加我微信:milter007 進行交流。