工程與研究的歧路

coins

在 2017 到 2018 年間,我以 PhD 為目標申請了許多學校,最終選擇了 CMU 的 Master of Language Technologies Program 就讀。說起來這樣的結果實在也不是原本的我所能預期,實際上,最早我本來是想先去當研究助理的,但後來跌跌撞撞的就做了這種選擇。這背後的故事,得從一開始的困境講起。

冒名頂替症候群

雖然當初在做機器學習的相關工作,但其實那時我對機器學習的認識是相當淺薄的。早期的我一直是走純碼農路線,甚至到了研究所的初期也沒有對機器學習有很深入的了解,甚至也沒有選太多直接跟機器學習相關的課程。研究的項目雖然有碰到機器學習,但其實主要就是做些特徵工程 (feature engineering),而對機器學習的理論沒有太過深入的了解,一直到研究所晚期才對機器學習有了興趣。

然而雖然有興趣,但畢業後就沒有太多時間可以學習了。於是到了要找工作的時候,就試著找找看機器學習相關的工作,想說可以邊工作邊學。相當幸運的居然還真的錄取了「機器學習科學家」這樣一個聽起來彷彿相當「機器學習」的職位。

然而好景不常,雖然原本是想說邊工作邊學,但實際做起來卻一直感覺不到進步。對於各種工作上的需求,雖然最後好像還是有完成。但總有一種不求甚解,不確定做的東西是否真的有意義的不踏實感,挫折感也很強。總覺得自己只是不小心進來了,可能一不小心就會被看穿自己根本就不太行的事實。

另一方面,雖然那時就很想出國。但發現國外的機器學習相關職缺門檻實在很高,加上自己也不太有信心,所以難以想像自己有天能找到國外的機器學習的職位。同時,雖然如果找純碼農機會較大,但如果直接這樣以碼農的姿態出國,或許就一輩子再也沒有時間好好學習機器學習,彌補目前的遺憾了。因此就算真的有獵人頭寄信來邀請,也無法下定決心回覆。

在此同時,身體的狀況也愈來愈差,逐漸失去精神力,使得要做各種決定都變得更加困難。當時的狀況就好像陷入了流沙一樣,就算想要掙扎也只會越陷越深。於是,最後終於下定決心要想辦法走出這樣的困境。

具體的來說,最重要必須解決的問題有二。其一是「彌補目前對機器學習的遺憾」好好學習並找出自己到底適不適合,喜不喜歡做機器學習。假如答案是正向的,那麼就以申請 PhD 為目標鑽研更深,而不是停在目前這個不上不下的尷尬局面。假如答案是負向的,那也不要浪費時間在這種不上不下的局面了,直接轉以碼農為目標,機器學習就改當下班後的興趣就好,徹底放棄在工作中順便學習機器學習了。其二則是認真的花時間去檢視當時的身體狀況到底是怎麼回事,以及或許靜養一陣。以此兩個目的為出發點,幾經考量設計了去當研究助理的這個選擇。思考流程圖可見下表:

decision tree

乍看之下雖然還滿符合內心所期望的各種目標,但遺憾的是做決定的時候除了受內心真正目標的影響,同時也受著外在現實考量的影響。很多情況下,是不敢做出完全依照內心目標的決定的。最好的例子就像是〈理想的生活〉裡折衷的做法:抱著「或許存在著適合自己的工作」的期望,繼續追尋前進:一邊尋找這種工作、一邊慢慢存錢。其實要是可以不受現實考量干擾的話,就算已知這種工作確實存在只是要努力追尋,我也大概懶得去做這種追尋,而傾向直接轉向已知很快樂的生活方式就好。但實際上因為必須考量錢不夠多的現實,所以不敢做這種決定。

做研究助理的這個打算,從現實的考量來看,有不少的壞處。首先,這會讓我收入降低的時間拉長,減少我的總收入。再者,如果最後發現我不想做研究的話,那麼不論是要申請 CS MS 還是要直接找國外工作,做研究助理的這個經歷不但沒有幫助,恐怕還只會有壞處。事實上,如果我當時真的想申請 CS MS 或者是直接找國外工作的話,最好是當下馬上就這麼做而不是先去當研究助理。反之,如果最後發現我想做研究的話。雖然如果有好的發表可能真的有幫助,但如果發表很差,則或許還不如直接申請的好。再者,如果打算要發表很多,就表示我應該要在當研究助理的期間盡其所有,全力以赴。但這其實跟想減少壓力觀察身體狀況是直接矛盾的。

雖說如此,直接申請 PhD 同樣也跟我的目標感覺有某種程度上的直接矛盾,當初到底為何會走到此種地步,實在也理不清。只能說是隨波逐流,將自己困進了奇怪的處境。但最後為何會在錄取的學校裡選擇 CMU 的 MS,倒是很容易理解。因為其實 CMU MLT 就是做研究助理的「困難版本」,或者說是一個對真實目標來說稍劣,但對現實考量來說稍好的作法。同時,這個作法又保留著一定機率可以成功實現原本想達成的兩個目標。他是研究型的 MS,所以或許有機會讓自己理清對機器學習的疑惑。而且,如果最後決定念 PhD,就只要直升就好,不會浪費時間。反之,如果最後決定不念,就只要畢業直接找工作就好,不會浪費時間又還要去申請 CS MS。

但說到底,我實在是不敢在尚未理清自己身體狀況到底為何的情況下貿然去念個 PhD,總覺得大概有九成以上機率根本就念不完。或者更悲觀的想,最糟的 worst case 其實是明明無法唸完,卻將自己困進流沙之中硬要唸完,最終的最糟事態可能是一個糟到必須不顧一切也要避免,足以讓其他衡量標準全部都失去意義的最終極的糟糕事態啊。一想到存在著這個 worst case scenario 就無法下定決心了。

反之,如果只是念個 MS 的話,就算真的遇到 worst case scenario,頂多可能就是休學回台了。至於為何說是個對真實目標稍劣的選項呢。這也不難理解,因為現實的來說, CMU MLT 是一個戰鬥的地方,不是一個用來理清自己疑惑的地方,也不是一個用來休息的地方。而且根據學長姐的說法恐怕也不是一個能好好做研究的地方。假設我是選擇去當研究助理的話,最後結論到底是想不想做研究還能期望有個五五波的可能性,但當我選了 CMU 這個選擇的時候,內心就忍不住覺得,最後的結論大概有九成的機率結論會是不念 PhD 了吧。

雖說如此,但總有那一成的機率或許會突破困難。因為我老是碰到什麼事都先設想 worst case scenario,所以或許能期望事情能比自己想像的更好吧?另一方面,其實就算最後是那九成的結果,其實我也達到目的了。因為我知道那時我應該就會解除對機器學習的遺憾,而能往下個目標邁進了。這聽起來其實有點弔詭,但有的時候,雖然明知會失敗,但還是非得要實際的去失敗一次看看才能甘心。而我想要的也許就是那個甘心而已呢。

說是這麼說,不管在當時,還是現在看來。還是覺得這樣的決定感覺有種作死的意謂。但就算再重作一次決定,似乎也很難找出更好的作法了。就算我能對過去的我訴說最後達成的結論,當時的我如果不自己試試看,還是無法解除遺憾,所以還是得選擇做研究助理或者是直接申請之類的奇怪選項。唯一有差的大概是我可以傳授當時我的身體到底怎麼了的資訊,要是那時的我得知了這個資訊,至少去當研究助理的時候可以比較有信心的以全力以赴為目標,而不用偷塞個不管跟什麼都會造成矛盾的減輕壓力休息一下的目標。

但要是我真的能跟以前的我傳授什麼的話,我才不會想浪費在這種奇怪的地方。最好是直接傳授大學的我趕快挖比特幣,好好的賺個幾億再說。這樣對我未來的影響性恐怕遠大過要不要當研究助理的決定。

研究與工程的歧路

當我說想弄清楚自己適不適合研究的時候,其實有兩層意義。第一層是我做起研究來開不開心,快不快樂,喜不喜歡。第二層則是我做起研究來好不好,我的研究潛力大不大。因為如果很快樂但其實自己不強的話,那多半也不適合把這件事拿來當職業。畢竟我大可選擇當已知成就感和自己實力都在可接受範圍的碼農道路。

