2007年10月26日 星期五

十八尖山探險

下午去了久違的十八尖山,住到學校外後老是說要去十八尖山晨跑,結果連下午去跑的次數都不到十位數。和平時一樣,走出停車場的起點,順著柏油路走一陣子,又看到路旁的楷梯分路和在那楷梯上的木製扶手,似乎在說著「來吧」、「來吧」。這回沒想太多,就順著楷梯往上走,而非我過去慢跑的柏油路。

穿過楷梯後,進入眼簾的是另一段柏油路,看來這楷梯是捷徑啊!當下只想順著往上走的路,想看看高處的景色,於是就這麼順著大路走,一但看到分歧的楷梯,就走上歧路(這句話似乎怪怪的),往上爬。有時也不算是楷梯,而是樹根和人工整理過的小路。就這樣經過兩三次小路後,一下就到山頂的涼亭。想起大一體育課要跑十八尖山,老師帶隊讓大家從交大出發,順著光復路跑,上十八尖山,到山頂才算及格。而我們那寢的四個人都睡過頭,驚醒時大家已出發一陣子了(嗯,而且我們四人還是所謂的體育幹部...),於是匆忙地騎機車(沒錯,是犯規)到十八尖山,把車停在停車場,開始趕往山頂,可惜當時沒注意走小路攻頂的祕技,人都差不多下山了我們才到,被體育老師抓包,被抓包了也沒言詞可唐塞,因為大家上山的路線不是從停車場開始,老師一看我們進山頂的方向就知道了...。

在山頂看了一下,風景被週圍的樹擋住,雖然空氣清潔視線良好,也看不到整個市景。我轉往別的高處走,十八尖山顧名思議(真的是這樣嗎?),山頂不高但頗多的。就這樣一直走著不知名的小路,途中最長的一條應該走了一二十分鐘吧,中途還在想要不要回頭,最後還是順著地上的路痕,走到另一端的大路上。有趣的是,走了這麼多的小路,沒有一條是死路,都會通到山裡的另一邊。

就這樣在山裡「迷路」個快一小時,穿過最長的小路,覺得腳酸沒力氣做下一個小探險時,也剛好接到以往的慢跑路線,2m+600,回頭走個幾百公尺就能回到停車場了。於是就這麼精神飽滿地走下山,結束今天的隨意小探險。要活就要動,人還是多活動活動身體才會健康啊!

2007年10月25日 星期四

雜想

最近實驗連連卡關,挫折不少,偶而還會懷疑自己是否高估了自己的能力,自信開始動搖。幸好這樣的想法不會持續太久,看看別人的文章,轉換心情,又能進行正面思考。

深夜,躺在床上感到訥悶,現在的生活隨心所欲,為什麼還會悶悶不樂,以前覺得時間不夠專心集中思考一個問題,今天反而浮現相反的想法:「這樣把大量時間花在一個問題上,到底值不值得?」或許這就是人在福中不知福吧。腦裡隨便亂想,想到過去自己看過的研究,好的壞的交錯浮現,想到這些人為什麼要花這麼多時間在這樣的事上?難以想像好論文背後付出的心力,更不用提長期進行深入研究,或像是Turing Award得主的大師,他們究竟為何要過這樣的生活?想到這裡又驚覺自己的得失心太重,做研究有趣、能改善世界即可,為啥要計較個人記錄好壞,隨即想到霍元甲電影裡提的,能決定輸贏的只有自己,自己才是最清楚勝負的人,最大的競爭對手也是自己,唯有自強不息,才能超越自己。想到這裡,得失心隨即淡化,心胸也開闊起來。

瞬間,無法明白前一刻我的,究竟在為何事煩惱,原本似乎有很多想法可打,卻什麼也想不起來,大概又是芝麻小事,庸人自擾吧。

2007年10月19日 星期五

洗澡時思考的缺點是浪費洗髮精

我習慣在洗澡時思考,相較於走路或騎車來說,洗澡思考安全多了,最慘挺多泡沫跑進眼睛,或被水嗆到吧?不過洗了這麼多年都沒遇過,應該不用擔心。而且洗澡時眼耳沒外務可做,又有熱水按摩的放鬆感,可說是集中精神的絕佳領域啊!但也因為集中過頭了,有時回神時,不知道剛才洗到那個步驟,特別是頭髮不容易髒,洗前洗後有時沒啥差別,無法分辨的情況下,保險起見只好再洗一次,洗下去後可能又覺得情況有點熟悉,剛才八成洗過了,於是又浪費了洗髮精。不過和節省時間並能集中精神的好處相比,一點洗髮精的費用,划算啦!

2007年10月17日 星期三

和阿伯、try閒聊未來出路

好久沒有寫這種偶遇閒聊文了,因為最近都窩在家裡趕論文,碰不到人自然不會有偶遇閒聊。今天傍晚終於把bug修掉,開開心心地執行程式,出去吃晚餐以及到學校聽聯發科的「研發替代役」座談會。回來後看一下進度,程式似乎快執行完了,執行速度似乎快了不少,希望不是有新bug才會如此。

到會場時,看到許久不見的廣玲姊、佩君姐和資優生嘟嘟。打個招呼就急忙進入會場,已開始一下子了。大致上和傳言差不多,聯發科很有前景,人數不斷上昇,代表進去後昇遷有望。公司資源充足,做得事夠規模,但...晚上十點下班和週末加班的傳言也是事實。「我大概十點離開後,發現車還有很多。」這句真是太糟了!

會後在門口旁和廣玲姐、嘟嘟小聊一下,他們都說今年資訊組長很可靠,廣玲姐還說他很可愛。嗯...都是意料中之的評價,感覺不錯,這正是人力仲介的成就感啊。在門口聊時還有看到不少認識的人走出來,最後看到阿伯,剛好關於工研院的狀況要和他聊一下,就和阿伯邊走邊聊到工三大廳沙發上坐著聊。

