2008年6月19日 星期四

撿到虎斑鸚鵡一隻

昨天十八號,早上從宿舍下來的時候,走到水木前面,聽到很好聽的鳥叫聲,想說那就呆一下聽一聽,結果突然本來應該在前方高處的鳥叫聲,突然從旁邊傳出來,就覺得很奇怪,眼睛飄過去,看到地上有一隻鳥。

一隻看起來像是鸚鵡的東西,坐在地上,距離我大概兩公尺的地方。

再看一次,天哪!還真的就是一隻鸚鵡!我沒看錯!好!靠近看看……疑,不會飛走耶,這種東西應該沒有野生的吧,而且好像也不太怕人,想說過去直接抓應該會嚇到他抓不到,脫了外套從後面慢慢靠近,用蓋的,抓到了!好!給詩芳!哈哈哈!她一定很開心!

就帶著去餐廳買早餐啦,他從外套裡面鑽出來,冒出一個小小的腦袋,東看西看,結果輪到我點餐的時候,掙脫出來,飛走了 -_____- 天哪~~~馬上追殺過去!追到飲料部那邊,結果不見了,嗚嗚~就這樣不見了,我本來要送給詩芳的驚喜,就這樣不見了,天哪!你知道要撿到一隻鳥送給詩芳是多困難的事情嗎!怎麼會就這樣不見了!我在那邊鑽來鑽去找來找去就是找不到阿,飲料部的人正在忙,但是也有幫我找一下,但是就找不到阿,我明明就看到他飛到冰箱這邊阿,旁邊掃地的北北說從門口飛出去了,可是沒有阿,我就看到他飛過來。趴在地上找阿找,但是就沒看到,在飲料部的冰箱後面找阿找,但是就沒看到,但是就不時有聽到鳥叫聲,啾的一聲,然後又沒了,可惡!明明就有聽到聲音阿,但是為什麼看不到人呢?因為有聽到聲音,所以就繼續找,但是一直找阿找阿,後來發現啾的聲音好像是往來的人走路的時候鞋底跟地板摩擦發出來的,突然好難過喔,因為鳥就不見了。真的很想要放棄了,準備要走的時候,都已經轉身了,想說:可惡,再一下下就好!就眼睛東看西看,然後突然聽到「啾!」然後看到一隻鳥在飛,大家都喊「在那邊!在那邊!」就看到他飛去撞玻璃,然後掉在玻璃跟桌子中間的縫,趕快跑去看,看到他在縫裡面,呼呼~這個縫他自己是絕對上不來的,我來救你!你運氣真好阿,遇到我~

抓起來,抓在手裡面,怕他痛,不敢抓太用力,但是在手裡面就可以看到他的樣貌,是很嘴巴有受傷喔,有裂痕,看起來很恐怖,好像隨時都快要斷掉那樣,看看羽毛,是全身都長了,但是感覺是小孩子的羽毛,因為就還不光順,鬚鬚的那種感覺,而且也可以看到一些沒長好的羽管。握在手裡,一直掙扎,叫得很可憐,嘎嘎嘎嘎的那種很難聽的叫聲,跟我剛剛發現他的時候的叫聲很不一樣,然後他一直咬我的手,雖然說不是很痛啦,但是咬久了還真是有一點點痛,然後呢,他就一直咬一直咬,他真的很害怕,咬一咬又會哭叫,但是沒辦法喔,對不起,不敢用外套包你了,雖然外套比較舒服,可是很怕你又飛走,下次我可不一定還能抓回來。一直咬我。

重新排隊買早餐的時候,一直仔細端詳你,覺得很奇怪,想不透為什麼一隻虎皮鸚鵡會在水木前面的柏油路旁邊,到底是從哪裡飛來的?理解不能阿,只能猜說本來是學校的人養的,但是不小心讓你飛掉了吧(講到這邊,再去PO版一次好了)?一直咬我。好不容易買到早餐了,去到研究室的途中也一直咬我,一直咬我,真的很怕讓你飛走,所以只好抓的稍微緊一點,歹勢阿,你多擔待,好不容易到了研究室,看到怡亭跟詩芳在喔,跟平常一樣的把書包放好,早餐放好,然後把手伸到詩芳面前:「這個給你」

「ㄟㄟㄟㄟㄟ!?!?!?!?哪來的!!?」
「水木前面撿到的 = =」
「怎麼會給你撿到?」
「阿就撿到。」

詩芳還真的蠻開心的,我就想說送這個鳥給她,她一定很開心,她最喜歡拯救落難的小鳥了,剛好這邊就有一隻落難的小鳥,林詩芳很開心的說要去買籠子跟飼料啦,所以我們就出發去買籠子跟飼料啦,但是在那之前,先去網路上po了鸚鵡招領文,然後跑去賣啦,林詩芳說她沒帶錢啦,我說我先借她,但是阿,就騎車去的過程當中阿,就沒想要跟她拿錢了,因為覺得這個鳥是我撿回來的阿,這樣就丟給詩芳感覺好不負責任喔,應該還是要自己照顧吧。很開心的買了五十塊錢的飼料,還有兩百五十塊錢的籠子,就回家了。附帶一提,有看到小白很想要的金太陽喔,一隻八千,真是高級鳥。

回家看到怡亭正在跟紙箱裡面的小鳥很開心的玩樂,說小鳥站在她手上不肯下來。我們把小鳥移到新家裡面,附上食物,他咬了兩口,就休息了,發呆。休息。睡覺。

然後又過了十分鐘左右吧,開始吃,這一吃就真的厲害了,從中午十二點左右一直吃到下午四點,幾乎都沒有停過,一直吃一直吃,我機係郎沒有見過鳥這麼會吃的,一直吃一直吃,吃到天荒地老海枯石爛去了,中間除了休息幾次的幾分鐘以外,全都在吃,太可怕了!怡亭給我們看了他剛剛在理毛的錄影,還真的蠻可愛的,羽毛張開的時候才發現他其實還蠻漂亮的。

到了晚上,本來我想要把他放在研究室的,因為不想一直搬動他,但是怡亭說怕他冷到或是悶到,所以就把他帶回家啦,後來還蠻後悔的啦,覺得不應該搬動的,因為他本來在研究室呆到晚上好不容易比較不緊張的感覺,結果帶到宿舍又很緊張啦,然後第二天又帶回研究室,又讓他緊張一次,這樣真的不太好,所以就決定一直讓他待在研究室了。好!