說到自己能力好不好這件事,當時因為對機器學習實在沒有太多正統的訓練,所以覺得難以評估自己的研究能力。來了 CMU 以後,上了不少機器學習相關課程,好好的惡補了一番,終於不再有當年那麼強烈的徬徨感了。從一些面試和課程的作業上也建立的不少信心,覺得自己的機器學習能力應該是有進步的。然而,「研究能力」又是另一回事。

雖然這樣的心態或許不健康,但自己的能力好不好常常是跟別人比較出來的。平常在寫程式的時候,不管是以前在學校裡,或是職場裡,抑或是在 CMU 校園裡。常常可以偶爾遇見一些人,在寫程式的時候,其實並不是那麼認真的追求甚解,而是只要成功做出來了,就結束了。也會遇見一些人,明明告知有更好更快的做法,甚至實際展示確實比較好了,他們還是會固執己見不想學新的東西。也會遇到一些人,宣稱技術和工具日新月異,所以沒必要花時間學,不如用心在晉升管理階級上。當自己在認真啃磚頭書的時候,也知道有些人不會,也不想花時間啃這種書,但他們還是能過得還不錯。這種時候就會意識到我們之間存在某種本質上的差異,而只要我一直 exploit 這種差異不斷前進,我們之間的差距就會越來越大。說起來這讓人有種安心感,就算趕不上前方的前輩們,至少知道存在的大量趕不上來的人們,其實也過得不錯,那麼自己應該也能過得不錯吧。

但在研究能力上,這樣的本質差異似乎就不存在了。或者說,如果有存在這種本質差異的話,感覺我好像是那個被鴻溝隔在後面的人。比如說,其中一個很可能跟研究成果好不好有高相關性的基本功大概是「讀 paper」,但我總覺得彷彿大部分的人都讀比我多 papers,但我想要去加強這種基本功的時候,感覺起來很不自然,至少跟啃程式磚頭書比起來還要不自然多了。(當然這是否是本質性的差異還是只是暫時性的現象還有待考究,一部分的我覺得目前我之所以很難專心念很多 paper 恐怕跟 CMU MLT 的設計與自己的個性有某些關聯性,不過這是題外話了。)雖然我因為已經累積了多年經驗所以好像在機器學習的課堂上也常常表現的不錯。但我沒辦法跟後方的人建立起越來越大的鴻溝,在此同時我和前方的人的鴻溝卻彷彿越來越大。另一方面,研究能力跟機器學習能力好像也是兩回事。

想理清這個思緒,就得談到第二個判準,即做研究開不開心這件事。

最近的我漸漸的發覺到,自己的成就感來源似乎比較傾向來自因為自己變強了,所以有成就感,而不是自己做出了什麼好東西而有成就感。假設以職業來做比喻,覺得最好的例子大概就是「運動員」了。運動員平時透過不斷的訓練讓自己「變強」,而最後的比賽,不過只是用來驗證自己變強而已,但其實金錢收入是因為有比賽才存在的。

我不知道運動員的想法如何,但如果是我的話,我絕大多數的成就感來源很可能會來自賽前的那些訓練,以及意識到自己慢慢變強的這個事實。而最後的比賽雖然贏了也有成就感,但其實是次要的。以至於如果沒有賺錢的現實考量的話,就算不比賽其實也無所謂了。

這樣的想法在軟體工程上也有其危險性,例如他可能讓工程師傾向使用高難度的奇計淫巧,導致其他人看不懂。又或者是不斷追求完美不斷 refactor,結果真正的功能反而做不出來。但這些問題多半還在可控制的範圍之內,且就算控制了這些問題,還是能夠有個人的追求的。

但在研究上,或許討論「研究能力進步了」是一件太過奇怪的事,也很難想像有天會說因為做了某某某研究,自己的研究能力進步了。本質上,研究終究是一種發現的過程,其中絕大多數的成就感是來自發現了什麼有趣的東西,而這樣的成就感我也曾體會過,但來自自己進步了的成就感就很少了。或者,也許這是我自己的問題,而非研究的普遍現象。我發現我找不到自己的研究能力的座標,而且也無法衡量自己的研究能力是否有進步。原本我以為是因為對機器學習的經驗太少所至,但目前看來,或許這本身就是一個無法主觀衡量的事。

基於以上的理由,我終究決定不要以研究作為我的主要職涯目標了。(當然這種理由又是一種內在的理由,正常的人可能會選擇使用外在的理由來做職涯的選擇。)不過因為機器學習的信心比起以前更強了,倒也沒像以前那麼極端要完全放棄機器學習的職涯改走全碼農。畢竟,機器學習不過就是工程師百寶箱裡的其中一個工具,要用的時候就好好拿出來用就行了。

當年想完成的兩個目標,第一個雖然總覺得如果當初做了不同選擇,也許會有不同結果,但勉強算是完成了。第二個目標雖然嚴格說起來沒有完成,但也算是大有進展了。反倒是現實的考量,因為疫情肆虐加上各種政策即將改變的風聲,其實我也不知我的未來在哪了。

要是早知機關算盡也無法達成現實的考量的話,也許當初該給真實的目標更多的重量才對。

資產配置試算表

saving

記得最早聽聞資產配置的概念大慨是在 2013 年的時候,所謂的資產配置,指的是透過調整不同類型資產的比例,來適當平衡風險與報酬的投資手段。例如如果把錢全部放在股市裡,則雖然說不定會有較高的報酬,但也可能會有很大的波動性。若把所有的錢都存定存,雖然可能不會有波動性,但說不定會因為報酬小於通膨而導致資產價值穩定減少,所以根據自己的投資目標,應該調整適當比例放置在不同資產中來控制風險與報酬。

雖然大概從去微軟實習後就開始逐漸購買一些股債的 ETFs,不過其實一直以來沒有很認真的在追蹤資產配置的比例。最近因為經濟有很大幅的波動,所以關心起自己資產的人似乎變多了,前途茫茫的我當然也不例外。

只是投資的標的分散在不同帳戶,甚至有些像是 VIVLX 之類的基金,裡頭其實就包含了各式資產。所以除非是 all in VT 之類的,不然要看出目前自己在不同類型的資產到底投入了多少實在是有點困難。

在網路上搜尋了一陣子後,參考 Investment Tracking Spreadsheet 自己改了一份:

主要的功能也很簡單,就是填入自己持有的標的後可以自動更新目前價格和淨值:

holdings

同時產生目前不同資產的比例:

asset allocation

也支援包含不同資產類型的標的:

VIVLX

想說或許其他人也有類似的需求所以就順便放上來分享一下,可自行複製取用,但請不要直接要求原始文件的權限。

理想的生活

coins

「真正的自由不是你能做你想做的事,而是可以不做你不想做的事。」

死前有想做的事嗎?

最近疫情肆虐,人心惶惶。自己也對未來有著越來越不確定的焦慮。朋友間也開始討論起了一些嚴肅的話題。某天一位友人問道,「假設知道自己很快就要死了的話,會有什麼想在死前做的事呢?」本來覺得這種假設性問題很難回答所以想放棄的,不過還是勉強想了一個答案:「假設知道自己快死的話,那麼就可以試著做一些雖然有所回報,但具有高度風險,以至於如果最後自己沒死的話很可能會有各種完蛋了的後果要處理的事。」

「…比如說什麼事?」

扼,雖然或許有許多邪惡的選項,不過就來個最基本的吧:「比如說把自己所有的錢都花光之類的?」

「可是你想用那些錢來買什麼呢?我想過類似的問題,但發現好像沒有什麼特別想買的。」

真是個好問題,一時之間也想不出個解答來。

如果一定要說有什麼想買的東西,那麼最想買的應該是自由的時間吧。而且不是哪種可以花錢加速某些事而得到的零碎時間,而是想要一整塊的,持續的時間。1 假設我想買的是時間的話,那當前提是自己快死的時候,能買到的時間上限其實就已經被決定了,而既然快死,那這個上限多半遠低於目前擁有的錢原本所能購買的總時數。也因此在這樣的前提下,花掉所有的錢就變成毫無意義的舉動。

