Category: 日記


一個人

日本的房子很多都只有一人一間
今天下雨天,也無法騎腳踏車出去
自己一人待在房間裡,也沒啥好做的
頗令人崩潰

太陽 5:30 就下山了,只好來睡覺了嗎…

廣告

回憶 UCLA 的宿舍生活

今年六月,終於從 UCLA 物理系 PhD 畢業,在 LA 待了 6 年,比國中、高中、大學任何一段都還要長。也熟悉起這個環境。

剛入學的時候,很幸運的跟系上要到 Rose Apartment 的宿舍。這棟宿舍離學校有點遠,算是 University Apartment。之後就在這裡待了六年,認識了很多朋友 (大多是台灣人XD)。

前兩年,雖然知道有不少台灣人住在這棟,但是因為研究生新生都住在 Weyburn Terrace,所以幾乎沒有認識太多台灣人。生活頗孤單。後來意外的因為噪音問題,想要住到頂樓,一位同事物理系的學長畢業後,把房間讓給我。我就搬到了 4 樓的 401 號房。那裡我認識了我的好朋友 Sky。之後也認識了比較多的台灣人。

住在學校宿舍的好處是朋友就在附近,出門就會遇到。想要出去玩、一起吃飯、買東西,大家招呼一下就來,很方便。我們也常常辦 party,大家聚再一起聊天、玩桌遊、打電動。一起吃飯、看電影、看 NBA。那時因為 Sky 認識的人有不少打籃球的人,因此常常會在 401 看 NBA。起初我不怎麼關心籃球,但是想說大家都來了,也跟大家 social 一下,來看看。習慣以後,自己吃飯不知道看什麼也會打開電視來看看 NBA。

美國學校的研究生宿舍不像台灣和日本,只一間小房間給你睡覺。美國學校的宿舍基本上就是一間功能完整的家。有客廳,有正常的廚房、餐廳,完整的衛浴,每人獨立的臥室。我們的 Apartment 房子雖然舊,但是客廳很大,辦聚會很適合,也很舒服。因此我們的朋友 Charles 就常常來這光顧,為 401 增添不少人氣。

是說這種跟許多朋友住在同一棟房子,平常出門就能遇到,這樣的生活大概在出社會後就不可能在遇到了。說真的,非常懷念這樣的生活。也讓我不捨得離開這裡。

我的室友 Sky 也是非常有趣的人,跟我的 tone 也很合。他和我一樣都是做理論的,平常我們喜歡為一些小東西爭論或討論。討論的時候,我們大多只會在理論上說服對方,別人看起來也許像是在吵架,但對我們來說,就只是在探討答案或正確的解釋。我們家的入口處有塊前人留下來的白板,我們就常在上頭討論物理、數學或 CS 的問題。想必這塊白板以前也是這樣運作的吧。

我和 Sky 也都很怕噪音,晚上睡覺只要有點吵或有點光線就會睡不著。因此我們協定在晚上12點前必須洗好澡,不然廁所抽風機的噪音會干擾睡眠XD

Unit test in Physics?

在 CS 領域,寫程式常常會需要寫 unit test,來確保程式區塊的運作正常,這對後續維護程式碼相當方便。如果修改過後的程式碼無法通過 unit test,就代表該修改可能會不相容。由於 unit test 的範圍通常是一小段function,因此可以很快就找出有問題的 function。另外,寫 unit test 也有助於對該段程式碼的了解,如果根據你所預期的結果,對某段程式寫了 unit test 卻沒通過,代表你對該段程式碼的理解有誤,或是該段程式碼有 bug。

也許在理論物理也應該要建立這樣的 unit test,
在眾多的理論中,可以快速檢查各種新理論是否與實驗或已知現象或結論是否相符合。

Defense! Defense! Defense!

周二就要做 PhD dissertation 的 defense 了
極度緊張,但是卻又沒有非常有效率的在準備
這種心理狀態到底是怎麼樣的一個機制呢?
還是無法理解如何讓自己最有效率的在時間內做完一件事情
現在暫時把 Facebook 封鎖起來,希望有幫助

去年有幸第一次受邀到不同的系所給正式的 seminar talk,

雖然不是很成功,但學到了一些寶貴的經驗。

 

在學術界,一位來訪者到一個系所給 talk,不單單只是 talk 本身而已。

禮貌上,來訪者還需要拜訪該系所同領域內的各個教授、postdoc 或學生。

如果自己正在尋找 postdoc 或教職,將來有打算申請該學校的職缺,與當地教授面談就更為重要。

一般 (歐美) 教授都會預期來訪者在 talk 前後找自己談話,所以不用太害羞或覺得打擾到人家。

當然談話的內容也不能太空洞,所以在拜訪前一天,應該先做好功課,

