2007年8月27日 星期一

暑假

很久沒寫了,我想主要是懶惰吧,整個暑假的一次寫吧 ^^

暑假最重要的事情,大概就是 GRE 考試了。
7/28~8/3 的日子都在日本,在這之前則是很不甘願的念英文,暑假其實 7/2 就開始了,但是一直都在打混沒什麼唸書,混著混著考試時間就到了,手忙腳亂的就去了日本,八天,老實說是不太想去的,因為覺得都沒唸書,去考試真的是浪費錢。在日本的行程,絕大多數都是逛街逛街逛街,行程是向原大媽排的,而他們很喜歡逛街,我是不怕逛街,但是狂逛街我還是會嚇到。話說日本的東西都好貴,吃飯一般都是一千日幣以上,最貴的一餐吃到三千多日幣,嚇死我。因為這樣,老實說前幾天是不開心的,我一直都很想回台灣,在這之前我沒注意到我其實不喜歡旅行。

真正開心的是最後一天吧,就是沒有排行程的日子,那天上午很意外的去了早稻田大學,剛好遇到他們的校園參觀日,是給高中生參觀學校的日子,早稻田的競技啦啦隊,應援團,還有管樂團三個一起表演,其中最讓我印象深刻的就是應援團了。男生們剪著很短的頭髮,穿著很挺的黑色衣服,然後全身很用力的在拍手,很用力的做出每一個姿勢在加油,在現場看真的會很感動的,現在才知道什麼是應援團。舉旗的那個人很辛苦,當他要把棋子平舉的時候,全身都在發抖,抖到臉都在抖了,很恐怖。打大鼓的那個人也是超厲害,感覺他每一下都是用盡力氣的打下去,那個鼓聲是會嚇到人的那種,很震撼,然後鼓面都已經被打到扭曲變形了。

那天的晚上在自由之丘的時候也是很意外的,剛好遇到他們的祭典。居民們用工程車把道路給擋住了,在一個圓環上面搭起了高塔,上面放了太鼓,有人在上面打鼓,然後有放盆舞的音樂。圓環下面有人繞著圈圈在跳舞,下面幾乎所有的人都是穿浴衣,很多人一起穿浴衣真的很漂亮呢,一開始只有幾個人,但是後來就越來越多了,到一個小時後我們走的時候,本來只有七個工作人員的,後來是整個圓環繞了一整圈還不夠,還繞去第二圈。那種感染力真的很強喔,我也有在旁邊跳了一下,銀行行員下班以後也都穿著很整齊一致的浴衣跑出來跳。話說女生穿浴衣真的很漂亮喔。本來我到日本就很想買一件男生的浴衣回來穿,但是一直找來找去都找不到男生的浴衣,跑了好幾家的 UNIQLO 都買不到,本來已經放棄了。結果當天看到好多浴衣,我又燃起希望了,就問了路邊賣浴衣的店家,他們跟我說另外一個本店有在賣,所以就殺去買了,結果終於給我買到啦~好開心。但是真的是貴呢,浴衣的本體要四千日幣,然後角帶要兩千六,換成台幣的話,大概是快兩千塊錢吧。但是很開心,買了回台灣以後,還有穿好幾次喔。

對了,三鷹的吉卜力博物館,就是龍貓那個宮崎駿的博物館,裡面有很多東西好看,像是立體的模型,透過閃光的技術,看起來會動,然後還有很多卡通的手稿,真的很稀有罕見,看到好多魔女宅急便的手稿喔,真的很開心喔,這個是我非常非常喜歡的卡通,我也不知道為什麼,還是因為我很愛琪琪 ^^(喜歡卡通人物好像有點怪怪的?不過我真的很喜歡她)。裡面還有一隻超大的龍貓公車,超喜歡,小孩子還都可以爬進去玩喔,那隻大龍貓公車真的超有fu的,感覺就像是真的從卡通裡面跳出來的一樣,不過大人不能進去,真是殘念。然後還有巨神兵,站在博物館頂樓外面的屋頂上面,看著入口的地方,給我好大的壓迫感,因為真的很害怕阿,巨神兵很強的,那個時候我真的有嚇到。沒有看到傳說中的小龍貓公車電影真的可惜了。另外這邊應該也是我花最多錢買紀念品的地方了吧,錢錢都在這邊啦 :D 買了拼圖跟三隻小龍貓玩偶,然後還有一本筆記本。對了,這邊有看到 On Your Mark 的手機吊飾喔,真的好稀有~

日本大概就是這樣了吧,對了,GRE 考了 310 分喔,大概就是跟亂猜沒兩樣,很慘 ^^ 大概明年還要在台灣再考一次吧。紙筆比較難考哩,但是也沒辦法了,去日本真的好花錢,除非我有賺大錢。

從日本回來以後,就是連續兩個禮拜的英文課,教的是 Technical Writing 跟 Technical Present 兩種東西。我覺得兩個都學到很多東西耶,真的有學到。其實一開始我比較喜歡 present 課,但是後來因為仔細思考了一下實用性,覺得 writing 其實也真的很實用,所以就兩個都喜歡了,不過就在上課的這兩個禮拜阿,我竟然感冒了(去日本之前才剛感冒),結果上課到了第二個禮拜其實精神狀態都不太好。對了,上英文課有很值得開心的事情喔,就是認識了 Grace,是很可愛的女生,感覺也很大方,雖然對她是沒什麼特殊的感覺,但是覺得當朋友是很好的,我喜歡這個人,不錯,Sylvia 也是很可愛呢,不過中鎮比較愛 Grace 啦,哈哈。