其實,努力存錢,然後期待有一天終於能購買自己想要的東西,也很容易落入這種陷阱。因為如果壽命太短的話,也許到時就來不及花了。正如之前和友人聊天時,友人所勸告的:

友人:「努力賺錢的目標是為了什麼呢?」

我:「目標提早退休阿,這樣就能自由的做很多事了。」

友人:「可是要賺多少才能提早退休,之前也算過總覺得一輩子也無法達到。」

「老的時候就算想玩,搞不好身體也支持不了。所以才要趁著年輕的時候就多享受一點阿。」

我:「可是如果很早退休就不至於會遇到身體支持不了的情形了!」

「要賺多少的話,我是想說如果利息收入大過支出的時候可能就可以退休了(?)」

友人:「怎麼可能可以利息收入大於支出」

但我總覺得有什麼卡在喉嚨裡無法敘述的,某種模糊的相信如果想購買的是「時間」的話,則想趁年輕的時候多享受一點(即提早購買這些時間),似乎是一件難以達成的事,的理由。

「真的嗎?」

為了回答這個問題,似乎得更清楚的定義自己的目標到底為何。形成了具體的目標,才能看出思考的盲點,並採取更適當的方法到達目的地。

希望能夠長時間的處於最佳的狀態

假設有人突然問我一生想達成什麼目標,其實當然也是有很多種說法可言,例如像是希望發明某種科技,達成什麼成就之類的這種干預外界的目標。又或者是找到某種工作,完成某些學歷之類的階段性目標。但說實在的人生過得越久,就越覺得無法判斷這些原本可能立意良善的干預外界的目標,是否達成了以後真的會對這世界留下好的影響,而不是潛藏著某些壞處。又或者不看世界的話,也無法完全確定這樣的目標對自己的人生職涯到底是好是壞,以至於無法理直氣壯敘述下去。

相反的滿足個人喜好的小目標反而似乎比較能逃過這種理性責難。就像如果有人說他的夢想是有錢的話要環遊世界,實在也沒什麼強烈的動機質疑環遊世界到底有什麼用。又或者有人說他週末想看電影的話,也沒人會問看電影對職涯到底有什麼幫助。

而我自己的,滿足個人喜好的小目標。其實應該是希望,能夠盡可能的最大化經歷在〈眼界、控制、選擇〉一文中所提到的「完全的控制」狀態的生活。

簡單來說,因為對自己的行程與步調擁有完全的控制,所以能自由的透過規劃慢慢建立各種良好習慣,像是特定時間運動,特定時間閱讀,特定時間參與活動等等。並且透過平衡各項事物的時間,而能最大化參與每件事的專注度,從而提高進入心流狀態2的時間總數。例如像是限制每天使用電腦的時間總數好讓眼睛和精神不會太累,限制社交的總量好讓能量可以恢復,學習不同題材,但每一種題材都不要一次花太多時間以至於失去興趣之類的。

這樣的願望跟現實有許多本質性的衝突,以至於真正接近實現的時刻在我的人生中只有幾次。這包含了小時候的暑假,控制與選擇文中提到的交界,以及我在留學前夕短暫的空閒時光。沒錯,恰好都是在完全沒有任何短期責任的時候。這樣的情況其實也不難理解,因為所謂「完全的控制」,原本就是與現實社會的本質完全相反的期望。

社會是變動的,無法預期的。而為了在這社會生存和獲取利益,我們本來就應該學會怎麼處理各種變動。能夠長期的維持完全的控制,那多半是處於跟社會脫節的狀態才會實現。

但除了此之外,現實生活也有許多不利因素,使得即使想在假日進入這種完全控制也是相當困難的。例如像是平常壓力太大的話,放假的時候就會傾向進行釋放壓力型的休閒活動,而無法正常的執行學習型的休閒活動,如此一來就降低了進入心流的機率。又或者是大部分的工作多半必須長時間持續專注在同一件事物上,而不可能用自己的步調適當的切換不同題材而降低彈性疲乏的可能性。就算真的可以不斷切換,多半也會因此降低自己在每件事情的產出,而違反了產出越多,越可能在社會中獲取資源的現實目標。

雖然這世上確實也存在著高度可預期,日復一日的枯燥工作。但因為這種工作本質是枯燥的,不太可能讓我體會到不斷學習的喜悅,也因此和我想不斷維持在最佳狀態的目標有所衝突。

這使得我一直以為要達成這個目標,幾乎只有「退休」,才有可能做到。而如果要「退休」的話,就必須要累積很多錢,也因此就要多多存錢了。

至於之所以很難在年輕時提早花錢購買這種時間,則是因為維持生活步調、適當習慣的累積和調整,是需要時間的。所以如果要用休假來達成這個目標的話,就必須長達幾個月,用前期的時段慢慢摸索建立良好習慣,後期的時候才能開始享受這種生活的愉快。但老是如此長期的休假似乎跟職涯發展有直接的衝突,進而造成退休的時間點延後,以至於進入了無可救藥的矛盾狀態。

當然,我其實是有做某些嘗試來偷偷購買這種時間的,例如像是留學前特別長的休息時段。這當然不是巧合,而是我故意要製造這種不同時期中間的空檔好犧牲收入購買這種完全自由的時間,卻又盡可能減小對職涯造成影響所作的不得已處置。但這種空檔,實在也不是能常常購買呢。因為他實在是太貴了,很可能遠貴於正常人一般購買的物質享受的價格。唯有在已經宣告退休,因為不會工作所以沒有沒有喪失工作的機會成本的時候才可能假裝這一點也不貴。

無法迴避的孤寂

如果要退休的話,有兩種方法能加速達成,其一是存一大筆錢,其二則是減少經常性支出。其中最大的經常性支出除了食物以外,最大的大概就是房租了。而其實要節省房租也不是全無辦法,例如像是跟家人住在一起,或許就不用付房租了。但弔詭的是,其實目前的經驗看來,跟家人住在一起跟最大化完全控制狀態的這個目標其實是衝突的。主要的原因有兩個,其一是老家常常開著電視,其噪音大幅的提高了維持專注的可能性,徒增進入最佳狀態的門檻。其二則是,因為家人常常跟我搭話打斷了我想單獨一人體會最佳狀態的專注。也因此,如果我真的想最大化進入這種最佳狀態的時間,我其實是無法逃避房租,或者是自行購買房屋的費用的。

上述這個有點詭異的理由,其實暗暗指出了一個我隱約理解,但一直沒認真承認的矛盾。

那就是,這種完全控制的最佳狀態,其實非常可能,是一種,只有在單身的時候才可能達成的狀態。

也就是說,如果我真心的把這種狀態當作人生的目標的話,那不只是必須要退休而已,而且很可能我必須要刻意的選擇一輩子單身才行呢。

不過嘛,以目前的狀態來說,就算我不刻意這麼選擇,搞不好也會被迫一輩子維持在單身的狀態,所以或許我可以暫時繼續假裝沒有這種矛盾,並且繼續的等待下去。

保留可能性

是啊,繼續等待著可能性。或許真的存在著某種工作是可以讓我總是任性的待在這種愉悅的狀態裡的吧。或許真的存在著命中注定的另一半,是可以一起走一生,卻又可以最大化這種愉快狀態的呢。又或許雖然這種狀態確實無法與上述兩者並存,但這世間其實也存在著其他值得體驗的狀態,以至於我不必把這種狀態當成最終目標也能好好的活下去呢。但在此同時,也努力存錢,以防上述這些可能性其實不存在,不得已一定要退休才能達成想要的生活並繼續前進。

老實說所謂的努力存錢倒也不是刻意過著刻苦的生活,好期待未來有天的喜悅。而是許多的物質享受對我來說差別真的不大,例如每天僅僅只是吃著為了活下去而吃,雖然不難吃,但是並不特別算是美食的食物,跟每天吃美食比起來,兩者其實沒有決定性的差別。主觀的來說,大部分的這種享受但他帶來的愉悅實在都是沒有勝過處於完全控制時期的喜悅與寧靜。所以我實在是不太想把原本可以拿來購買這種時間的錢花在購買這種無關緊要的事物上。這種邏輯最終導致了外顯的存錢行為。