今天想要去買新的飼料(就是奎瓜子阿,鸚鵡很喜歡的)還有布,要作成罩子可以讓他比較安心,先去了動物王國,結果只有超大包奎瓜子,而且是給老鼠吃的,不知道能不能給鳥吃,所以又去了昨天買飼料的地方,然後問了老闆,老闆說不要布,就用紙箱就好了,然後說中型鸚鵡才有吃奎瓜子,所以我們只有另外買了詩芳說鸚鵡很喜歡的帶殼飼料,很開心的回來了。鳥吃這個很厲害,一下就可以剝殼,太強大了!

鳥還是很怕人耶... so sad... 希望他早日不怕我...

2008年4月20日 星期日

小強學程式設計

一個開心的事情,記一下。

以前在魔力認識的小強,認識他的時候他還是國小,那個時候大家都知道我寫程式,小強有一天跟我說他想要學程式,我開了一本書給他,他也真的去找了書來看,不過找書的過程非常的辛苦就是,就是他住的地方不知道是太偏僻還是怎樣的,像是金石堂那種書店是完全沒有,他必須先訂書,而且能買到的書還很有限,最後他終於買到一本 C++ 的書了(C++ 其實不適合初學者寫,但是沒辦法,這個語言我最熟,也是我唯一敢「教人」的語言,如果他在學習的過程上出現問題,那我一定可以解決),但是不是我開的那本,一開始我是沒有很開心,因為覺得一本好書對初學者來說很重要,要是選到不好的書,真的會差很多,但是現在比較能理解他那個時候其實也才多小,買不到書也很正常。

他也就開始看了,他學習的過程可以說是蠻辛苦的。

有的時候會在 MSN 問我問題,其實有的時候我正在忙,或是我可能心情不太好,不是很想回應,也有的時候我覺得他怎麼一個簡單的迴圈都要弄好久,就不是很開心,但是我還是耐著性子講完,很多時候我覺得這些東西照道理說書上會講的很清楚,我不懂為什麼有看書了還會問這些問題,或是不太理解為什麼學習的進度這麼慢。當然現在是知道他的課業真的很忙,沒有什麼時間再去學課外的東西。日子慢慢過去,其實我也忘記我教過他幾次了,我只是希望他趕快把基本的語法摸熟,然後體會用自己的程式去解決問題的感覺,並沒有想很遠說他以後會把程式寫的很好怎樣的。

小強前兩天丟我,跟我說他去參加了學校的程式設計初選。

哇!他現在已經是高中生了耶,而且還會去參加程式設計賽!當然題目都是不難的三秒題,但是會去參加程式設計比賽就是對程式有愛啦~聽到這件事情,其實就可以知道他以後有很大機會會把程式寫的很好,因為對程式的愛是把程式寫好的第一條件喔 ^^。看到他會去參加比賽,我就突然整個熱血都來了說,很想盡量教他我會的東西,我覺得只要稍微訓練一下,他就可以很輕鬆的在區域賽拿到名次,然後就可以參加全國比賽,這對保送是很有幫助的。唉,高中的時候沒有去參加程式設計比賽可是我很大的遺憾呢,難得小強有這個機會哩。話說小強給了我一個網址,說是他們老師在 google 論壇開的一個討論區(他有一個好老師),我也去申請加入了,可以的話想要盡量幫助小強,讓他能多從我這邊拿到一些東西。

好,重點,重點就是,我真的很感動,就是密寶說得那種「改變一個人的人生」的感覺,沒想到我也能改變別人的人生 ^^,雖然說還不一定啦,但是我覺得機會很大喔,希望小強以後也變成高手 ^^

2008年4月16日 星期三

語言分化,種族優越,利他

關於論文的東西,又有一線曙光了。

之前花了些時間,但是卻沒有抓到那個點,我一直不太清楚我的問題的關鍵點在於哪裡,雖然我知道應該有一個「動力」在促使語言分化,但是我一直去想的,都是「保持距離」這件事情,而不是「增加距離」這件事,但是我之前並沒有很清楚的區別這兩點,感覺上我就是一直搞錯點。上次中鎮來了,跟他聊過以後,他幫我點出這個地方,我覺得這是一個重要的事情,不過糟糕的是,在把問題釐清楚之後,真正的困難來了,就是我發現我對於這個分化的力量的來源,完全沒有想法,我不知道他是哪裡來的,不知道為什麼語言能夠這樣分化開來。我會這樣想:如果一個社會好好的,那他根本就沒有必要分化阿,為什麼語言會分開呢?沒有道理阿……

雖然 inspire 我的是 Axelrod 那篇關於種族優越的論文,但是其實昨才是第一次認真看完他,只能說有看有差,人真的要多唸書。我一邊看,一邊思考,仔細的在想這個過程當中本質上影響互助的關鍵在哪裡,但是更好玩的,剛我看到關於實驗結果的地方,他拿實驗結果來跟「完全沒有種族差別」的群體作比較,完全沒有種族差別的實驗其實結果很明顯,在 one-shoot prisoner's dilemma 裡面所有的人都會偏向背叛對方,也就是大家都是極度自私的人,這其實是很直覺的事情,但是讓我自己意外的是,我沒想到「多一個 marker」就會有這麼大的改變,就是說「有標籤」,竟然就是會比「沒標籤」的群體還要過的更好,顯然這個標籤給他們「有機會去對某些人好」而且這個對別人好的行為,是可以獲得回報的。這蠻神的,當然我也想過背後的原因,很明顯的,這個要成立,必須要有「區域性」這個要素來支援,不然是不可能演化出這種結果的。好,等等,這邊我要跟自己補充一下,如果是 iterated prisoner's dillema 的話,那其實不把 agnet 放到 2-D lattice 上面(沒有考慮空間的連續性)也沒有關係,一樣可以演化出利他行為。Axelrod 這個模擬的過程,其實很類似古早孫春在上課講到的東西(很感謝孫春在老師阿,上課講到的東西就是這邊的關鍵,不然我自己想不知道要想多久)也就是聖人跟聖徒的關係。聖人(利他者)在充滿壞人的環境下,其實是無法生存的,因為他肯定會被壞人吃得屍骨無存,但是當聖人被聖徒(選擇性利他主義者)所包圍保護起來的時候,其實就可以生存,因為聖徒對聖人來說,也是聖人,但是聖徒對壞人來說,就是壞人,這會形成一個保護層,把聖人跟壞人隔絕開來。上面講的這個,不管在 2-D lattice 的 iterated prisoner's dilemma 或是在種族優越意識模型裡面,都是共通的(果然學問到最後都是一樣阿~)。

