失控啟示錄5:談談包容體系與產品設計
這篇文章釋出於 2019年05月8日,星期三,6:44 上午,歸類於名作啟示錄,失控。 閱讀 5 次, 今日 5 次
本文是《失控》讀書感悟系列文章第5篇,作者張鑫旭,轉載請註明源出處。
本文地址: https://www.zhangxinxu.com/life/?p=1000
一、大象不會玩象棋
通常的產品設計用不到本文的包容體系理論,如果是帶有“智慧”性質的,複雜的,與現實世界強對映的產品,則需要站在系統層面好好梳理下設計思維。
舉個例子,如果讓你設計一個會走路,會躲避障礙的機器狗,你會如何設計其功能實現?
很多人會這麼設計:給機器狗安裝一箇中央大腦,這個大腦通過各種感測器(例如接觸感測器、光線感測器和超聲波感測器)從環境中獲得資訊,然後根據這些資訊和預設的地圖場景傳送對應的行為,例如,檢測到前面不遠處有障礙物,機器狗就停下,計算周圍沒有障礙物的位置,然後再通過和中央大腦相連的電纜控制機器狗4條腿部各自馬達的運動,以實現轉向及前進。
但是,這種方法是有問題的。問題之一是它需要進行大量計算。另外,因為外部環境總是在變化,所以很難讓環境地圖符合最新情況。
羅德尼·布魯克斯 (Rodney A. Brooks – MIT AI Lab 的現任領導)早些年設計機器人的時候就是按照上面的思路實現,結果備受困擾,挫折不斷,因為各種和大腦交叉的線纜無法不受靜電干擾有能傳輸豐富多樣的訊號。後來其被迫此案有非常簡單的邏輯步驟以及短而簡單的連線,結果出乎意料,在完成簡單任務的時候,這種簡陋的自帶神經的電路表現要比有中央大腦表現更好。
一番探索後,在1986年釋出了著名的文章 “Elephants Don’t Play Chess(大象不會玩象棋)”,提出了提出了包容體系結構,用來實現基於行為的機器人學(behavior-based robotics,BBR,當今的機器人實驗室中佔有主要地位)。
還是機器狗的實現,我們無需任何中央大腦(中央處理器),只需要在每條腿上裝兩個馬達控制起落,以及一些感測器。腿只要抬起,就執行會落下。至於什麼時候抬起,取決於周圍幾條腿做什麼動作。如果前面腿抬起,我也抬起,於是,機器狗就“一二一,一二一,……”走起來了。可以看到沒有中央處理器,機器狗也能運動。而且,就算某一條腿折斷,剩下3條腿也會自動重組,繼續正常走路。
至於躲避障礙物,我們只需要在現有的穩健的步行功能上按照一個感應裝置,如果觸碰障礙物,那就把資訊傳遞給第一組腿,規則很簡單:“如果你感覺到什麼,停下,轉個角度;否則繼續走。”由於後面的腿都是基於第一個腿運動的,因此,我們只需要一個簡單的感測器,就能實現機器狗躲避障礙物的智慧行為。
這就是包容體系結構的精髓,當某個系統能夠正常運轉,不要擾亂它,要以它為基層來構建,在以後層級上建立新的層級,動物的進化與學習就是如此,這裡的機器狗也是如此,通過建立行為層級來學會穿越複雜的世界。
二、如何設計寵物狗形象製作工具?
對於靠軟體吃飯的網際網路公司,自然不會去設計機器人,但是,在軟體開發中,有很多產品其實本質上是和機器人設計類似的。比方說,想開發一款虛擬寵物的工具,其中有個重要功能就是使用者可以自己製作一套寵物狗形象,包括選擇品種,毛色,眼睛形態,尾巴動畫,舌頭動作等等。然後基於這些素材使用者自己組裝狗狗開心時候樣子,不開心時候樣子,無聊時候樣子,玩耍時候的樣子等。
其中,就存在一些與現實世界相匹配的冗餘邏輯處理,例如,如果使用者要捏一個寵物狗不開心時候的形態,則就不能選擇尾巴搖擺得很High的素材,應該選擇尾巴下垂素材更合適;如果捏無聊的狗,就不能選擇眼睛放光的素材等;例如捏瑞典牧羊犬形象的時候就不能選擇長尾巴素材。
這些邏輯處理很多人會這麼設計,給這個軟體系統背後安裝一個邏輯大腦,這個大腦實時獲取使用者當前選擇資訊,然後根據這些資訊和預設的邏輯進行判斷,例如選擇了不開心形象,就控制後面搖尾巴、眼睛放光等素材不顯示,只呈現大腦認為正確的素材。
但是,這種設計是由問題的。問題之一是它需要進行大量計算,開發和維護成本會相當大,尤其當這種篩選邏輯很多的時候。另外,外部環境總是在變化(如新增寵物狗型別,出現新的素材,使用者特殊需求等),所以很難讓當前內建的複雜邏輯符合最新情況。務必進行改動,此時系統的穩定性必定進一步削弱。
此時,我們不妨參考機器人的包容體系結構設計理念,基於行為實現我們的寵物狗形象製作工具。
我們無需任何中央大腦(中央處理器),讓所有的素材都可以自由組合,品種就是品種,毛色就是毛色,眼睛就是眼睛,尾巴就是尾巴。這個時候,一個寵物狗的形象就會出現,這個形象組合是非常穩健的。所有素材發生增減,或者新增另外一個層級素材,例如狗繩,也不會影響系統的執行。
然後,我們不要擾亂這個系統,而是以它為基層來構建新的層級,通過建立行為層級來學會穿越複雜的世界。這個新的層級就是不合理的篩選規則匹配處理。
例如,當用戶捏完一個寵物狗形象,合理性判斷層開始工作,使用者要捏一個不開心狀態的狗,結果發現眼睛放光,尾巴搖地很歡快,此時就可以進行不合理反饋,至於是強制形象禁用,還是對形象開放(使用者知道不合理還執意使用也允許)這個就要看產品定位。我個人是推薦後者,雖然會有糟粕形象產生,但是產品有了更多可能性,有了更強生命力,也增加了成為爆款可能性(引爆網路的往往都是無法預知的東西)。
包容體系結構設計的好處在於,無論你日後增加多少規則,最底層的組裝系統都是穩定的,只需要在上層不斷累加匹配規則即可。
三、最後總結
當你想要建立一個機器人,不要想著建立整個機器人,只需新增行為並看看會發生什麼。
兩者區別在於:前者提前預知衝突並改變方向(衝突不會發生)和行為;後者是一直保持穩定的行為,當遇到衝突(衝突會發生),改變方向。
對於複雜產品設計,試試使用後者進行設計,基於行為,使用包容體系結構,無論對設計、開發還是整個產品而言會更友好更穩健。
參考資料:
- 《失控》 – 3.2章節:快速、廉價、失控
- Paul Reiners(2008 年 1 月 11) 機器人、迷宮和包容體系結構
(本文完)