所以,死前有想做的事嗎?

回到開頭的問題,「假設知道自己很快就要死了的話,會有什麼想在死前做的事呢?」。

仔細想想,想要不斷經歷完全掌握的狀態的這個願望,如果代表的是希望增加對這種狀況的經歷,那確實是會因為死亡而遺憾的覺得不能繼續經歷它而感到難過。但是如果這個願望真正的動機是希望不要繼續經歷不是完全掌控的狀況的話,那死亡其實並不見得那麼樣的令人遺憾。因為死亡除了帶走了經歷此狀態的可能性外,同時也一併代走了經歷其他負面狀況的可能性。

但即使不這麼想,「維持某種狀態」的連續性願望,終究不是一種「想要完成某種事物」一次性願望。所以呢,如果我真的能得知死期的話,在精神狀態還沒被剝奪的前提下,大概也就是先屏除目前身上的所有責任然後一個人靜靜的享受那種最佳狀態直至死去。如果精神狀態被剝奪的話,那其實也沒什麼實不實現什麼事的可能性了。所以認真的回答這個問題的話,我覺得,現在的我確實是沒有什麼非得在死前完成才不會有遺憾的事情呀。未來的我是否會有,就不知道了,畢竟我們要保留各種可能性呢。


  1. 記得以前同事曾說過,小時候為了省錢所以會坐客運,開始賺錢了以後就覺得為了省時間所以坐高鐵。雖然有時也同意這樣的作法,但我的腦袋裡有另一個聲音用了一種奇怪的邏輯來反駁這種想法。那就是,類似這種花錢省時間的情況,省下來的多半是零碎的時間,其實並不真的能被拿來運用在本文提到的完全掌握的最佳姿態裡。可是如果把這些錢改拿來當作付房租或購買基本生存要求的食物,其實可以撐過許多天的。也就是說,這些錢如果用在生命晚期的話其實可以買到數天沒收入也無妨的自由時間。用零碎時間來交換這種完整數天的自由時間,或許是不划算的。 ↩︎

  2. 對心流的偏執在本網誌多有敘述,如〈讀書方法論〉,或者是〈時間企劃〉。 ↩︎

台北和雷德蒙德及匹茲堡的花費比較

coins

以前曾經寫過〈台大資工所與交大資工大學部的花費比較〉,紀錄自己學生時期的花費。時光流逝,年紀又增長了不少,也以不同的身份住過了許多不同的地方,消費習慣也有了巨大的轉變。於是就想再來紀錄一下各地的花費,以提醒自己多注意消費狀況一些,順便也給一些想出國追尋夢想的朋友一些預算的參考。

雷德蒙德的平均月開支

總是聽說國外雖然收入高,稅和花費也高,所以在台灣存錢比較快的說法,但一直到自己親身前往雷德蒙德生活了三個月後才有了實際的經驗。

當時是住在一個雅房裡,房租三個月 $1950 USD,交通費因為有公車卡的關係,只有去回的機場交通用了 Supershuttle 共 $100,花在吃飯上則是 $680,其他購買食物和生活用品花了 $705。或許因為第一次有了那麼多的收入,所以也亂買了一些技術書籍以及一台 Kindle,共花了約 $250。(其實當初還有付保險費,不過因為其他時期也沒有算入保險,故忽略此部份。)

於是,一個月的平均如下:

開銷類別 月平均金額
房租 USD$650.00
交通 USD$33.33
餐費 USD$226.66
日用品 USD$235.00
Kindle USD$83.33
總和 USD$1228.33

可以看到,就算交大生活期間的花費包含了教育費和矯正牙齒的醫療費,在雷德蒙德的平均月開支依然是交大時期的 2.7 倍左右,台大時期的 2.1 倍左右。如果去除教育費和醫療費的話,則約為交大的 5.5 倍及台大的 3.8 倍(註:因為當初記帳時交大的住宿費跟教育費混在一起,所以交大的部份不含住宿費,故倍數估計可能偏高。)

雖然實習也有收入,但在扣掉了龐大的稅以及開支後,最後離開該地時,只剩下大約 $14,000 的存款。

那時為了避免國際匯款的手續費,就決定不跨海匯回,而是全數留在當地,但當地銀行利息實在太少,所以只留了能夠避免帳戶管理費的最低存款,其餘則買進了像是 VTI 和 VEU 之類的 ETFs,以期能賺取微薄的股利。

雖然 $14,000 連 CMU 一學期的學費也付不起,但放在當地的這份資金,後來就成了最初始的圓夢基金,為以後的方向定下錨點。

台北的平均月開支

因為工作後期為了留學花了大量的金錢進行學校申請和考試等等,為了避免偏誤,這裡就用工作第一年的花費來做計算。

那時為了省錢累積圓夢基金,是住在吳興街的老舊雅房裡,房租十二個月 $60000 TWD。交通費也利用減少旅遊和回家的方式,降到了 $3000,主要是在回家時使用。吃飯的部份雖然常吃有食安問題的 $50 便當,但還是花了 $50000,此外還有 $14000 花在了日常用品和婚喪喜慶上。因為常看病,所以也花了 $1500 的醫療費。買書則花了 $1600。或許因為終於出社會有自己的收入所以也亂買了一些像是新的桌電、平板,和 Netflix 之類的網路服務,就花了 $44000。最後因為持續投資,所以也產生了國際匯款費和手續費約 $3000。(註:這裡略過了勞健保的花費。)

於是,一個月的平均如下:

開銷類別 月平均金額
房租 NTD$5000
交通 NTD$250
餐費 NTD$4166
日用品 NTD$1166
醫療 NTD$125
買書 NTD$133
3C 相關 NTD$3666
手續費 NTD$250
總和 NTD$14758

可以看到,出社會後雖然沒有學費,但顯然因為收入增加,而使得消費水準也跟著上升了,尤其在 3C 相關花了不少費用,以至於跟含有教育費和矯正費的學生時期總花費相差無幾,大約介於交大與台大時期的中間。在雷德蒙德時期則約為台北時期的 2.6 倍。(註:此一小節皆為台幣計價,但本文其他地方皆為美元計價。)

匹茲堡的平均月開支

在匹茲堡滿了一年後,以 12 個月來計算。

在匹茲堡時由於預期學費十分昂貴,所以是選了住在客廳裡,當個廳長。房租十二個月約為 $6940 USD,交通費目前花了 $820 (這包含了尚未使用的來回機票,但不包含一開始的單程機票)。外食一共花了 $470,但採買食材共花了 $2240,日常用品花了 $970,醫療費 $200,書錢 $30,網路電話水電瓦斯之類的雜費花了 $850。因為手機壞掉以及持續亂買 3C 產品和一些線上訂閱,所以又多花了 $1500。(註:保險花了 $2720,不過因為其他時期也沒納入,所以不算入最後平均。)

註:之前誤把一些初期生活用品記入了食材的項目,修正後食材費用下降,而日常用品上升了。

於是,一個月的平均如下:

開銷類別 月平均金額
房租 USD$578.33
交通 USD$68.33
餐費 USD$39.17
食材 USD$186.67
日用品 USD$80.83
醫療 USD$16.67
買書 USD$2.50
雜費 USD$70.83
3C 相關 USD$125.00
總和 USD$1168.33

雖然亂買 3C 的程度超越雷德蒙德,但花費似乎稍微低於雷德蒙德一些,不過乍看之下這似乎單純是因為雷德蒙德只有短期的三個月,是以初期購買的日用品以及交通費平均下來顯得高了一些。令人意外的是雖然自己煮,可是餐費與食材居然還是相當於雷德蒙德,大概是因為當初都吃公司的午餐,而晚餐又常只吃生菜沙拉的緣故。又或者是來自日用品和食物兩者記帳並不總是分得很清的關係。尤其雷德蒙德時期的日用品也包含了部份的食物。

由於有 Stipend 的關係,扣掉稅和開支後,一個月還能存差不多 $1000,然而因為一開始沒有找到 funding,故付了部份的學費共達 $7000 左右,所以加上保險的花費,要連存 10 個月才終於達到收支平衡。而下個學年究竟是否能持續維持 funding 也還是有微小的變數。若是沒拿到學費減免,一個學期的學費就得付出 $22,500 左右,實在是難以安心下來。

