今年用了公司的輔助買了不少 AI 相關書籍,不過因為每本書都很厚,閱讀的速度實在很緩慢。唯一比較有印象的是看了《Understanding Deep Learning》學了裡頭一些概念上的東西,算是有點收穫。雖然也買了一些工程師職涯的書,不過實在沒什麼動力看。總覺得對不斷的爬 career ladder 沒有太大意願呢。
完全控制的狀態之所以令我嚮往,除了一方面是因為長期處在心流狀態是一件很享受的事以外,另一方面也是因為控制感 (sense of control) 本身就令人滿足。在完全控制的狀態下,我覺得自己真正的掌握了自己的人生,覺得能夠相信自己的努力真的能影響自己前進的方向。這樣的控制感來自兩方面:其一是對環境的控制,能夠排除外力,維持自己所決定的行程,是一件令人滿足的事。其二則是對自己的控制,能夠降低自己的衝動,讓自己遵守自己想前進的方向,同樣是一件令人滿足的事。
第二類的活動最主要的目標應該會是進行 AI 研究吧,除此之外,我也想嘗試探索看看到底有沒有辦法在維持完全控制狀態下同時做一些能夠產生收入的事情。
AI 研究其實一直是我心中有點遺憾的活動,因為太晚對他產生興趣,所以一直覺得跟單純的工程比起來,有什麼不足的地方。當時也進行了很多探索與思考,最終還是沒能堅持 PhD 的研究道路而來到了工業界。
雖然當初也想了不少理由,但在工業界待久了之後重新回顧這段記憶,我開始覺得,其實當初心中感到的缺憾,正確的原因應該是我曾經有過在完全控制的狀態下寫軟體的經驗,但卻不曾在完全控制的狀態下做過研究造成的。而之所以會這樣很可能單純只是因為大學的環境跟完全控制比較相容但我後來做研究的環境,像是公司或者是研究所,跟完全控制的狀態不太相容所導致的。實際上要是我大學的時候就已經對 AI 感興趣並且自行做一些研究不要依附於實驗室的話,搞不好就不會有這種缺憾的感覺了。由於研究是一件要花費相當程度精力才能有成果的事情,所以在生命的後期實在沒有機會可以找到時間能維持完全控制狀態同時還做研究,但如果未來有機會,真的會很想去嘗試看看。
此外,也試著加強系統設計的功力,一開始是先看了 Distributed Systems Course 但感覺也沒什麼進步的感覺,所以又訂閱了 Educative,原本是想要學一些像是 Grokking the System Design Interview 的課程,但是後來雖然花了錢,卻沒有實際上到多少課,主要還是心力不足。
學期結束後,因為就讀的 program 是研究導向,所以還有最後的暑期研究生活。當時就一邊應付著 research project 的需求,一邊做著自己的研究。那時主要在做用 Generative Adversarial Networks 類型的 loss 訓練出來的 language models。在加入許多怪奇的技巧後,可以在傳統的 evaluation metrics 上達到跟一般 MLE 訓練的模型類似的效果,遠超過其他 GAN 訓練出來的 LMs。但是實際上除了他的 loss 看起來像 GAN 以外,其實沒什麼特別的優點,還不如用傳統方法 MLE 訓練就好,所以其實好像沒什麼應用面的價值。後來沒能成功在暑期假期間將其寫成論文投稿,之後也因為沒有繼續做 NLP 研究了,就把他擱置了。
感謝 Peter 等同學陪著我討論,並且嘗試各種奇怪的想法,那段日子感覺真的很有趣。因為有了這樣的經驗,終於開始有了信心,覺得自己對機器學習的能力,或許並不像自己想的那麼差呢。若沒有這段期間的爆衝,大概我就會留下遺憾了。但經過這樣一番嘗試之後,覺得自己終於成功了使出了全力,進入了心流狀態。只可惜就算這樣結果還是沒有發表出什麼成果,但這樣也就滿足了,可以往下個目標邁進了。
另一方面,新學期開始後,接下了 TA 的工作,雖然理論上應該會變得更忙碌。但因為本來在頭痛循環下本來就只有約一半的時間可以有生產力,而這學期幾乎 99% 都可以有生產力了,所以似乎也還算忙得來。反而因為當了 TA 跟同學們以及其他 TA 有了更多的互動,因此留下了許多不錯的回憶。
另方面,開始為了求職,進入了瘋狂面試的時期。雖然不是完全順利,像是投 Google 的時候居然履歷關就被拒了,實在十分遺憾。但在一些小公司面試的時候,雖然一些 ML 的問題不像 LeetCode 一樣可以刷題準備,但我似乎也答的不錯,以至於拿到了些許 offers,還有些面試官讚譽有佳。這讓我對 ML 的信心又增添了不少。
在 2017 到 2018 年間,我以 PhD 為目標申請了許多學校,最終選擇了 CMU 的 Master of Language Technologies Program 就讀。說起來這樣的結果實在也不是原本的我所能預期,實際上,最早我本來是想先去當研究助理的,但後來跌跌撞撞的就做了這種選擇。這背後的故事,得從一開始的困境講起。
做研究助理的這個打算,從現實的考量來看,有不少的壞處。首先,這會讓我收入降低的時間拉長,減少我的總收入。再者,如果最後發現我不想做研究的話,那麼不論是要申請 CS MS 還是要直接找國外工作,做研究助理的這個經歷不但沒有幫助,恐怕還只會有壞處。事實上,如果我當時真的想申請 CS MS 或者是直接找國外工作的話,最好是當下馬上就這麼做而不是先去當研究助理。反之,如果最後發現我想做研究的話。雖然如果有好的發表可能真的有幫助,但如果發表很差,則或許還不如直接申請的好。再者,如果打算要發表很多,就表示我應該要在當研究助理的期間盡其所有,全力以赴。但這其實跟想減少壓力觀察身體狀況是直接矛盾的。
但說到底,我實在是不敢在尚未理清自己身體狀況到底為何的情況下貿然去念個 PhD,總覺得大概有九成以上機率根本就念不完。或者更悲觀的想,最糟的 worst case 其實是明明無法唸完,卻將自己困進流沙之中硬要唸完,最終的最糟事態可能是一個糟到必須不顧一切也要避免,足以讓其他衡量標準全部都失去意義的最終極的糟糕事態啊。一想到存在著這個 worst case scenario 就無法下定決心了。
反之,如果只是念個 MS 的話,就算真的遇到 worst case scenario,頂多可能就是休學回台了。至於為何說是個對真實目標稍劣的選項呢。這也不難理解,因為現實的來說, CMU MLT 是一個戰鬥的地方,不是一個用來理清自己疑惑的地方,也不是一個用來休息的地方。而且根據學長姐的說法恐怕也不是一個能好好做研究的地方。假設我是選擇去當研究助理的話,最後結論到底是想不想做研究還能期望有個五五波的可能性,但當我選了 CMU 這個選擇的時候,內心就忍不住覺得,最後的結論大概有九成的機率結論會是不念 PhD 了吧。
雖說如此,但總有那一成的機率或許會突破困難。因為我老是碰到什麼事都先設想 worst case scenario,所以或許能期望事情能比自己想像的更好吧?另一方面,其實就算最後是那九成的結果,其實我也達到目的了。因為我知道那時我應該就會解除對機器學習的遺憾,而能往下個目標邁進了。這聽起來其實有點弔詭,但有的時候,雖然明知會失敗,但還是非得要實際的去失敗一次看看才能甘心。而我想要的也許就是那個甘心而已呢。