在算法的道路上,你掌握了什么思維讓你突飛猛進?
作者:知乎@金瀛若愚?
鏈接:https://www.zhihu.com/question/436874654/answer/1808192248
一. 反饋的閉環(huán)
在一個研究任務中,我首先嘗試了方法A,沒搞定,于是改用方法B。組里大哥問:為什么改方法B。我說A沒效果,或許B能work。大哥繼續(xù)問:為什么A不work。我說或許A不適合這個問題?大哥說:「當你有一個嘗試,你一定要知道它為什么work以及為什么不work。每次不work了你就換另一個方法,那另一個方法就能work嗎?這不是科研,是賭博,是瞎試。你只有知道為什么一個方法有效或不有效,何時有效何時無效,你才能增進對這個問題的理解,然后基于此提出有價值的策略。」
我的思考是,既然做了一件事,就一定要得到反饋,要搞清楚哪里做得好哪里不好,這樣這個嘗試所投入的時間才是有效的。不然就是在碰運氣,如同做題不對答案,如同訓練模型不算loss不做backprop。
二. 把煉丹技術推廣到生活中
機器學習的很多技術都與現(xiàn)實世界的概念相互呼應。
在深度學習里,模型掉入局部最優(yōu),就是生活中的內卷,就是在狹窄的賽道上追求極致。擺脫內卷就是跳出局部尋求全局最優(yōu)的過程。破局之道是嘗試新事物,或增加訓練數(shù)據。

與人交流、觀察和學習他人可以避免閉門造車。與他人交流就是深度學習里的增加訓練數(shù)據。進入好的學校好的公司就是提高訓練樣本的質量:在label準確時,學得輕松。
前面講的“構建閉環(huán)”,就是關注backprop時的梯度。你不能攢了特別多事情后再去反思或尋求反饋,這個反饋鏈太長,要么梯度消失,要么梯度爆炸,無法有效學習。類似對loss的求導過程:「你必須清晰地看到因果鏈條,才能做到從結果倒推原因,進而優(yōu)化自己。」
已經做得很好的事情沒必要重復。此時應該挑戰(zhàn)新的項目,保持自己在學習的狀態(tài)。這就是hard data mining. 遇到壞人后就認為全人類沒救了,是overfitting。對應在機器學習里,在unbalanced dataset上學習,要想到用weighted loss。
挫折易使人變得復雜、內心沖突多。如果能用簡單的形態(tài)存在,我們或許應警惕過分復雜。機器學習里,解決小問題硬上大模型是一種粗暴且沒技術含量的辦法。用不必要大的模型是對探求事物本質的逃避,科研如此,生活亦然。你以為模型練成了,其實它學的是shortcut,因此有泛化能力差的問題:variance大,不robust(內心不穩(wěn))。同時,模型太復雜就不容易理解,遇到bug不容易診斷病因(內心不易平穩(wěn)和愉悅)。但避免復雜不是要當巨嬰,不是抗拒成長。當任務復雜、訓練數(shù)據也大的時候,就必須要上大模型。核心是模型復雜度(心智復雜度)要與任務復雜度和數(shù)據量(閱歷)匹配,才是健康的。
三. 交流,交流,再交流
組里的女神姐姐教導我:“做research要多和人交流,多去聽別人的paper reading,也把你讀到的論文和想法講給別人聽。因為在討論的過程里你會意識到未曾發(fā)現(xiàn)的問題。嘗試給人講明白的過程里,你的思路也會越發(fā)清晰。” 道理我都懂,每次我頭點得像敲鼓一樣,但也沒堅持做到。
為什么做不到?大概是心理包袱,總想著搞出一個牛X閃閃的東西后再展示給別人,不然覺得丟臉。或者總有一種再試一下就能搞定的錯覺。這種錯覺和我炒股票的風格如出一轍。
直到后來我看到越來越多平淡無奇的項目都逆襲了,我理解到,事物的發(fā)展都有必然的過程,要尊重其發(fā)展規(guī)律,不要總想直接搞個大新聞。高效的科研**要主動的尋求身邊的資源,爭取讓良師益友把時間花在自己身上,**如果自己不主動爭取,再照顧你的人也不能像親媽一樣耳提面命,他們畢竟不好逼迫你。具體的,「應該多把自己讀懂的論文講給別人,在你給他人創(chuàng)造價值的同時,你也使他們幫助你這件事更容易了:他們只有懂了你懂的,才能給你最有效的建議,你才能借用他們的頭腦思考。」
我發(fā)現(xiàn)當我積極主動之后,身邊的人都默默支持起我來。稻盛和夫說:“心不喚物,物不至”。
四. 「焦慮動力」模型
勤奮上進、自我驅動、有行動力,本質是內心動力充沛的精神狀態(tài)。動力不足時,我們懶惰、拖延、自控力差。用向量分解的思維模型,我們可以看清「動力」的本質。