結論

整體來說,身處國外,開銷確實大過台北不少,大約會是 2.6 倍的開銷。然而,這樣的開銷,也帶來了生活水準的提昇。像是現在雖然是住在客廳,空間卻遠比台北的小黑屋大多了。除此之外,在台北的時候總是吃一些可能有食安問題的 50 元便當,相當顯著的,在當時拉肚子或者腸胃不舒服的狀況遠比現在還多。若是以後回到台北,應該還是會改成自己煮,不會再繼續食用可能有食安問題的 50 元便當了。

15-780 - Graduate Artificial Intelligence – CMU 修課心得

ai

課程資料

15-780 - Graduate Artificial Intelligence

開課:J. Zico Kolter, Nihar B. Shah

修課年度:2019 Spring

這個課程主要是介紹 AI 領域,並挑選一些有趣的主題深入探討。因為其他的課也有像是機器學習之類的深入內容,所以這門課特別挑了一些比較不同的主題來介紹。

課程的開頭先從基本的 search 教起,並介紹了 A star 搜尋演算法。之後開始深入介紹一些 optimization 課題,包含 convex optimization 的觀念、Linear Programming 以及 Integer Programming。在那之後進入一般的 Machine Learning、Deep Learning 以及 Learning Theory。接下來則介紹了一些 Probabilistic Modeling 的概念,像是 MCMC,以及 Adversarial attacks

後半部課程則深入講了許多 Game Theory 的概念,是筆者先前比較少了解的。此外也探討了一些 Social Choice 的課題,像是投票制度的數學性質等等。最後則稍微帶過了使用機器學習時要如何保持公平性的議題。

上課方式

兩名講者的講課方式稍有不同,第一位主要是用簡報講解,第二位則是使用黑板講解。上課的時候會有隨機小測驗,不管答對與否都能得分,以作為點名之用。

比較特別的是這堂課採用了一個叫做 Diderot 的系統作為繳交作業和討論的平台,而非使用較為常見的 Piazza 或者 Canvas。

考試作業

考試的部份除了平常的小測驗以外,還有一次期中考和一次期末考。難度感覺比機器學習簡單,不過也是有一定難度。考前會公佈考古題,但題目其實都不太一樣。考試是閉卷考,所以不能參考資料。

主要的作業有四個,還有一個團體期末 project。

作業的部份也是主要證明解題,加上一些程式題。證明題的部份比機器學習簡單,程式題的部份比機器學習難一些,但基本上不算複雜。

分組的期末專題可以自選任何主題,但需要與課程內容相關。需要繳交一開始的 proposal,期中報告,期末報告,和錄製 4 分鐘的報告影片。值得注意的是專題的佔分還滿高的(30%),期中期末考加起來只有 20%。

結語

整體而言感覺是學到許多有趣東西的課,作業的部份難度適中,寫起來還算有成就感,也不至於花去太多時間,給分也相當不錯。對筆者來說比較新鮮的部份是 Game Theory 和 Social Choice 之類的主題,還有像是 optimazation 的部份也學了不少。或許可為未來進修進階 Convex Optimization 課程打好基礎。筆者覺得算是值得一修的課。

10-701 - Introduction to Machine Learning – CMU 修課心得

computer

課程資料

10-701 - Introduction to Machine Learning (PhD)

開課:Pradeep Ravikumar, Ziv Bar-Joseph

修課年度:2018 Fall

這是一門非常數學的課,基本上就是以數學的角度來介紹機器學習這個領域。

一開始先從機率的角度切入,像是介紹一些 Bayesian Estimation; MLE; MAP 等等基本概念。然後就開始介紹各種機器學習模型:kNN; Kernel regression; Linear regression; Regularized, Polynomial, Logistic Regression; Decision Trees; SVM; Neural networks 還有像是 Ensemble Methods 等等。

上面說的比較多是 supervised learning,但也會提到像是 clustering、PCA、ICA 等等非監督或者是特徵轉換的方法。也有說到一些 learning theory 像是 VC-dimension 不過沒有講的非常深入。

最後則會把重點放在 Graphical models,像是 HMM, CRF, Bayesian network,還有講到一點點的 Reinforcement Learning。

上課方式

因為想修這堂的的人非常多,所以筆者只選到線上版的課程。雖然是線上版,不過還是要在上課時間上網看即時的轉播。講者會在上課途中隨機使用 Piazza 舉辦小測驗,用來計算出席分數,雖然即使答錯也有分數,不過筆者還是很認真的聽講並作答。但有些題目真的也有點困難。影片因為會錄下來,所以事後也可以複習。

上課主要就是使用投影片來講解。這學期是兩個老師合開,所以不同的主題會是不同的老師來教。

除此之外還有 recitation sessions,不過筆者通常沒去。而期中期末考前,會有一起解考古題的複習課程。不過實際上考出來的東西跟考古題根本不太一樣。

Piazza 課程討論區,平常有很多學生發問,助教也通常很快回答。作業則是透過 Gradescope 繳交。

考試作業

除了上課時的隨機小測驗有答有分外,還有一次期中考和一次期末考,是開卷考試。但難度算是相當困難。筆者或許是太久沒考試了,所以在期中考考了非常差的成績。幸好其他的部份還能補的上來。

作業的部份有四個,都是數學證明為主,但也有一些小程式。會提供 LaTeX 模板,然後最後要上傳 PDF。

整體來說程式的部份非常簡單不太花時間,但是數學證明就會花掉大量的時間。而且也頗有難度,所以並不容易拿到滿分。實際上筆者覺得這門課算是作業滿重的。

除了考試作業以外,最後還有一個分組 final project,從一些指定的主題當中選擇。筆者是選了 lip reading。Project 的部份感覺只要有花心力就能拿到基本的分數,並不要求做到有研究價值的 novelty。所以其實筆者在這個分組作業上也沒有花太多的心力。主要是要繳交一份報告,以及製作海報並向助教講解自己所做的東西,而不用繳交實際的程式碼。

結語

說起來筆者一直都沒有非常正式與完整的學習機器學習,當初只有在 Coursera 上上過了幾堂課而已,所以這次算是終於完整的複習了一遍基本的概念。感覺在機率性的解釋上終於有了比較好的理解。

有些部份其實覺得台大的機器學習基石技法講的比較詳細和容易理解,尤其是 SVM 的部份,考試前筆者還是用了以上兩個影片來惡補一番概念。

評分上,跟 Machine Translation 機器翻譯比起來,感覺這是一堂很可以拿到 A+ 的課。只是筆者期中考的太差所以其實也沒有拿到。

因為評分的項目非常的多,加上數學證明也很花時間,所以整體上這門課吃掉的時間應該是比 Machine Translation 還多了不少。

11-731 - Machine Translation and Sequence-to-sequence Models – CMU 修課心得

computer

課程資料

11-731 - Machine Translation and Sequence-to-sequence Models

開課:Graham Neubig

修課年度:2018 Fall

上課的內容可以在課程網站上找到:Machine Translation and Sequence-to-sequence Models

主要是介紹各種 deep learning 在機器翻譯上的技巧和應用,不過也會介紹一些比較傳統的機器翻譯方法。

主題包括一開始基本的語言模型Seq2Seq 架構、Attention、Self-Attention 和 CNN 等等。後來則有各種情境的訓練方法,像是同時進行多種語言的翻譯,如何處理資源稀少的語言,如何使用沒有標記的資料增進模型的效果,Subword 模型等等。

上課方式

筆者上的時候,講者會在每次上課的前幾天放出上課的講義。然後每次上課就會考一些簡單的關於該講義的題目,確保大家會預習。

上課的時候就直接使用該講義聊聊相關的話題,或者一起看一些相關的論文。感覺相對於事先設計簡報的課程,稍微比較沒有組織一些。但課程內容會引入許多新鮮的論文,所以能夠學到一些最新的技術。

有 Piazza 課程討論區,不過平常幾乎不太有人在上面發問。作業程式碼則是透過 GitHub 繳交。

考試作業