了解該系所有哪些教授,研究領域是什麼,做過哪些重要的題目。

而更重要的一點是! 要記得系所裡的人名和長相 (這對我來說相當困難 XD)。

這樣在見面的時候,可以很有禮貌的認出對方並叫出名字XD

 

談話時,因為事前有做過功課,就可以根據對方做的研究發問,討論討論有時就會有意想不到的 idea 出現。

除了聊對方的題目,對方也一定會問自己最在做什麼研究。

這時因為 talk 上的題目已經在 talk 中討論得相當詳細了,繼續討論它也沒什麼好說。

所以很重要的一點是,必須準備一個 talk 之外自己正在做的題目來介紹。

技巧上,talk 上所講的題目應該是已經做完、發表過東西。而自己正在做的題目,可以保留在個別談話的過程中提及。

尤其是正在做的研究,有很多不確定性和未完全了解的部分,若把它放在 talk 上講,容易出錯或被問到不懂的部分。

而在個別的訪談中,可以以比較輕鬆的方式講解。若對方有不同的看法或認為你的了解有誤,也可以私下跟你說並跟你討論。

一方面比較不尷尬,另一方面可以學到的東西也比較多。

 

我第一次拜訪時,並不知道這些,而把正在做的題目放在 talk 的後半部講。

結果因為對它不熟悉,讓 Talk 收尾的相當差,而訪談時也沒有別的話題可以聊。

後來前輩告訴我這些技巧,第二次有特別準備,拜訪的經驗就好上許多。

第一次練習用 Python 寫 logistic regression。

Logistic regression 雖然已經有很多寫好的 package 可以用,不過我還是嘗試自己寫了一下,

讓自己熟悉 logistic regression 到底做了什麼,還有各個參數的特性。

 

Logistic regression 顧名思義就是用 logistic function:

h(z) = 1/(1 + exp(-z)).

為 fitting function 來 fit data 或說是做分類,logistic function 本人長這樣:

logistic-function

它的特性是,連續的從 0 到 1 遞增,當輸入 z < 0 時輸出 h < 0.5,當輸入 z > 0 時輸出 h > 0.5。

所以當你的 data 分布是大約以 z = 0 為分界,以上為 True (1),以下為 False (0),就可以用 logistic function fit 或分類出來。

如果分界點不剛好在 z = 0,或是 T 和 F 的區域相反,可以藉由不同的 fitting function 像是 z(x) = t_0 + t_1*x 輸入到 h(z) 來達到。

依此類推,你也可以 fit 更高維的 data,然後考慮 z(x1, x2, x3, …) = t_0 + t_1*x1 + t_2*x2 + t_3*x3 …。

或是更高次方的 fitting function,像是 z = t_0 + t_1*x + t_11*x^2 + t_111*x^3 …,等。

 

下圖的 2 維 data  點是由室友提供,藍點代表 1 (True),黃點代表 0 (False)。

可以看出來點的分布像是個歪斜的橢圓形,所以我使用一個 2 次的 function 來 fit 它:

z(x,y) = t_0 + t_1*x + t_2*y + t_11*x^2 + t_22*y^2 + t_12*x*y.

在給定 t_0 … t_12 後, 對於每一個 data 點代入 z (x, y) 再代入 logistic function, h(z), 並以 h(z) = 0.5 為分界

就可以預測每一點 (x,y) 大約是 T 或是 F

a-result

圖中紅色曲線代表 h(z) = 0.5 的曲線,就是這個 model 分類 T 和 F 的界線。

 

當然,真正 regression 的部分在於找到 model 的參數 t_0, t_1, …, t_12,讓 model 最符合 data。

對於一組參數 t_0, t_1, …, t_12,可以計算出 model 的 prediction ( h(z(x,y)) )與 實際 data 的誤差,

每一組 data 都可以算出誤差,這些誤差之合稱為 cost function (就像是高中學過的 X^2 一樣)。

Regression 的目的就是找到一組參數 t_0, t_1, …, t_12 使得 cost function 最低。

也就是說 regression 就是一個找最小值的問題。

 

要找到一個 function 的最小值,最簡單的般法就是 gradient descent。

先計算 cost function 在該點的梯度,然後讓參數 t_0, t_1, …, t_12, 往 cost function 減少最快的方向前進一段距離。

再重新計算梯度,再前進。

重複夠多次之後,就會逼近最小值,找到 model 的參數。

 

上圖為 gradient descent 前進 1000 次的結果,

可以看的出來,還不是 fit 得很好,因為我使用的方法相當簡單,每次前進的步伐是固定的

較為進階的演算法,會每一步調整最佳的前近距離,收斂的就會更快更有效率。

 

總之,logistic regression 是個相當有趣的 python 練習,另外也是做 data scientist 和 neural network 的第一步。

 

