廚房的燈下,一隻蠅停在杯沿。手掌放慢速度靠近,慢到幾乎貼上桌面,牠紋風不動;掌速一提,半空裡已經換成牠的新位置。這一幕人人經歷過,而它最近又被知識問答平臺上的一則提問翻了出來:動物都知道躲避天敵,為什麼幾千年過去,昆蟲還是不躲人類?提問的人甚至替答案預留了兩個方向,要嘛人類還不夠致命,要嘛「天敵」是造物主直接寫進基因的資訊。
這個問題的表層屬於演化生物學,骨架卻是介面設計的語言。「寫在基因中的資訊」這個措辭,把本能當成燒錄在機器裡的韌體,把每個物種都想成一批等待更新的硬體。順著這套語言讀下去,昆蟲的感知系統確實像一份出廠文件,而人類出現在文件的成文年代之後。
逃生系統只讀一個參數
那隻蠅在你加速的瞬間起飛,是因為牠的逃生系統追蹤的參數叫逼近速率。物體在視野裡膨脹得越快,碰撞就越近;蝗蟲視葉裡一顆著名的運動偵測神經元專責這件事,畫面中的物體急速放大時,它直接觸發彈跳,計算方式接近工程上估算剩餘碰撞時間的演算法。蟑螂尾部的尾毛則是一排風壓感測器,空氣剛被擾動,腿已經把身體推離原地。
值得注意的是這套系統的欄位配置。它記錄運動,身分欄位是空的:鳥喙與蛙舌在牠的畫面裡,和你的掌心屬於同一種事件,快速放大的陰影加上氣流變化。人類緩慢靠近時觸發不了任何門檻,因為這套韌體過去幾億年要應付的攻擊,全部以毫秒計。
這層電路也對學習關閉。它跑得比思考快,也比個體經驗快,性質接近相機機身深處那層徠卡隱藏服務選單:使用者介面上看不見,日常操作改不動內容,只有原廠的流程碰得了它。
每秒兩百五十格的世界
揮掌總是慢半拍,原因在取樣率。複眼的空間解析度低,蠅所看見的世界接近馬賽克拼貼,但時間軸上的更新頻率高得驚人:光源閃爍到每秒兩百五十次,人眼早已把它讀成連續的光,蠅眼仍能一格一格分清楚,而人類的視覺系統大約在每秒六十次就把畫面糊成一片。同樣一次揮拍,在你的時間軸上是流暢的動作,在牠的取樣裡是一串間隔寬鬆的靜態畫面,閃避的餘裕充足。
把時間切成一格一格,再規定每秒播放幾格,這套排版邏輯我們在ChatGPT 學會 GIF 的影格設計裡也見過,只是兩個物種之間相差了四倍。
一張寫滿取捨的規格表
整份昆蟲介面是一連串取捨的結果。空間解析度被拿去換反應速度;身分辨識整欄刪除,只留運動偵測;能耗預算壓到最低,腦以毫克計重;視野換到接近全景的廣角,代價是每個方向都模糊。在它的目標場景裡,天敵以突襲出現,攻擊在毫秒間完成,這份規格書是合理答案。麻煩在場景變了:有一種新的殺傷來源既不突襲,也不以毫秒計,總量龐大,單次接觸的訊號卻微弱到讀不出來。
人類在這份規格書裡的位置相當尷尬。就單次揮拍而言,我們的命中率低,多數昆蟲躲得掉,損失又分散在無數個體之間;放大到物種尺度,農藥、棲地、車流與燈光的殺傷總量又大到驚人。訊號與規模脫鉤,介面自然讀不到我們。
更新通道存在,條件卻嚴苛
演化並未停止發送更新,只是寫回基因需要條件:壓力要持續,要落在生存與繁殖的差異上,還要經過世代累積。條件成立的地方,更新速度快得嚇人。倫敦地鐵通車之後,隧道裡的蚊子與地面族羣逐漸分家,發展出全年活動、直接叮人的族羣,成了快速分化的常見案例;夏威夷一座島上的蟋蟀,在寄生蠅循聲獵殺的壓力下,幾十個世代內讓多數雄蟲失去發聲的翅;殺蟲劑上市幾年,抗性基因就能在區域族羣裡站穩。通道暢通,證據齊全。
差別在壓力的形狀。寄生蠅循聲而來,壓力精準落在「發聲」這個欄位上;殺蟲劑作用於生理機制,欄位同樣明確。「被人類拍中」的壓力隨機而稀疏,命中率也低,天擇在這個欄位上讀不到穩定的梯度。個體的閃避經驗也回寫不了系統:一隻蠅在你家廚房學會的戒心,隨牠幾十天的生命週期一起清空,個人設定永遠存不進出廠映像檔。
我們是規格書外的天氣
問題可以換一種排法。昆蟲其實躲得掉每一次具體的掌風,那是規格書內的勝利;至於人類作為物種級的存在,牠們的介面裡沒有對應欄位,我們以農藥的氣味、夜裡的路燈與城市的柏油出現,讀起來更像天氣與地景。夏夜繞著燈打轉的蛾是同一個邏輯的註腳,長年流行的解釋是牠們把遠處的月光當成導航基準,燈泡的近距離讓演算法繞成了圈;另一套較新的解釋,則認為強光擾亂了昆蟲判斷哪個方向是上的能力。牠們在城市裡犯的錯,多半是舊韌體遇上了新裝置。
設計這一行倒是早就回頭去抄這份規格書。仿蝗蟲逼近偵測做出的碰撞預警電路,進過車用感測的研究案;只對變化取樣、仿昆蟲視覺的事件式相機,把延遲壓到毫秒以下,如今裝在無人機與產線檢測上。人類問昆蟲為什麼不躲我們,工程師則忙著讓機器學會昆蟲的躲法,一份運行了幾億年的介面文件,就這樣被借走了一頁。
杯沿上的那隻蠅,下次仍會等你加速才走。它按的是幾億年前定稿的規格書,而那份文件的改版週期,向來以百萬年為單位。