考試的部份就只有每次上課前的小考,通常是只要有看講義就答的出來,是屬於比較偏知識性的考試,而不會有數學計算之類。不過也有時候會碰到不太確定答案的問題。幸好會把最低分的幾次考試去除計算,所以小考要拿滿分應該是有可能的。

主要的作業有三個,都是團體作業,所以一開始就要分好組別。

第一個作業是實做基本的 sequence to sequence 模型來進行機器翻譯。助教會提供基本的程式架構,但實做基本上都要自己來,也不能引用現成的程式碼。

筆者修的時候因為之前沒用過 PyTorch,也沒實做過語言相關的 deep learning 模型,所以第一份作業花了不少時間。

第二個作業每次好像都會是不同的主題,筆者當初修的時候是沿用第一次作業的機器翻譯模型,去處理資源很少的機器翻譯。主要就是實做一些論文裡提到的方法,透過較多資源的語言來幫助較少資源的語言。

因為其實沒有指引實做哪種比較好,而且同樣不能引用已經存在的程式碼,所以能不能達到較好的效能也有一點運氣的成份。雖然我們是以基本的 LSTM 模型做為基底,但後來發現其他效能很強的組別大多都實做了 Transformer

最後一個作業其實就是 final project,可以做任何跟 seq2seq 有關的主題,同時也可以引用任何已存在的程式碼,基本上就是當作像正常在做研究寫論文一樣。我們這組是嘗試使用了 Capsule Networks 來進行機器翻譯。整體上來說其實花的時間反而比其他作業少,或許是因為期末太忙加上沒有明確評分規定,所以就自動放鬆了。

每一份作業都是要繳交程式碼和一份報告,不過期末 project 還要做個海報然後在某個時間和同學分享。因為作業會用到大量的 GPUs,所以也會分發一些 AWS credits,不過筆者的經驗感覺這些 credits 有點不夠,如果不是實驗室也有 GPUs 資源,或者是自己有 GPUs 的話,可能修起來會有點辛苦。

結語

事後回顧,雖然當初修起來有點崩潰,但其實若不是因為對 Seq2Seq 模型沒有任何實際的經驗,作業本身其實也不是太複雜。感覺若能事先寫過簡單的專案,應該能更加游刃有餘。

尤其,雖然不能引用其他人的程式碼,但是卻可以引用自己以前寫的程式碼,所以如果早就寫過 NLP 的相關應用或者就是做過了機器翻譯的專案的話,作業一和二或許是可以迅速完成的。而如果以前曾經自己實做過 Transformer,也會有相當大的優勢。

另外就是,由於是分組作業,所以難免有些溝通和協調的事情要煩心。可能也是當初覺得崩潰的原因之一。但或許也有人很喜歡分組作業也不一定。

評分上,感覺其實有點硬。雖然如果要達到 A 還算可行,但最後的 project 因為是當成真正的研究在評分,所以除非真的做了非常 novel 的東西,不然幾乎是難以得到 A+ 的。

在課程中能夠接觸到許多最新出來沒多久的論文,若是對機器翻譯有興趣,應該相當有幫助。同時透過實做,學到了機器翻譯的基礎技術。不過因為很多主題都是很快帶過,所以比較不像大學部的課一樣會很有組織的習得知識。而比較多自己摸索的部份。

整體來說,筆者在這堂課最大的收穫大慨是練習了很多 PyTorch 在 NLP 應用上的實做和實際訓練。對第二學期之後的學習有很大的幫助。

選擇興趣還是選擇前景?

play

「本來大一讀外語,但後來考慮到出路與前景,工作被取代機率高,還有家裡經濟等因素,就下定決心轉系了!」

如果只是靠著「因為讀外文會餓死,所以我要轉CS賺多一點」這種心態學程式,很容易在遇到瓶頸時因為無法突破而想放棄。

〈Re: [請益] 轉到資工不太適應〉

總記得我大學的時候好像還覺得興趣最重要,如果沒興趣就別讀資工不如選其他的領域,才能讓自己發光。可能還在 BBS 上筆戰過這個話題。

不過出了社會以後才發現,其實老是說興趣,實在太不現實。就像如果有人的興趣是旅行的話,根本也不見得能用這個興趣養活自己。更深一層的是就算可以養活自己,一旦這個興趣真的變成工作的時候,其實會有一定機率他就不再那麼有趣了。

比如說像是這篇舊文〈[閒聊] 興趣最重要?〉說的: 「這些當時我們都覺得是『興趣』所在的,有一天它變成了『工作』,似乎已經不再那麼有趣了…」

然而像當時一樣不太知道世界法則的狀態,其實在各種方面來說也很幸福呢。

雖然偶爾也會想勸告沒興趣的人們,應該離開尋找自己的天命。

但其實真正的現實是,很多其實沒興趣的人,在該領域的成就還是能勝過很多覺得自己有興趣的人。因為那些覺得有興趣的人,很可能在許多人生抉擇上,選擇了更符合自己的興趣,而不是更有發展性的路。理解了這點以後,就不太敢因為別人宣稱沒興趣,就鼓吹他轉領域了。因為搞不好他反而最後發展得很好啊。

能夠做自己興趣的工作,該是多麼幸運的事。但即使有幸找到這種機會。也常常會讓自己陷入兩難之中。

因為萬一做了有興趣的工作才發現即使自己投入那麼多,還是無法達到好的表現。或許也會因為太過在乎而挫折很深。如果是自己本來就不是很在意的領域,說不定遇到挫折,也比較不會難受。

以前還曾想過,若要低成本的實驗看看這個假說的方法就是去打工,然後打工的時候做得很不好,被老闆罵到臭頭。再來觀察自己的心理反應。不過最後也沒什麼時間進行這個實驗。

再來,就算待在有興趣的領域,也會有很多同領域中的職涯選擇,表面上看起來會是在快樂和發展之間的抉擇。

而當你想選快樂的時候,就會幻想社會有各種「應該要有上進心」、「要有國族大義」、「要有養家的責任感」等等之類的責備。使得就算其實你的物慾很低,還是忍不住選擇了相對而言可能稍微不快樂一點,但卻比較符合正常價值觀的路。那麼就讓自己陷入矛盾之中。若要選的是前途,為何待在有興趣,卻不是最有前途的領域呢?若要選的是快樂,為何卻做出實際上不快樂的職涯選擇呢?

不過也許許多選擇本來就是折衷,要維持完全的一致性,也是件難事。

而到底哪種選擇比較好,可能是見仁見智。

只是以前的我總是幻想,只要選快樂的那條,自然就會因為投入很多,最終同樣到達較有成就的結果。

但現在的我卻不那麼確定了。

需要很大的勇氣才能夠在知道無法達到較有成就的結果的情況下,還是不畏他人眼光而選擇快樂的路。

而反過來選擇即使不快樂,也不畏困難繼續堅持工作而達到成就,也同樣需要勇氣。

其實說起來有的時候會很佩服以前一些在及格邊緣,挫折很深,卻始終沒有放棄最後終於畢業的同學。如果是我的話搞不好早就太挫折而放棄了。

想想更大的困難或許是許多情況下人根本不知道自己真正喜歡的事物是什麼,但全部通通試一試又太花時間了。就算有人跟你宣稱全部科系都讀一遍大學就有百分之 90% 的機率找到你喜歡又有工作的領域,在讀完前也早就破產餓死了。

而工作中的各種職涯選擇更難得知會有什麼結果了。於是在各種矛盾之中,也只能以已知的線索做決定,並且看看會發生什麼事,同時繼續前行了。

墜落並重來:記 2018

bud

彷彿世界上並沒有雨過天青,努力克服難關之後其實並不會迎來柳暗花明。難關的背後只是另一個難關而已。

探索道路的小孩

腦海裡閃過千頭萬緒,一方面的自己想出去看看世界,另一方面的自己卻也想過,如果這症狀是用電腦引發的話,那離開資訊產業也好的念頭。說起來生存於世實在有著太多矛盾。但當一切塵埃落定,有了空閒時間的我,終於能夠把弄清楚這個病到底是什麼,當成最高優先的事項。

至少,這次請讓我知道自己面對的到底是什麼吧。

