2010/06/29

Set-theoretic inductive types

中午有人問到 structural induction 是不是一條 axiom,Max 的答案最為全面:系統外我們自然認為 induction 對,至於在系統內的話,first-order logic 必須要設成 axiom (scheme?),到 FLOLAC '08 講的 second-order propositional logic(對應 polymorphic lambda-calculus)就可以用 Church encoding 表示自然數,從而自然地有 induction principle。我想的則是在型式系統的邊界處:在一般的數學架構下我們怎麼促成 induction?Category theory 用 initial F-algebra 弄得很漂亮,set theory 的話可以用 monotonic functions on sets + Knaster-Tarski Theorem 處理,都是把 inductive datatypes 定義得能夠做 induction。以下記錄第二種做法備查,因為我在回憶這種做法時有卡了一下 XD。

先在一個夠大的宇集裡隨便挑一個 constant z 和一個 injective "label" function s。(這句話有辦法說得更好嗎?或許用 axiom of infinity?)(不用假設 0 不在 s 的 range 裡面。直覺上,假設 0 = s (s 0')0' 是我們心目中真正的零,那麼我們定出來的自然數集就是從二開始算。)在集合上定義一個 function f S := { 0 } ∪ { s x | x ∈ S } f 在 set inclusion 下是 monotonic,意思是 X ⊆ Y 時有 f X ⊆ f Y。根據 Knaster-Tarski Theorem,f 有 least fixed-point N,它也會是所有滿足 f X ⊆ X 的 set X 裡面最小的 — 若 X 滿足前式,則一定有 N ⊆ X。現在我們就把 N 當作自然數。假設我們有個性質 P x 要證明對 N 的所有元素成立,定義 X := { x | P x },如果我們能夠證明 f X ⊆ X,即

  f X ⊆ X
⇔   { definition of f }
  { 0 } ∪ { s x | x ∈ X } ⊆ X
⇔   { since A ∪ B ⊆ C ⇔ A ⊆ C ∧ B ⊆ C }
  0 ∈ X ∧ (x ∈ X ⇒ s x ∈ X)
那麼我們就有 N ⊆ X,即 x ∈ N ⇒ x ∈ X,後件再用 P 改寫一下,就是 x ∈ N ⇒ P x。因此藉著如此定義 N,我們就免費得到 N 上的 induction principle 了。

--
寫這篇的時候也會卡,而且每次 monotonic 的意思都會想錯 XD。然後上面引的 axiom of infinity 裡面就有提只用到 set-theoretic axioms 的自然數建構法了 XD。

Labels:

Blogger Unknown7/02/2010 2:58 pm 說:

1. 在 ZFC 底下,空集合是從 axiom of selection 造出來的。也可以另外加一條假設空集合存在。

2. 自然數是從 Axiom of Infinity 造出來的,所謂在「夠大的宇集」其存在性由該公設得到,而藉由 Axiom of Selection 則將滿足該條件的集合取交集,得到自然數。

3. labelling function 在 set theory 要用集合的構造,一般是用 von Neumann ordinal 作,也就是 S(X) = X ∪ {X} 可以證明 S 是 injective 的。然而注意到,這是一個 class function。

<< 回到頁首

陰影

昨天中午吃飯,鐵湯匙和磁盤不時敲出清脆聲響,我突然發現成功嶺上的陰影還殘留著一點,總覺得沒聽到「所有人:動.作.停~~~!」有點奇怪 XD。

--
在中辦都吃便當,沒有敲擊出聲的問題 XD。

Labels:

Blogger Thundermyth O.6/29/2010 1:33 pm 說:

回復上一動 XD

Blogger Gulian6/29/2010 7:40 pm 說:

新訓的時候才有這樣, 下部隊之後好像比較隨便了 XDD

<< 回到頁首

2010/06/28

若且唯若

Max 上課提到「若且唯若」在英文有縮寫 iff,然後說在中文他其實也想造一個字:

--
重點是要對稱!所以英文版其實該用 fif 才對 XD。


David Gries: "The notation iff is used for 'if and only if'. A few years ago, while lecturing in Denmark, I used fif instead, reasoning that since 'if and only if' was a symmetric concept its notation should be symmetric also. Without knowing it, I had punned in Danish and the audience laughed, for fif in Danish means 'a little trick.' I resolved thereafter to use fif so I could tell my little joke, but my colleagues talked me out of it."

--
Quoted from The Computer Contradictionary by Stan Kelly-Bootle.

Labels:

Blogger jaiyalas6/28/2010 2:15 pm 說:

所以中文要念成? XD

Blogger Josh Ko6/29/2010 12:16 am 說:

看起來就想念「吞」XD。(可是「吞」的意義不是對稱的⋯)

<< 回到頁首

2010/06/27

踏瓣、指法

目前讀《聽見蕭邦》最大的收穫大概是意識到蕭邦譜上指法與踏瓣的重要性。指法效果最明顯的大概是 Nocturne Op. 9 No. 2,第一主題最後的下行旋律依照指示以小指和無名指連奏,幾乎自然而然就會有漂亮的彈性速度與音色輕重出現。至於踏瓣,在練 Mazurka Op. 50 No. 3 特別注意了譜上指示,音響效果果然令人驚豔!可以說買《聽見蕭邦》就是為了這些資訊,也確實沒讓人失望啊。

--
明天是 FLOLAC 四年之始,也是我第三次參加的 FLOLAC。下午 Max 學長(教授 !!)打頭陣!XD

Labels:

Blogger Marvelous Pine6/28/2010 12:50 pm 說:

樂來樂想就有寫了阿XD

<< 回到頁首

2010/06/26

Messenger 退休吧

我覺得現在可以讓 MS Messenger 退休了。絕大部份保持連絡的朋友都在 facebook 上活動,我絕大部份的社交需求都可在 facebook 上滿足,相對地 Messenger 已經失去與他人保持聯繫的作用,掛在上面也沒什麼意義。所以 MS Messenger 就此退休啦,找我的人請上 facebook!(寄 email 當然也行。)

--
從 Dock 上移掉 XD。

Labels:

Blogger yen36/26/2010 12:41 pm 說:

你是認真的嗎 XDXD 不考慮裝個 Adium XD?

Blogger Josh Ko6/26/2010 1:02 pm 說:

MS Messenger 我有裝著備用 XD。

Blogger Thundermyth O.6/26/2010 3:45 pm 說:

這轉換也太迅速了吧,不是才加入facebook沒幾天? XD

Anonymous scm6/26/2010 4:00 pm 說:

其實 facebook 上關於隱私等等的設定爭議很多,還是先觀察一下再決定涉入多少比較好啦...

Blogger Josh Ko6/27/2010 2:02 am 說:

因為 Messenger 其實本來就很少上啦,沒有實質聯繫作用已經很久了,只是趁這機會讓他有名義退休 XD。

我個人對隱私的敏感度稍微低一點,不過 facebook 的連通度高得驚人,倒是要更小心其他人的隱私問題就是了。

<< 回到頁首

Effortlessly

昨日中午直奔車站,搭上兩點火車南下返家,拆開新購入的 MacBook Pro 15" Core i5(高解析度霧面螢幕 + 128G SSD)。本來以為得先充個幾小時電才能用,但 Apple 早就幫我充好,「開箱即用」的廣告果然不是假的。開機完第一印象是「字好小」,畢竟是從 1280 × 854 的解析度一下跳到 1680 × 1050,幸好大部份軟體的字體大小都是可以調的(但似乎不是全部)。打算趁這個機會擺脫一切贅餘的檔案,就不用檔案移轉精靈,需要什麼再從 PB 的 Time Machine Disk 貼過來,到今天早上大抵完成,果然瘦身了 20G 左右。這次升級的效果十分震撼,不知 Core i5 和 SSD 哪個的加持比較強,絕大部份應用程式啓動都不敢跳超過一下,幾乎是往上跳的同時就啓動完成了。比較肥的程式像 iTunes 敢給我跳兩下,Photoshop 有次竟然跳四下,MS Office 偶爾會跳到兩下,但這些已是所有例外。SSD 又全然安靜無聲,使得 MBP 展示這麼強悍的效能時卻似乎全不費力,安裝程式時進度條順順地跑,編譯 Agda 時 Terminal 訊息也順順地跳,卻又安靜得好像壓根沒在工作一樣。未來五年應該能合作無間才對 XD。

不過我有個問題:MagSafe 接頭現在改成這種形狀,順著線拉的時候不就掉不下來⋯?

--
雖然每個網頁一來就得先放大兩級,但 Chrome 現在會記每個網域的放大倍率,所以還是很舒服 XD。

Labels:

Blogger yen36/26/2010 12:42 pm 說:

所以大概只剩我還死守在 Firefox 陣營裡 XD。

不過你沒說的話倒是沒發現,我的程式都要跳個十幾下 XD

Blogger Josh Ko6/27/2010 2:19 am 說:

Chrome 其實也是這次換 MBP 順便跳槽的。之前在中辦用的感覺很好,我很喜歡它一條 bar 兼充網址列和搜尋列的設計 XD。

<< 回到頁首

2010/06/24

Binary search, differently ordered (II)

(This is a sequel to Binary search, differently ordered.)

An important question about the new ordering raised by Shin: just how efficient can this new ordering be implemented? The formula I wrote down for the ordering was

x ≼A y  ≡
  (((x ≥ A ∧ y ≥ A) ∨ (x < A ∧ y < A)) ∧ x ≤ y) ∨ (x ≥ A ∧ y < A),
which is complex to implement. After some simplifications, however, it reduces to
x ≼A y  ≡
  (x ≥ A ∧ x ≤ y) ∨ (x ≥ A ∧ y < A) ∨ (x ≤ y ∧ y < A),
which says x ≼A y holds exactly when two of the three conditions x ≥ A, x ≤ y, and y < A hold. Although in each run of the loop we need only determine whether ama0 k, it seems we still have to perform 3 comparisons in the worse cases. Note, however, that k and a0 are fixed throughout the loop, and indeed fixed from right beginning of the program. So in fact we need at most 2 comparisons for each run of the loop instead of 3. To be more precise, the definition of the ordering can be transformed into
x ≼A y  ≡
  (y < a ∧ (x ≥ a ∨ x ≤ y))  ∨  (¬(y < a) ∧ (x ≥ a ∧ x ≤ y)),
which says that to assert x ≼A y we require only one of x ≥ a and x ≤ y to be true if y < a, or both if ¬(y < a). As Shin pointed out in his comment, the usual solution to this problem is running binary search twice, which requires 2 lg n comparisons. So our one-pass algorithm is no worse than the two-pass approach in terms of number of comparisons. For now I can't think of a way to decrease the constant 2, though, neither can I prove that we need at least 2 lg n comparisons for this problem.

--
However I believe it is time to consider this problem closed (to some extent)...

Labels:

2010/06/23

Binary search, differently ordered

Shin shared a variation of binary search problem with me yesterday, which was later discovered to be a variation of an exercise from van Gasteren and Feijen's note The Binary Search Revisited cited by Shin's blog post A Survey of Binary Search. The problem: if an array a0, a1, ..., an-1 is rotated from an ordered array ai+1, ai+2, ..., an-1, a0, a1, ..., ai for some i (so a "dip" is present in the array, namely the difference between ai and ai+1), can we still perform binary search on it? Here I try to record the path of thought I've taken.

As described by Shin, the general binary search algorithm assumes an invariant Φ(i, j) holds initially for the entire array, i.e., Φ(0, n-1) is true. And then the loop pulls i and j closer and closer, until j = i + 1. In the case of standard binary search, Φ(i, j) := ai ≤ k < aj where k is the key value to be searched for. Note that Φ(0, n-1) must hold initially but the key may well not be in the array. To fix this, we add -∞ and ∞ to both ends of the array. After the loop, we have ai equals to k if and only if k is present in the array.

Since it was hinted that binary search may be applicable, I looked at the original binary search and tried to find similarities, hoping to discover a suitable way of generalisation. In the case a0 < an-1, we know k is bounded by a0 and an-1, i.e., k is in the interval [a0, an-1]. For the other case a0 ≥ an-1, we know k can only be larger than a0 or smaller than an-1, i.e., k is in [a0, ∞) ∪ (-∞, an-1]. Also observe that performing the original binary search naively is not right. For example, when the median value am is less than k, it does not necessarily mean we should assign m to i --- consider the case when k is located at the left of the dip and am at the right. The way of comparison seems a lot more complicated.

And then it occurred to me that it would be great if [a0, ∞) ∪ (-∞, an-1] can be viewed in the same way as an ordinary interval, so we may still intuitively see the interval shrink as the loop progresses, like the standard binary search. This required gluing the two sides of the real line to an added point ∞, so a circle is formed. The interval in question is then contiguous on the circle, containing the added point ∞. I was introduced to this concept in the undergraduate algebra course taken in my fourth year, which is called the real projective line and amounts to the one-point compactification of the real line. The odd comparison rules all suddenly make sense under this view. While in general numbers on the real projective line do not have a natural ordering, in our case we can say informally that the magnitude of a number x is the minimum distance we travel counterclockwise on the circle from a0 to x, and that a number is smaller if its magnitude is smaller. This essentially cuts the real projective line at a0 and forms a closed ray roughly like [a0, a0-), a0- serving as the new infinity. Walking from a0 towards the infinity on [a0, a0-) is equivalent to walking counterclockwise on the real projective line from a0 and never reaching it again. We can say that the value domain is also rotated: rotating the array indices disrupts orderedness of the array, but we can rotate the value domain correspondingly to make the array ordered again. (I wish I could make this statement more topological! I believe it's something related to the torus.) Comparison under this ordering is simple: if two numbers are on the same side of the dip (which can be determined by comparing them with a0), then perform the usual comparison; otherwise, whichever on the right side of the dip is larger. The binary search algorithm doesn't have to be altered except for changing the way of comparison. We still have to insert a guard a0- as the rightmost element of the array, but there is only one guard instead of two. Notice that this works for binary search on an ordinarily-ordered array as well: values smaller than a0 are greater than all elements in the array under the new ordering, so searching for a value too small simply moves i towards n and -∞ is not needed to guard the left end of the array.

This ordering is my final version, though, which means there were some other versions. For example, I had used an ordering depending on both a0 and an-1 and treated all values from an-1 to a0 (both ends exclusive) as -∞. This resulted in much more complicated case analysis in the definition of the ordering. I had even made a mistake regarding the sign as essential for the comparison, not noticing that topologically 0 did not have a special role on the projective real line. This mistake made me temporarily think that modelling the situation with the real projective line was flawed. But later I discovered there is a cleaner and correct way to utilise the real projective line, which is, well, described above.

However, there is one last serious flaw. If an ordered array is rotated such that a0 = an-1, it should be considered legal input but does not count as ascending under the new ordering! I spotted this seemly-unfixable flaw at midnight, which deprived me of sleep for some two hours. And indeed it is not fixable but it is not a problem about the ordering! Say the two ends of the rotated array have value v. If the median value is also v, then we have no way to decide whether the key value is in the left segment or the right one --- the key can be in any one of them. This observation can even be developed into a full adversary argument, showing that no algorithm can correctly solve the search problem on these arrays in sub-linear time, by arguing any correct algorithm must examine the middle n-2 values of the array and therefore take Ω(n) time: Given an algorithm A and a key k, consider the "flat sequences" consisting of n copies of a number not equal to k. If A does not have to look at all n-2 values in the middle, then (for all but finitely many n's) A does not look at some value at index αn, which means changing the value at αn does not affect the output of A, namely A would still say the key is not found as it would for the flat sequences. Now change the value at αn to k for every flat sequence of length n and feed this set of input to A. Its output must be incorrect. Thus it's not possible to perform binary search, which takes O(log n) time, to correctly determine whether a value is present in this kind of arrays, which takes at least Ω(n) time. It is interesting to see that a naive-looking equality can dramatically increase a seemly-simple problem's complexity.

--
It's been quite a while since I wrote something this long last time, especially in English...


A sequel to this post has been posted, which is on whether implementing this new ordering gives a better algorithm than the usual two-pass algorithm in terms of number of comparisons.

Labels:

Anonymous scm6/23/2010 10:52 am 說:

Oh, I should have mentioned that this problem was originally posed to me by Yu-Han Lyu. He said that it's a problem often given in interviews. A typical response is to first perform a binary search to find the dip, then somehow, perhaps virtually, "rotate" back the array.

We would like to have an algorithm that finds the key in one pass. I'm not sure we can do so using fewer comparisons than the two-pass algorithm, though.

You didn't spell out (in equation) what the ordering is in this article, have you?

Blogger Josh Ko6/23/2010 2:09 pm 說:

> You didn't spell out (in equation) what the ordering is in this article, have you?

No, I did not. Since I didn't actually do formal calculations, I thought it was not necessary for this post to be formal.

On the other hand it seems interesting to go into the details to see what the resulting algorithm looks like. (And make sure it is correct!)

<< 回到頁首

2010/06/20

還是有制約

此篇為週五上班感想。中研院的環境沒什麼干擾,一整片空白隨你填入行程;中辦則是繁忙的辦公室,光電話就響個不停,再加上不時插入的其他雜務,自己的時間就被切割得零零碎碎。週五面對那一片空白是還不至於張皇失措,也確實用了一整塊的時間才有效地消化 session types 那些稍嫌細瑣的 typing rules,但身體總有個部位在等著右斜後方的傳真機嗶嗶嗶地叫起來。如果沒有進度壓力,旁人隨時插進來請你去影印、送公文時,也提供你逃離難以咀嚼內容的機會,活動一陣筋骨再繼續進攻,似乎也沒什麼不好。雖然接起電話不會有說「會計處您好」的衝動,但看來我還是習慣了待在中辦的感覺。

--
進去時的適應比出來時好很多呀… 難道那環境其實比較適合居住?

Labels: ,

2010/06/19

Facebook

幾小時前加入 facebook。手機、email、MSN、blog,這些管道在 facebook 之前好像一下變成慢吞吞的古早手工藝。剛進入 facebook,五花八門的訊息讓我覺得好頭痛,有點像那次商業區大冒險那些人物高樓給我的快速紛亂感。而且才在 facebook 上貼幾則訊息,我就覺得 blog 不太會寫了!還是要多寫點 blog 維持一下「非單句」型式的寫作能力 XD。

--
I'd say this is still a temporary solution...

Labels:

MBP!

昨天上班讀點論文、和 scm 老師簡短討論一番之後,心情穩定很多,大概有事可做就沒空回憶了吧 XD。短期來看這解法應該不錯,長期就再說嘍。昨晚回家就和 Yen3 敲定新 MBP 的配備,挺夢幻的,差不多把我的存款出清了 XD。

--
"MBP" 不是 channel XD。

Labels:

Blogger Marvelous Pine6/19/2010 8:37 am 說:

舊的可以送我

Blogger Thundermyth O.6/19/2010 9:16 am 說:

上班?是出國前的打工… 嗎??

--
我也很想敗新的MBP啊…><

Anonymous elroy6/19/2010 2:31 pm 說:

Mac現在的品質越來越差= =

請小心XD

Blogger yen36/21/2010 10:40 am 說:

You have got mail. XD

<< 回到頁首

2010/06/18

MBP?

日新月異的 Agda 永遠需要最新版本的 ghc 來編譯,那代表我老舊的 ghc-6.10.4 不能用了,必須跳到 6.12.3。今天凌晨網路奇蹟似地通車後,我立刻下載 ghc-6.12.3 開始編譯,睡醒一看,得到的訊息是 "ld: scattered reloc r_address too large for inferred architecture ppc",在 GHC Trac Ticket #3260 登錄有案,看來很難解決。或許真的是該換台 MBP 了吧…

--
預算是有啦 XD。

Labels:

Blogger Lin Jen-Shin (godfat)6/18/2010 4:02 am 說:

我現在 i5 這台用得很滿意 XD 用 homebrew 也能裝 binary ghc, 不用編譯半天 @@

~> ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.12.3

Blogger yen36/18/2010 6:59 pm 說:

事情都搞定了,只差臨門一腳了 XD。

<< 回到頁首

2010/06/17

嚴重適應不良

(JK 注:半夜睡醒,網路突然好了,就把昨天晚上 8 PM 寫的小記貼上來。)

搬到台北已經第二天,我仍然強烈懷念中興的一切,強烈到有點過份了,回到房間整個人就 overwhelmed。單人房小了一點,但那不是問題,我真正懷念的是走過長廊、看著每間房間透出亮光傳出聲響、知道大家都在的那種滿足感。食物貴了一點,但那不是問題,我真正懷念的是一群人彼此招呼、騎著摩托車就吃飯去的那種親密感。我知道像服役這樣朝夕相處能產生緊密的繫結,但我真沒想到能夠如此緊密,緊密得讓分離是完全的哀愁,無一絲甜蜜成份。我的 AT 力場在中辦被瓦解殆盡,就在這情感上最脆弱的時刻又換了個地方,應該在服役一開始承受的適應不良的煎熬竟然在退役後才感受到。我真的需要儘快重建我的 AT 力場,否則到 Oxford 去很難說情緒上能不能承擔得住…

--
簡直像毒癮發作…難過得很。

Labels:

Blogger Gulian6/18/2010 5:20 am 說:

這一定會有的。
想當年在軍中的日子,每日生活是如此的單調還有無聊,但是離開的時候還真的是百般惆悵,真的難忘記在軍中的點點滴滴,我們連長說的退伍後茶餘飯後的話題就是談軍中的趣事。

你在軍中所認識的好朋友,記得也定時好好聯繫。

Blogger yen36/18/2010 6:58 pm 說:

隱世難,入世更難,或許在這樣子的轉換中,我們都需要學習。

Anonymous scm6/19/2010 1:15 pm 說:

欸.. 中午多來跟我們喝咖啡?

Blogger Josh Ko6/19/2010 2:10 pm 說:

Sounds great! :)

Anonymous Big Mouse5/01/2022 1:05 am 說:

Awesome blog you have hhere

<< 回到頁首

斷網

已經搬入新房,但無法上網。現在在資訊所無線上網,試插一條迷途網路線卻也不能上,開始懷疑是不是網路卡(或孔)壞了。總之最近急事欲連絡我請透過手機 XD。

--
很想念中興…

Labels:

Blogger yen36/17/2010 10:00 am 說:

該換新電腦了嗎 XD

Anonymous Wang6/23/2010 9:49 am 說:

想念中興的光纖上網>"<

<< 回到頁首

2010/06/15

畢業論文

(JK 注:五月作文。以 3,500 字加 5 張附圖之規模,相信在中辦創下記錄。)

五月轉瞬即至,退伍的日子也不遠了。借退伍前最後一篇作文整理在中部辦公室服役的心得,應該十分合適。

我在中辦最主要的業務是訂便當(和飲料零食)。雖然訂便當在一天業務量佔的比重不一定最多,但其它業務大多是零碎不固定的,而使訂便當這份每日固定的業務顯得特別突出。自去年八月十日至今年五月二十四日結算,兩百個上班日裡登記有案的早餐、便當、飲料和其它各式零食共八千兩百五十六份,總金額三十七萬四千兩百三十四元,平均每天經手三十六份便當、金額一千六百九十九元。文後附有幾張統計圖。儘管數量不多、本質也不複雜,訂便當卻需要十足的細心才能保證不出紕漏,特別是當其它雜務也非得同時處理不可、或是店家無預警休假之類的意外發生必須迅速應對的時候。上任初期發生過一兩次嚴重疏失,我意識到必須設計一套標準作業程序,掌握好所有能夠控制的變因,實行起來果然頗有成效,好幾次成功預防慘劇發生。標準作業程序的本質是一套可讓人「機械地」遵行的規則,說穿了也是一種程式。程式設計師將所有可能狀況的應對邏輯編寫為程式,電腦只要機械地執行程式便能表現出專家的行為。訂便當如果時間充足能夠慢慢思考查核,其實不需要標準作業程序;但當情況急迫讓人容易慌張失措,標準作業程序便能發揮絕佳的引導效用,只要照著做就不會出什麼差錯。到後期我已經熟練,毋需一步步遵守標準作業程序。這和學數學的過程其實很相近:初讀一門數學,看到的往往只是型式,隨著演練才獲得深埋其中的數學直覺。哲學家對此類型式和語意間的連結關係一直很有興趣,這也應該是我日後必須經常省思的課題。在訂便當這樣的瑣事也能發現這問題的身影,可見其性質之基本。

另一個我實質接觸到比較大的案子是社會發展科的社工人力推估案,我的感想分為兩個層面。就案件本身,我很高興有機會接觸到業務單位的工作。會計的角色像是第二線的支援,雖然重要但沒有第一線業務單位的工作那麼「多采多姿」。我分配到的工作又都是標準的「輔助性勤務」,只要照著指令影印、傳真、或遞送公文即可。這樣的工作方便轉移,對於更換頻繁的替代役男確實滿合適,但一直到我代理公文登記收發之前,我對會計業務都沒什麼了解──代理收發後也只是略微了解公文處理流程而已。社工人力推估案就讓我真正碰到不少數字,這些數字之有趣在於它們都是高度抽象的產物,看似無辜的一個數字背後牽連的意義可能甚為重大,一點差額都馬虎不得。儘管我們在推估過程中把它們當作一般數字進行分析與計算,但中間每一步都可以讀出(也必須具有)社工人力上的意義,最終算出的數字也必須回到社工人力的情境檢驗其合理與否。處理大規模資料是資訊系學生的專長,但面對這種現實影響廣大的數字我還是第一次,日後也不一定有類似機會,因此這對我是寶貴經驗。但換到另一個層面,儘管我基本上樂意協助,但若在上班時間下樓支援就相當於丟下會計處的事務不理,這實在讓我陷入兩難。最經典的情況是我代理全職公文登記收發的那幾天,適逢社工人力推估案催得十萬火急,按理我應該專心做好收發工作,但另一方面我已經涉入推估案達一定程度,也應該盡量幫忙,想兩邊兼顧卻又不可能。結局是收發有些耽擱,訂便當也全委由他人代理,推估案倒是趕上了。這實在不是好結局,因為我的本職並未照顧周全。只能說此類事情的分寸拿捏我還有待學習吧。

來到中辦有個明確收穫:我的試算表操作功力又精進一層,最明確的新技能是樞紐分析圖表和巨集寫作。樞紐分析讀入含有多個欄位的資料群,以某些欄位為樞紐統整其他欄位,產生有意義的圖表──這很適合用來檢視訂便當的資料。日期限定在今天、以店家為樞紐加總金額,我可以看到今天要付給每一家多少錢;以科室為樞紐列出店家和產品名稱,就是各科室的訂購明細;以日期為樞紐加總數量繪製折線圖,訂購量隨日期變化的趨勢便一目瞭然;限制在零食、以科室為樞紐加總金額繪製圓餅圖,「哪一科是零食大戶」的問題就十分容易回答。儘管原理單純,樞紐分析的效果卻相當令人驚豔,特別是當資料量有一定規模時。巨集的功用就不需多說了:試算表每個元件的每個屬性都可用程式操控,只要是能清楚描述的動作都可以寫成巨集自動執行,是自動化的終極必殺技。此類技巧專門對付大規模資料,在中辦這種彙整大量資料且工作經常重複的中央政府部門特別合用,而如果擁有資訊系訓練出來的「內功根柢」,這些技巧都能很快上手。這裡指的「內功」不單只是電腦操作熟練,而是對資料型式與其間變換的直覺。資料的意義詮釋隨領域不同而千變萬化,需要各行各業的人才專門研究,但經適當抽象後,不同領域的資料往往可用同一套方法處理。資訊系訓練的正是此類處理抽象型式的能力,由其廣泛應用可看出這種能力的重要程度。

接著我想談談人。我建構待人處事原則的方法和知識論一樣,是以懷疑論不斷詰問。但和知識論的結果不同,這方面我找不到無可置疑的原則──那些我希望加以支持的原則都只能歸結到模糊的一句「我覺得這麼做比較好」,找不到絕對的理由說明這些原則對於所有人都是必然的,因此這些原則不過是個人偏好罷了。既然待人處事方面沒有絕對原則可言,反過來講,每個人都有權根據自己的價值觀挑選自己的原則,經此論證我才得以合理地預設我希望遵行的原則。既然每個人的價值系統都無從否定,就算自己已有立場,也最好以公正開放的態度聽聽別人想說些什麼,不需急著推銷甚至強加自己的觀點給別人。自上成功嶺以來,我察覺自己的興趣、觀點與新接觸的人多有歧異。正常情況下,和與自己興趣觀點相左的人難有實質接觸機會,我的內向個性對於交友更有如一道高高的屏障,然而服役這個共通因素卻將我們緊密地拉在一起,大家甚至願意翻越屏障向我傳達善意。我認為最恰當的回應方式就是我剛才的結論──我嘗試去了解每個人的興趣與觀點,但不積極影響別人,除非對方明確希望聽我的意見。這樣的態度收到不錯成效,我和身邊的人建立起良好關係,也體驗到不少新事物,可以說這十個月我最主要的收穫就是對外舒展了我的觸角。這段互動經驗令我難忘,往後也應該很難再有因素促成類似經驗,大家的熱情讓我十分感激。

在這一段我首先想特別感謝蔡專員。管理上,蔡專員有一定的原則但又保持足夠彈性,要求紀律時也不忘維護我們的權益。對我而言,遵從這些規矩沒有什麼縛手縛腳的感覺,我可以很自然地盡我的本份。但更令人感動的是蔡專員在生活上與我們的互動。儘管公務極端繁忙,蔡專員仍然關心我們的生活大小事,和我們打成一片。只舉一個例子,過年前我們在尾牙餐會跳花朵舞開場,之後某天下班時蔡專員整理她拍我們跳舞的影片,一群簽退的人圍在蔡專員座位旁看蔡專員對著螢幕指指點點,這種場景下蔡專員那種「媽媽的感覺」油然而生,其實也很值得拍照留念。只能說能遇到蔡專員這樣比稱職更稱職的管理人員真的太幸運,可惜平常沒有太多機會和蔡專員多多相處,體驗蔡專員的幽默和學習蔡專員高效的辦事能力。至於會計處中,眾人都待我不薄,但裡面與我互動最頻繁的當屬淑芬姐了。工作上常受淑芬姐的幫忙,也吃了不少淑芬姐請的水果零嘴,不過最讓我印象深刻的還是我們兩人一起代理公文收發的時候,曾經交換一些想法。願意時時認真品嚐並反思生命點滴的人不多,而淑芬姐正是一個。我還記得淑芬姐初次聽我放拉赫曼尼諾夫第二號鋼琴協奏曲時大嘆「好好聽」的神情,即使拉赫曼尼諾夫是以「立即直指人心的感動」聞名,但若不是感觸足夠敏銳,要一聽就起共鳴還是很難。淑芬姐說她佩服我的謙虛,我卻覺得對於有「信仰」的人,所謂謙虛不過是理所當然的態度。讀計算學探索型式推理能力的同時,也不時描繪出推理能力的極限,極限之外的無窮無盡和自己的渺小有窮立成對比。把每個人放在此類極其巨大的尺度之下測量,又能測出什麼差別呢?我猜想淑芬姐對上帝的信仰應該很類似這種感覺吧。

能夠在中辦這樣一個友善的地方服役實在非常幸運,思及離別讓我感傷不已。以佛家說法這是種執著,而我現在可以深刻體會為何佛家說執著是苦的根源。但我不能停留。星際奇航新一代影集的結局點出,企業號的目標「不止於繪測星圖與星雲,而是繪測人類作為存有者的未知可能性」,前者是規律而固定的工作,後者則指探索人的各種極限,「航向前人未至的新境地」。我習慣尋求抽象型式的規則,希望層層深究事物的道理脈絡,窮盡邏輯的力量;政府機關規律地依著制度推行政策,諸般考量必須是具體而實際的,對我而言不是理想環境。東坡的比喻「雪泥鴻爪」果然貼切,我在這裡短暫留下了痕跡,稍事休息、調整一下姿態,就該繼續往目的地前進。儘管此處令人依依不捨,對於我的人生旅程卻只是一個偶然的爪痕而已,我必須離開。就引一曲蕭邦作為尾聲吧,請聽練習曲作品二十五第一首(註:此曲可於 http://ppt.cc/neRF 收聽波里尼演奏的版本)──左手一段顫音,讓曲子結束。

※本文陳 閱後請退會計處淑芬姐。

--
其他的作文沒那麼可觀,就不貼了。

Labels: ,

2010/06/14

尋找腦中幻影

(JK 注:三月作文,那時剛準備好讀書會投影片,就順便寫成文章。)

《尋找腦中幻影》是拉瑪錢德朗醫師所著的科普書,收錄他在腦科學臨床研究上遇過的一些古怪病例。科學普及寫作對於科學家的挑戰並不亞於專業論文發表,因為他不能假設讀者的背景和他類似,必須用常人能懂的語言把有時候滿枯燥的研究轉變成能夠勾起大眾興趣的故事,趣味橫生之際又不忘教育目的,對寫作功力的考驗十分嚴峻。拉瑪醫師的這本書不僅輕鬆達到前述標準,更將科普寫作推到新一層境界。讀者可以把它當作懸疑刺激的偵探小說來讀,看似獨立的章回之間其實互相連通又層層推砌,當讀者陶醉在拉瑪醫師從這些案例所醞釀出的特有東方哲思時,才驀然發現整本書其實緊緊扣住「我是誰」這個大哉問,不僅發問,還試圖提出解答。

書中企圖向我們展示腦中有無數的心智活動,如幽靈一般影響著我們的行為,我們卻全然不覺。拉瑪醫師描述這些幽靈的主要方法是描述各種腦部病例和臨床實驗。常人的一舉一動當中雖然也有這些幽靈的影子,但病人的古怪行為更能突顯幽靈的活動,對於腦科學研究者是絕佳機會。例如書中有一部份篇幅聚焦在視覺機制,引子是一位因瓦斯中毒而喪失視力的佛烈奇女士。佛烈奇恢復意識後只能靠聲音認人或用手摸索物品,醫師將一枝鉛筆放在她前面,她也認不出是什麼。但此時怪事發生了──佛烈奇敏捷地伸手拿到鉛筆,動作之準確和常人無異。醫師大惑不解之餘做了另一個實驗,拿一封信請佛烈奇放進信箱豁縫內,佛烈奇又熟練地手一轉,把信封和豁縫對齊,毫無偏差地放進去。她的體內彷彿住著一位不說話的幽靈,指引著她完成所有動作。醫師為這種病例取了一個貼切又矛盾的名字「盲視」。如果我們讀的是福爾摩斯探案,此時案情已經敘述完畢,福爾摩斯很快會注意到其中古怪之處,從這些線索形成初步猜想,再進一步驗證。佛烈奇認不出放在她眼前的物品,卻又能完成視覺所引導的動作,這條線索向我們暗示視覺機制有比我們所想還更細緻的分工。確實,腦科學家發現視網膜送出的神經衝動訊息很快分成兩大通路,一條演化上較舊的通路負責測量距離、估計物品大小、引導行走或伸手接球等基本動作,另一條較新的通路則和我們的高層意識息息相關,讓我們得以辨識人、物進而產生情緒或做出適當反應。於是盲視就獲得解釋了:佛烈奇的新通路被破壞,但舊通路仍完好,因此她能伸手取物但認不出那是什麼。謎團解開的同時,我們也對視覺機制了解更多。

能夠把病例和科學知識寫成偵探小說已令人歎為觀止,但拉瑪醫師的獨門招牌是他勇於碰觸哲學、科學與宗教的敏感交會處,邀請讀者和他一起探索一些最深刻的問題,此時拉瑪醫師的功力更發揮到淋漓盡致。書中一章專談「疾病否認症」,病人右腦中風導致左側肢體癱瘓,但當醫師問他能否使用左臂,他總是肯定回答可以;讓他做需要雙手的動作如端盤子,他只用完好右手提起盤子的一端,任由盤上水杯滑落,並仍堅稱他成功端起盤子,無視於身上溼了一大片的事實。隨著實驗進行,拉瑪醫師發現他正觀察到佛洛依德所發表的各種心理防衛機制如否認、壓抑和反向作用,而且是極盡誇大的版本。佛洛依德的理論向來不被認真看待,因為他未做實驗佐證他的說法,但從治療疾病否認症的經驗,拉瑪醫師發現這些理論並不全然是無稽之談,值得用腦科學的嚴格方法重新審視。疾病否認症最令人困惑的是病人似乎完全無視於肢體癱瘓和言談內容的顯然矛盾,猶如失去了部份理性。我們一般認為理性是我們根深蒂固的一種特質,但疾病否認症讓我們對理性產生懷疑。佛洛依德恰巧也對這情況有過一番評論。他宣稱他已辨識出偉大科學革命的共同本質:粉碎人類的特殊地位。哥白尼地動說否定地球居於宇宙中心,指出地球只是浩瀚宇宙中的一粒小塵埃;達爾文演化論稱人類只是漫長演化過程中意外獲得一些特徵而暫時成功,除此之外和其他物種相比並無特殊之處;佛洛依德發現的潛意識活動驅使著我們,所謂的表意識只是我們不自覺的情緒、本能與動機的複雜合理化作用,人類認為能夠主宰自己不過是種妄想。至此,拉瑪醫師問道:佛洛依德這段評論是正確的,但人類為什麼要踐踏自己的尊嚴?我們能經由這種看法獲益嗎?拉瑪醫師緊接著提出他的反思,無疑是全書最深刻的一段。他認為人之異於禽獸在於了解生命有限並恐懼死亡,但如果放棄自己的特殊地位,體認自己只是永恆流動的時間和還在形成的巨大宇宙當中的一部份,進而接受生命有限的事實,就不會那麼恐懼。這是科學家經驗宗教最可能的推想。演化論和宇宙學帶給我們時間的永恆感和空間的巨大感,腦科學讓我們放棄靈魂可從肉體分開的想法,這不但不可怕,反能讓人脫出困境。科普書寫到這層境界已是前所未有,後人亦絕難超越。藉著這本書,拉瑪醫師不僅為科普寫作樹立崇高典範,更讓我們看到人的思考能夠到達什麼樣的深度。

--
若排除〈畢業論文〉,〈計算與人〉和這篇是花最多時間、寫得最長的作文。

Labels: ,

Blogger yen36/18/2010 7:00 pm 說:

我買了這本書,等看完再來寫感想哩 XD。

<< 回到頁首

2010/06/12

計算與人

(JK 注:十一月的作文。內容寫得很密,應該是不想手寫太多字的關係。(作文是要手寫的。)最後一段論證略嫌粗糙,看看就好。要做實質的批判真的很難哪。)

翻開計算機概論課本,作者首先會向你敘述計算機器發展的歷史,其中一定會詳加描述二戰後電腦如爆炸般的發展。幾十年來,電腦的運算速度和儲存容量以指數速率成長,同時體積和成本以指數速率降低,迅速滲透到人們生活的各個層面。稱電腦為史上最成功的發明,相信並不為過。

人類發明的工具可視為身體功能的延伸或補強,而電腦如其中文譯名所暗示,是人類心智投映於外在世界的產物。笛卡爾的哲學主張身心二分而且強調後者,若他生於現代,在各項工具當中他想必要賦予電腦某種特殊地位。工業革命以機械取代部份人力,但精巧複雜的操作仍只有人能夠勝任。直到高速又輕便的電腦發明,人類才得以將這些精密操作所需的心智活動交由工具執行。我們終於將自己最獨特的行為 ── 思考 ── 也化為工具,雖然目前只實現了一小部份。

現代電腦最重要的設計原則是打造一部可運行任意程式的通用機器。描述算則的程式由抽象符號構成,硬體的角色只是程式在現實世界的載具。程式員將人類面對問題時運用的邏輯推理過程鉅細靡遺地編寫為抽象符號,電腦依其設計機械地詮釋這些符號,從而重現編寫於程式中的邏輯。換句話說,程式是人類思考活動中可清晰描述部份的模型,代替程式員接收資料、加以計算再適當回應。

然而程式本身也是一種資料,因此程式不僅能藉由機器詮釋而表現計算功能,也可以是分析研究或程式處理的對象。「程式處理程式」在理論和應用上都是重要想法,特別是從「程式處理自己」這個令人困惑的概念可導出相當深刻的結果,例如不可能寫出程式正確判斷任意程式的執行會不會終止。之所以有這樣的特性,是因為程式不僅可視為一連串的靜態符號,也可詮釋為執行時的動態行為。當我們說「程式處理自己」,其實是指「運行中的程式」處理「描述該程式的符號」。位於「符號層」的程式經機器詮釋躍升至「執行層」,再反過來處理「符號層」的自己。同樣的雙層架構也發生在我們研究程式的時候:程式反映我們的邏輯思考,因此當我們思考程式的性質,我們也正透過前述的雙層架構省視我們自己!這使計算學的研究有了特殊意義 ── 了解計算很可能讓我們更了解自己。

另一條人類企圖了解自我所闢的途徑是認知神經科學。雙層架構也在這裡出現:神經科學家認為意識由大腦產生,希望藉著了解腦的構造而解開意識之謎。一般對計算學與神經科學的比較倒不是從「了解自我」或「雙層架構」這類共通點出發,而是比較大腦和電腦的構造,但這樣的比較其實不太有意義。腦神經元之間的連接不時發生重整,不像電腦內部電路固定不變,神經元之間的複雜溝通機制也遠非電腦硬體與軟體工程目前遵循的模組化原則所能解釋,有些人因此認為大腦的運算能力比電腦強得多。然而如先前所述,電腦的計算內容全由程式提供,比較正確(但仍相當粗糙)的看法是視大腦為專門執行特定程式的特製硬體,因此比較神經科學和計算學時,該把大腦功能放在程式的層級上,而非類比於單純詮釋程式的電腦硬體。現在我們無論對大腦或程式都了解甚少,或許要等到這兩個學門更加成熟,才能對彼此有實質的幫助。

神經科學和計算學倒有個決定性的差異:前者的研究對象是自然世界的物件,因此方法是自然科學的觀察歸納假說實驗;後者的研究對象則是數學物件,因此方法是數學的演繹證明。數學家一開始面對數學物件的做法也是觀察歸納得到假說,但最後的證明階段會使得假說被確切證實或否決,相較之下實驗就沒有這麼強的證成力。雖說數學理論也會經歷一次次的精鍊,但那是確定知識的逐漸累積,不像自然科學的信念永遠能夠加以質疑乃至推翻,發展上穩定許多。神經科學家或許會質疑:人的邏輯發源自大腦活動,而且人性顯然不限於邏輯,因此可預見認知神經科學對於了解人性的貢獻會比計算學更大。但計算學家會反駁:神經科學若想建構其理論,那理論必將奠基於邏輯,因此理路上對邏輯的直接了解先於對大腦的研究。換個角度看,計算學以純粹邏輯研究邏輯的直接表述型式,而神經科學不僅必須仰賴較不穩定的歸納法,還得處理從基礎物理化學到神經傳導機制再到腦區的個別性質與合作效果最後才到邏輯思考如何突現的問題,前者至少在表面上簡捷許多。計算學於是提供一條獨特進路,讓人類以數學方法探討自我的性質。在電腦應用蓬勃發展的現況下,這條進路獲得較少關注,但可預期的是這個學門有潛力為最深刻的一個哲學問題「我是誰」提供一個可能的答案。

--
此文的上一篇是笛卡爾,所以承接那篇的觀點,把邏輯視為人最重要的 defining property。

Labels: ,

Anonymous 白夜6/13/2010 6:39 am 說:

這篇文章可以借我轉到我的板上嗎?

Blogger Josh Ko6/14/2010 3:02 am 說:

Sure!

<< 回到頁首

2010/06/10

中興宿舍

人人稱羨的單人房,雖然舊了一點,但寬敞舒適,風景宜人水壓高 XD。剛搬入時畫的設計圖實現得相當成功。進門長這樣:

進門往右看,床鋪上有檯燈和 iPod 供睡前讀 KDX 或聽音樂,床下一列鞋子、臉盆沐浴乳洗髮乳,再加一隻貓 XD。

往回看。前任佈置好的細鋼繩上掛著浴巾、毛巾和薄外套。後兩項主要是晨間跑步用,但實施一段時間發現腳的負荷過重,就中止了。

往左看,牆上掛一幅登記桌王姐從大陸帶回來的謝禮山水畫,制服掛著,便服內衣襪子折好另外放,旁邊有 Enterprise-D。電扇旁的除溼機是學長留下來的,但悄悄地壞了。

衣櫥旁掛著替代役小帽和社會役專業訓練的名牌。小帽來到中辦之後就再也沒戴過了。(名牌當然更沒戴過。)

還縫在制服外套上的名條,連同臂章很快就要被拆掉了,這是最後一照。

每天穿上制服時都要複習一下替代役四大信念。

退伍當天早晨的窗外風光。

坐在電腦前看向窗外,綠意盎然。

即將和貓咪告別,照下她喝水的樣子。

請容許我用閃光燈拍個特寫。

--
再來房間收一收,就進辦公室啦。涉及很多人,照片還是不要亂貼好了 XD。

Labels:

Blogger Gulian6/12/2010 4:24 am 說:

真正房間不必輝煌,只要是個能讓你在一日勞累之後,能夠讓你放鬆解憂地方,就是個好房間。

Anonymous Yi6/12/2010 4:42 pm 說:

貓不會抓巧拼啊?

<< 回到頁首

2010/06/09

退役

今天退伍,快得有點讓人措手不及。先貼退役證明以及和蔡專員的合照上來擋著,詳細圖文待補。

蔡專員講笑話害我笑過頭了 XD。

--
接下來會花幾天時間緬懷過去十個月生活…

Labels:

Blogger Thundermyth O.6/09/2010 4:22 pm 說:

恭喜登出國軍online「偽軍旅」伺服器~ XD

Anonymous elroy6/10/2010 4:14 am 說:

退伍後你就可以去找Charlie了XD

Blogger yen36/10/2010 3:49 pm 說:

恭喜退役啊 XD

Anonymous 白夜6/11/2010 10:07 am 說:

狂賀...也希望快點輪到我

Anonymous Brandon Carpet Cleaning10/11/2022 8:20 pm 說:

Good blogg post

<< 回到頁首

2010/06/08

The last night

以替代役身分在中興新村的最後一夜。Zimerman 從鋼琴指揮 Polish Festival Orchestra 的蕭邦第二號鋼琴協奏曲意外地符合我的心境。

But I really have to carry on.

--
開始照相了。


時間 23:06。現在所有臂章和名條都已拆下,制服已經失去意義。唯一還貼著替代役標誌的是 blog 的名片。那就照一張留念吧。

--
第二號協奏曲也要結束了。

Labels:

Blogger Unknown6/08/2010 8:04 pm 說:

恭喜。

<< 回到頁首

2010/06/06

租屋

昨日北上租屋。不過這次北上的型式不太一樣,是退伍的同梯騎車載我回新竹,我再搭高鐵上台北。於是我們沿著台三線一路向北,繼墾丁的藍海白沙之後又看到竹苗丘陵的縹緲深綠,途經鯉魚潭水庫,深綠山色、縹緲霧氣加上一片寧靜的水潭更收畫龍點睛之效。下午和北方香開始找房,到南港捷運站。我匆忙找來備用的南港房東一個在斗六,另一個的房間已經出租,於是開始打野戰。永慶房屋免費提供租屋平台讓我們搜尋,前後打了十幾通電話,要嘛說已經出租,不然就是時間上不適合,再不然是三個月不租,甚至有房子已經賣掉的。最後我拿起備用的中研院房東,終於有一個初步聽起來願意租,在舊莊街一段,看房之後覺得設施上沒問題,但因為只租三個月,價錢被喊高了,不過租得到似乎就已該稱萬幸。

我看房時覺得房間有點狹窄,特別是和現在中興的宿舍相比,後者住起來的感覺是前者的兩倍大。但回中興新村一看,其實也沒大多少,或許是格局影響吧。一扇大面積窗戶望出去是綠樹矮房,感覺就好很多。中興的環境真是棒得沒話說,希望 Univ 的房間至少和中興一樣棒 XD。

--
南投到新竹就騎了四個小時 XD。

Labels:

2010/06/02

Coming to an end...

〈畢業論文〉週一交出去了,約 3,500 字。回顧一下前九個月我寫了哪些作文題目:我所知道的數學、笛卡爾的大冒險(上、下)、計算與人、我聽西洋古典音樂、學習雜感、有窮與無窮、尋找腦中幻影、星際奇航。〈畢業論文〉猶如複習這些作文一般,裡面再次觸及這些作文的主題,甚至引了一句 TNG 結局 "All Good Things..." 的 "not mapping stars and studying nebulae, but charting the unknown possibilities of existence"(的中譯文),無意間形成一套融貫的記錄。因為這一梯無人接替我的位置,我只能把重要業務(i.e., 訂便當)先移交他人,並著手寫一份《會計便車指南》(The Hitchhiker's Guide to the Dept. of Accounting),把我的所有業務內容訣竅都囉哩囉唆地寫進去。明天是我訂便當的告別作,週五就要交給別科的學弟試辦 ─ 剩下只是收尾工作,此處責任已了。

--
只可惜沒辦法當面移交…

Labels:

Blogger Thundermyth O.6/02/2010 2:52 pm 說:

恭喜啊~ 要退伍了呢!
話說我還有好久… orz

Blogger Gulian6/05/2010 3:33 am 說:

恭喜阿~

當時候我要轉交業務的時候,剛好是一年一度軍團軍檢的時候,
真是可憐的學弟~~ XD 不過他們好像沒有遇到問題的樣子..

<< 回到頁首