My code and data: http://github.com/louis925/Logistic-Regression-Oval

Coursera 上關於 Machine Learning 的線上開放課程 (由 Stanford University 教授上課): http://www.coursera.org/learn/machine-learning/home/welcome

SO(3) 是各種 3維旋轉 所構成的群,任何 3 維的旋轉都可以由兩樣東西表示:

1. 旋轉軸的方向 v (一個三維的單位向量)

2. 旋轉的角度 θ (介於 -π 和 π 之間)

 

要圖像化 SO(3) 的結構,我們可以想像一個半徑為 r = π 的三維實心球

球裡的每一點代表一種旋轉,該點的徑向向量就是旋轉軸 v

而點到球心的距離 r 就代表旋轉的角度 θ,其範圍可以從 r = -π 到 π

這是合理的,因為對某方向 v 旋轉 -θ 角,就跟對 –v 方向旋轉 θ 角是一樣的。

此外,因為旋轉 θ = π 和 -π 也是一樣的,所以這顆球的表面上的一點 (r = π) 和其相對的點 (antipodal, r = -π) 是一樣的。也就是說北半球的表面跟南半球的表面視為相同的,並且互相連通。

所以 SO(3) 可以看做是一顆實心球,但南北半球的表面互相連通。

 

就是因為這樣的連通,所以 SO(3) 不是 simply connected (單連通) 的。

簡單的說,一個 simply connected 的拓撲空間,其內部通過任意兩點的一條 closed loop (封閉路徑),必需要可以連續的變形收縮到一個點。

像是 R^2 空間或是實心球體就是 simply connected 的。

而甜甜圈內部就不是 simply connected 的,因為一條繞過甜甜圈中間洞口的封閉路徑,無法連續變形到一個點。

 

SO(3) 雖然長得像實心球,但是它的南北半球表面互通。

如果考慮一條從南極出發,經過球心,再到達北極跟南極相連的封閉路徑,

這條路徑無法連續收縮到一點,所以 SO(3) 不是 simply connected。

 

此外,長得跟 SO(3) 很像的 SU(2),實際上是 simply connected 的。

 

References:
[1] https://zh.wikipedia.org/wiki/單連通
[2] Matthew D. Schwartz, “Quantum Field Theory and the Standard Model", Sec. 10.5.1.

雖然已經發了數篇 paper,但這還是人生中第一次自己 submit paper 到 journal 上

在 APS 的 Physical Review D (PRD) 系列發表是可以選擇免費或是付費的

如果選擇免費的話,paper 的版權會是出版社的。但讀者要看的時候,就必須要付錢才能看。

如果要讓你的 paper 免費給大家看 (open access) 的話,那你就要付錢,費用大概是 USD $1900 ,還蠻貴的。

我想一般人都是選擇免費發吧?

另外,投稿 PRD 的時候,會讓你選擇該 paper 的 keywords,

據我老闆說,期刊會根據這來挑 referee 的人選。所以建議選適合的領域的 keywords 比較好。

最後,PRD 還會要你直接建議幾個 referee,據說一般 editor 會從你建議的名單挑選一位,其他的幾位再由 editor 決定。

 

Mathematica 10 似乎有個 bug

安裝 Mathematica 10 並使用一陣子之後,就會發生在開新的 Notebook 並鍵入任意兩個字元後,Mathematica 就 Lag 一陣子

這狀況會隨著使用的時間越長,持續惡化

原因似乎是 Autocomplete 的 bug

Windows 7 下的解決辦法是到下列目錄

C:\Users\[Your User Name]\AppData\Roaming\Mathematica\SystemFiles\FrontEnd\SystemResources\FunctionalFrequency\

把 CodeAssistHistory10.*.m 開頭為檔名的紀錄檔刪掉。

這檔案不會影響 Mathematica 的運作

mathematica-10-bug-file

通常發生問題的時候,這個檔案都會有數 100 MB 大。

References:

http://mathematica.stackexchange.com/questions/120803/mathematica-10-4-freezing-after-typing-in-new-notebook?noredirect=1&lq=1

http://mathematica.stackexchange.com/questions/109005/segmentation-fault-on-auto-complete

Here comes the 2017 HEP Postdoc Rumor Mill:

https://sites.google.com/site/postdocrumor/2017-rumors

美國找高能理論博士後研究的人,如果自己接到 offer 都會放在這個網站上。
所以當你看到別人收到某學校的 offer 但自己沒收到,就可以知道大概自己沒有上這樣。

想走高能理論的人,可以看一下大約每年的 Postdoc 的職缺數,和申請的人數,心裡有個底。另外,也可以看一下前幾年,哪些人有找到 Postdoc 的職位,和最後去了哪裡。