「動力的分量是 1.焦慮/壓力 和 2.熱情。動力是二者的合力」
帶著上面這句話,我們可以舉出奮斗者的兩種極端狀況。一種由焦慮主導,被績效和deadline催促,常處于不安和壓力之中。希望獲得他人的認可,如果有了過失,會感到煎熬;另一種是熱情主導的。專注、投入,不易為外界干擾和誘惑所動。在做事的過程中,能收獲成就感和喜悅,認為工作與個人追求比較重合。
警惕“動力”過分依賴“焦慮和壓力”的狀況。這個動力來源并不持久和可靠。隨著年齡增加,體力和心力會下降,且隨著閱歷增加,閾值變高,很多事會不再覺得重要。那時就會失去動力。
**分量之間存在代償。**盲人的耳朵往往很敏銳。如果動力過多依賴焦慮和壓力,則留意到熱情和樂趣就更難。可能并不是你不熱愛,你只是太緊張了而已。
五. 獨立思考
我對獨立思考這件事體會最深的就是決定要不要讀PhD時。拿到UW的錄取后,因為微軟組里就很多博士、教授,我自然就去請教他們問要不要讀博,畢竟五年是一筆不小的投入。當時有一部分人說值得一讀,另一些人說專心做事業(yè)可能有更大回報。
有趣的是,當我簽下offer后,所有的人,不論之前給了什么建議,都由衷恭喜和認可我的決定,并和我暢想畢業(yè)后Dr. Jin走向人生(996)巔峰的畫面。
那之前他們的建議是真心的嗎?當然是真心的。簽offer后的認可也是真心的。于是我理解到,很多事情,做與不做都能找出道理。**他人給建議時,也會考慮到我們的情緒,讓我們不論怎樣選擇都有臺階下。**因此,我們要保持獨立思考,要對自己的決定負全責。
「建議的推導邏輯比結論重要。他人建議的正確用法是讓自己看問題多個角度,減少信息差,而不是直接取其結論,讓他人代為做選擇。」
六. 把工作當做一個二階優(yōu)化過程
不管title是算法工程師還是應用科學家,產出都是代碼及其體現(xiàn)的知識產權。我們工作的過程就是優(yōu)化這個代碼及知識產權的過程。但這太basic。
我們不僅要優(yōu)化產品,也要優(yōu)化產出產品的過程:一階優(yōu)化,是優(yōu)化代碼質量。二階的優(yōu)化,是優(yōu)化工作過程,這個工作過程是代碼質量更上一層的原因,是原因的原因,是二階導數(shù)。
類比一下:為了走得遠,你可以優(yōu)化速度(路程的原因是速度),更進一步你可以優(yōu)化加速度(速度的原因是加速度)。不斷向上溯源,能解決根本問題、通用問題。
回到優(yōu)化工作流程上,我們不斷問自己:在我工作的過程中,有哪些是重復工作?有哪些可以更高效的完成?有哪些可以被拎出來整理出可以復用的,于是后面就不再需要花心思重做或者檢查其bug?經過一兩年我攢出了一套自己的代碼庫,很多被重復使用的部分(如用matplotlib畫各種圖,各種數(shù)據預處理)就都可以直接copy paste。這就形成了復利效應——時間越長,這些整理出來的代碼片段就創(chuàng)造越高的價值。
七. 學習些銷售意識
銷售是一門大學問,值得廣大猿類學習。
「像設計產品外包裝一樣設計履歷」
一個暢銷的產品必須有個特色,這個特色與其他競品形成了差異化競爭,才能有自己的市場,賣上個好價格。比如始祖鳥這個牌子的衣服顏值很一般,但它的防水面料好,就拿下了戶外市場。一個中庸的什么都不差也什么都不突出的產品就很難被你記住。同時,產品的優(yōu)秀比不上品牌的優(yōu)秀,如果產品的價值凝練成了品牌,那這個品牌本身就值高價。比如我們會為了logo付費。
我們的職業(yè)發(fā)展,說得現(xiàn)實些,也是希望自己在市場上有個好價格。為此,我們不需樣樣精通,但必須有一個具有代表性的,能拿得出手的技能。比如,我就是要和所有人不同,去學遠古技術匯編語言。那只要市場出現(xiàn)了對這個技能的需求,你就能有極大的定價權。當我們深耕一個領域很久,又寫了很多優(yōu)質的博客,那你的名字就成為了品牌,可以幫助公司招賢納士,等等。
我的老板兼導師也曾說:你做paper要想怎樣把你的paper賣出去。你要站在消費者角度想,他們?yōu)槭裁匆〞r間去讀你的文章?你的論文有沒有創(chuàng)意,能給他們帶來什么價值?寫作語言,圖表美觀程度,就是賣相。這和銷售很像。
我們的簡歷就是商品的成分表——在決定選擇什么項目時,不妨想想這會在簡歷里留下一行什么樣的記錄,會不會幫你抬高自己的職業(yè)價值。
「用產品思維規(guī)劃項目」
科研項目的立項過程和產品策劃非常像。第一步都是要做survey,了解清楚目前技術有哪些分支,是什么歷史契機促成了某個技術的出現(xiàn)(比如有了新的數(shù)據集),不同的技術優(yōu)點缺點在哪(A更準確,B速度更快,C不需要很多訓練數(shù)據,等等)。然后了解這個任務的定義,metric(關鍵指標)是什么,也就是搞清楚游戲規(guī)則,知道大家在比些什么,頭部的玩家都是誰等等。不了解清楚,后面的一切都是錯的。
導師們經常問我的一個問題就是“這個task的upper bound是什么”。我說我知道state-of-the-art是什么,還要知道upper bound嗎?導師說你在開始一個嘗試前,要知道還有多少空間留給你去做。如果SOTA(目前最好的)已經比較接近upper bound了,你就很難再往上去攻了,你可能找個別的任務更有成就感。「你跳進一個賽道前,要對其發(fā)展到了什么階段有些概念」。
八. 關于忙碌
在上面各種催人上進的內容之后,我再來分享一個故事來結尾。
一次公司的一位高層前輩見面,臨走前我問他能不能給我個過來人的建議。
我以為他會給我講一些勤奮工作的態(tài)度、人生規(guī)劃的經驗、或者給我打打雞血這種內容。
而前輩只是指了指辦公室書架上的一排沒拆封的樂高跟我說,我給你一個建議,就是年輕時多花點時間在自己的嗜好上。我年輕時喜歡樂高,但因為一直忙于工作,并沒有花很多時間在我這個小小的嗜好上。現(xiàn)在我時間多了,但對樂高也不再有那種熱情了,現(xiàn)在只把他們擺起來,包裝都沒拆。所以年輕的時候,你可以花點時間在自己的愛好上。不能只有忙碌的工作。