好,現在我們知道「有區別」是一個可以形成「利他」的條件,因為選擇性利他主義者可以當作無條件利他主義者跟自私者的緩衝區,那麼,加上 game theory 的設定,只要我讓「利他」可以提高一個遊戲平均的生存優勢(講白話就是讓一個個體利他的時候,付出的成本低過被幫助者所獲得的好處,也就是設計一個「正和」遊戲),這樣我就可以演化出利他行為啦~

不過這只是其中一塊石頭,不是我的論文,我現在要想辦法基於這點上面,去演化我的群體,讓他們會「傾向去區分彼此」,如果我能做到這件事情,然後我再設定我的模型是以「語言」來當作區分彼此的的標籤,這樣他們就會傾向去讓彼此的語言有區隔,這個也就是我語言分化的動力來源了!不過我不是很確定我能不能設計出能演化出這樣結果的模型。這邊 note 一下想到的應該要具有的點:要做到的幾個點,首先,我的 agents 要放在 2-D lattice 上面,然後他們要具有區分對方語言是不是跟自己一樣(或是很類似,唷,這邊我可以用相似的程度來決定 agent 是不是要合作的機率?阿!不對!也可能對?我這邊要怎麼設計 encoding?)的能力,然後在區分的過程當中,這邊我要怎麼設計這些 agent 的顏色跟機制阿?顏色是要可以改變的嗎?有限的顏色還是無限的顏色?是可以後天學習的?還是先天決定,但是策略是可以變的?(策略不用可以變吧,因為策略不好的自然會死)這樣設計真的可以引導出最後大家都偏向「有差異」嗎?這邊講的真的好模糊喔,什麼叫做有差異阿?是「喜歡有差異」?還是有差異?我想應該是要「喜歡有差異」這樣才能把一個語言一分為二?這樣的話,我的 encoding 就要包含「喜歡有差異」跟「不喜歡有差異」兩種情形的可能性。這個 OK。可是這邊我還不是很清楚,怎樣的基因叫做「喜歡有差異」,恩,果然這個機制的設計還是問題,希望能想好這個點,這個應該就是目前最需要突破的關鍵吧。這邊又想到,如果 agents 都喜歡有差異,那會不會導致最後演化的結果是整個語言幾乎是完全散亂的?應該不會吧,但是也有可能,我不是很確定,我希望這個點可以在 agent 喜歡跟相似的人合作然後得到好處的這個現象底下被消除掉,會不會這麼順利?

假設以上都很順利好了,但是還有一個更麻煩的地方,那就是我要怎麼做出語言的分化樹?好像沒有辦法,目前看起來,即使以上一切順利,我也只能驅使語言分化,但是這跟要建出「語言分化樹」還真的是差蠻遠的,唉唉,傷腦筋,還是要把題目定小一點呢?定成「語言分化有助於群體生存」好了?這樣還可以間接跟 natural 那篇關於語言分化樹的 paper 佐證,但是就不像一開始計畫的是什麼直接的關係了……

2008年4月15日 星期二

Learning and Planning

最近繼續想到關於 learning 跟 planning 的差異(跟結合?)我想明白這兩個的「差異」到底在哪裡?因為這影響到我為什麼要採取 learning 或是 planning,而我認為這是釐清 learning 本質的關鍵,也就是說我應該什麼時後來用 learning,怎麼用 learning,learning 又能幫我做到什麼?

我在想,人類遇到問題的時候,到底都是怎麼解決的?雖然直覺上 learning 可以解決所有的問題,不過事實上人類的確是有使用 planning 在解決問題的,那哪些時候是人類會使用 planning 呢?我目前能想到的,是從我對 learning 的理解開始出發,learning 沒辦法做到太長遠的預測,應該說,今天根據 learning 來作決策的話,大部分所做出的決策,其實都只有考慮到很短暫的未來。有的狀況,只看但短暫未來是不足夠的,也許這種時候就需要 planning,但是話說回來了,事實上 learning 也可以解決需要長遠預測的問題,只是就是需要非常豐富的經驗,一點一點的在學習的過程當中,倒推回來,然後來決定現在的策略。

想到這邊,那我就很好奇,說到底,什麼問題都可以用 learning 解決,那 planning 要幹嘛?完全不用了?可是不對阿,因為我們真的有在用到 planning,邱中說:「人類的 learning 是用來累積 planning 所需要的資料庫。」我想這個說法差不多了,只是還有一些點沒點清楚,「既然 learning 就可以解決問題,我們又何必用 learning 來累積 planning 所需要的資料?我們根本不必用到 planning 阿~」我能想到的是:「有的時候,我們已經面對一個問題了,但是我還沒學過這個問題應該怎麼解決,也就是說,其實我還沒學到從目前的狀態怎麼到達目標的的那條 path,就是說我還沒有走過那條 path,所以我還不知道目前要做什麼」,像這種時候,大概我們就會開始進行 planning 的動作,嘗試著把中間這些我們不曾經歷過(或經歷不夠)的狀態給補齊。

我想到,當我們在進行 planning 的過程,每次我們走到一個新狀態,我們在思考下一步的動作的時候,其實也是評估各個可能性,然後選出比較好的解,不過我們怎麼知道哪些動作比較好?我們不知道,我們進行更深一層的搜索,一直重複這個過程,直到我們發現某個動作可以帶領我們到達某個我們熟悉的狀態,然後我們知道那個狀態是好的,這個時候我就會 back trace 回去,幫我這一連串的狀態都加分。

講到這裡,那其實跟 learning 的過程根本就很類似嘛,只是這一連串的動作是在「腦中」虛擬的,模擬的進行。好,也就是說,learning 跟 planning 的差異是,今天我就要解決一個問題了,但是我還沒學過這個問題要怎麼解決,那我就在腦中模擬這個過程,模擬這個「學習的過程」,想到這裡我還蠻怕自己想錯的,因為我竟然認為 planning 跟 learning 本質上是一樣的東西,只是一個沒有真的去作,這跟我以前的想法還差蠻多的,不過我也很開心自己會有新的想法。
先不管對錯吧,讓我繼續往下想。

