自學轉行演算法,我踩過哪些坑?
眾(lian)所(pi)周(yao)知(hou),我是自學轉行演算法的。算轉行比較成功的吧。雖然不是那種手握幾篇頂會的大佬。但總算進入了阿里這樣的大廠,成為了別人眼中的大廠演算法工程師。今天,我想總結一下自己轉行自學的過程中踩過的一些坑,希望對你有所幫助和啟發。
不要看看不懂的書和影片
既然是自學,途徑無非就是看書和看影片兩種途徑。這些資料,今天已經非常的豐富了。每個人都可以有很多選擇。
但這就帶來另一個問題:究竟該從什麼書,什麼影片開始呢?
然後你去問身邊已經是演算法工程師的朋友,知乎上搜索,發現答案也是五花八門。有的說看西瓜書,有的說直接肝李航書,有的說什麼年代了,直接花書走起!有的說那誰誰誰的影片不錯,可以認真看看。
顯然,這麼多答案,等於沒有答案。
很多朋友最可能的選擇是,選被推薦次數最多的書或者影片來看。然後發現看的腦袋大,最後從入門到放棄。
這樣的過程我都經歷過,當初硬啃
李航
書,有很多地方不理解,怎麼也想不明白,一度懷疑人生。
回頭看,之所以看不懂,不過是當時不具備讀那本書的知識基礎而已。
自學要想成功,在我看來有兩點最關鍵:
持續激發興趣
構建
知識結構
興趣是最好的老師,始終保持一個濃厚的興趣,學習新知識就不再是一個負擔,而是一個快樂的探索過程。好的學習資料一定是每學完一部分,都有種發現新大陸的感覺。如果你在學習的過程中經常有這樣的感嘆:
“我去,還可以這樣!”
“哦,原來是這麼回事兒!”
“666!這解法帥呆了!”
那這份資料一定是適合你的!
初入一個領域,越快構建完整的知識結構,越有利於自學。知識結構這個東西,是一個指引,能幫助你判斷自己現在學習的怎麼樣,哪些地方比較薄弱,那些地方是掌握比較好的。
比如,你隱馬爾可夫模型學習的不夠好。如果你有完整的知識結構,你就可以明白,隱馬屬於
機率圖模型
的一種,你需要先學習機率圖模型。
機率圖模型屬於貝葉斯派,你又要去理解貝葉斯派和頻率派的聯絡和區別。
和隱馬相關的模型有最大熵隱馬爾可夫和條件隨機場,你需要進一步從機率圖模型的角度來學習三者的聯絡和區別。
從這個例子可以看出,有了知識結構,我們的學習會更加系統,更加主動,而不是東一榔頭西一棒子。
一份好的資料一定是時刻注重幫你構建良好清晰的知識結構的。
能做到以上兩點的資料,必然是能讓你看的懂的資料。那些看不懂的資料,自然就不適合用來入門。這些資料,隨著你段位的不斷提高,到該看的時候你自然會找來學習。
不要盲目地去實現演算法
程式設計師領域有句行話:程式碼面前,了無秘密。
很多人學習演算法時自然會想,如果能把每一種演算法都實現一遍,就一定能夠徹底掌握這個演算法。然後網上一搜,發現很多人支援鼓勵實現一遍演算法。於是一頭紮在程式碼裡,沉迷不可自拔。
我當時學習的時候,就看了一本python實現各種經典演算法的書籍,可以說是跟著抄了一遍程式碼,對裡面的每一行程式碼都力求深入理解。由此還發現了幾個bug,當時出生牛犢不怕虎,跟現在某一線公司AILab的負責人大佬專門交流指出,因為書是他翻譯的。
回頭來看,我並不覺得這樣的做法值得提倡。
歡迎關注我的公眾號:演算法的秘密
我們自學的目的是什麼,是轉行,而且是儘可能快地轉行。
我們的時間精力,必須投向那些最能幫助我們達成目標的事情。
清晰的目標感,會讓我們明白,實現演算法絕對是一個非常低效達成目標的方式。
如果你去面試,面試官不可能讓你用程式碼實現邏輯迴歸,實現GBDT或者Transformer。他最多是讓你寫寫
公式
,問問裡面的技術細節。而這些,都是可以在學習原理的過程中就完全掌握的。在時間有限的情況下,強烈不建議你去學習那些演算法的實現細節。
為防槓精,我有必要補充兩點。我是認同實現演算法就能全面徹底,更深刻地掌握演算法的。我所不認同的是,時間有限,目標是轉行的情況下,投入大量精力去實現很多演算法。
當轉行成功後,結合工作中用到的演算法模型,去學習裡面的實現細節,我覺得會是更好的選擇。這樣,實現演算法的過程就可以直接促進工作。
不要埋頭學習,忽略和工業界朋友的交流
記得我有段時間,真的是完全沉迷學習,對每一個演算法都學的津津有味。
一天天過去,當我準備找工作時,才發現。有個很重要的模型一直沒有學,就是xgboost。當時是2017年,xgboost如日中天,而我看的書上並沒有這個模型。而工業界使用xgboost已經是非常普遍了。
可想而知,面試時,我下很多精力學習的Adaboost沒有什麼人問,但是xgboost卻是每面必問。
後來,我透過讀論文,做專案,迅速掌握了這個模型,這是後來的事兒。
反思這件事兒。我們不難發現一個事實。
機器學習
,深度學習都處在一個飛速發展的時代,新的模型層出不窮,而且很多模型從論文到工業運用已經縮短到了一兩個月的時間,甚至更短。
經典的模型固然要學深悟透,但最前沿的進展也同樣要時刻關注,因為新的模型經驗做法一旦被運用到工業界,就會成為面試的重點,如果你不能很好的掌握,是很難透過面試的。
獲得這些新的進展最好的辦法就是多和工業界的朋友交流,他們身在一線,最清楚哪些模型好用,哪些模型只是博士碩士們畢業的墊腳石。這樣,就可以有意識地重點學習那些工業界主流的模型,面試的時候就會更有把握。
有的朋友可能說,我沒有工業界的朋友怎麼辦呢?
很簡單,很多公眾號都有自己的微信群。加進去,活躍一點。沒事兒多觀察大家聊天的內容,發現裡面的大佬,主動請教問題,發個小紅包活躍活躍氛圍。這不就解決了嗎?而且樂意在群裡解答大家問題的大佬,一般也是熱心幫助人的,你放低姿態請教,都會認真回答的。
最後,下決心要趁早
現在AI領域的求職競爭越來越激烈,很多人開始猶豫,要不要入行,擔心學了半天找不到工作。
我沒有辦法告訴你自學完能不能找到工作。你可以在某乎上搜一下一些大佬們的觀點建議。
我只想說,無論你是決定轉還是不轉,都要早下決心。
時間不會等待猶豫觀望的人。
祝好!
歡迎關注我的公眾號:演算法的秘密。
也可以加我微信:milter007 進行交流。