似乎都忘了這件事阿,要不是看到你的文章我可能就真得會把他給忘記了
到底換了多久?
那一陣子每天午睡時,就像抱著一個人般好睡。
好舒服。
---
結果你還是開了全部啊。
Read more!
戰火浮生錄,昨晚夜貓子播的電影,也算是一個失敗的場次,是法文而且又沒中文字幕,過了好久才出現英文字幕。說實在話我一點都看不懂劇情在做什麼,中途還跑去電台當聖誕老公公。可每次看到他排戲的片段,總有莫名其妙的感動。
用波麗露開頭,也用波麗露結尾,這是我第一次看到這齣戲。不斷不斷重複的音樂片段,襯托在後方鐵塔,似乎也是個跨年的場合(?)。到現在我還是無法整理出來那時的悸動,突然覺得一切都好神聖,紅色的舞台四方的舞者周圍的觀眾和那白十字,幾乎是摒著呼吸過完這10分鐘的;可能和老師說他親耳聽到八部合音時想要跪下來的情況相同吧。
一定要在大螢幕好音響看的電影。
引下文章片段引用自 藍藍的movie blog:
http://blog.yam.com/tonyblue/trackback/45223
《戰火浮生錄》用「波麗露」的舞劇做開場,也用「波麗露」的舞劇做結尾,電影中主跳的舞者就是由莫里斯‧貝嘉舞團中外貌絕美、身材俊美的舞者喬治唐主跳,隨著「波麗露」一再循環的音樂旋律,你的人你的情緒就好像被催眠一般,再難忘懷,後來該片在美國上映時,根本就放棄了《這些人.那些人》的原始法文片名,乾脆就直接叫做《波麗露》,更能夠讓觀眾明白該片的力量與精彩。
當年,《戰火浮生錄》在台灣上映曾經讓許多人動容,三年前,愛樂電台的一位聽友寫信給我,詢問我還有沒有機會再看到這部二十年前轟動一時的電影?因為她的母親一直很想希望能夠再重溫這部電影的滋味。做人子女的深情讓我深受感動,因而費了一番功夫後,我終於弄到《戰火浮生錄》的錄影帶獻給這位從未見面的聽友。寄出錄影帶的那一天,我彷彿可以想見老太太再看到這部電影的感動,那是多美好的回憶!
隔了幾個月後,在一次演講的場合裡,老太太也到了現場,沒有多說話,送了我一份禮物,表達她的心意,那個場合那種感覺,很像《似曾相識》的場景,其實,我們共同擁有的其實就是對某些電影的共同喜愛與共鳴。人生的經緯交叉線,就是會有這麼多意想不到的遇合。
Read more!
一輩子有多少的來不及
發現 已經 失去 最重要的東西
恍然大悟 早已遠去
為何總是在犯錯之後
才肯相信 錯的是自己
他們說這就是人生 試著體會
試著忍住眼淚 還是躲不開應該有的情緒
我不會奢求世界停止轉動
我知道逃避一點都沒有用
只是這段時間裡 尤其在夜裡
還是會想起 難忘的事情
我想我的思念是一種病
久久不能痊癒
Read more!
我不想待在這裡了
曾經引以為傲的這裡,已經變成急想逃離的天地,
感覺有好多好多好多東西等著我,
是一種橄欖色不愉悅不透氣不通風,
在進門後以時間的速度侵佔我周圍的空間,
再學著我姿勢看著同一台電腦同一個螢幕坐同一張椅子直到完全覆蓋我,
好黏稠的感覺,
像是連續打完10小時打完籃球後不能洗澡,
像是擠捷運時全身上下無一不黏著其他人,
像是丟到海裡一直往下沈往下沈,
不是不能動,是怎麼動都不舒服不自在,
好噁心。
Read more!
跟某個人一樣換個歌詞認同症吧
陶晶瑩-離開我
作詞:袁惟仁 作曲:袁惟仁
我把你的電話 從手機裡消除了
我把你的消息 從話題裡減少了
我把你的味道 用香水噴掉了
我把你的照片 用全家福擋住了
你讓我的懂事 變成一種幼稚
你讓我的驕傲 覺得很無知
你讓我的朋友 關心我的生活
你讓我的軟弱 陪伴你的自由
離開我 你會不會好一點 離開你 什麼事都難一點
車來了 坐上你的明天 車走了 我還站在路邊
離開我 你會不會好一點 離開你 什麼事都難一點
風來了 雲就會少一點 你走了 我住在雨裡面
---
最近一直聽的歌
離開你 什麼事都難一點
車來了 坐上你的明天 車走了 我還站在路邊
我的車不知道哪時候才會把我載走這什麼都會難一點的地方。
你的明天應該會很棒吧,那麼關心你的人。而你也會被說成那偉大的女性。
---
舉起,敬那不堪的泡沫表面彩虹。
Read more!
陶子 小眼睛
他發現了一件悲哀的事:快分手的愛,竟和快用完的衛生紙一樣。
坐在馬桶上,轉身要抽取時,發現這一包紙,剩下薄薄的一小疊。小心翼翼地用它,二張太浪費了嗎?一張勉強用用吧。一直謹慎地盤算著,深怕用完就有世界末日般地困境。但如果離開廁所時,記得放回一包新的,那麼,下次對待那剩餘的紙,可就是不顧一切地揮霍了。
因為有了下一包,所以對殘留下來的餘孽,可就覺得分外刺眼,於是,下一回看著那些紙,就一大把地亂抓,企圖盡快地結束它們的壽命。三張擦屁股;二張擦馬桶蓋;還有一張飄到溼溼的地上,就用剩下的最後一張把它包起,一起丟到垃圾埇。鬆一口氣,總算可以專心地面對那全新的未來。
一段愛,殘破不堪地拉扯著,到了最後,也是這個樣。不知該不該分手,小心地維護著,好像只為了別把自己推入孤單,但如果這時有了一個全新的第三者,可又不同了。
那個用舊的情人,是你用盡千方百計想推開的,隨便什麼理由,都可以惹毛你,因為你已經看到那個全新的人等著。
別讓自己變成,那包快被用光的紙。
Read more!
昨天看到 你真好
---
很小時候家裡的大母狗在花園生了一窩可愛的小狗子
我很高興的認養了一隻小黑狗,
他非常非常的聰明善解人意,小小年紀
是我有過唯一會接飛盤撿球的。
國小的我,上課想著他睡覺也想著他,
每天唯一的期待就是下課後可以去花園找他玩,
超級喜歡這小可愛的。
套句老掉牙的話,好景不長。
有一天回家後,我媽跟我說,他今天跑到馬路上被撞死了。
那個下午,我在大馬路旁瞪著每台路過的車,詛咒著。
好難過好難過,大概是這輩子第一次體驗到的巨大悲傷吧。
日子還是會過下去,似乎不到一個禮拜,
我就遺忘了這件事情,每天為了那半小時的電動繼續奮鬥書法功課運動。
只有在深夜睡不著時,才會想起這隻小狗子,不帶悲傷。真好。
Read more!
好久沒這樣叫你了,死小孩
你後來好嗎?
你後來好嗎?我一直沒問過你這句話。
現在經歷過了,才知道那原來是這種感覺。
你那時候也跟我現在一樣的心情嗎?對不起對你那麼差。
差到我有時光機我會回到過去把自己給砍了,就算會消失也無所謂。
後來,就跟你說的一樣,我有了一個很可愛的女朋友。我管他叫主人。
一定是你很喜歡的那種。
她比你不白目很多,比你單純許多,比你健康許多,比你不會穿衣服許多,
我們一起過了好多好多快樂時光,
生日的金瓜石九份,梅竹的可魯,籃球場偷偷去梅園還被罵,新年的東南
生日的豬腳大餐,西提,內灣,北埔,好多的二輪片,21坡的全國電子
還有那一起從市區走回清大的晚上…
我曾經以為,我們會一直一直走下去,
因為他從沒抱怨過我不夠關心他,我以為這樣的關心能夠填滿他的需求。
我們從沒吵過架。
別人都是溝通,我們是吞下肚,
別人都是吵架,我們是分手,
都是分手後我才瞭解這樣還不夠,還是不夠。好多次,還是不夠,
都因為我放不掉自己,我不知道放掉以後我會變成怎樣,
等我決心要改變時,卻已經沒有機會了。
兩個還相愛(?)的人不能在一起,因為痛苦大過於愛的感覺了。
太多次了,主人再也沒有勇氣多給一次機會了。
我一直記得,你那封信問我,我學到了什麼?
到現在我還是無法給你答案。
真得要說的話,只能說很白爛的
"我學到應該如何去愛人"
不過現在看起來真是笑話,因為我還是不會。
我上輩子應該對東南做過不該做的事情吧,
先後你們兩位東南人,不知道是幸還是不幸。
我不會忘記那真善美大樓和小池子中的蓮花,一旁的小木屋,一絲不苟的宿舍。
這就是你們生長的地方。
死小孩,
謝謝你那時候沒有選那黃什麼的而選擇了我,
謝謝你那時候全心全意的助我考上大學。
而我那樣對你,現在體驗過才知道是多麼可怕,
跟你說聲遲來的 對不起。
Read more!
我願意
不要打線上遊戲
每天都要跟你說晚安,都問你心情好不好
每天都會跟你說今天發生的一件事情
陪你看電視
廣告的時候陪你玩
說噁心的話給你聽,聽你的抱怨
這是最後一次,好嗎?
Read more!
Simulated Annealing Algoritm,
是最近遇到最感興趣的演算法了吧。
把NP問題提昇到一種境界,
讓執行時間不再是單純的數字,
而是取決於使用者想要多好的答案。
一分時間一分答案阿。
分類:資訊相關2006/11/19 11:44轉錄自科學月刊雜誌社
#發行日期:1997、03
#期號:0327
#標題:模擬退火有趣的人工智慧研究(二)
#作者:林基興
模擬退火有趣的人工智慧研究(二)
--------------------------------------------------------------------------------
【摘要】模仿自然界的退火現象而得的演算法「模擬退火」,可應用到電腦輔助電路設計、影像處理、生物學、材料科學等。
自然現象
在熱力學上,退火(annealing)現象指物體逐漸降溫的物理現象,溫度愈低,物體的能量狀態會低;夠低後,液體開始冷凝與結晶,在結晶狀態時,系統的能量狀態最低。如圖一所示,大自然在緩慢降溫(亦即,退火)時,可「找到」最低能量狀態:結晶。但是,如果過程急就章,快速降溫(亦稱「淬煉」,quenching)時,會導致不是最低能態的非晶形。
似乎,大自然知道慢工出細活:緩緩降溫,使得物體分子在每一溫度時,能夠有足夠時間找到安頓位置,則逐漸地,到最後可得到最低能態,系統最安穩。
人類在找尋最適解(optimal solution)──例如系統的最低能態──時,可以學學大自然的「智慧」嗎?
關鍵人物
美國物理學家默察波利斯(N.Metropolis)和同仁在1953年發表研究複雜系統、計算其中能量分布的文章,他們使用蒙特卡羅模擬(Monte Carlo simulation)〔註一〕計算多分子系統中分子的能量分布。
美國IBM公司物理學家科克派特瑞克(S.Kirkpatrick)和同仁於1983年在《科學》(Science)上發表了一篇頗具影響力的文章:〈以模擬退火法求最適解〉(Optimization by Simulated Annealing)。
他們借用了默察波利斯等人的方法探討一種旋轉玻璃態系統(spin glass system)時,發覺其物理系統的能量和一些組合最適(combinatorial optimization)問題(以下將描述的旅行推銷員問題即是一個代表例子)的成本函數相當類似:尋求最低成本即似尋求最低能量。於是,他們發展出以默察波利方法為本的一套演算法(algorithm),可用來解決組合問題等的尋求最適解。
幾乎同時,歐洲物理學家卡尼(V.Carny)也發表了幾乎相同的發現,但兩者是各自獨立發現的;只是卡尼「運氣不佳」,當時沒什麼人注意到他的大作;或許可以說,《科學》雜誌行銷全球,「曝光度」很高,素負盛名,而卡尼卻在發行數量小的專門學術期刊(J.Opt.Theory Appl.)發表的。
科克派特瑞克等人受到默察波利斯等人用蒙特卡羅模擬的啟發而發明了「模擬退火」這個名詞,因為它和物體退火過程相類似。尋找問題的最適解(最小值)即類似尋找系統的最低能量〔註二〕。因此系統降溫時,能量也逐漸下降,而同樣意義地,問題的解也「下降」到最小值。此兩者的類似可用表一對照表明。
簡單的數學描述
在一物達熱平衡時,溫度為T,其能量狀態為E,則其概率值P(E)可表為波茲曼分布律(Boltzmann distribution):
P(E)=1/Z( T ).exp(-E/kT)
其中,Z(T)為歸一化因數(normaliz-ation factor),k為波茲曼常數(Boltzmann constant),exp(-E/kT)稱為波茲曼因數(Boltzmann factor)。
由上述方程式可知,在溫度降低時波茲曼分布傾向於最低能量狀態。
默察波利斯標準
為了模擬物體熱平衡的進展,默察波利斯等人提議以蒙特卡羅法,逐漸計算系列中不同能態。從某一狀態開(降溫),隨意選一粒子施予小小隨意產生的擾動(perturbation),此前後兩能態的差是dE。如果dE<0(即為負值),表示此種擾動導致物體的較低能態,因為這是所要的方向,因此繼續由此狀態改變下去。但是如果dE≧0,則表示能態升高,不是我們所要的方向,但是,且慢,先不要放棄這個方向,暫時假設可行,但不是像負的dE能差值一樣順勢推舟放行,而是有條件的接納此行進方向,此條件接受此新狀態的概率是exp(-dE/kT)。此值可由上述的波茲曼分布律公式推導而得:將前後兩不同狀態的方程式相除,可得此前後變化的相對概率為左邊,而方程式右邊即為此值。以方程式表示即為
P=exp(-dE/kT)〔註三〕
此一接受新狀態的規則即稱為默察波利斯標準(Metropolis criterion),亦即,若磁到能態降低時,立即放行,但若能態升高,但要看看默察波利斯標準,以決定繼續此方向,或停止尋找此方向而另起爐灶,找新的方向以求得最低狀態。
我們為何要這麼自找麻煩地弄個默察波利斯標準為尋找較低能態的指導原則呢?這和一般難題的佈景(landscape)有關,它們常是起起伏伏的(「故佈疑陣」地讓你弄不清尋找方向,但「山窮水盡疑無路,柳暗花明又一村」)。
為何它有效?
一般求最小值的麻煩在於跳不出局部解(local minimum),如圖二的點(x2,y2)。
假設我們從右邊向左(向下)尋找函數的最小值(y1),每一次能量均降低,我們順利地抵達(x2,y2)點,發現無論怎麼嘗試都會以為我們已找到最小值,因為「在附近」它最低,但是其實它只是個局部最小值,實際上我們並沒有如圖二的全圖可宏觀地知道到底我們是否已找到真正最小解(global minimum)。要怎樣才會跳出那個陷阱而達到真正的最小值(y1)所在的點(x1,y1)呢?
模擬退火法提供的管道是有條件的接受較高方向的爬升,其接受的概率是exp(-dE/kT)。就因為它能「忍讓一時」才得以「顧全大局」,最後終於求得最小值。這也是為何使用此方法需要一些「嘗試錯誤」,各方向到處試試升降,若實在試不出,則表示確已抵達真正最小解。以數學證明,它漸近地(asymptotically)可找到最小值(概率為1)──這可由馬可夫鏈(Markov chain)理論解得。
模擬退火方法
將它用在求最小解上,先找個可行的初解,以某一擾動方式產生下一可能解,比較新舊「能態」(或是別的衡量函數,例如成本費用、總收入、使用的時間等),若新值較小就接受此一新解,若新值較大則接受此新解的概率是exp(-dE/kT)。通常在運算時視k為1(或結合在溫度T值內),因此概率值是exp(-dE/T)。
但是,「接受的概率是exp(-dE/T)」是如何運作的呢?首先,產生一個隨機數(randomnumber)q,q值在0與1之間。比較q和exp(-dE/T),若q<exp(-dE/T),則接受此新解;若q≧exp(-dE/T),則不接受此新解,另外再產生一可能解(另謀生路),比照上法繼續下去。
總之,接受新解較高能(或者說,向上爬)的概率依默察波利斯標準而定,它來自人模仿大自然智慧(退火以找到最低能態)時,發出的「智慧火花」。
求解的步驟
使用模擬退火方法解決最適化問題的步驟是:
(1)分析問題與退火方法的類比
(2)選擇退火的計畫(溫度遞減方式、停留在每個溫度的時間)
(3)找一個擾動、形成新能態的方法(函數)
通常從某個「高溫」開始,在系統達平衡後,逐漸降溫,平衡,降溫……直到系統沒改善(能量不再變低)。
在這兒,溫度T是個借用的「物理名詞」,和實際的物理意義無關;它可以是個自變數,或某個「系統往低下的方向」,因此它只是個「控制參數」。而所謂的能態在大部分最適化問題中可能是總成本、花費時間、總共行進距離……等,而可以「成本函數」(cost function)來表示。
有四個因素影響最適化過程(求解的速度、計算工作量、答案趨近真正最佳解的程度等):
(1)起始狀態(或稱熱狀態,hotcondition)
(2)步驟大小(或稱降溫量,temperature decrement)
(3)平衡狀態(equilibriumcondition)
(4)終結狀態(或稱冷凝狀態,frozen condition)
此四因素和待解問題均有關,因此了解問題和模擬退火的類比方式很重要,然後才方便決定此四個因素,也許需要「嘗試錯誤」幾次後才解得較有效率些。
起始條件通常是個可行的解答(feasible solution)即可,亦即在「有效解的範疇內」。對大部分的最適問題,這通常不難找到。步驟大小是指下降的幅度;改變的太大,可能跨過最低值而「錯失良機」,改變的太小則有可能太費時間(缺乏效率)。溫度下降方式常以函數表示,也許是線性、對數方程式等,也許在最初階段,步伐大些,在計算後半段起,就步伐小些、精細些。在每個溫度時通常要反覆運算多次(例如,在多維空間中,各個角度、各個方向嘗試);平衡狀態即指在跳到一個新溫度時,嘗試到什麼地步(程度)才算是已達平衡狀態,而可跳到下一新溫度。嘗試計算的次數可能是溫度的函數,而其中一個指標是成功的次數(例如,在此溫度下,已嘗試5000次,其中2000次是成功的:亦即能量降低2000次)。終結條件可能是總嘗試次數已達某個量,或嘗試成功的次數是零(一直找不到更低能態),或已達某個特定溫度,因此就不再嘗試,可以宣告此最終能態為最適化問題的答案。
以上的描述看似繁複,但實際上由電腦來做(產生隨機數、反覆執行5000次等)易如反掌折枝,有興趣的讀者請參考文末附記的兩本書。
應用例子
模擬退火方法有很多實際應用的例子。積體電路的電腦輔助設計、影像處理、類神經網路、平衡運算等,也有生物學上的應用例子。
模擬退火方法在組合問題(combinatorial problems)的求解方面,相當管用。組合問題是不同選擇的排列組合,一個有名的例子是旅行推銷員問題(traveling salesman problem, TSP):
他必需到N個地方,每個地方只經過一次,然後回到起始點。問題是找最適解(最短時間、最短行程、或最少花費……)。
這問題自1931年發表以來已引起不少迴響,它很容易描述,但不容易解答,尤其是N值大的時候(例如N=500,或5000)時更難倒眾生!它的重要性不只是在現實世界中有不少應用例子,更要緊的是它代表一類非常要緊的「組合最適化問題」(combinatorial-optimization problem),而且是資源分配、管理的例子〔註四〕。
旅行推銷員問題的計算複雜度(computational complexity)可以簡單說明如下:
走過N+1個地方的方法有N!/2種(若無方向性限制);例如,6個地方的走法就有5!/2=60種,51個地方的走法是3×1064種。若N=1001,則可能解有上千上萬種,要從其中找出「最適解」,恐怕是幾輩子也算不出來。這是組合最適化問題令人傷腦筋的原因。
如果再改一下旅行者所受的限制(例如,他必需先到第5個地方才能到第9個地方),即擴充為「一般化的(generalized)旅行推銷員問題,GTSP」,則麻煩就更大了。
適合一般求解
由於組合問題可能很不易求得最適解,而求解的方式又不少,一般的做法是在「效率」和「儘可能合理地近似」間求平衡。若尋找完全解(exact solution)可能需很多的時間、心力,甚至可能在有生之年還看不見答案,因此可用近似解,或稱近乎最適解(near optimum)。近似解法又分為:
(1)特定演算法(tailoredalgorithm)──亦即針對某一問題而裁剪的解法。
(2)一般演算法(generalalgorithm)──可解答相當多類的問題。
模擬退火方法是解組合最適化問題的一般解法;而從另一種歸類角度看,它是一種適應學習法(adaptive heuristics),因為它的演算過程包含「自我修正」的機制(mechanism),例如默察波利斯標準。它適合複雜的多維難題,不論是整數解與否均管用。
結語
自從模擬退火方法發表以來,已有不少「改進」的新方法出籠。美國橡嶺國家實驗室的波哈謝斯基(I.Bohachevsky)等人1986年即提出「一般化的模擬退火方法」(generalized simulated annealing, GSA)。另外,它也衍生了波茲曼機器(Boltzmann machine)的方法等。
它又和其他的人工智慧方法有所關聯(系列之後會談);例如,有些求解的方法結合它和遺傳演算法(genetic algorithm)的優點。它也和類神經網路有某些程度的相似。
國內中研院數學所與台大資訊所等有人從事模擬退火研究;有興趣的讀者可參考:
1.William Press等人在1989年出的書《Numerical Recipes》。
2.P.van Laarhovern和E.Aarts在1988年合寫的書《Simulated Annealing: Theory and Applications》。
註一:它大約在1945年由馮諾曼(John von Neumann)和烏蘭(S.M.Ulam)提出,以隨機數(random number)建立數學模式。有人稱模擬退火法為「蒙特卡羅法」,讀者將可從本文的描述知道原因。
註二:若是找最大值,很簡單,只要在原問題加個負號就行,亦即,把問題「顛倒看」。
註三:因為dE、kT均是正值,因此p值一定在0與1之間,符合一般概率定義。
註四:在作業研究(operations research),旅行推銷員和它的無數演變問題一直是個熱門題目。美國航空暨太空協會(AIAA)在1988年提出「人工智慧設計挑戰」難題,即是前述旅行推銷員的演變。筆者即以模擬退火方法求解,成績很好。
林基興任職於行政院科技顧問組
Read more!