如果我想到這邊是對的,那 planning 的好處之一,就是你不用付出真正執行動作所需的代價,以我經濟學那部份的腦袋來舉例的話:一個投入經濟市場的人,在經過了大量的經驗以後,他會學到一些策略,然後會賺到很多錢。不過這樣做的缺點就是,你要投入市場,然後用錯誤嘗試的方法來學到經驗,這個過程非常的昂貴,因為你必須「真正的在市場當中採取那些可能會讓你賠錢的行為」,好,那如果一個人對市場,或是說對某個遊戲有基本的認識,可以在腦中模擬(進行推導以預測)所採取的動作對市場的影響,以及市場未來的走向的話,那麼他就不必真的付出這個成本,而可以擁有好的策略,只要他「在腦中學習」就可以了。

那人是不是一直都在學習?我的意思是說,當我們在做 planning 的時候,其實我們也是在學習嘛,但是 planning 似乎是針對某個特定問題的?嘗試往那邊前進的,learning 不一定有什麼 goal,只是想要找到在所有狀態下的最好的策略,這邊 inspire 我一點東西,就是 planning 找到的是不是最好的解?阿,這個先不管,我先寫下之前想到的,關於 learning 是用來解決具有 uncertainty,因為 planning 沒辦法解決這個問題,不過後來我發現這個想法不是完全正確,因為事實上人類也在用 planning 解決很多具有 uncertainty 的問題。我修正過的想法是,當 uncertainty 比較高的時候,learning 就比 planning 更適用,但是後來發現還是不太對,有的時候我們就是需要解決問題,而這個問題可能是有高度隨機性的,但是我們依然可以找出「比較」好的策略不是嗎?頂多就是在這個 planning 的過程當中,我們用了更多的成本去作更多可能的分支的搜索跟評估。這邊 note 一下我的點在於「planning 也可以解決具有不確定性的問題,所以 learning 跟 planning 的關鍵差異不在這邊」好,回到剛剛說的 planning 不一定找到最好解,可能只是足夠好的,其實我真正想要講的是「當我們時間很多的時候,我們總可以用 learning 找到最佳解」。ㄟ,不過這好像也不是完全正確,應該說,如果我用 learning,那我可以用很多時間去把每一個狀態都求好,但是用到 planning 的時機,就是我現在就要解決一個特別的問題,我沒這麼多時間可以去算了,我要「攻克」這個問題,我要攻擊這個點!好!就是剛剛冒出來的新想法,寫這麼多就是希望把自己的思緒過程保留下來,我剛剛想到的新想法是:「planning 的重點在於,我要在有限的時間(僅能付出有限的成本)之內,要解決這個問題,那我就要在短短的時間之內,學習(現實或是模擬)怎麼解決這個問題。也就是,接下來我要探索的,我要評估的狀態,要盡可能的落在我目前的狀態跟我的目標之間,如果我能夠趕快找到一條 path(或是在具有不確定性狀態空間裡面的某一片具有足夠高的 accessibility 的區域)連通我目前的狀態跟我的目標,那我這個 planning 就完成了!」

恩,所以我的系統應該是這樣運作:當我沒有特定目標(或是目標緊急性不高)的時候,我的系統會進行類似隨機的嘗試,過著很正常的生活,不會刻意要求出某些特定狀態跟動作的分數,但是當系統遇到一個就要解決的問題,系統就會嘗試著把心思放在那些比較有可能是答案 path 的狀態上,嘗試把這些 path 的值都補滿(做出足夠好的 evaluate)。

好,我現在釐清 learning 跟 planning 的差異了,那你前面說想弄清楚 leaning 能做什麼,你現在有什麼想法了嗎?我想一想……想到的是任何時候其實都在作 learning,而當遇到需要 planning 的時候,我們就把資源集中到那些特定的狀態上面去作 learning,找出 plan。等等,這樣其實也可以反過來說,怎麼說?也就是說,其實 learning 也可以被看作是「其實我們可以隨時隨地的在做 planning,然後一直把 plan library 存起來,存放在對應的 state 上面。只是當沒有急迫任務的時候,我們隨便找任務來解,當有特殊任務的時候,我們就專心解那個特殊任務。」

OK,那 learning 在這邊有什麼優勢嗎?特別以 reinforcement learning 來講(其實前面講的 learning 也都是講 reinforcement learning 而不是 NN 那種 classify 的問題)最大的好處就是處理不確定性,不過這樣的話,其實 planning 領域應該也有在不確定環境當中進行 planning 的研究,雖然我對 planning 不熟,不過我想應該是有的,所以說學問到最後都是互通的?我覺得好像 reinforcement learning 對於問題的泛用性比較好?我不確定,也許我應該以第一種想法為主,也就是以 reinforcement learning 為主要 paradigm ,然後當遇到問題的時候專注起來解決問題。

這邊想到兩件事寫下來,因為我快睡著了,寫下來免得自己忘記,一個是「如果是第一種 paradigm 的話,那當我遇到問題的時候,我要怎麼去鎖定我該把心思放在哪?我的意思是說,我怎麼去辨識哪些狀態比較可能在我要解決的問題的 path 上面?」初步想到的是把狀態向量拿來當作距離值,然後選一些距離目前狀態跟目標狀態比較近的狀態來評估。另一個問題是「怎麼學會更快?(還真是大哉問XD)」特別想到的是 transfer learning,因為之前接觸到的都是這些,所以想到的也是這些(不過我心中隱隱有個想法是「答案在 approximate reinforcement learning 上面」但是怎麼做到這件事情,目前還是完全沒有想法,因為最直覺的模型好像就是 SLP 或是 MLP,但是這兩個東西都已經被顯示不是很好……)

慢慢想……

好,睡覺,明天早上找要給小帥看的東西……

2008年3月4日 星期二

大家的研究

碩二的大家也都開始注意到碩士論文這回事了,怡亭是老早就打理好了,詩芳是一直累積著過去的東西,現在也是很紮實的就可以完成,她們兩個是最不用人擔心的了。信捷那邊雖然不常接觸,但是我想應該也是沒有問題。