坐在工三大廳沙發聊好處真不少,可以看到不少認識的人進進出出的,打聲招呼;還可以大致窺出資工所的操勞度,沒想到這麼晚還有不少人搭電梯上樓。幾位認識的老師像鍾伯伯也是頗晚才離開。但若是依興趣而做,就沒什麼辛勞啦,就像別人付錢請你玩一樣。相對於此,阿伯說得好,去園區上班很操,那是付你精神損害的費用。

中途try看到我們在聊,也過來討論一下對一些公司的看法,還有未來的歸劃。我其中一種考量是,找個有趣的公司做三年,收入普通即可,最重要的是六點下班,週末不用加班。這樣才有時間享受人生,若之後想出國唸博士,也才有時間準備相關事宜;若不出國的話,再找個外商去做吧,我希望能進像Google、IBM在台灣的研發部門。目前我還無法想像有什麼樣的工作能持讀做到十年以上(就算工作內容是打嘴炮也是會膩的),所以研發替代役不會考慮公司未來升遷發展的可能性吧。阿伯對這個想法很呀異,想想後又覺得不錯,原本他想找個值得做個五年十年的公司進去。聽阿伯提到skylight的想法又更有趣了,skylight說可以去聯發科操個三年,把學費賺齊,之後出國讀博士才能專心研究,不用為生活費煩惱。我倒是沒想過這種可能性,仔細想想,嗯...搞不好可行。

偶而像這樣隨意遇到隨意聊聊,很有意思,這樣才算享受人生啊!

2007年10月7日 星期日

近一個半月來的Clustering心得

最近做了一個和clustering有關的研究,基於不要被自己吐糟的考量下,花了一些時間讀clustering相關的東西,發現這領域真是又深又廣,永遠有做不完的題目,呃...有沒有意義是另一回事。趁剛結束一個階段的研究,記錄一下心得,不然腦容量有限,一個月後大概就忘了。

clustering的定義是,給定 n 筆資料,每筆資料有 d 個屬性,將資料分成 k 群。特別的是,事先沒有群的定義,只能從屬性判斷兩筆資料是否相似,將相似的資料放到同一群。比方資料是地理位置,那台北市和台北縣就挺像的,應該歸到同一群裡。注意,何謂「相似」是無法明確定義的,這是 clustering 裡一個很大問題,也提高驗證方法正確性的難度。於是,依據分群的特性,就分成許多不同題目,像是centered-based clustering,同一群資料的屬性的變異數 (variance) 要小;或是density-based clustering,同一群資料和「週圍」資料之間的密度要相近。也有將資料以 graph 表示而成的 graph-based clustering。一開始我沒把這些分類弄清楚,以為可以有某種程度的互通使用,但實測後才意識到,其實方法之間差異很大,依要解的題目特性,套錯方法效果會極差,比方資料可以輕易地轉成graph,但這不表示套用graph-based clustering會有用,至少像 graph 難以用 edge weight 表示 centroid (or mean),所以不適合用來解 centered-based clustering。

除了五花八門的分群目標外,cluster 的數量也是個問題。是要給定 k ,找出 k 個 cluster?還是給定一個範圍?或是根本沒有數量限制?於是各群內部的相似度和分群的數量合起來,就變很複雜的問題,畢竟群的數量愈多,各群的變異數會愈小。很難同時考量兩者給個合理的評估分式,所以大部份的研究先限定 cluster 的數量,再討論如何降低變異數或其它評估值。silhouette coefficient是個有趣的公式,它的概念頗合理的,又能同時考量兩者,但我套用它到centered-based clustering,實測的結果 [1],計算量頗大,效果也不好。原因不明,我後來沒有仔細測試和探討背後成因。

若再加上一些細項要求,題目可以組合出更多變化,像是利用每個 cluster 內最少要有幾筆資料,可以得到一些良好的數學特性,而有不錯的成果。當然,當這個數量限制難以找到合理值時,這些方法也無用武之地。細項限制帶來的變化在 clustering with constraint 中有更系統化的研究,用這當 keyword 應該會找到一大票研究,有限制不見得是加深題目難度,有時反而變更簡單,可以協助分群;甚至也可以將重心放在如何從既有資料裡生出 constraint。

從分群的反向來看,驗證分群結果也是一大難題,但似乎沒有論文在專門討論這個(吃力不討好?),我也沒仔細去找就是了。對於未知答案的研究來說,有時只要改變評估方式,大壞的結果也可能變成大好。前面提到分群的概念變化多端,加深了評估方法之間優伏的難度。Introduction to Data Mining
的 ch 8.5 有頗詳細的介紹,值得一看。

以上的心得是以該書的 ch8, ch9 和一些零星論文得來,書裡那兩章的內容我也沒全看完,若要看完那兩章並確實理解,一兩個月跑不掉吧,但若有心在這個領域研究的話,個人覺得是必須做,而且很值得做的事。最後補一些雜項,參與 clustering 研究的人,就我個人的主觀分類,可以分成 Data Mining 背景、 Machine Learning 背景和 Statistics 背景的人。依不同背景來看,方法的切入點差異很大。 Data Mining 背景是指像傳統 Computer Science 背景的做法,或是指「比較不數學」的做法。另一方面,是否一定要能處理大量資料,才稱得上有意義的方法,就見仁見智了。

ps.

  1. 我的做法是用hierarchy clustering,一開始每筆資料自成一個 cluster,看合併那兩個 cluster 可以達到最佳的silhouette coefficient,就選那兩個合併。全部併完後,會有 n 種可能分法(全部一群、兩群、...、 n 群),選silhouette coefficient值最高的 k 個cluster當結果。