我來到神經外科看診,醫師問完診後幫我照了頸部 X 光,說我可能是長期用電腦姿勢不良,所造成的頸因性頭痛。並開了一些肌肉鬆弛劑之類的東西。於是在那之後,我也買了新的螢幕,不再低頭使用筆電。

只是看診完,頭痛並未完全消失。而且這個病因很難解釋,為什麼理論上比較常用電腦的工作第一年,頭痛頻率反而比碩班期間少。如果是壓力引起,也同樣無法解釋為何其實壓力不太大的碩一期間頭痛頻率還滿高的。

同時我還是隱約覺得這說不定不完全是所謂的「頭痛」,因為更困擾的其實是動力低落、無法專心、無法努力的無力感。

這時我也想到,既然連感冒的解釋都能推翻,那麼我也不見得要接受最早的「過敏」頭痛跟來台大以後才開始的反覆頭痛有任何相關。也就是說,假設這是獨立事件的話,我應該可以重新分析來了台大以後到底發生了什麼事,來得到新的解釋才對。

翻開記帳及一些筆記紀錄,回頭看來台大之後發作的時間點,當時特別的事情包含了,我正在做根管治療,以及,我在那時剛好換了一副眼鏡。前者大概也不能反悔,後者倒是可以實驗看看換回來會如何。只可惜測試將眼鏡換回來一陣子之後,似乎也沒有減低頭痛的發生機率。

5 月 1 日,趁著勞動節有空,我又再找另個醫生看診了一次。這次把自己頭痛的紀錄也完整帶上,仔細說明病情。醫生聽了以後說如果那麼頻繁的話,應該要吃預防頭痛的藥,於是就開了 Flunarizine。然後同時安排了腦波和抽血檢查。

腦波和抽血檢查都沒檢查出什麼。且第二次看診時我恰好不在頭痛期。所以後來醫生也沒繼續開藥,就讓我回去了。

這時趁較有空,我也啟動了新的時間企劃,強迫自己每天都要運動,以及做一些頸部的復健。

只可惜頭痛的現象並未趨緩。由於當時我已經轉移了居住地,所以又看了不同的醫生。這次的醫生看了以前的 X 光說,看起來應該不太可能是頸因性頭痛。反而比較可能是偏頭痛,或者是緊張性頭痛才是。

結果這次同時開了 Flunarizine、肌肉鬆弛劑、以及某種止痛藥。雖然實際上我的「頭痛」一點也不「偏」,然而這次的藥倒是有立即解除症狀的效果。而且,吃完以後,確實能撐一個月直到再次發作,然後或許就再吃一循環再壓制一個月或許就行了。

回去問了父母,似乎在過往也曾有過頭痛的毛病,直到中年才消失。

所謂的偏頭痛大概是種無法根治的病,但理論上只要我當藥罐子不斷的用藥物控制直到中年,好像就會沒事了。或許這就是我的終局了,可是問題是,我就要離開有全民健保的地方啦。雖然理論上可能還是能看診。但仍然疑惑,未來,究竟要怎麼不斷的用藥物控制呢?

無國可回的小孩

乖乖的吃了藥把症狀壓下去,然後帶著巨大的不安,離開自己的國家。

接下來,到底會發生什麼事呢?

令人意外的是,我進入了這數年來最長的清明期。

從台大開始這麼多年以來少數能多個月清明的時刻,除了此時此刻外,就只有當年去微軟實習的時候了。

這其實是很奇怪的,去微軟實習的三個月,其實是使用電腦特別頻繁的時期,理論上姿勢應該要更加不良才是。發現這件事後,又仔細了研究各種頭痛的日子,發現不只是那時而已,乍看之下只要是出國的時候,不論是去面試、還是參加研討會,似乎頭痛的頻率就會降低。

然而根本沒有任何理性的理由可以合理解釋。

其實就像猜測是過敏、還是感冒、還是換了眼鏡、還是頸部造成了這種現象一樣,所有的猜測或許都沒有意義。或許僅僅就是基因的開關照著時鐘打開又關閉。完全無法阻止或預測。而所有的觀察與假設最後都是毫無意義的。1

但是就算真的基因的時鐘才是真正的原因。只要再有一次如此恰好的在我回國的時候時鐘又轉入生病的狀態。我肯定會義無反顧的選擇再次逃跑吧。去哪裡都好,再怎麼樣也要試試。在這麼想的瞬間我才發現,事到如今,說不定我已經不只是無家可回的小孩,而是無國可回的小孩了。2

掙扎前行的小孩

然而相反的情形也是成立的。如果我人在國外重新發作了,而又找不到適合的藥物控制的話。那就只能乖乖回去當個藥罐子度過就好。這也已經不是什麼決定,而只能是必然了。(雖然理論上如果我以前可以硬撐個幾年,現在我應該也可以才是?)

而這樣的擔憂,終於在 2018 年 10 月成為現實。

熟悉的頭痛又回來了。

但為什麼是現在呢?如果是在 8、9 月就襲來,或許在找不到 funding,被提醒如果立刻放棄學籍就不用繳費時,就會心灰意冷的離開。但如今頭已洗到一半,實在也難以中途而廢。

先趕緊到了保健中心看診,幸好因為有保險的關係,在保健中心看診其實是不用錢的。只有藥費須負擔。醫生聽完了過往的描述後就開了另一種叫做 Verapamil 的跟 Flunarizine 相當類似的藥。只可惜吃了以後似乎不僅沒有明顯的改善,還產生了一些副作用,最後只好停藥。醫生於是再將我轉診至 UPMC 的頭痛中心。

這時心裡的掙扎實在難以承受。發現思緒清明的時候勉強還能應付生活上的挑戰,但一進入頭痛的週期,就強烈的想要逃避。好想乾脆放棄一切,不再前進。

為了看診,這次我又做了更詳細的頭痛紀錄。

同時我也注意到一些事情,那就是,其實在得到頸因性頭痛診斷,服用肌肉鬆弛劑之後,有長達一個月的時間是沒有頭痛的。同時,那個月其實也是出國的頻繁期,所以當初以為是出國的效果,搞不好根本只是藥物作用而已。(雖然無法解釋更久遠的微軟時期為何碰巧比較好轉。)同時,在那之後服用 Flunarizine 的時候看起來完全沒有效果,但之後通通服用時又有了效果。而最後在保健中心服用 Verapamil 時又沒有效果。這似乎說明了,搞不好真正有效的藥一直以來都只是肌肉鬆弛劑而已。所以「偏頭痛」其實也不是真正的病因。

或許還是有機會找到控制情況的方法的,這樣告訴了自己。

經過一番等待,終於到了看診的時刻。幸好因為有保險的關係,除了藥費以外看病一次只要收 $25 USD 即可。

醫生聽完敘述,覺得比較可能是緊張性頭痛,誘發的因素除了姿勢不良以外,還有像是焦慮和壓力都有可能。仔細想想我的個性確實也是頗為焦慮,或許有那麼一天會為了解除頭痛而選擇比較輕鬆的生活型態也不一定。但現在,先試試藥物吧。

又開了一種低劑量的肌肉鬆弛劑,改成每天都吃連續吃一個月,然後再停藥看看多久會復發。中途如果復發的話,則使用 Naproxen 這種止痛藥。

使用了這種組合後,雖然頭痛沒有完全消失,發作頻率確實降低了。原本每隔一週就要發作一週,現在好像還能撐個兩週才發作幾天。而服用完一個月停藥後,也確實能超越數週沒有復發。

或許,這個長達六年的鬧劇,終於來到了一個段落,就在這個異鄉。

接下來,理論上只要繼續服藥,就能控制了吧。

不安期待的小孩

雖然有人喜歡說,打不倒你的,能讓你變得更加強大。但現在的我無論無何都無法相信這種說法。有時候苦難就只是苦難而已。他根本不能讓你學到什麼。

總覺得如果沒有這些苦難的話,現在的我或許早就到了某些更好的地方,而且心理上也不會如此千瘡百孔。不得不承認,現在的我,已經無法像經歷這一切之前的我一樣積極了。

看了這些年來紀錄的生病總數,566 天。