現在還不確定的就是我(雖然我覺得自己應該沒問題),毛毛,還有阿達。

過了一個年,終於還是決定放掉老師建議的關於使用 reinforcement learning 來作 natural language parser 的方向,回到 language 的 social simulation 這一塊。感謝建勳給予的書單(也很對不起他關於我在 Google Android 臨陣脫逃的事情),《隱藏的邏輯》給了我很多幫助。我覺得 Social simulation 是真的很有趣,每次在看這些東西的時候,總會有「哇!真是好有創意又有趣的想法!」但是在想了自己的東西以後,我內心也有種感覺是「這種東西真的會有什麼價值嗎?」我不知道,中鎮給我的感覺是他覺得這東西沒什麼價值。說我完全不會被影響是假的,沒有受到肯定是多少都會有失望的感覺。禮拜一跟老師討論過了以後,老師似乎是同意我可以往這邊做了,但是真正困難的不是說我提的東西老師認可不認可,而是我不知道怎麼跟老師說我不打算繼續往 parser 那邊作,因為老師感覺對這個很有興趣,讓他失望我也很悲傷,心裡想著:「我有空的話就兩個都做起來!這樣老師就會開心」但是想是這樣想,但是我也明白自己的個性總是實踐力很弱,每次當我這樣想,我是想真的,但是最後都變成嘴泡,唉。所以還是不要亂說這種事情,有作才是有。老師也給了我模型上的修改方向,雖然不多,但是是關鍵的部份,重點是在辨別語言的分化樹上面,必須想出一個好方法,也許是用地理距離,或是用人工強制隔離,我覺得後者比較可行,也比較明確。

毛毛的話,跑去跟向原做事了,這是令人悲哀的,對向原來說,是悲哀的。

阿達的話,要作六子棋,坦白說,以目前的狀況來看,我覺得他完了,跟老師報的東西完全顯示了他對於研究方向在基礎知識上的不足。我真的很矛盾,說我對他完全沒有負面情緒,我想那是假的,但是說我不想幫他,那也是假的,也許不是每個人都是有善惡兩面同時存在,但是我是有這樣的狀況,說是偽善也好,就像哪裡看到的一句話:「貫徹到底的偽善,也是一種善良吧。」要是他不能順利畢業,也許我內心會一種「哈哈!報應!死好!」的想法,但是我還是希望大家都能順利度過。最快樂的時候,就是碩一暑假那個時候,我們會一起討論東西,他會問我程式,我還會教他東西,大家一起努力的時候,我喜歡那種感覺,就像是現在小帥他們那樣。慢慢變成現在這樣的過程,我都記得,老實說我覺得阿達是白痴,會弄到這樣都是他的智能不足以及幼稚,人都會犯錯,但是不知檢討硬把錯誤推給別人來合理化連自己都知道自己是錯誤的行為,才是真的愚蠢。照道理說,他不能順利畢業,我會開心,但是他要是能順利畢業,我也會開心。我有是總會想到他突然跳出牛角尖,然後跟我道歉了,我知道現實上不可能,但是有時候做夢會夢到,夢到我們會講話,感情不錯,但是做夢只是做夢。

對於書欣、世龍、小帥、阿坤他們,我是內疚的,也許我個性對他們來說還 OK,或是因為我是學長,他們對於我的無能跟不負責任也就沒多苛責,但是過去一年,我對他們的幫助是幾乎沒有的,我過去內心也知道這件事情,但是在現在,我才有比較深刻的體會到這件事情,良心的譴責也越來越大,我還有五個月,我能給他們什麼?我自己在未來的五個月,我能不能順利的把論文完成?我有沒有多餘的時間給他們什麼幫助?我不知道,我不敢說,因為我總是說了卻作不到,一切還是要去作,不管我自己怎麼跟自己說,都是沒用的,就是要去做了才知道(明天就要做了),怡亭在這邊給我很多隱性的助力,一方面是她的認真態度會感染別人,一方面是內心還是會被牽動的,儘管越來越少了。講到這,該睡了,明天還要早起把 ORTS 盡量搞懂更多地方,希望能給他們更多東西。

東京80年代

翻到這個漫畫,愛情故事,好久沒看過這種愛情故事,像是無殼蝸牛連環泡或是橘路這種單純的愛情故事,沒想到現在還有人畫。

看了會很痛苦的故事。

什麼都不懂的人,很辛苦的愛著對方的故事,不小心的傷害對方,不小心的傷害自己。周圍有好朋友,幫助自己,很痛的故事。

也許這些故事總是故意鋪陳的很曲折,讓每個人都掙扎很久,讓看故事的人的心一直懸在那邊,儘管知道,但是總是難過的。有沈重的地方,不喜歡,大家都努力要當正常人,大家都很努力,每個人都努力讓自己不要傷害到任何人,但是總是……

2008年1月26日 星期六

研發替代役

傻傻的我一直不知道研發替代役已經要開始找了,要不是詩芳跟建勳講到,我還真的一直都笨下去,運氣很好,我很痴呆,但是周圍一直都有貴人在幫助我。

開始投履歷了,一開始就是帕姬有跟我說 RealTek 的薪水非常不錯,她說她們含股票會有 150,我聽了很心動的,也說他們多媒體部門不錯,而我也一直抱著就是秉著自己的技術要拿命去換錢的心態,所以之前一直就是鎖定這一家了,帕菲又是在那邊當主管的,我想說要進去應該是沒問題的。上了 104 打開很久沒動過的履歷開始修改了一下,然後就去找了 ReakTek 的職缺,發現好像沒有完全適合我的,只有大致上好像可以做的,還是投下去了,但是過了幾天都沒有回應的。等了幾天之後,覺得這邊好像不是很順利,跟世梧學長的朋友聊過,想想應該是要多投幾家,於是就去多投了兩家,不過也都是沒有回音呢。