英文上完以後,就是準備回到作研究的日子嚕,不過在這之前還是努力的給他偷懶了好一陣子。最近剛開始回復運作的兩樣工作,一個是幫詩芳弄好了 XML 到 DATABASE 的程式。另外一個是 learning 組內要用的 reinforcement learning world editor,目前寫到一半,寫這個的時候我很開心喔,用的是 C#,開發 GUI 很簡單輕鬆,覺得有獲得那種很久沒有的寫程式的快樂滿足感,就覺得自己有做出些像樣的東西,不過其實核心都還沒弄啦,現在都只有 GUI 而已。

今天跟老師報告了論文要做的題目:「Artificial Society and Emergence of Language」其實我也沒有想要作這個耶,只是因為時間到了,應該要跟老闆報告一下,所以前一天晚上吸哩呼嚕的胡亂的找了一個題目,不過老闆還是很認真的給我了很多有用的建議,討論完以後,覺得修改一下方向,不失為是一個有趣的好題目,是可以做的喔,我是不是作這個題目來投 AAMAS 呢?

今天早上想到了一個 reinforcement learning 狀態抽象化的方法,不過還只有大致方向而已,細節還沒連上,不知道能不能補齊。

Reinforcement Learning 的過程當中,對於很多 state,其實只有有些屬性是 critical 的,很多屬性其實不是這麼重要,所以如果我們可以辨別出那些屬性才是真正重要的,那就可以加速 RL 的速度,因為需要考慮的 state space 變得很小。中鎮的論文就是以這個點為目標,他先用 spectral graph 把 state space 進行切割,然後針對切割以後的空間,進行分析,看看哪些屬性比較不重要。在 spectral graph 切割以後,還有一個地方可以加速很多的,就是他把被切割出來的空間,先初步的進行了比對,這樣就可以把兩塊以上的類似的空間,歸納成同一種空間,然後共用相同的 policy,因為很多問題都有這類的現象,中鎮的實驗跑出來的東西比人家快上一千倍,好厲害。不過還有兩個可以改進的地方是(中鎮自己講的),一個是 state abstraction 的部份要在 learning 完成以後才能進行,這樣的話,用途就有限,如果能夠在 learning 的過程當中就進行 state abstraction 的話,那真的就很強悍了。另外一個是 state abstraction 只能對切割以後的 subproblem 運作,如果 state space 的 graph 是連成一整塊的,那就沒辦法進行 state abstraction。

我想要的東西是這樣的:可以即時的進行 state abstraction,然後也可以對於一整塊的 state space 進行 state abstraction,這樣的話,就可以利用學習前期學到的經驗,應用在後期,來加速學習的速度,不過要做到這件事情是很困難的。

另外一個相關的問題是 transfer learning,是把在某個環境學到的東西,到了另外一個環境還是可以用。我認為這個問題的關鍵在於 state 的 abstraction,因為透過高階的抽象化對應,我們才有機會知道一個環境跟另外一個環境要怎麼 mapping。所以這兩個問題的關鍵都在於 state abstraction。

State abstraction 其實有已經很明顯的工具了,就是 neural network 這類的什麼鬼的,已經做到爛掉了,RL 本質上的形式是找到最佳的「輸入(就是目前的 state),輸出」對應,這一點跟 NN 是一樣的,不過 RL 跟 NN 不一樣的是 RL 能夠解決 delay reward 的問題,NN 則沒辦法。其實複雜一點的 NN 還是可以的,像是那種可以考慮 time series 的 NN 架構。目前看到的是只能考慮固定遙遠的動作,我不知道有沒有可以考慮到無限遙遠的模型,不過 RL 是可以透過 dynamic programming 來解決這個問題。對了,既然本質上 RL 也是在尋找「輸入,輸出」的最佳化函數,那我今天的目標就是要尋找一個可以考慮到無窮遠 delay reward 的 NN 就好了,當然這點可能的話還是要用到 DP,我在想如果是那種連續型的 RL 模型,其實本質上根本就跟 NN 一樣,我也許可以從這邊出發?我現在是想在一般的 Q-Learning 上面跑,但是把 state 跟 reward(或是utility) 當作是 NN 的輸入跟輸出,這樣一直持續性的在訓練 NN,這樣當訓練過一段時間以後,NN 會找到 state 跟 reward 的關係,然後我可以參考 NN 的輸出來決定要走的方向(當然一開始就會根據 NN 來決定走的方向,不過當初期 NN 沒學到東西的時候,其實就等於沒有),可以的話,我是不是還可以加上簡單的 search 功能?我一直覺得 RL 跟 searching 其實是要相輔相成的,解決真的困難的問題,其實應該是兩者的合作,RL 一次只能跳一步,實在不夠,因為有的時候你必須要一次看後面好幾步,只靠 trail and error 來進行學習實在太慢了,我想透過 searching 的能力來改善 RL 更新 utility 的效率,也許 searching 的策略來源就是 NN 的 output?我也不知道。目前就想到這邊。對了,注意一下,如果想要用 NN 在 learning time 進行 state abstraction 的話,要記得,要真的要利用到 state abstraction,意思就是說,我在更新 utility 的時候,真的只考慮到部份的 state(還是說是考慮到 NN 的輸出?)。

寫東西很開心,很久沒有這麼開心啦 ^^

接下來的工作是:
1. 繼續 ReINforcement learning world Editor (Rine) 的撰寫。
2. 給小帥的 Learning Tutorial (supervised learning, unsupervised learning, reinforcement leaning)。

沒有留言:

張貼留言