如果這些日子是清明的,所能做的事會有多少呢,愈想就愈覺氣憤。

如果真的學到了什麼的話,大概就是健康真的很重要,他可以覆寫掉大部分的現實。

前幾年其實日子也不算不順遂,在最高學府上學,後來又順利工作有了一份不錯的薪水,可是對未來的絕望卻與日加深。

現在不僅失去了優渥的收入,同時對未來的道路也抱著極大的不安。

記得一開始找不到 funding 時,看著昂貴的學費,總覺得格外諷刺。如果當初我向上天祈求的真的是能在清明的狀況「重來」一次的話,在各種意義上或許他真的被實現了,包含經濟上的重來。3

你想要的是什麼,只有留學能給你嗎? (千萬別把留學當作某種人生重來槍)

〈Columbia CS PhD〉

然而現在的我卻重新學會了盼望。也許現實不會完全順遂,但如果是現在的我的話 – 如果是大學時代的我的話 – 肯定可以的,肯定可以在未來時機到來之時,再次燦爛。

「好不容易從上天重新拿回了努力的資格,那就再戰一次吧,在還可以戰的時候。」這樣對著自己說。然後忍住當前的不安,繼續前進。因為除了前進以外,好像也別無他法了。

重新出發的小孩

雖然理論上應該可以正向的思考。實際上卻難以忽略持續的不安。

記得來到這裡之前問著學長這裡的生活如何,大家總是說著這裡是如何的崩潰與辛苦。當時的我只想著,再怎麼崩潰,可能都不會比當時的我還崩潰了。

大致上那樣的想法是對的。理性上來說,現在的我的崩潰程度確實比起那時來說低的多了。原本對於不斷下降的未知感到恐懼,現在至少知道能夠得過且過的忍受下去。雖然有很多挫折與懷疑,但也有更多時間讓自己學習。

但是認知以前比現在更糟,其實根本不會讓現在變得更加容易。打不倒我的,其實根本沒讓我變得更加強大。彷彿世界上並沒有雨過天青,努力克服難關之後其實並不會迎來柳暗花明。難關的背後只是另一個難關而已。

至今還是不明白來到這裡到底是不是個好的決定。但是如果當初沒有踏出腳步的話,實在也難以想像繼續維持那種下降的循環到底會發生什麼事。

但總覺得人生的選擇除了當初的狀態,和現在的狀態,應該要有其他的路才是。

其實,這六年的時間裡,要是任何一刻的我更積極一點的,往正確的方向求醫的話,或許就能提早避開下降的循環。而或許這段人生的路途以及記憶就會跟現在完全不同了。

可是事到如今持續回想也沒有太大意義。當時的我看不見的道路,現在的我,是否能看見呢?如果能保有現在的清明的話,或許終究能找到自己的路也說不定。只能這樣盼望了。

系列文章


  1. 說起來我實在有太重的工程師思維,總想著不斷試誤就能看穿事件背後的原因。其實用在人生上根本難以成立。見:〈醫師、工程師、科學家的解決問題方法差異〉。 ↩︎

  2. 理論上這個假說是可以透過實驗測試的,比如說我可以一年住國外,一年回國,然後重複數十次實驗。然而實際上這麼做會耗費的資本實在太大以至於根本不可能無聊的去做這種奇怪的實驗。 ↩︎

  3. 「只要你真心想做一件事,全宇宙都會來幫你」,所以說祈願時要小心自己的願望是什麼啊。

    下圖是以季為單位,比較如果不算入勞健保稅等因為收入而增加的花費的話,各季跟最右邊留學第一季的花費。可以看到因為第一學期學費就很昂貴的關係,留學第一季的花費遠大於從前。事實上大概等於從前平均起來三年多的花費了。由於這樣的花費差距而心生畏懼也是情有可原。不過還好筆者事後還是有暫時得到一年研究助理的經費,可以取回第一學期部份已付的學費。

    expense
     ↩︎

一些使用 GnuCash 記帳的方法

saving

之前寫過一次〈用 GnuCash 為自己記帳〉,不過一些記帳法並沒有寫的特別詳細,加上後來又學了一些新的記法,便以此文稍微記載一下。

原本習慣用手機紀錄每天的花費,然後週末再登錄進去 GnuCash,不過來到異國後,幾乎沒有使用現金,信用卡的紀錄都可以直接用信用卡軟體找到,所以漸漸的就主要只使用 GnuCash 記帳了。

多重幣值

當初會使用 GnuCash 的原因之一,就是為了方便的處理多重幣值記帳的管理。首先我們可以在需要紀錄不同幣值的科目底下建立多個子科目,例如「現金」底下可以設立「美元」和「台幣」。「支出 > 吃飯」底下則可以建立「吃飯 - 美元」、「吃飯 - 台幣」等等。

只要更新匯率轉換表,就會如下自動轉換計算資產的總金額,相當方便:

GnuCash Currency

在科目中紀錄消費,可以從對應的帳戶轉進:

GnuCash Currency Expense

或者也可以從不同幣值的帳戶互相轉換,但轉換時就要指定匯率。例如若我們在台幣帳戶設定匯款台幣 100000 到美金帳戶,並設定換匯成 $3241.81 就會在美金帳戶看見增加了$3241.81:

Currency Exchange
USD Account

薪水、扣稅

紀錄薪水的入帳則可以利用「分割交易」的功能,將扣稅、勞健保等等都記載在同一筆上。

Salary

預扣的部份有的人會直接記到「支出」中的「稅」,不過我通常是先將其轉帳至「資產 > 預扣稅」的科目中,然後在報稅的時候再多退少補,將餘額轉至「支出」中的「稅」或者銀行帳戶之中。

紀錄代墊支出

同樣的道理,假設有三個人一起租屋,你先用信用卡付了 999 元電費,但其中有 666 元還得跟室友收取的話,也可以用分割交易的功能,將 333 元記載在電費支出,但 666 元則先記載在「個人借款」當中。假設對方還與現金的時候,再從「個人借款」帳戶轉帳至自己的現金帳戶。

Loan

信用卡

信用卡的記法是每筆消費都記進「債務 > 信用卡」中,最後要繳費時再從銀行轉帳進信用卡科目中打消負債:

Credit Card

股票

要紀錄股票的話,首先利用證券編輯器,建立想要紀錄的股票。

Stock Editor

再來,建立股票類型的科目,將證券/貨幣設定成該股票單位。

Stock Account

購買時,可紀錄購買的單位和單價。

Purchase Stock

使用價格編輯器更新當前價格,就可以在總資產自動換算,並顯示所有資產的現值。

Stock Price
Stock Value

悠遊卡、禮券

悠遊卡因為直接存入現金,而不像信用卡是借款,所以可以在資產底下直接開個科目紀錄。其他像是禮券等等有固定現金價值的帳戶也可記載在資產中。有的時候有些優惠券的單位跟現金不同,網路上也有人會假裝他是基金/股票,然後幫他開個假單位,自行填入價值單位換算。不過筆者倒是沒有遇到要做到這種地步的情形。

報表

除了單純紀錄外 GnuCash 也可以產生各種不同的報表,例如像是不同種類花費的比例,或者花費趨勢,收入表等等。

以下舉幾個例子:

支出表

Money Spent

支出趨勢表

Expense

資產變化表

Assets

心得

早年對金錢很敏感的時候,感覺記帳本身似乎就是個省錢的好方法。因為會有不想留下浪費錢紀錄的想法。不過隨著年齡增加,這種心理效應好像也隨之減少了。不過總覺記帳還是個掌握自己經濟狀況的好方法,尤其長大了以後,因為受到 Bank_Servicecreditcard 版的荼毒,真的開了不少帳戶和信用卡。加上一些投資,每月不同的獲利與損失,如果沒有好好紀錄,根本不知道自己的資金都跑去那了。而「總資產」這個數字,如果沒有記帳的話,其實搞不好根本不會知道。但知道這個數字,或許對未來的想像就能更加清晰也說不定。

參考

一些網友也寫了 GnuCash 的教學文章可供參考:

目前 GnuCash 的中文化主要由中文化團隊所負責。中文化檔案可以在 GitHub 上找到,不過好像不常更新。