另外一方面,在履歷打開以後,就陸續有公司寄信來叫我去面試,之前就聽人說要去大公司比較好,比較穩定,另一方面我也是想著要找很賺錢的公司去賣命。而其中最大一家是凌陽(Sunplus),我也不知道那是幹嘛的,上網看了一下,還是不太清楚耶,不管,總之他們電話打來了,那就約定了面試的時間,這是距離上次到 Altek 面試之後隔了兩年的一個面試,早已經忘記面試的感覺了,我也不知道自己該說什麼,所幸面試官人很好,讓我聊得很開心,我也覺得自己有很順利的表達出自己的能力。他問的問題也許跟技術沒什麼關係,但是我覺得某些程度上是可以反應個人能力的。像是問我過去作過什麼,在這些計畫當中擔任的細節是什麼。另外他一開始也問我是不是很晚才開始找,我說是阿,他說因為像我這種履歷的人,應該老早就被找走了,這是讚美耶,感覺他對我印象很不錯,我聽了很開心,不過我真的是很呆啦,都不知道要開始找了。我問了薪水跟上下班時間,說一般是十點下班,薪水會接近五萬,我覺得是可以接受的,畢竟我喜歡寫程式,寫到幾點都沒差,薪水也是很好呢,以前的兩倍說。我想這是個很順利的面試,回研究室的途中很開心。

之後接到另外一個電話,是一個八方科技打來的,我看了一下是小公司耶,但是覺得多面試學經驗也不錯,其實我這個時候都有恃才傲物的心態,想說自己的能力總是可以去大公司的,小公司我去面試就是去增加面試經驗而已(也不想想自己手腳有多慢,大家老早就找滿了)。去到八方以後,進入大廳,最開心的是大廳竟然有兩隻恐龍化石!一隻是類似雷龍的東西,但是比較小,另外一個就是翼手龍。等待面試官的時候,我跟大廳的大姐在聊天,她說因為這棟大樓叫做翼龍,所以有放翼龍的化石(那我就不懂另外一個像是雷龍的是幹什麼吃的)。我問她那是不是真的,她笑了,說當然是假的,但是旁邊牆壁上有一個真的,我去看了一下,哇,超大,大概三層樓高,是平面的,就像是魚拓一樣的化石。

面試官出來啦,這邊講一下他是個大鬍子但是很斯文的人 :D。他一邊翻看我的履歷,一邊問些問題,他講話有點結結巴巴吧,好似不太確定要說些什麼,可能他也很久沒有面試吧。很自然的就聊天這樣,聊一聊,他說他們公司是作 IP-Cam 的,我是第一次聽到這種東西,說是跟 Web-Cam 一樣的東西,但是不一樣的是 IP-Cam 是直接插網路孔這樣,唷~現在科技真進步,什麼東西都有 @@"。他說雖然找我去是去作寫程式,但是大部分的工作內容可能在校調參數,說是很 duty 的工作,也許不像我所想像的那樣很多變有挑戰性。我說很謝謝他告訴我。然後他叫我去多投幾家(怎麼回事?orz)。他說現在這個時間,大公司可能都找滿了,但是還要我去多投一些大公司,因為通常大公司你不自己去找,他們是不會來找你的。叫我去多投一些,是他私人的建議的,說有能力的人應該要去大公司,但是如果我要去他們公司他還是會很開心。這是婉拒?我想他是講真的吧,因為我也覺得我不錯耶 :D ,然後我謝謝他的私人建議。好,我問了上下班時間跟薪水,薪水大概是四萬出頭,他說他們公司算是早下班的公司,一般來說是八點,他笑了,說不知道這算是好還是不好,我問他:「那你喜歡早點下班還是晚點下班阿?」他說:「現在的我會想要早點下班。」我說:「家裏有小孩了?」他又笑了:「恩。」又說:「年輕的時候,我也一樣覺得下班時間無所謂的,但是現在有小孩就不一樣了。」我說:「早下班很好,我小時候爸爸都不在家。」面試就這樣結束啦,我想這也是一個很順利的面試。剛剛走出面試的房間,手機就響了,是上面那家凌陽通知我下禮拜去參加複試,恩。果然之前凌陽的面試不錯成功喔。我心情很好,離開大樓經過櫃台的時候,我很開心的跟大姐喊到:「嘿!我面試很順利耶!等我來這邊工作,我們天天見面阿!^O^」她哈哈笑。

信箱打開,陸續也收到一些小公司的面試通知,但是我都沒想要去,也都沒回覆,一直都還是對自己能找到好公司而自信滿滿,尤其是凌陽通知我複試以後覺得應該是很穩當了。對了,這個時候真的有感嘆的感覺,以前學歷掛交大運輸的時候,從來也都不會有公司找我去面試,然後放了很久很久很久的履歷,也只有一家公司看過而已,而且還是毫不相關的公司,104 寄給我的速配清單,永遠都是空白的。學歷改成清大資工以後,很多公司看我的履歷,然後也有很多公司寄面試通知給我,另外速配清單上面一直都有很多公司可以選。有的時候心裡不知道該做什麼感想,是應該開心還是應該難過都不知道。

過了週末到禮拜二,就去了凌陽了複試,去之前我是很開心的自信滿滿。開始面試以後,對方問的問題不多,而且有一些我不知道怎麼回答,他問我有沒有什麼問題,我覺得我都沒有問題,我心裡的想法是做什麼我都可以應付,沒有問題,他就是一直低頭看我的履歷,大部分的時間都是沉默,有的時候會問我問題,我答個兩句他就會打斷我說好好好,他大概是個很忙碌的人吧。後來我想到一個問題,我問他:「你們為什麼都不考人寫程式?這樣不怕找進來的人不會寫嗎?」他說:「一般履歷上面寫的,我們就相信是真的,我們就是看履歷跟成績單,但是你沒有帶成績單。」複試大概二十分鐘就結束了,過程當中覺得自己不是很受重視,他講話不會看我,只會低頭看履歷,我回答也都會被打斷,嗚嗚,雖然我不是很強的高手,也許不值得尊重,但是還真有一絲絲被羞辱的感覺。我想這個面試是搞砸了,下個面試我會記住一定要問些問題,唉。

當天回來以後,手機響了,接起來是一個中年男子的聲音,大概四十多歲吧,問我是不是有在找研發替代役,我說是。我心裡覺得還蠻奇怪的,是要找我去面試的嗎?阿一般接到這種電話都是年輕女生的人資打來,這個男生感覺不像是人資阿?然後他就開始介紹他們公司作些什麼,然後為什麼他們的東西跟我有關,在說明的過程當中,講到說其實他們的東西好像跟我無關,但是其實可以看作是在一個 graph 裡面進行一些演算法運算,他看到我的履歷,覺得我很他們需要的符合,問我有沒有興趣。我想這個人好像是 RD 的主管,雖然不確定啦,因為我感覺到他很有誠意耶,竟然是自己先用了很多時間,講解自己公司是在幹嘛,然後才問我的想法,而且打電話來的又是一個這麼懂技術的人,我想說去聊一聊也好。老實說我要承認我內心還有另外一個想法是,想說一個連找人都要 RD 主管自己來找,沒有人資嗎?那大概是小小小公司吧,我想就是去聊天多增加經驗跟看看別人公司長什麼樣子,所以說:「如果可以的話,那我是不是可以去你們公司聊一下?」然後就約定了禮拜四的面試。收到了確定的面試通知信件,感覺也是剛剛那個人寫的,內容都是英文,我也用英文回信了。跟他說我會準時到達。

禮拜四到了我就跑去面試,阿結果我搞錯地址,然後又迷路迷路迷路,最後終於找到他們公司,約定的兩點到的時候,SC(那個RD主管名字的縮寫)還有打電話給我,問我是不是到了,我說我正在迷路當中,他叫我不要趕,慢慢來,但是我真的很歹勢(我回信還跟他說我會 on time 勒),SC 說到公司的時候,如果門是鎖著,可以打他電話,他會來開門。我找到以後,發現還真的門是鎖著,然後櫃台裡面空空如也沒有人,我內心就在想「這公司是不是快掛啦?怎麼連人都沒有?門還鎖著?然後看起來也很單調,不像人家有大理石地磚大廳。」我打了電話以後,是一個小姐來開門,我說我來面試的,她就領我去 SC 的辦公室。看到 SC 的感覺就像是電話裡面給人的感覺一樣,很溫柔,很有誠意的,那個時候因為我迷路到處跑來跑去的,所以很喘,他很客氣的要去幫我倒水,但是我很不好意思啦,就趕快開始面試了。

一開始 SC 是更仔細的介紹他們公司做的東西,然後介紹公司的來源,原來大老闆是台灣人,台大畢業以後去矽谷開了公司,後來公司一部分搬回台灣,另外還有一半還是留在矽谷,兩邊都是約二十多個人。

有了幾次面試複習,這次我也不會傻傻痴呆了,一開始我就先說:「那我就先自我介紹了 ^^?」SC 說:「恩,好。」然後我就吸哩呼嚕的開始從國中開始自修組合語言阿,高中寫 BASIC 跟 C/C++ 阿,然後大學一直都是寫 C++,一直講到後來,到現在研究所學了 Java 跟 C# 還有 Python,另外高中的時候寫過繪圖函式庫阿。SC 很專心的聽,眼睛一直看我,聽的很有興趣的樣子,我覺得很開心,就一直講。然後他問我有沒有帶成績單阿,我說沒有(很心虛害怕),他說:「沒關係,那你就說說看你修過些什麼課好了。」他這邊都是微笑喔,於是我就很放心的開始講了,因為他並沒有讓我覺得我是一個沒帶成績單的廢物。講了大學修過資料結構演算法,神經網路,演化計算,影像處理,分散式演算法,解題程式技巧等等。

然後他問了問題,很直接的就問我:「你說說看 depth first search 跟 breadth first search 有什麼差別?」,因為是很簡單的題目,很快就回答他,然後也補充了一下 steped depth first search 的說明。然後他問了:「你知道什麼是 hash 嗎?」我一下不知道怎麼回答,因為我覺得回答:「算一個 hash value 去當作 index」 這種回答好制式,我說:「我一下不知道怎麼回答耶,我可以從頭開始講嗎?」「可以阿^^」然後我就從一個陣列可以提供 random access,但是要 O(n) 的 insert 跟 remove 開始講,然後說 linked list,可以提供 O(1) 的 insert/remove 但是要 O(n) 的 search,然後說 binary search tree 可以把 search time 降到 O(logn),然後是這個 logn 如果 tree 不 balance 就不成立,所以有其他 AVL tree 或是 23,234 tree 等等就是為了要做到平衡,這樣可以把 search time 壓到 logn。但是當 n 很大的時候,logn 還是很大,那我們如果用 hash 就可以把 search time 變成幾乎是一個常數,雖然說常數項有點大,但是當 n 很大的時候,這樣就很划得來。然後講說 collision 的幾種處理方法。講完以後我還蠻開心的,因為很久沒有講這些東西,我覺得很快樂,而且我覺得坐在我對面的那個人也聽得很開心。雖然我曾經有想:「這個題目好簡單,我回答的東西他一定都會了,他會不會覺得很無聊阿?」但是開始講了以後,就自動源源不絕的一直講下去,忘記其他事情了。

其實這邊我很開心喔,因為這間公司是第一個問我「程式設計相關問題」的公司,我好感上升 ^^,因為之前看約耳的文章,「軟體人員面試交戰守則」裡面有提到,要瞞過一場面試太容易了,很多人是考試天才,但是要他寫他就死給你看,所以他一定要考人寫程式,沒看過一個人的程式,他是不敢用的。所以當 SC 問了程式設計的問題,我有一種很好的感覺,我想他們真的是要會寫程式的人。接著 SC 說等等還有兩個 team 的人要跟我面試,我聽了更驚訝,因為約耳(又是約耳!)說過,面試的時候,一個人一個小時實在談不出什麼東西,而且找人進來是要跟別人一起共事的,所以你要讓最少六個未來要跟這個人共事的工程師來跟他面試,而不能只有一個主管面試以後就說了算,這種以大頭作主的公司,素質是有問題的。所以當 SC 說我還要跟別人面試,我又加分了!這家公司好棒!他們真的是要找會寫程式的人!

然後 SC 問我有沒有什麼問題,這邊我很白痴,我就把之前我在凌陽面試炸掉的事情跟他說,然後說:「嘿嘿,所以這次我學聰明了,我有問題!請問你希望我能幫你做什麼呢^^?」SC 也很客氣的回答我。之後就結束啦。

接著就是第一組 team 的兩個人來跟我面試,他們一進來就一直笑我:「ㄟ,你的履歷是我看過最有意思的~」「阿?」「你的履歷是我看過最有趣的~」「呃?為什麼?是因為我不是本科系的嗎@@?」「不是,你填的『理想的工作性質:我希望是可以一直寫程式一直寫程式,整天都在寫程式。』哈哈哈」,我自己都忘記我寫了這麼好笑的理想工作內容 XD 問候過以後,我很不好意思的說:「那~我們怎麼開始?我先自我介紹?」「恩,好阿。」然後我就開始把剛剛跟 SC 講過的東西再講了一次,但是有些多了,有些少了,因為有的想到了,有的忘記了。講完以後,也是聊一下大學修過什麼,然後問了問一些技術問題,像是 hash 阿,或是 loop 跟 recursive 的差別。我覺得自己回答的算是可以,他們問我大學的資料結構跟演算法是不是很高分,我說我忘記了,因為我真的忘記了 XD!然後聊著聊著就過了快一個小時。

換了下一組的兩個人,這次我也是就先自我介紹,但是比較簡短了,因為同樣的東西講三次會痴呆 @@。然後也是問技術問題,我都順利回答,接著,他們問我:「怎麼比較兩個字串大小?」「阿?」「怎樣?是不是太簡單了?」「ㄟ,沒有啦,阿就先比第一個,然後比第二個,比到不一樣或是某個先結束,就可以分出大小了,不然就是一樣大。」「………唔……」「阿?我答錯了嗎?」「不能說錯,但是太高階了。」「喔,那我還是寫 code 好了。」然後就開始寫 code,一邊寫我就一邊碎碎念我的思路,然後很快速的把code完成了。他們檢查了一下覺得OK,然後又問了下一題:「給你一個字串……」「把他倒轉。」「你怎麼知道我要問這個?」「因為約耳說這是一個很典型的面試題目,簡單又可以考出程度,有的人就是可以寫出 O(n^2) 的演算法!」然後我就開始寫,寫一寫,嘿嘿,我第一次寫出來的就是 O(n^2) 的演算法,當然我馬上就 refine 了,然後也注意不要犯下 off-by-one 的錯誤。他們沒問問題,我想應該是正確無誤(但是以上兩題 coding 我在回家以後都發現還有更好的寫法,在常數項可以做的更快)。這邊要說一下,當他們考 coding 的時候我真的很開心喔……(對對對~又是約耳~!)反正就是這樣啦,我聽到他們的問題,我回答的很開心,他們聽的也很開心,然後還會冒出本來沒有的問題,像是突然天來飛來一個:「對了,你知道匈牙利演算法嗎?」「對不起,不知道,是用來解什麼的?」「就是………ㄟ,我也忘記那個問題叫什麼名字了,問題的內容是……(略)」「喔喔~聽起來很像是 minimal match,阿 minimal match 是 NP。」「恩~恩~喔!對!匈牙利演算法就是 bipartite 的 minimal match!」 「喔~對~但是我不會 @@」然後聊到 A* 阿,C++ 的 new operator overloading 阿,hash 在實際上應用的問題阿,還有解決的辦法阿,能跟人聊這些真的蠻開心的,因為平常我並沒有多少機會跟人聊這些東西,這邊也是聊了快一個小時。

之後是人資小姐出現啦!(哇!還真的有人資!)她就是大致說明一下公司的福利之類的東西,其實這個時候我已經高興的有點茫茫了,不是很在乎這些了啦,我覺得這邊的環境很好,我很喜歡。喔,對了,人資姊姊說公司有提供免費的餅乾 >"< 天哪!讚!

然後出去以後,就是去跟 SC 聊了一下,SC 說他覺得我不錯,兩個 team 的人也都覺得我不錯。我聽了很開心,但是因為有看過 Tech_job 版上說不管主管口頭上說多喜歡,或是說要錄取你,在沒有拿到 offer 以前,一切都可能變卦。所以我還是很理智的保持自己不要太開心。這邊我問了一下 SC,說為什麼是他來打電話找人,不是人資找人, SC 說:「因為我們要找的人就是要比較專業的,可是人資只能從學歷來分辨應徵的人,所以可能找來的人並不適合,那面試就會浪費一些時間。與其這樣,那不如我自己辛苦一點,多花一點時間我自己來找,我多花一點時間,就可以省下大家花很多時間,很划算。」我聽了很開心。然後 SC 說他們下個禮拜還有好幾個要面試,而且也不能就他說了算,他還是要跟別人投票,要是他說了算,那就太霸道了。我聽了很開心喔,因為他們公司的文化讓我好喜歡。他說雖然他覺得我是十拿九穩,但是還是要開會投票。而且他們總經理正在日本出差,下個禮拜才會回來,所以要等到下個禮拜才能確定。他叫我這段時間如果還有面試,就要去,不要都不去了。我知道沒有拿到 offer 都是假的,我最好還是不要對這邊太有把握,但是我真的很喜歡這裡阿!我說:「好,但是我很喜歡這邊,這邊就是我的首選,如果別人錄取我,我也會先等你的通知,你拒絕我我才考慮別人,所以如果你不錄取我,也要快點跟我說喔~」SC 說:「好。我很希望你能來,來了要好好表現。」然後送我去搭電梯,之後我就回研究室了。

其實這個時候,我覺得很羞愧阿,因為自己竟然會因為公司很小,或是門面不好,就幫這家公司扣分,實在很幼稚 @@,公司裡面的人跟公司的文化真的很重要,我覺得自己的心態還要再加強!

回到研究室,就跟詩芳聊面試過程,聊一半,電話響了,接起來,是 SC 打來的,他說:「我剛剛打電話給日本的總經理談過了,然後也開會通過了,我現在就把 offer 給你,如果你要來的話,那最慢下個禮拜要回覆給我。」

就這樣,我找到研發替代役的工作了。一個公司文化讓我很喜歡,周圍都程式高手可以讓我更加精進,然後上下斑時間很滿意,薪水也高出一般標準的工作。但是以上都不是讓我最開心的,我最開心的,是在那邊我有受到尊重的感覺,他們給我一種感覺,就是他們讓我覺得「我是個人才」。老實說我真的很高興,就像是 PTT Tech_job 版上面的推文:「士為知己者死」,我看到的時候覺得很貼切,我就是這種感覺喔,遇到重視自己的人,就會覺得在他下面做事是一件很快樂的事情。

現在一直很開心,開心當初有接到 SC 那通電話,才會有後來這些事情。

媽咪知道了,也會比較放心了吧。